J'ai des objets d'entité polyligne en python. Maintenant, je veux obtenir tous les points des polylignes.
Par exemple, si une polyligne a un point de départ et un point d' [0,0]
arrivée [5,5]
. Résultat: [1,1];[2,2];[3,3];[4,4];[5,5]
.
Je veux trouver tous les points entiers sur cette ligne, y compris les points de fin. Pour la ligne droite, c'est très simple, mais si la polyligne a des types de géométrie de courbe de Beizer, d'arc circulaire et d'arc elliptique, comment puis-je le faire?
ÉDITER:
Je ne peux utiliser que les outils disponibles dans tous les niveaux de licence d'ArcGIS. Par exemple, ArcGIS Basic.
arcpy
point
features
geometry-conversion
utilisateur
la source
la source
Réponses:
Je sais que c'est ancien mais je cherchais la même chose car je n'ai pas ArcInfo pour les outils FeatureVerticesToPoints . Après avoir utilisé la solution de curseur de recherche ci-dessus, je suis allé de l'avant pour simplifier le code et j'ai constaté qu'en utilisant les tableaux NumPy dans le module d'accès aux données, un script simple et très rapide pouvait être produit. J'utilise cela comme un outil de script.
Remarque: la clé est le
explode_to_points
paramètrearcpy.da.FeatureClassToNumPyArray
Voici le lien vers l'emplacement du référentiel ArcGIS: classe d'entités vers points
la source
ctrl-k
appliquez la mise en forme du code (idem pour l'b
ancien et lei
talic). Par convention, nous avons tendance à éviter les bavardages comme "salut", "merci", "acclamations". Ceux-ci sont implicites comme étant toujours présents, et contribuent à renforcer l'idée que cet endroit est différent des forums et des e-mails habituels. Bienvenue à bord.Si j'ai bien compris, vous devez augmenter le nombre de sommets pour vos entités polylignes. Et aussi pour transformer tous les segments "Courbe de Beizer, Arc circulaire, Arc elliptique" en plusieurs segments de ligne.
Pour cette tâche dans ArcGIS, vous pouvez utiliser l' outil Densifier (modification) dans ArcToolbox.
Ensuite, vous pouvez convertir les sommets de vos polylignes en entités ponctuelles comme le suggèrent Darren Cope et l'illustration21.
Si vous préférez le faire dans ArcMap, consultez Création de nouveaux points le long d'une rubrique d'aide en ligne .
la source
Les éléments suivants devraient fonctionner sur les polylignes et les polygones:
Pour certaines données routières au Royaume-Uni, je reçois ceci; une liste imbriquée de paires X, Y pour chaque sommet qui compose la polyligne:
la source
print pnt.X, pnt.Y
avecpart_list.append([pnt.X, pnt.Y])
. Et vous imprimez cela à la fin de la boucle. Comment votre code peut-il obtenir tous les points d'une ligne, mais pas le code ESRI?Comme Darren Cope l'a suggéré, la conversion de votre calque en points sommets peut être effectuée à l'aide de l' outil Sommets d'entités en points .
Voici le code python coupé:
la source