¿Cómo se puede calcular el punto medio de una polilínea utilizando el marco de geoprocesamiento , por ejemplo, en un script de Python?
La propiedad polyline.centroid devuelve el centroide verdadero si está dentro o sobre la entidad; de lo contrario, se devuelve el punto de etiqueta . El centroide rara vez se encuentra en líneas no rectas, lo cual es inútil para mis propósitos.
La herramienta Vértices de entidades a puntos tiene una opción de punto medio, pero esto requiere ArcInfo, que actualmente no tengo.
Una opción podría ser agregar medidas a las polilíneas y crear un evento de ruta al 50% a lo largo de la línea.
Otra solución es usar la opción Calcular geometría en ArcMap, pero idealmente necesito automatizar este proceso en un script.
¿Alguna sugerencia mejor / más rápida?
Por el momento estoy limitado a ArcGIS 10.0 (sin acceso a una licencia de nivel ArcInfo).
fuente
Respuestas:
La clase Polyline tiene un nuevo método llamado "positionAlongLine" en ArcGIS 10.1. Esto devolverá un objeto PointGeometry con exactamente un punto a una distancia especificada desde el extremo inicial de la línea, o una fracción de la distancia entre el inicio y el final . Para encontrar el punto medio, solo necesitas hacer
positionAlongLine(0.5,True)
. Para encontrar los puntos medios de las líneas y agregar sus coordenadas a la tabla de atributos, puede hacer la Calculadora de campo en la siguiente instrucción:!Shape!.positionAlongLine(0.5,True).firstPoint.X
!Shape!.positionAlongLine(0.5,True).firstPoint.Y
Tenga en cuenta que debe usar el analizador Python en la calculadora de campo para que esto funcione.
Si desea acceder a este objeto de punto en Python, simplemente haría lo siguiente:
fuente
Con la licencia ET Geo Wizards, puede probar la función "Polilínea a punto" con la opción "Puntos intermedios" y "Eliminar puntos duplicados" (opcional): http://www.ian-ko.com/ET_GeoWizards/UserGuide/convertPl2Pnt. htm
Puede implementar ET Geo Wizards de esta manera:
Para conocer las variables de entrada de la función ET, consulte: http://www.ian-ko.com/ET_GeoWizards/UserGuide/Scripting/scripting_PolylineToPoint.htm
fuente