Importar CSV como polígono en QGIS

Oct 31 2020

Tengo un archivo CSV con las coordenadas de los vértices de mis polígonos (en la imagen corresponden a "izquierda", "derecha", "arriba", "abajo"). En realidad es una cuadrícula de polígonos. ¿Cómo puedo importar el archivo en QGIS como polígonos y no como puntos?

Respuestas

4 Houska Oct 31 2020 at 18:16

Supongo que desea los rectángulos con diagonal (izquierda, arriba) y (derecha, abajo) como los polígonos requeridos.

Puede importar el CSV como puntos, digamos x = izquierda , y = arriba , y luego usar el procesamiento (o incluso expresiones) que acceden a la derecha y la parte inferior como atributos y se transforman en los rectángulos deseados.

Sin embargo, será más rápido preprocesar dentro de Excel (o cualquiera que sea su programa de hoja de cálculo) al combinar los atributos en una cadena de polígono WKT, que especifica sin ambigüedades los polígonos en un formato estándar.

En la celda G2 (o la fila 2 de una nueva columna si se usa G), colóquela ="POLYGON(("&B2&" "&C2&", "&D2&" "&C2&", "&D2&" "&E2&", "&B2&" "&E2&", "&B2&" "&C2&"))"y cópiela. Genera una cadena de polígono WKT que gira alrededor de los puntos en el sentido de las agujas del reloj. Luego puede importar el CSV tomando la geometría de esta columna y QGIS lo interpretará como un polígono (rectángulo) para cada línea.

6 LuisPerez Oct 31 2020 at 20:04

Puedes hacerlo con expresiones, incluso cargando tu archivo excel, sin convertir a .csv, carga tu archivo excel como si fuera una capa vectorial

En la caja de herramientas de proceso > geometría vectorial > geometría por expresión .

La expresión, aunque parece un poco larga, es simplemente escribir un polígono wkt usando los campos, luego lo convierte a geometría.

Simplemente ejecuta esta expresión

 geom_from_wkt( concat('POLYGON((',to_string("left")+' '+to_string("top")+',',to_string("right")+' '+to_string("top")+', ', to_string("right")+' '+to_string("bottom")+',', to_string("left")+' '+to_string("bottom"),'))

Obtendrá un resultado como este: