¿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?

usuario51651
fuente
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.

usuario30184
fuente
¡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)
te fuiste
fuente
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í

ianbroad
fuente
¡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 !!

radouxju
fuente
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.

Karol Daniluk
fuente
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.

Richard Fairhurst
fuente