如何使用ArcPy检索折线要素类的起点和终点坐标?
我希望将段标识符传递给子例程,并使其传回开始和结束坐标。字段计算器方法对我不起作用,因为我需要在其中无法执行的其他计算的值。(我也不想更改数据以将这些坐标存储为属性。)我正在尝试计算“中心出”寻址方案的地址范围。地址值取决于到“县中心”的距离。
如何使用ArcPy检索折线要素类的起点和终点坐标?
我希望将段标识符传递给子例程,并使其传回开始和结束坐标。字段计算器方法对我不起作用,因为我需要在其中无法执行的其他计算的值。(我也不想更改数据以将这些坐标存储为属性。)我正在尝试计算“中心出”寻址方案的地址范围。地址值取决于到“县中心”的距离。
Answers:
在ArcGIS 10.0和10.1之间,此过程似乎已更改。我将同时提供两个示例。
这是有关使用arcpy 读取10.1中的几何的帮助文档: 读取几何10.1
本文档讨论了折线几何类型的参数: 折线(arcpy)
10.1
import arcpy
infc = arcpy.GetParameterAsText(0)
# Enter for loop for each feature
#
for row in arcpy.da.SearchCursor(infc, ["OID@", "SHAPE@"]):
# Print the current line ID
print("Feature {0}:".format(row[0]))
#Set start point
startpt = row[1].firstPoint
#Set Start coordinates
startx = startpt.X
starty = startpt.Y
#Set end point
endpt = row[1].lastPoint
#Set End coordinates
endx = endpt.X
endy = endpt.Y
10.0
这是有关使用arcpy在10.0中读取几何的帮助文档: 读取10.0几何
本文档讨论了几何对象的参数: 几何
import arcpy
infc = arcpy.GetParameterAsText(0)
# Identify the geometry field
#
desc = arcpy.Describe(infc)
shapefieldname = desc.ShapeFieldName
# Create search cursor
#
rows = arcpy.SearchCursor(infc)
# Enter for loop for each feature/row
#
for row in rows:
# Create the geometry object
#
feat = row.getValue(shapefieldname)
# Print the current line ID
#
print "Feature %i:" % row.getValue(desc.OIDFieldName)
#Set start point
startpt = feat.firstPoint
#Set Start coordinates
startx = startpt.X
starty = startpt.Y
#Set end point
endpt = feat.lastPoint
#Set End coordinates
endx = endpt.X
endy = endpt.Y
两者之间的区别主要在于如何访问要素几何。10.1中添加了一些快捷方式,以使访问几何对象更加容易。
我之前已经做过此操作,并且更喜欢使用搜索光标来读取几何图形。它创建一个循环,并允许您对每个形状进行计算。
inFeatures = "Feature"
shapeName = arcpy.Describe (inFeatures).shapeFieldName
rows = arcpy.SearchCursor(inFeatures)
for row in rows:
feat = row.getValue(shapeName)
xy1 = feat.firstPoint
xy2 = feat.lastPoint
该循环允许您添加一些计算并逐个形状进行。
帮助中还有一些额外的帮助:在Python中使用几何