C'est une autre façon de le faire en utilisant un da.SearchCursor :
import arcpy
fc=r'C:\TEST.gdb\polygons123'
with arcpy.da.SearchCursor(fc,['OID@','SHAPE@']) as cursor:
for row in cursor:
array1=row[1].getPart()
for vertice in range(row[1].pointCount):
pnt=array1.getObject(0).getObject(vertice)
print row[0],pnt.X,pnt.Y
Résultat en ObjectID, X et Y qui peuvent être copiés dans Excel:
...
1 537505.894287 6731069.60889
1 537533.516296 6731078.20947
1 537555.316528 6731082.53589
1 537562.501892 6731085.47913
1 537589.395081 6731070.52991
1 537617.062683 6731058.29651
2 537379.569519 6729746.16272
2 537384.81311 6729746.06012
2 537396.085327 6729748.62311
2 537404.065674 6729752.75311
2 537425.145325 6729773.72931
2 537429.842102 6729777.07129
2 537442.971313 6729780.10651
2 537450.27533 6729780.51611
...
Essayez les outils de géo-assistant des technologies spatiales. Il dispose de plusieurs outils gratuits qui peuvent faire ce que vous voulez. Essayez d'obtenir les coordonnées du polygone. Ou polygone aux points
et géo-assistants
la source
Le script python suivant (qui nécessite ArcGIS 10.1 ou version ultérieure) utilise
arcpy.da
pour prendre un fichier de formes en entrée et créer une feuille de calcul avec une entrée pour chaque sommet dans chaque polygone présent dans le fichier .shp (et je crois qu'il fonctionne avec des licences arcgis de niveau inférieur) . Les identifiants d'objet et de séquence relient les points à une position spécifique dans un polygone spécifique.H / t à @PaulSmith dans ce post: Obtenez tous les points d'une polyligne pour mettre en surbrillance l'
explode_to_points
option dans l'arcpy.da.FeatureClassToNumPyArray
outilJ'ai également écrit un script qui répond spécifiquement aux exigences de: Insérer les coordonnées des sommets dans le polygone qui est marqué comme doublon à cette question, ce code est ci-dessous:
la source
Je n'ai donc pas encore terminé la solution, mais il semble que vous pouvez utiliser cet outil:
Conversion> JSON> Fonctionnalités en JSON.
Cela convertira votre fichier de formes (dans mon cas, 81 polygones) en un fichier JSON. Vous pouvez l'ouvrir avec un éditeur de texte pour voir qu'en fait, tous les sommets sont répertoriés pour chaque polygone.
De plus, la bibliothèque standard python (import json) traite les objets json comme des dictionnaires. Vous pouvez ensuite simplement parcourir vos dictionnaires pour écrire les valeurs des sommets (et tout autre attribut souhaité) dans un fichier csv. Si je le fais fonctionner, je reviendrai et posterai le soln.
la source
J'avais juste besoin des coordonnées x et y pour la polyligne et le polygone. J'ai utilisé ToolBox -> Outils de gestion des données -> Fonctionnalités -> Fonction à pointer. Cela a créé un fichier de forme de point, puis j'ai utilisé l'ajout de coordonnées XY à partir du même menu Fonctions pour générer des coordonnées XY. Ensuite, j'ai extrait les informations de la table d'attributs de formes dans une feuille Excel. Cela a résolu mon problème, je ne sais pas si vous recherchez la même chose.
la source
Voici une solution de contournement en des temps désespérés:
Cette méthode est correcte pour les petits ensembles de données, mais la dépendance / les limitations sur les convertisseurs OCR sont la principale préoccupation. Utiliser avec précaution.
la source