Отримання координат початкової та кінцевої точок за допомогою ArcPy? [зачинено]


9

Як отримати координати початкової та кінцевої точки за допомогою ArcPy для класу функцій полілінії?

Я очікую, що передасть ідентифікатор сегмента підпрограмі, і він передасть початкові та кінцеві координати. Метод Field Calculator не працює для мене, тому що мені потрібно значення для інших обчислень, які не можуть бути виконані в ньому. (Я також вважаю за краще не змінювати дані, щоб зберігати ці координати як атрибути.) Я намагаюся обчислити діапазон адрес для схеми адресації "центр назовні". Значення адреси залежить від відстані до "центру повіту".

Відповіді:


15

Процес цього, схоже, змінився між ArcGIS 10.0 та 10.1. Я включу зразок для обох.

Ось довідковий документ про зчитування геометрій у 10.1 за допомогою arcpy: Reading Geometries 10.1
У цьому документі розглядаються параметри для типу полілінійної геометрії: Polyline (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

Ось довідковий документ про зчитування геометрій у 10.0 за допомогою arcpy: Reading Geometries 10.0
У цьому документі розглядаються параметри об’єкта Geometry : Геометрія

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 було додано кілька ярликів для полегшення доступу до об’єкта геометрії.


6

Я робив це раніше і вважаю за краще використовувати курсор пошуку та читати геометрію. Це створює цикл і дозволяє робити кальку на кожній фігурі.

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


1

Ви повинні бути в змозі використати властивості FirstPoint і lastPoint на полілінію об'єкта.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.