3 votos

Líneas CSV a Polilínea con OGR

No estoy seguro de poder completar esta operación en un solo paso - pero alguien podría ayudarme.

Mi archivo de entrada es un archivo csv con PointID , x , y , z y LineID columnas. Estoy buscando combinar todas las filas con el mismo LineID en Polyline25D usando ogr2ogr con una fuente de datos virtual (archivo VRT).

Puedo obtener una salida MultiPoint, pero no puedo averiguar cómo combinar varias filas (si es que es posible).

Alternativamente, podría alguien ayudarme con un python script para combinar el x , y , z campos en WKT?

Ejemplo de entrada :

pointid y   x   z   lineid
1   320589.01   1815258.73  423.78  1
2   320573.49   1815256.71  425.04  1
3   320557.42   1815252.40  425.86  1
4   320541.64   1815248.71  426.19  1
5   320529.37   1815247.01  427.18  1
1   320588.78   1815259.35  423.43  2
2   320573.06   1815257.09  424.66  2
3   320557.00   1815253.09  425.06  2
4   320541.79   1815249.54  425.78  2
5   320529.14   1815247.74  426.22  2
6   320516.78   1815245.02  426.84  2
1   320588.62   1815260.10  423.44  3
2   320572.59   1815258.42  424.65  3
3   320556.21   1815255.29  425.13  3
4   320540.73   1815252.19  425.80  3
5   320529.02   1815248.37  426.20  3

0voto

Nikola Puntos 21

A partir de GDAL 2.1, es posible especificar directamente los nombres potenciales de las columnas que pueden contener X/longitud e Y/latitud con la opción abierta X_POSSIBLE_NAMES e Y_POSSIBLE_NAMES. (Fuente: http://www.gdal.org/drv_csv.html )

Es posible realizar esta tarea con la siguiente línea ogr2ogr comando ( GDAL >= 2.1 ):

ogr2ogr multilinestringzs.shp pointzs.csv -dialect SQLite -sql "SELECT lineid, ST_Multi(MakeLine(geom)) AS geometry FROM (SELECT lineid, pointid, MakePointZ(x,y,z) AS geom FROM pointzs ORDER BY lineid, pointid) GROUP BY lineid" -oo X_POSSIBLE_NAMES=x -oo Y_POSSIBLE_NAMES=y -oo Z_POSSIBLE_NAMES=z -oo KEEP_GEOM_COLUMNS=YES

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