我正在使用ArcMap 10.3。
我有一层不同的土地利用类型。我发现许多多边形相互重叠,因此同一多边形具有两种不同的土地利用类型。
使用@radouxju的答案,我为土地使用层构建了一个拓扑(使用不可重叠的规则)。然后,我使用merge修复了大的重叠多边形。
但是,我有数千个小的重叠多边形。我可以手动修复所有这些问题,这将需要一些时间。
有没有更快速的方法来解决所有这些错误?
我已经更新了地图以显示所有土地使用类型。多边形彼此重叠;不碎。
我正在使用ArcMap 10.3。
我有一层不同的土地利用类型。我发现许多多边形相互重叠,因此同一多边形具有两种不同的土地利用类型。
使用@radouxju的答案,我为土地使用层构建了一个拓扑(使用不可重叠的规则)。然后,我使用merge修复了大的重叠多边形。
但是,我有数千个小的重叠多边形。我可以手动修复所有这些问题,这将需要一些时间。
有没有更快速的方法来解决所有这些错误?
我已经更新了地图以显示所有土地使用类型。多边形彼此重叠;不碎。
Answers:
@Adam Cara提出的担忧非常有效。但是,当我查看自相交时,似乎大多数不是在2个大型多边形之间的边界上的细小碎屑,就是坐在另一个多边形内的大多边形的不连续碎屑/孤岛。在这种情况下,擦除重叠,并分配溶解的重叠,可以使用最近邻居(以先到者为准)的属性。
处理:
arcpy.Intersect_analysis("Landuse2b #","D:/Scratch/mpart.shp","ALL","#","INPUT")
arcpy.MultipartToSinglepart_management("mpart","D:/Scratch/spart.shp")
arcpy.Dissolve_management("spart","D:/Scratch/dissolved_1.shp","#","#","SINGLE_PART","DISSOLVE_LINES")
arcpy.Erase_analysis("Landuse2b","dissolved_1","D:/Scratch/erased.shp","#")
arcpy.DeleteField_management("spart","FID_Landus;OBJECTID;Lnduse2013;Shape_Leng;Shape_Area")
arcpy.SpatialJoin_analysis("spart","erased","D:/Scratch/sj_1.shp","JOIN_ONE_TO_ONE","KEEP_ALL"…..)
arcpy.Merge_management("sj;erased","D:/Scratch/merge_1.shp"….)
arcpy.Dissolve_management("merge_1","D:/Scratch/dissolved.shp","Lnduse2013","#","SINGLE_PART","DISSOLVE_LINES")
测试:
arcpy.Intersect_analysis("dissolved #","D:/Scratch/test.shp","ALL","#","INPUT")
信息:
请注意,此消息表示最终Dissolve的输出中没有自相交
结果:
https://drive.google.com/file/d/0B6B33FrGNitPT0FvbVdHQm0xMDg/view?usp=sharing
如果您的多边形是细长的,则消除命令可以很好地将它们合并为较大面积的多边形或最长的边。
如果多边形是重叠的,则可能有一种更简单的方法,但是我会选择重叠到单独的图层,然后将它们合并在一起,创建条并使用消除命令。
您是否考虑过将各个土地利用类别分解为单独的shapefile,以便以此方式进行处理。我首先想到运行一个相交,但是我发现以上失败。如果您有七个单独的shapefile,则可以更轻松地对其进行操作。
我的主要问题是,如果存在重叠,您是否有一个等级会赢得类并最终显示?例如:如果“耕种”和“乳制品”重叠,您保留哪个?解决了该层次结构后,一次将2个类相交,从最低的类开始到最高的类。如果您的输出在给定的相交处为空,则表示它们不相交。
创建拓扑后,就可以确定错误。
在显示错误的列表中,您可以选择所有相同类型的错误,右键单击此列表,然后选择“修复”。在您的情况下,解决方法是“创建要素”,如果两个多边形重叠,它将创建一个新的多边形。这是第一步(请注意,您可以通过将联合工具与土地利用层作为单输入使用,然后将多部分转换为单部分工具来实现类似的结果(但是重叠部分仍然会重叠,因此您需要删除其中一个属性值),或将多边形转换为线然后再转换为多边形(但是然后松散属性,则需要空间连接来恢复属性)
第二步将包括删除小多边形。问题是您实际上没有规则来决定要保留哪个属性值。然后,我最喜欢的工具是消除工具,您可以在其中选择将小多边形合并到哪个相邻多边形(基于最大共享边界或最大面积)
最后说明:如果您确实有优先级土地利用类别的规则,请按位置迭代选择小的多边形(没有标签)以通过降低优先级顺序来分配每个土地利用类别,并使用字段计算器来分配它们标签。
一个可能的解决方案,如果您有Spatial Analyst或3D Analyst,则可以使用(多边形到栅格转换)工具将土地利用多边形转换为栅格图像,以确保不会出现重叠的多边形,因为您无法获得重叠的像素。然后,如果仍需要矢量格式,则使用(栅格转多边形)工具将栅格转换回多边形。在这种情况下,请选择高分辨率像元大小(详细像元大小)以获取高质量的多边形,但是您需要考虑内存。您可能需要通过更改像元大小来尝试几次,直到对结果满意为止。如果输出多边形不完美,可能需要对输出多边形进行一些平滑处理,但这取决于您是否至少拥有标准许可证适用于ArcGIS Desktop。我知道这不是一件容易的事,但可以解决您的问题。