¿Recuperando puntos de inicio y fin para cada línea en el archivo de forma de línea en ArcGIS Desktop o QGIS?


15

Tengo un archivo de forma vectorial (polilínea) y necesito recuperar los puntos de inicio y finalización (nodos) de cada línea y crear un archivo de forma con estos puntos. Luego necesito agregar a la tabla de atributos de la polilínea el punto inicial y final de cada línea en función de la ID de los puntos.

¿Cómo podría hacer eso de una manera simple en ArcGIS Desktop o QGIS?


2
En ArcGIS, si tiene una licencia Avanzada, puede usar la Caja de herramientas de administración de datos-> Conjunto de herramientas de características-> Herramienta Vértices de características a puntos con la opción Ambos extremos. Todos los atributos de la línea se conservan. Sin embargo, tendría que agregar un campo a su clase de entidad de línea original y calcular la ID de entidad en su línea para mantener ese valor en los puntos. Si tiene otro campo de valor único en sus líneas, puede unir y calcular el FID después de ejecutar la herramienta. La opción final implicaría hacer una Unión espacial con la opción Uno a muchos y eliminar copias con atributos incorrectos.
Richard Fairhurst

¿Responde esto a tu pregunta? "¿Cómo recupero las coordenadas de inicio y fin con Python / arcpy?" gis.stackexchange.com/q/31684/8104
Aaron

Intenté un enfoque similar pero me perdí en el camino. Intentaré rehacerlo. Lo mejor será crear una macro que haga todo este trabajo juntos para que cualquiera pueda hacer el mismo procedimiento después. ¡Salud!
user51651

Método @RichardFairhurst, que probablemente también debería sugerirse como respuesta. Así es como lo he hecho históricamente
bwp8nt

Respuestas:


8

Esa es una frase para GDAL. Este comando crea un archivo shape desde los nodos de inicio con atributos seleccionados:

ogr2ogr -f "ESRI Shapefile" -dialect sqlite output.shp -sql "select ST_StartPoint(geometry), attribute_1, attribute_2, attribute_3 from input" input.shp

Use ST_EndPoint para puntos finales.


¡Muchas gracias! Esto probablemente hizo el trabajo, pero estaba buscando algo más simple (visual) para que otras personas sin habilidades de programación pudieran realizar la tarea.
user51651

¿Dónde escribes ese comando?
blue_chip

A la línea de comando. En Linux usa el shell normal. En Windows use la ventana de comandos pero tenga cuidado de que su entorno tenga las rutas correctas. Osgeo4w shell hace eso automáticamente.
usuario30184


6

Solución QGIS: es posible extraer los nodos de inicio y finalización (coordenadas) de un archivo vectorial de línea, simplemente usando xat y yat en la calculadora de campo, con los respectivos índices 0 (inicio) y -1 (final).

xat(0)    
yat(0)
xat(-1)
yat(-1)

5

Para una solución ArcGIS, he creado una herramienta de geoprocesamiento que crea puntos en las líneas.

Puede descargarlo y ver el código aquí: Crear puntos en líneas

Para el Tipo, tendrá que elegir PUNTOS DE INICIO / FINAL. Esto creará una nueva clase de entidad de puntos que contiene los puntos de inicio y finalización para cada polilínea.

La clase de entidad de punto de salida también tendrá un campo llamado LineOID, que registra el OID de la polilínea a partir de la cual se creó. De esa manera, puede volver a unir los datos de sus atributos.

Aquí hay una captura de pantalla de cómo establecería los parámetros:

ingrese la descripción de la imagen aquí


¡Esto es genial Ian! Lo descargaré, lo probaré y te daré feedback lo antes posible. ¡Creo que esta herramienta será útil para lo que necesito y ayudará a automatizar mejor el proceso! ¡Gracias!
user51651

Hola Ian, idk por qué, pero no puedo conseguir su herramienta de trabajo en ArcGIS 10.0 o 10.1 ... he añadido a la caja de herramientas, pero doesn `t almuerzo ... = /
user51651

@ user51651 ¿Recibe un mensaje de error? No funcionará con 10.0, pero debería funcionar con 10.1 y superior. Si ingresa al menú Geoprocesamiento, y luego Resultados. ¿Hay algún mensaje allí?
ianbroad

3

para agregar la coordenada de los puntos finales en la tabla de atributos, usando ArcGIS, puede usar la calculadora de campo (no es necesario crear geometrías). Haga clic en el nombre del campo, la calculadora de campo, luego use la sintaxis de Python con las líneas individuales a continuación (ejemplo con la coordenada X):

!shape.firstPoint.X!

!shape.lastPoint.X!

tenga en cuenta que todo está dentro de los !!


Esta es una muy buena respuesta, no me di cuenta de que esto era posible. Una instantánea en Field Calculator podría ayudar a personas menos familiarizadas con la tarea. ¿Supongo que también podrías hacer esto con valores M?
bwp8nt

2

En QGIS use la herramienta Extraer vértices específicos . Establezca los índices de Vértice en 0 para obtener puntos de inicio y -1 para obtener puntos finales o 0, -1 para obtener ambos.

QGIS Extraer vértices específicos

Tenga en cuenta la descripción:

El primer vértice corresponde a un índice de 0, el segundo vértice tiene un índice de 1, etc. Los índices negativos se pueden usar para encontrar vértices al final de la geometría, por ejemplo, un índice de -1 corresponde al último vértice, - 2 corresponde al segundo último vértice, etc.


1

En ArcGIS, si tiene una licencia Avanzada, puede usar la Caja de herramientas de administración de datos-> Conjunto de herramientas de características-> Herramienta Vértices de características a puntos con la opción Ambos extremos. Todos los atributos de la línea se conservan. Sin embargo, tendría que agregar un campo a su clase de entidad de línea original y calcular la ID de entidad en su línea para mantener ese valor en los puntos. Si tiene otro campo de valor único en sus líneas, puede unir y calcular el FID después de ejecutar la herramienta. La opción final implicaría hacer una Unión espacial con la opción Uno a muchos y eliminar copias con atributos incorrectos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.