Zusammenfassung
Feature-Schwerpunkte können auf unterschiedliche Weise berechnet werden. Je nachdem, wie der Schwerpunkt berechnet werden muss, sind mehrere Methoden möglich: Berechnen der zentralen XY-Koordinaten der Features, Verwenden des Werkzeugs "Feature in Punkt" oder Verwenden von Python zum Abrufen der Schwerpunktkoordinaten. In den folgenden Anweisungen werden diese Methoden beschrieben.
Vorgehensweise
- Berechnen der XY-Koordinaten des Features mit "Geometrie berechnen"
Bei dieser Methode wird die Funktion "Geometrie berechnen" verwendet, um den Breitengrad (Y-Koordinate des Schwerpunktes) und den Längengrad (X-Koordinate) der Schwerpunkte zu finden und einen XY-Ereignis-Layer für deren Anzeige zu erstellen: How To: Suchen des Schwerpunktes von Polygonen mit "Geometrie berechnen".
- Verwenden des Werkzeugs "Feature in Punkt" (Datenmanagement)
Bei dieser Methode wird der Schwerpunkt des Polygons, der geometrische Mittelpunkt eines Features, verwendet. Bei Linien-, Polygon- oder dreidimensionalen Features ist dies das Massenzentrum (oder Gravitationszentrum), das innerhalb oder außerhalb des Features liegen kann. Bei Multipoint-, Polylinien- oder Polygon-Feature-Classes wird der Schwerpunkt mithilfe des gewichteten arithmetischen Mittelpunktes aller Feature-Teile berechnet.Hinweis: Das Werkzeug "Feature in Punkt" ist nur bei der Lizenzstufe Advanced Desktop oder ArcInfo verfügbar.
Das Werkzeug "Feature in Punkt" wird verwendet, um eine neue Feature-Class mit Punkten, die aus den repräsentativen Positionen von Eingabe-Features generiert wurden, zu erstellen. Die Algorithmen für die jeweilige Berechnung sind proprietär. Es werden jedoch zwei grundlegende Konzepte verwendet.
Das Werkzeug berechnet den Schwerpunkt einer Multipoint-, Linien- oder Polygon-Eingabe anhand eines schwerpunktbasierten Algorithmus. Bei der Schwerpunktberechnung wird das Modell des geometrischen Mittelpunktes verwendet, um die neue Point-Feature-Class als Ausgabe zu erstellen. Bei Linien, Polygonen oder dreidimensionalen Features ist dies das Massenzentrum (oder Gravitationszentrum), das innerhalb oder außerhalb des Features liegen kann. Bei Multipoint-Features, Polylinien oder Polygonen mit mehreren Teilen wird dieser Wert mithilfe des gewichteten arithmetischen Mittelpunkts aller Feature-Teile berechnet.
In den Werkzeugparametern gibt es eine Option zum Berechnen des Schwerpunktes, der innerhalb der Feature-Grenzen liegt. Diese Option kann mit dem Feld für 'Innerhalb' aktiviert werden. Nach der Aktivierung dieses Parameters berechnet das Werkzeug einen Schwerpunkt, der innerhalb der Feature-Grenzen liegt. Wenn er ursprünglich außerhalb der Grenzen lag, wird dieser Punkt an das angepasst, was als Gravitationszentrum innerhalb der Grenzen betrachtet wird.
- Verwenden von Python zum Berechnen und Erstellen von Schwerpunktkoordinaten
Im folgenden Beispiel wird das Datenzugriffsmodul verwendet, um mit dem SHAPE@XY-Token die Koordinaten des Schwerpunktes abzurufen. Diese Koordinaten werden dann verwendet, um eine Punktgeometrie zu erstellen, die danach in eine neue Feature-Class geschrieben wird.Hinweis: Die Datenzugriffs-Cursor sind erst ab ArcGIS 10.1 verfügbar. Alternative Workflows für Version 10.x finden Sie unter Lesen von Geometrien und Schreiben von Geometrien.
import arcpy input_fc = "C:\\temp\\geodatabase.gdb\\states" output_fc = "C:\\temp\\geodatabase.gdb\\state_centroids" cursor = arcpy.da.SearchCursor(input_fc, "SHAPE@XY") centroid_coords = [] for feature in cursor: centroid_coords.append(feature[0]) point = arcpy.Point() pointGeometryList = [] for pt in centroid_coords: point.X = pt[0] point.Y = pt[1] pointGeometry = arcpy.PointGeometry(point) projectedPointGeometry = pointGeometry.projectAs("WGS 1984") pointGeometryList.append(projectedPointGeometry) arcpy.CopyFeatures_management(pointGeometryList, output_fc)