Python arcpy检查矢量自相交

arcpy检查面矢量自相交或异相交的问题。 

基本思路如下:

Python脚本如下,需在ArcGIS 10以上版本中运行 ,最后生成__WT.shp的矢量,即为问题矢量:

import arcpy
#打开覆盖写入
arcpy.env.overwriteOutput=True
A="E:\\zxj\\hh.shp"
fold="E:\\zxj\\"
index=A.rfind("\\")
B=fold+A[index:-4]+"B.shp"
C=fold+A[index:-4]+"C.shp"
D=fold+A[index:-4]+"D.shp"
E=fold+A[index:-4]+"E.shp"
G=fold+A[index:-4]+"G.shp"
#问题区域
prob=fold+A[index:-4]+"__WT.shp"
#关闭结果加入图层
arcpy.env.addOutputsToMap=False
arcpy.FeatureToLine_management(A,B)
arcpy.FeatureToPolygon_management(B,C) 
arcpy.Intersect_analysis([C,A],G)
arcpy.FeatureToPoint_management(G, D)
arcpy.FeatureToPoint_management(A, E)
#打开结果加入图层
arcpy.env.addOutputsToMap=True
arcpy.Erase_analysis(E,D,prob)

示例,多边形为3个面,绿框为检查出的有问题的面。具体哪个面可通过属性表的ORIG_FID字段查看。

猜你喜欢

转载自blog.csdn.net/weixin_40450867/article/details/81171470