由于任务需要,要将一个栅格数据中某一个值中属于细长部分的地方去除,由于arcgis中没有直接可以使用的工具,因此思考后采用shrink(收缩)+expand(散度)工具的方式实现。
数据样例如下:
假如要将其中紫色部分(值为3)宽度小于一个栅格(这里因为是一个演示,所以就选择一个栅格,实际过程中可以根据需求,设置比如宽度小于200m的部分进行去除)的部分去除,用周围出现频率最高的其他值代替。
第一步,使用shrink工具 (Spatial Analyst工具->栅格综合->收缩),具体工具参数设置如下:
运行工具后结果如下:
![]() |
![]() |
我们可以发现,运行shrink工具之后,紫色部分宽度小于一个栅格的地方已经消失并被附近值替换。但是由于shrink工具也将其他地方收缩了,紫色部分与原来相比“瘦了一圈”,因此还需要将其复原。
第二步,运行expand工具(Spatial Analyst工具->栅格综合->散度)。
具体工具设置如下:
运行工具后结果如下:
![]() |
![]() |
可以发现,通过运行expand工具之后,紫色部分又恢复了原来胖胖的样子。
最终效果与最原始图像对比:
![]() |
![]() |
其实当数据很小的时候,可以将栅格数据转矢量,然后用编辑器手动修改即可。此种方法在数据量较大,需要批量处理的时候很有用。