ArcGIS分割栅格·使用模型构建器

问题

最近遇到一个用 ArcGIS 分割栅格数据的需求,把一张大的影像图按一定要求分幅裁剪为多张影像。看起来很简单,但实际操作过程中还是踩到了一些坑,诸多尝试后使用模型构建器解决了问题,在这里记录下。


思路

1. 制作用于裁剪的分幅图框;
2. 使用分幅图框对栅格进行裁剪;


解决方案

  • 制作分幅图框

    制作分幅图框方法比较多,这儿推荐使用创建渔网工具:
ArcGIS分割栅格·使用模型构建器_第1张图片
  • 创建渔网位于:数据管理 - 采样 - 创建渔网;
  • 渔网原点和右上角坐标取决于影像范围,为方便计算图幅号,可将坐标取整到 10000;
  • 参考之前用过的数字正射影像(应该有数字正射影像图生产规范,不过没找到),10000 比例尺图幅尺寸应该是 5000*5000 ,其他比例尺图幅范围可参照公式:图幅尺寸=比例尺 / 2(不保证正确性);
  • Y 轴坐标用于定向渔网。按照原点坐标与 y 轴坐标的连线所定义的角度旋转渔网。
  • 渔网创建好后可计算图幅号,方便分幅影像命名。新建个TEXT字段,10000 比例尺图幅号计算可参考以下表达式(解析程序用Pyhon)
    str( !shape.extent.YMin!/1000 )+"-"+str( !shape.extent.XMin!/1000 )+"DOM"
    

这样可用于裁剪栅格的矢量图层就做好了。

ArcGIS分割栅格·使用模型构建器_第2张图片

如果分幅影像需要保留一定的接边范围,可以对图框做一个缓冲,缓冲距离设置为想要的接边距离。

ArcGIS分割栅格·使用模型构建器_第3张图片
  • 用 ArcGIS 的缓冲工具缓冲后会图框形成圆角,有强迫症的可以对缓冲后的图框做一次包络矩形(其实缓冲后的圆角不影响分幅裁剪)

  • 栅格裁剪

    栅格裁剪首先想到的就是用分割栅格工具。
    ArcGIS分割栅格·使用模型构建器_第4张图片
  • 分割栅格位于:数据管理工具 - 栅格 - 栅格处理 - 分割栅格。
  • 应该是 10.4 的BUG,分割工具不能正常使用(测试 10.0 的分割栅格功能一切正常,不过10.0没有 我们需要的POLYGON_FEATURES 分割方法,故不采用)

栅格处理下面还有个裁剪工具,可以自定义栅格输出范围或使用要素范围进行裁剪,不过这个范围是整个要素类范围,不是针对单个要素。

ArcGIS分割栅格·使用模型构建器_第5张图片

要实现针对单个要素的裁剪,大致有两种思路:

  1. 使用分割工具把图框分割成单个的要素类,再用裁剪工具的批处理。但这种方式比较麻烦,会生成一大堆过程数据,速度也比较慢。
  2. 循环图框要素,获取每个要素范围实现裁剪。

第二种思路可行性较高,ArcGIS 的模型构建器和 Python 脚本应该都能很好的胜任,而且可以做成通用工具,便于后续使用。
这里采用模型构建器,迭代要素选择来获取单个要素范围,再用这个范围来裁剪影像。

ArcGIS分割栅格·使用模型构建器_第6张图片
  • 没使用过模型构建器的朋友可以参考帮助,多注意获取变量和使用行内变量就行。
  • 按字段分组中选择的字段值会被用于裁剪后的栅格命名。
  • 使用输入要素裁剪可实现不规则裁剪(比如按行政界线裁剪)。

设计好模型,保存到工具箱,这样一个裁剪工具就做好了,可以方便的共享使用。

ArcGIS分割栅格·使用模型构建器_第7张图片

最后

行文有误的地方欢迎指正,有其他更好的方法欢迎留言讨论。最后放个工具箱链接,需要的可以在这里下载。

你可能感兴趣的:(ArcGIS,ArcGIS,模型构建器,栅格)