Suite

La ligne fractionnée aux points ne se fractionne pas à chaque point dans ArcGIS for Desktop ?

La ligne fractionnée aux points ne se fractionne pas à chaque point dans ArcGIS for Desktop ?


Pourquoi Split Line At Points ne se divise-t-il pas à chaque point rencontré, même s'il est exécuté de manière itérative ?

Suite aux suggestions d'un fil ici et de plusieurs autres, j'ai fait un ensemble de points afin de diviser les polylignes à des intervalles spécifiés. Pour ce faire, j'ai utilisé le référencement linéaire pour transformer mes lignes en itinéraires. Ensuite, j'ai exporté la table attributaire, divisé chaque longueur par 5 et défini des points à des multiples de 1/5 de la longueur de la ligne. Je l'ai utilisé comme table d'événements pour créer une couche d'événements. Ainsi, chaque ligne a 4 points également espacés le long de celle-ci, et j'ai donc finalement besoin des 5 segments séparés par ces points.

Curieusement, cependant, lorsque j'essaie de faire la deuxième partie "Split Line at Point", il semble qu'un seul point est utilisé sur une ligne donnée à la fois, et je ne sais pas comment il choisit le point (peut-être l'ordre dans sa table attributaire ?) Je pourrais exécuter l'outil plusieurs fois, mais cela ne semble pas non plus résoudre le problème. Par exemple, je pourrais voir comment il continuerait à diviser les segments à mesure que davantage de segments sont générés, mais par ex. la 4ème exécution, je vois que certaines lignes ne sont toujours divisées que 3 fois, même s'il y a un point dans un segment de ligne qui n'a jamais été divisé et existait avant que j'exécute l'outil. Je ne sais pas comment les divisions sont générées, mais dans tous les cas, cela ne semble pas faire ce que je veux qu'il fasse, c'est-à-dire produire une division à "chaque" point.

Que dois-je faire pour diviser les lignes à TOUS les points le long de la ligne ?


C'est un outil de script que j'ai écrit qui le fera pour vous, je crois :

Script Python autonome pour diviser une polyligne avec une couche de points

Je ne pense pas qu'il souffre de devoir l'exécuter encore et encore (récursivement) pour continuer à diviser les lignes. Faites-moi savoir (avec un @John dans les commentaires) si vous avez besoin d'aide pour configurer une boîte à outils !

*Remarque : Si vous utilisez une licence Advanced, commentez le code vers le début (en utilisant "#"s devant chaque ligne) pour la section suivante :

if arcpy.ProductInfo() dans [u'ArcInfo', u'ArcServer'] : arcpy.SetProgressorLabel("Splitting lines at points") arcpy.SplitLineAtPoint_management(linefc, pointfc, output, 1.0) arcpy.SetProgressorLabel("Suppression des tranches en double ") outshapefieldname = arcpy.Describe(output).shapeFieldName arcpy.DeleteIdentical_management(output, [outshapefieldname]) sys.exit(0)

Sinon, il utilisera simplement le même outil Split Line at Point qui vous pose des problèmes.


Personnellement, je pense que ce serait mieux si vous utilisiez l'outil de proximité dans Arctoolbox et que vous calculiez la distance maximale du point à partir de l'entité de ligne, puis que vous saisissiez la valeur maximale trouvée dans le champ de rayon dans les outils Lignes de séparation aux points.