在arcpy中将面shp文件转换为polygon object

最近在用arcgis的python借口arcpy编写一个批处理的脚本程序,其中有一段功能是要判断两个矢量面是否重叠,经过查询帮助文档和一些资料得知,polygon对象具有overlaps()方法可以用来判断两个polygon对象是否重叠,具体语法为:

                                                                                 polygon1.overlaps(polygon2)

如果重叠则返回True,否则返回False。

我将两个面矢量文件直接导入使用overlaps方法总是报错,错误信息大概的意思是说:字符串对象不具有overlaps方法。所以,面矢量文件并不是polygon对象(虽然都是面,但是程序就是不识别啊)。好吧,我只好去找能够将面矢量文件转换成polygon对象的方法。

通过在扣扣群里咨询大神然后查阅了一本书(这是一本英文书,书名为《ArcPy and ArcGIS Geospatial Analysis with Python》,15年出版的,还没怎么看,应该是个好东西)得知,可以将面矢量文件先转换成Geometry对象,就可以使用overlaps()方法了。

那么将面矢量文件转换成Geometry对象的具体方法如下:

import arcpy

polyg1 = arcpy.CopyFeatures_management("polygon1.shp",arcpy.Geometry)
polyg2 = arcpy.CopyFeatures_management("polygon2.shp",arcpy.Geometry)

polyg1[0].overlaps(polyg1[0])

这里使用polyg1[0]而不是polyg1的原因是arcpy.CopyFeatures_mangement()函数返回的是一个列表对象,所以要取其第一个元素,不然会报错

转载自:https://blog.csdn.net/qq_28418387/article/details/53491438

You may also like...