ArcPy ile başlangıç ​​ve bitiş noktası koordinatları alınıyor mu? [kapalı]


9

Çoklu çizgi özellik sınıfı için ArcPy ile başlangıç ​​ve bitiş noktası koordinatlarını nasıl alabilirim?

Bir segment tanımlayıcısını bir alt rutine geçirmeyi ve başlangıç ​​ve bitiş koordinatlarını geri vermesini bekliyorum. Alan Hesaplama yöntemi benim için çalışmıyor, çünkü içinde gerçekleştirilemeyen diğer hesaplamalar için değere ihtiyacım var. (Ben de bu koordinatları öznitelik olarak saklamak için veri değiştirmemeyi tercih ederim.) Bir "merkez dışı" adresleme şeması için adres aralığı hesaplamaya çalışıyorum. Adres değeri "ilçe merkezine" olan mesafeye bağlıdır.

Yanıtlar:


15

Bunun için süreç ArcGIS 10.0 ve 10.1 arasında değişmiş gibi görünüyor. Her ikisi için de bir örnek ekleyeceğim.

Aşağıda, arcpy kullanarak 10.1'deki geometrileri okuma hakkında yardım belgesi verilmiştir: Geometrileri Okuma 10.1
Bu belgede, bir Polyline geometri türü için parametreler açıklanmaktadır: 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

Arcpy kullanarak 10.0'da geometrileri okuma ile ilgili yardım belgesi: Geometrileri Okuma 10.0
Bu belgede bir Geometry nesnesinin parametreleri açıklanmaktadır: Geometri

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

İkisi arasındaki fark temel olarak özellik geometrisine nasıl eriştiğinizde yatmaktadır. Geometri nesnesine ulaşmayı kolaylaştırmak için 10.1'de bazı kısayollar eklenmiştir .


6

Bunu daha önce yaptım ve bir Arama İmleç kullanmayı ve geometriyi okumayı tercih ettim. Bir döngü oluşturur ve her şekil üzerinde kireç yapmanıza izin verir.

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

Bu döngü, onunla bazı hesaplamalar eklemenize ve şekil şekillendirmenize izin verir.

Yardım'da ekstra yardım var: Python'da geometriyle çalışma


1

Polyline nesnesinin firstPoint ve lastPoint özelliklerini kullanabilmeniz gerekir .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.