现需要用ArcGIS将多边形面层中是"空洞"的要素查找出来。
代码思路
一开始没有思路,于是写了代码,基本流程如下:
1)遍历需要判断的要素(可通过属性筛选);
2)检查某一要素相邻的所有要素;
3)反向检查某一要素相邻要素的相邻图斑:如果相邻图斑的个数唯一,且相邻图斑的FID与某一要素的FID相同,则某一要素的相邻要素在某一要素"内部",某一要素则为"空洞"要素。
注意:如果数据量过大,可只输出"空洞"要素的FID,然后利用属性查询在ArcGIS中查找即可;对于边界的判断可能有误,最好人工核查。
工具思路
1)用"要素转点"(feature to point)将面转点,目的是保留属性,转换时选中inside选项;
2)用"面转线"(polygon to line)将面转线;
3)再用"要素转面"*feature to polygon)将生成的线转面,转换时用第一步转成的点做label features,并选中preserve attributes选项。
没有相应属性的多边形就是原来的空洞。
时间: 2024-12-06 21:26:34