5 votos

Trazar líneas desde una polilínea en QGIS

Tengo un archivo con muchos polilíneas que me decodifica con polilínea decodificar en python. El resultado fue un csv con este formato:

[(-23.56632, -46.68435), (-23.56629, -46.68428), (-23.56589, -46.68346), (-23.56307, -46.6786), (-23.56308, -46.67861)], [(-23.54487, -46.66172), (-23.54485, -46.66192), (-23.54464, -46.66237), (-23.54461, -46.66244)], ...]

Ahora quiero abrir esta en QGIS para ver las muchas rutas que tengo pero no sé cómo hacerlo.

He tratado de "Agregar delimitador de texto" > WKT pero todavía muestra el mismo error:

La capa no es válido: la capa en el archivo:///C:/Users/... no es una capa válida y no se pueden agregar al mapa

Entonces traté de cambiar mi lat lon aparecen como este

enter image description here

enlace

pero me sigue apareciendo el mismo error. ¿Qué puedo hacer?

2voto

Ilya Ryzhenkov Puntos 5731

Aquí hay un poco de secuencia de comandos de python, que convierte a tu lista de líneas con coordenadas touples en un importables wkt formato:

import csv
from osgeo import ogr

polylines = [[(-23.56632, -46.68435), (-23.56629, -46.68428), (-23.56589, -46.68346), (-23.56307, -46.6786), (-23.56308, -46.67861)], [(-23.54487, -46.66172), (-23.54485, -46.66192), (-23.54464, -46.66237), (-23.54461, -46.66244)]]

with open('poly.csv', 'w') as csvfile:
    fieldnames = ['wkt']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames,delimiter='',escapechar=' ',quoting=csv.QUOTE_NONE)
    writer.writeheader()
    for line in polylines:
        linestring = ogr.Geometry(ogr.wkbLineString)
        for point in line:
            linestring.AddPoint(point[0], point[1])
    writer.writerow({'wkt': linestring.ExportToWkt()})

Si desea convertir en multilinestrings por favor, eche un vistazo a la osgeo documentación.

Generar el archivo csv debe ser importables en qgis como archivo de texto.

En este caso, la siguiente sería la outout de generar el archivo csv:

wkt
LINESTRING  (-23.56632  -46.68435  0,-23.56629  -46.68428  0,-23.56589  -46.68346  0,-23.56307  -46.6786  0,-23.56308  -46.67861  0)
LINESTRING  (-23.54487  -46.66172  0,-23.54485  -46.66192  0,-23.54464  -46.66237  0,-23.54461  -46.66244  0)

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