在进行遥感解译——栅格矢量转化后得到的矢量数据图层中,经常会存在众多的碎小斑块,需要对其进行处理。结合个人经验现将工作流程梳理如下:
1.数据源Ma.shp,通过遥感解译——栅格矢量转化得到,存在许多青春痘似的小斑块,如图1;
2.如果我想将小于0.1平方km的斑块去掉,过程:
(1)打开图层属性表——重新计算一下area字段,单位为平方km——选择出<0.1的斑块;
(2)转到toolbox中,利用Eliminate命令,取消对eliminating polygon by border的勾选(即我们想将小斑块合并到邻接的最大面积斑块中),input矢量数据Ma.shp;
如此小斑块即以大鱼吃小鱼的方式融合掉了,得到数据Ma_eli如图2.
3.仔细观察融合后的数据变化,一是小斑块去掉了,二是记录数明显减少了;但还有一个问题,那就是存在相邻同类斑块没有合并的现象,如下图3,我们需要把这些合并到一起,以保证斑块数准确;
4.消除“相邻同类斑块不合并”现象(不要一张双人床中间隔着一片海):
(3)利用dissolve命令,根据“type”字段,对Ma_elm.shp进行处理,得到Ma_elm_dis.shp文件,该操作将所有type值相同的斑块全部合并为一个斑块,查看属性表,会发现仅剩下几条记录了;把我们需要的斑块数给合并没了,所有还需要处理;
(4)利用feature to polygon命令,输入Ma_elm_dis.shp文件,得到的文件命名为Ma_elm_dis_poly.shp。查看该文件,被合并的大斑块被分开了,得到了真实的斑块数;同时也出现了一个新的问题:属性表中的type值没有了???看来革命尚未成功呀
(5)想办法追加上属性:利用intersect命令,输入Ma_elm_dis.shp和Ma_elm_dis_poly.shp两文件,如何运行,得到结果命名为Ma_ok.shp;查看属性表,type字段被赋上了值。
ok,成功!