赞
踩
最近遇到一个用 ArcGIS 分割栅格数据的需求,把一张大的影像图按一定要求分幅裁剪为多张影像。看起来很简单,但实际操作过程中还是踩到了一些坑,诸多尝试后使用模型构建器解决了问题,在这里记录下。
1. 制作用于裁剪的分幅图框;
2. 使用分幅图框对栅格进行裁剪;
- 创建渔网位于:数据管理 - 采样 - 创建渔网;
- 渔网原点和右上角坐标取决于影像范围,为方便计算图幅号,可将坐标取整到 10000;
- 参考之前用过的数字正射影像(应该有数字正射影像图生产规范,不过没找到),10000 比例尺图幅尺寸应该是 5000*5000 ,其他比例尺图幅范围可参照公式:图幅尺寸=比例尺 / 2(不保证正确性);
- Y 轴坐标用于定向渔网。按照原点坐标与 y 轴坐标的连线所定义的角度旋转渔网。
str( !shape.extent.YMin!/1000 )+"-"+str( !shape.extent.XMin!/1000 )+"DOM"
- 1
这样可用于裁剪栅格的矢量图层就做好了。
如果分幅影像需要保留一定的接边范围,可以对图框做一个缓冲,缓冲距离设置为想要的接边距离。
- 用 ArcGIS 的缓冲工具缓冲后会图框形成圆角,有强迫症的可以对缓冲后的图框做一次包络矩形(其实缓冲后的圆角不影响分幅裁剪)
- 分割栅格位于:数据管理工具 - 栅格 - 栅格处理 - 分割栅格。
- 应该是 10.4 的BUG,分割工具不能正常使用(测试 10.0 的分割栅格功能一切正常,不过10.0没有 我们需要的POLYGON_FEATURES 分割方法,故不采用)
栅格处理下面还有个裁剪工具,可以自定义栅格输出范围或使用要素范围进行裁剪,不过这个范围是整个要素类范围,不是针对单个要素。
要实现针对单个要素的裁剪,大致有两种思路:
第二种思路可行性较高,ArcGIS 的模型构建器和 Python 脚本应该都能很好的胜任,而且可以做成通用工具,便于后续使用。
这里采用模型构建器,迭代要素选择来获取单个要素范围,再用这个范围来裁剪影像。
- 没使用过模型构建器的朋友可以参考帮助,多注意获取变量和使用行内变量就行。
- 按字段分组中选择的字段值会被用于裁剪后的栅格命名。
- 使用输入要素裁剪可实现不规则裁剪(比如按行政界线裁剪)。
设计好模型,保存到工具箱,这样一个裁剪工具就做好了,可以方便的共享使用。
行文有误的地方欢迎指正,有其他更好的方法欢迎留言讨论。最后放个工具箱链接,需要的可以在这里下载。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。