[PYTHON] So ermitteln Sie die Scheitelpunktkoordinaten eines Features in ArcPy

Ruft die Eckpunkte jedes Polygons im Polygon-Feature-Layer ab

Datenstruktur des Polygon-Feature-Layers

--Layer-Klasse (arcpy._mp.Layer) SHAPE @ ┐ --Polygon-Klasse (arcpy.arcobjects.geometries.Polygon) getPart () ┐ --Array-Klasse (arcpy.arcobjects.arcobjects.Array) getObject (0) ┐ --Array-Klasse (arcpy.arcobjects.arcobjects.Array) getObject (i) ┐ --Point-Klasse (arcpy.arcobjects.arcobjects.Point)

Python-Code

GetPolygonVertex.py


import arcpy

#Überprüfen Sie die Eingabeparameter
arcpy.AddMessage("GetArgumentCount() = {0}".format(arcpy.GetArgumentCount()))
for i in range(arcpy.GetArgumentCount()):
    param = arcpy.GetParameter(i)
    paramText = arcpy.GetParameterAsText(i)
    
    arcpy.AddMessage("GetParameter({0}) = {1}".format(i, param))
    arcpy.AddMessage("GetParameter({0}).__class__ = {1}".format(i, param.__class__))
    arcpy.AddMessage("GetParameter({0}).__class__.__name__ = {1}".format(i, param.__class__.__name__))
    arcpy.AddMessage("GetParameterAsText({0}) = {1}".format(i, paramText))

inFeatureLayer = arcpy.GetParameterAsText(0)

#Überprüfen Sie den Inhalt des Feature-Layers
with arcpy.da.SearchCursor(inFeatureLayer, ["OID@", "SHAPE@"]) as cursor:
    for row in cursor:
        oid = row[0]
        shape = row[1]

        # oid
        arcpy.AddMessage("*****************************************************************************************************")
        arcpy.AddMessage("-- oid = OID@ --")
        arcpy.AddMessage("OID@ = {0}".format(oid))
        arcpy.AddMessage("OID@.__class__ = {0}".format(oid.__class__))
        arcpy.AddMessage("OID@.__class__.__name__ = {0}".format(oid.__class__.__name__))

        # shape
        arcpy.AddMessage("-- shape = SHAPE@ --")
        arcpy.AddMessage("shape = {0}".format(shape))
        arcpy.AddMessage("shape.__class__ = {0}".format(shape.__class__))
        arcpy.AddMessage("shape.__class__.__name__ = {0}".format(shape.__class__.__name__))
        arcpy.AddMessage("shape.partCount = {0}".format(shape.partCount))
        arcpy.AddMessage("shape.pointCount = {0}".format(shape.pointCount))

        # shape.getPart()
        arcpy.AddMessage("-- shape.getPart() --")
        arcpy.AddMessage("shape.getPart() = {0}".format(shape.getPart()))
        arcpy.AddMessage("shape.getPart().__class__ = {0}".format(shape.getPart().__class__))
        arcpy.AddMessage("shape.getPart().__class__.__name__ = {0}".format(shape.getPart().__class__.__name__))
        arcpy.AddMessage("shape.getPart().count = {0}".format(shape.getPart().count))

        # shape.getPart().getObject(0)
        arcpy.AddMessage("-- shape.getPart().getObject(0) --")
        arcpy.AddMessage("shape.getPart().getObject(0) = {0}".format(shape.getPart().getObject(0)))
        arcpy.AddMessage("shape.getPart().getObject(0).__class__ = {0}".format(shape.getPart().getObject(0).__class__))
        arcpy.AddMessage("shape.getPart().getObject(0).__class__.__name__ = {0}".format(shape.getPart().getObject(0).__class__.__name__))
        arcpy.AddMessage("shape.getPart().getObject(0).count = {0}".format(shape.getPart().getObject(0).count))

        # shape.getPart().getObject(0).getObject(i)
        for i in range(shape.getPart().getObject(0).count):
            point = shape.getPart().getObject(0).getObject(i)
            
            arcpy.AddMessage("-- point = shape.getPart().getObject(0).getObject({0}) --".format(i))
            arcpy.AddMessage("point = {0}".format(point))
            arcpy.AddMessage("point.__class__ = {0}".format(point.__class__))
            arcpy.AddMessage("point.__class__.__name__ = {0}".format(point.__class__.__name__))
            
        arcpy.AddMessage("*****************************************************************************************************")
del cursor

Ausführungsergebnis

Bei Ausführung als Eingabe mit einem Feature-Layer, der zwei Polygone enthält.

2020-01-12-22-27-37.png

GetArgumentCount() = 1
GetParameter(0) =Polygon testen
GetParameter(0).__class__ = <class 'arcpy._mp.Layer'>
GetParameter(0).__class__.__name__ = Layer
GetParameterAsText(0) =Polygon testen
*****************************************************************************************************
-- oid = OID@ --
OID@ = 1
OID@.__class__ = <class 'int'>
OID@.__class__.__name__ = int
-- shape = SHAPE@ --
shape = <geoprocessing describe geometry object object at 0x0000017A10D30EE0>
shape.__class__ = <class 'arcpy.arcobjects.geometries.Polygon'>
shape.__class__.__name__ = Polygon
shape.partCount = 1
shape.pointCount = 5
-- shape.getPart() --
shape.getPart() = <geoprocessing array object object at 0x0000017A1020A450>
shape.getPart().__class__ = <class 'arcpy.arcobjects.arcobjects.Array'>
shape.getPart().__class__.__name__ = Array
shape.getPart().count = 1
-- shape.getPart().getObject(0) --
shape.getPart().getObject(0) = <geoprocessing array object object at 0x0000017A1020A970>
shape.getPart().getObject(0).__class__ = <class 'arcpy.arcobjects.arcobjects.Array'>
shape.getPart().getObject(0).__class__.__name__ = Array
shape.getPart().getObject(0).count = 5
-- point = shape.getPart().getObject(0).getObject(0) --
point = 132.084696427 31.297648687 0 NaN
point.__class__ = <class 'arcpy.arcobjects.arcobjects.Point'>
point.__class__.__name__ = Point
-- point = shape.getPart().getObject(0).getObject(1) --
point = 135.36789933 32.2200581310001 0 NaN
point.__class__ = <class 'arcpy.arcobjects.arcobjects.Point'>
point.__class__.__name__ = Point
-- point = shape.getPart().getObject(0).getObject(2) --
point = 136.569792838 29.41042809 0 NaN
point.__class__ = <class 'arcpy.arcobjects.arcobjects.Point'>
point.__class__.__name__ = Point
-- point = shape.getPart().getObject(0).getObject(3) --
point = 133.286589935 28.4353141970001 0 NaN
point.__class__ = <class 'arcpy.arcobjects.arcobjects.Point'>
point.__class__.__name__ = Point
-- point = shape.getPart().getObject(0).getObject(4) --
point = 132.084696427 31.297648687 0 NaN
point.__class__ = <class 'arcpy.arcobjects.arcobjects.Point'>
point.__class__.__name__ = Point
*****************************************************************************************************
*****************************************************************************************************
-- oid = OID@ --
OID@ = 2
OID@.__class__ = <class 'int'>
OID@.__class__.__name__ = int
-- shape = SHAPE@ --
shape = <geoprocessing describe geometry object object at 0x0000017A10D308C8>
shape.__class__ = <class 'arcpy.arcobjects.geometries.Polygon'>
shape.__class__.__name__ = Polygon
shape.partCount = 1
shape.pointCount = 5
-- shape.getPart() --
shape.getPart() = <geoprocessing array object object at 0x0000017A1020AA50>
shape.getPart().__class__ = <class 'arcpy.arcobjects.arcobjects.Array'>
shape.getPart().__class__.__name__ = Array
shape.getPart().count = 1
-- shape.getPart().getObject(0) --
shape.getPart().getObject(0) = <geoprocessing array object object at 0x0000017A10F19CB0>
shape.getPart().getObject(0).__class__ = <class 'arcpy.arcobjects.arcobjects.Array'>
shape.getPart().getObject(0).__class__.__name__ = Array
shape.getPart().getObject(0).count = 5
-- point = shape.getPart().getObject(0).getObject(0) --
point = 146.643152231 39.990418811 0 NaN
point.__class__ = <class 'arcpy.arcobjects.arcobjects.Point'>
point.__class__.__name__ = Point
-- point = shape.getPart().getObject(0).getObject(1) --
point = 145.658068329 37.1688505340001 0 NaN
point.__class__ = <class 'arcpy.arcobjects.arcobjects.Point'>
point.__class__.__name__ = Point
-- point = shape.getPart().getObject(0).getObject(2) --
point = 142.19148511 38.2163059420001 0 NaN
point.__class__ = <class 'arcpy.arcobjects.arcobjects.Point'>
point.__class__.__name__ = Point
-- point = shape.getPart().getObject(0).getObject(3) --
point = 143.176569012 40.99087202 0 NaN
point.__class__ = <class 'arcpy.arcobjects.arcobjects.Point'>
point.__class__.__name__ = Point
-- point = shape.getPart().getObject(0).getObject(4) --
point = 146.643152231 39.990418811 0 NaN
point.__class__ = <class 'arcpy.arcobjects.arcobjects.Point'>
point.__class__.__name__ = Point
*****************************************************************************************************

Referenz

Referenz

Recommended Posts

So ermitteln Sie die Scheitelpunktkoordinaten eines Features in ArcPy
So ermitteln Sie die Anzahl der Stellen in Python
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
So erhalten Sie eine Liste der integrierten Ausnahmen für Python
Wie bekomme ich Stacktrace in Python?
So bestimmen Sie die Existenz eines Selenelements in Python
So erhalten Sie alle möglichen Werte in einem regulären Ausdruck
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
Erstellen Sie eine Funktion, um den Inhalt der Datenbank in Go abzurufen
Holen Sie sich den Aufrufer einer Funktion in Python
So erhalten Sie die Dateien im Ordner [Python]
[Linux] Ein Befehl zum Abrufen einer Liste der in der Vergangenheit ausgeführten Befehle
So übergeben Sie das Ergebnis der Ausführung eines Shell-Befehls in einer Liste in Python
So erhalten Sie den Variablennamen selbst in Python
Wie man eine Benutzergruppe mit Slack-Benachrichtigung erwähnt, wie man die ID einer Benutzergruppe überprüft
[NNabla] So erhalten Sie die Ausgabe (Variable) der mittleren Schicht des erstellten Netzwerks
So zählen Sie die Anzahl der Elemente in Django und geben sie in die Vorlage aus
Ein Memorandum zur Ausführung des Befehls! Sudo magic in Jupyter Notebook
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
So erhalten Sie den "Namen" eines Feldes, dessen Wert durch das Auswahlattribut im Django-Modell begrenzt ist
So speichern Sie die Feature-Point-Informationen des Bildes in einer Datei und verwenden sie zum Abgleichen
So zeigen Sie das Änderungsdatum einer Datei in C-Sprache bis zu Nanosekunden an
So überprüfen Sie in Python, ob sich eines der Elemente einer Liste in einer anderen Liste befindet
So erhöhen Sie die Verarbeitungsgeschwindigkeit der Erfassung der Scheitelpunktposition
[Ubuntu] So löschen Sie den gesamten Inhalt des Verzeichnisses
Verwendung der Methode __call__ in der Python-Klasse
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
So entwickeln Sie in einer virtuellen Python-Umgebung [Memo]
So generieren Sie eine Abfrage mit dem IN-Operator in Django
So erhalten Sie alle Schlüssel und Werte im Wörterbuch
So ermitteln Sie den Skalierungskoeffizienten eines bipolaren Wavelets
So erhalten Sie einen Überblick über Ihre Daten in Pandas
[Shell] So erhalten Sie den Remote-Standardzweig mit Git
So erhalten Sie eine Liste mit Links von einer Seite aus Wikipedia
So verbinden Sie den Inhalt der Liste mit einer Zeichenfolge
So erhalten Sie die Python-Version
[Linux] [C / C ++] So ermitteln Sie den Wert der Rücksprungadresse einer Funktion und den Funktionsnamen des Aufrufers
Anzeigen des regionalen Netzes des Government Statistics Office (eStat) in einem Webbrowser
Ruft den Wert eines bestimmten Schlüssels bis zum angegebenen Index der Wörterbuchliste in Python ab
[OCI] Python-Skript zum Abrufen der IP-Adresse einer Recheninstanz in Cloud Shell
Wie kann man schnell die Häufigkeit des Auftretens von Zeichen aus einer Zeichenfolge in Python zählen?
Darstellung der Verteilung der Bakterienzusammensetzung aus Qiime2-Analysedaten in einem Box-Whisker-Diagramm
Übergeben des Ausführungsergebnisses eines Shell-Befehls in einer Liste in Python (nicht blockierende Version)
So zeigen Sie eine bestimmte Dateispalte unter Linux an (awk)
[sh] Das Speichern der Befehlsausführung führt zu Variablen
So implementieren Sie Java-Code im Hintergrund von Red Hat (Linux ONE)
Versuchen Sie, die Thread-Liste der Nachrichten (Abneigung) mit Python zu erhalten.
So ändern Sie die Farbe nur der mit Tkinter gedrückten Taste
So erhalten Sie die ID von Type2Tag NXP NTAG213 mit nfcpy
[Python] So erhalten Sie den ersten und den letzten Tag des Monats
So erhalten Sie eine Zeichenfolge aus einem Befehlszeilenargument in Python
Ich habe versucht, das Entwicklungsstartverfahren von Django kurz zusammenzufassen
[Einführung in Python] Wie verwende ich den Operator in in der for-Anweisung?
[TensorFlow 2] So überprüfen Sie den Inhalt von Tensor im Diagrammmodus
So ermitteln Sie die Speicheradresse des Pandas-Datenrahmenwerts
Wie erstelle ich eine große Menge an Testdaten in MySQL? ??
[NNabla] So entfernen Sie die mittlere Ebene eines vorgefertigten Netzwerks