5 votos

Convertir gráficos en vectores en QGIS

Me pregunto si hay una manera de convertir un gráfico producido a partir de la simbología en QGIS a una capa vectorial (es decir, shapefile). Tengo una capa de puntos con la dirección del rumbo en la tabla de atributos. Siguiendo la respuesta de Cómo mostrar una flecha que apunta a un rumbo específico en QGIS He podido hacer un gráfico de líneas que representa la dirección de la mirada a partir de una colección de fotos. Me gustaría que el gráfico de líneas se convirtiera en una capa vectorial, para poder realizar algún análisis espacial.

¿Alguna idea?

graphic representations

Gracias....

0 votos

Si he entendido bien, sólo te interesan las líneas vectoriales. ¿Has considerado crearlas directamente sin pasar por los problemas de la conversión ráster-vector?

0 votos

Me gustaría hacerlo, pero no estoy seguro de que exista una herramienta para hacerlo. Soy consciente de que se puede hacer con Python, pero esperaba una herramienta, plugin, proceso para hacer las líneas. ¿Alguna idea?

0 votos

Estoy de acuerdo con @underdark en que tal vez sea mejor generar un vector directamente, en lugar de intentar convertir desde los gráficos. ¿Has echado un vistazo a la herramienta m.cogo de GRASS? Puedes ejecutarla desde QGIS a través de processing. Sospecho que podrías usarla para generar un punto en el rumbo apropiado, y luego convertir los puntos en líneas.

1voto

s1d Puntos 91

No es necesario crear primero y luego intentar convertir los gráficos de líneas. El enfoque que utilicé para una tarea similar fue crear directamente líneas a partir de los puntos y el rumbo (utilicé acimut y distancia constante) en QGIS.

Subpasos:

  1. para cada punto obtener coordenadas x2 e y2 del punto final de la línea - desde el punto (inicial) X e Y, el acimut y su distancia preferida. Eso se puede hacer con calculadora de campo utilizando la expresión o si se necesita algo más avanzado editor de funciones ficha.

En mi caso la expresión fue:

x2 = $x + "distance" * sin(("azimuth" + 90)* $pi/180)
y2 = $y + "distance" * cos(("azimuth" + 90)* $pi/180)
  1. con la calculadora de campo de nuevo crear una columna llamada WKT que contiene la siguiente cadena: LINESTRING (x1 y1,x2 y2)

Siguiendo lo escrito anteriormente debería ser así:

WKT = 'LINESTRING (' ||  to_string($x) || ' ' || to_string($y) || ',' || to_string("x2") || ' ' || to_string("y2") || ')'

Por x1 y1 x2 y2 se entienden las coordenadas de inicio y fin de la línea. Guarde como csv y añada el archivo guardado al mapa. QGIS debería reconocer la columna WKT como columna de geometría de línea y crear líneas para cada punto de origen. Después de que usted puede guardar como shapefile línea o en muchos otros formatos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X