Tengo una capa vectorial no georreferenciada que necesito ser georreferenciada. Con las capas ráster, la tarea es fácil y directa, pero no tengo idea de qué debo hacer con mi capa vectorial. Tengo algunos puntos de control con coordenadas conocidas que deberían proporcionar alguna base para la transformación. Entonces, digamos que sé que los puntos con id-s de 1, 2 y 3 deberían tener las coordenadas de x1, y1; x2, y2; x3, y3. Puede haber alguna rotación y transformación de escala además del cambio simple.
¿Algunas ideas?
Respuestas:
Para georreferenciar una capa vectorial, pruebe el complemento qgsAffine.
Hay más información en ¿Dónde encontrar qgsaffine en el menú?
fuente
Dado el hecho de que tiene algunos puntos de control, debería poder utilizar una transformación afín para cambiar sus datos vectoriales. Echa un vistazo a esta receta . El proceso es un proceso de dos partes:
Si coloca sus puntos de control en un archivo CSV (old_x, old_y, new_x, new_y), puede cortar y pegar los comandos R del enlace para resolver la parte de coeficientes.
fuente
Recomiendo el complemento Vector Bender para QGIS. Lo probé y funciona bien y es fácil de usar. Dependiendo de la cantidad de puntos que defina, puede hacer lo siguiente:
Aquí encontrará un breve video y le aconsejo que lea la ayuda de Vector Bender una vez que haya instalado el complemento.
fuente
Con el lanzamiento de GDAL 1.10 esto ahora es posible.
Se realiza realizando una transformación básica en ogr2ogr y suministrando los puntos de control en la etiqueta -gcp. http://www.gdal.org/ogr2ogr.html
Para obtener una guía, consulte: http://gisforthought.com/georeferencing-vector-data-using-qgis-and-ogr2ogr/
fuente
Solo tenía que hacer eso, y terminé haciendo esto:
gcps.points
archivoEl siguiente script calcula la matriz de transformación afín utilizando los GCP guardados:
fuente
Vea mi respuesta a Ajustar dos polígonos juntos y pruebe el openjump gratis.
Creo que su transformación afín es mucho más fácil de usar que el complemento afín qgis.
fuente
A continuación de mis comentarios sobre la respuesta de Rayner, GRASS v.transform, que se puede ejecutar desde la caja de herramientas Sextante, se puede utilizar para calcular los parámetros de transformación y aplicarlos a una capa vectorial para realizar una transformación afín. Se requiere un archivo de texto que contenga puntos de control, en el formato que se muestra aquí .
Es muy fácil de usar y funciona bien.
fuente
Varias de las respuestas proporcionadas aquí ya no son opciones para QGIS 3, y / o solo permiten transformaciones lineales del archivo vectorial que se georreferencia. Esto puede responder a la pregunta del OP, pero otros que miran esta publicación pueden querer otras opciones de transformación para georreferenciar archivos vectoriales.
Problemas con algunas de las soluciones para archivos vectoriales de georreferenciación:
El complemento qgsAffine solo permite transformaciones lineales. Esto significa que puede escalar, rotar y mover el archivo vectorial, pero no puede doblar ni deformar el archivo vectorial. El Georeferenciador para archivos ráster ofrece más opciones y permite una variedad de transformaciones, incluyendo polinomios de segundo orden y splines de placa delgada. Además, no parece que el complemento qgsAffine todavía esté disponible en QGIS 3.
El módulo GRASS v.transform es similar al complemento qgsAffine y solo permite transformaciones lineales.
Parece que el complemento Vector Bender era una buena opción, pero no se ha portado completamente a QGIS 3, por lo que actualmente no es una opción. Parece que ya no se mantiene.
Usar ogr2ogr, como se sugiere en la publicación de HeikkiVesanto, es una buena opción. Le permite a uno usar GCP (puntos de control de tierra) y especificar qué tipo de transformación le gustaría. No pude encontrar instrucciones en ninguna parte sobre cómo hacer esto, así que he incluido algunas instrucciones a continuación:
Genere un conjunto de pares GCP, siendo un punto la ubicación original en el archivo vectorial no referenciado y el otro punto la ubicación deseada en su espacio de trabajo georreferenciado.
Hay una variedad de formas de generar GCP. Usé el complemento Georeferencer GDAL en QGIS. Está disponible en el menú desplegable Ráster, después de que se instala utilizando el Administrador de complementos. Solo funciona en archivos ráster, por lo que primero debe convertir el archivo vectorial en un archivo ráster. Esto es posible con "Caja de herramientas de procesamiento: GDAL: Conversión de vectores: Rasterizar (vector a ráster)". Establezca la resolución en un número que aún le permita ver las características del archivo vectorial.
El Georeferenciador tiene una interfaz agradable que le permite agregar muchos puntos GCP. También puede probar diferentes transformaciones y ver cuál funciona mejor. Y puede ver si alguno de sus puntos de GCP es probable que esté en error, observando sus residuos. Una vez que haya agregado todos sus puntos GCP y haya comprobado que le gusta la salida, puede exportar el archivo GCP desde el Georeferencer para usarlo para georreferenciar el archivo vectorial original.
El archivo GCP debe cambiarse para tener el siguiente formato. Puede agregar tantos puntos de GCP como desee, cada uno de ellos procede de un -gcp y se separa por un espacio. Ejecuté esto con más de 800 puntos GCP, y funcionó muy bien.
Hay una variedad de formas en que uno podría cambiar los puntos GCP en el formato correcto. Los importé a Excel como un archivo csv y creé una columna para generar el formato correcto para cada punto. Luego pegué esa columna en TextEdit y reemplacé los extremos de la línea con espacios.
El archivo vectorial que desea georreferenciar debe importarse a su espacio de trabajo utilizando el mismo SRS que desea para el archivo georreferenciado final, que debe ser el mismo SRS que su espacio de trabajo. Podría haber un largo camino desde donde debería estar, si originalmente utilizó un SRS diferente, pero la transformación lo moverá a la ubicación correcta.
Acceda a ogr2ogr a través de "Processing Toolbox: GDAL: Conversión de vectores: Convertir formato". Esto le permite seleccionar el archivo vectorial que desea georreferenciar y su archivo de salida. En el campo "Opciones de creación adicionales", agregue un comando que especifique qué tipo de transformación desea, y luego la línea con todos sus puntos GCP.
Los comandos para diferentes tipos de transformación incluyen:
Por ejemplo, el código agregado en el campo "Opciones de creación adicionales" podría verse así:
fuente