[QGIS-it-user] conversione file "atipico"!

Ciao a tutti,
ho un problema di conversione di formati.

Ho delle polilinee 3d, suddivise in 17 cartelle; ognuna così composta:

  • file csv con tutti i dati per la parte alfanumerica
    ​, tra cui un​
    campo chiamato


​​
“ID_file_txt” in cui​c’è scritto
un numero intero progressivo​.

  • cartella “txt” contenente:
  • file txt, uno per polilinea, nominati con un numero, tipo “1.txt”, “2.txt”, ecc…

Questi file sono così strutturati:

1,646423.039800000,5124623.892100001,2471.5797394464962

progressivo,coordinata est,coordinata nord,quota

Ogni riga corrisponde ad un vertice della polilinea.
Non ha header.

Il collegamento tra la parte alfanumerica e vettoriale è dato dal numero progressivo nel campo

“ID_file_txt” del csv ed il nome del file txt.

Come li convergo ad un formato più “comune”?
Magari buttando giù uno script python, ma ci sono altri sistemi?

Saluti a tutti,
Daniele

···

Daniele Bonaposta,
Cartografia - G.I.S.

via Don Minzoni 13a
40121 - Bologna
mobile: +39.338.3377044
e-mail: daniele.bonaposta@gmail.com

Linkedin: http://www.linkedin.com/pub/daniele-bonaposta/26/487/872


Sparo...

Una soluzione potrebbe essere quella di convertire le coordinate contenute
in ogni singolo file TXT in WKT [1], ad esempio con un piccolo script in
Python o ricercando qualcosa di già pronto, e inserire la stringa così
ottenuta all'interno del CSV.

Dopodiché, la stringa WKT può essere convertita in vettoriale all'interno di
qualsiasi DB spaziale.

Ciao,
Mattia

[1] https://it.wikipedia.org/wiki/Well-Known_Text

--
View this message in context: http://osgeo-org.1560.x6.nabble.com/conversione-file-atipico-tp5324391p5324462.html
Sent from the QGIS Italian User mailing list archive at Nabble.com.

Ciao Daniele,
la risposta alle domande o è "42" o è GDAL/OGR :slight_smile:

Daniele Bonaposta wrote

Ciao a tutti,
ho un problema di conversione di formati.

Ho delle polilinee 3d, suddivise in 17 cartelle; ognuna così composta:
- file csv con tutti i dati per la parte alfanumerica
​, tra cui un​
campo chiamato

  ​
​​
"ID_file_txt" in cui
​c'è scritto
un numero intero progressivo​.
- cartella "txt" contenente:

- file txt, uno per polilinea, nominati con un numero, tipo "1.txt",
"2.txt", ecc..

  Questi file sono così strutturati:

  1,646423.039800000,5124623.892100001,2471.5797394464962

  progressivo,coordinata est,coordinata nord,quota

  Ogni riga corrisponde ad un vertice della polilinea.
  Non ha header.

Il collegamento tra la parte alfanumerica e vettoriale è dato dal numero
progressivo nel campo

"ID_file_txt" del csv ed il nome del file txt.

A parte gli scherzi, ti do solo un piccolo input. Se fai uno script (in bash
è cosa rapida), in cui fai il merge dei file txt, e poi aggiungi una riga di
intestazione, ha già un formato spaziale "standard". Grazie alla magica
GDAL/OGR.

Se ad esempio hai un file di merge come questo (l'ho chiamato input.csv):

way_id,x,y,z
1,2,49,10
1,3,50,10
2,-2,49,5
2,-3,50,5
3,2,40,30
3,3,50,30
3,3,52,30

Se lo leggi con ogrinfo:

ogrinfo input.csv -dialect SQLite -sql "SELECT way_id,
MakeLine(MakePointZ(CAST(x AS float),CAST(y AS float),CAST(z AS float)))
FROM input GROUP BY way_id"

Ottieni:

Feature Count: 3
Extent: (-3.000000, 40.000000) - (3.000000, 52.000000)
Geometry Column = MakeLine(MakePointZ(CAST(x AS float),CAST(y AS
float),CAST(z AS float)))
way_id: String (0.0)
OGRFeature(SELECT):0
  way_id (String) = 1
  LINESTRING Z (2 49 10,3 50 10)

OGRFeature(SELECT):1
  way_id (String) = 2
  LINESTRING Z (-2 49 5,-3 50 5)

OGRFeature(SELECT):2
  way_id (String) = 3
  LINESTRING Z (2 40 30,3 50 30,3 52 30)

Viene mantenuta la info 3D, come vedi da "LINESTRING Z".

E quindi lo puoi anche convertire con ogr2ogr in qualsiasi formato. Questo
il caso di default:

ogr2ogr -s_srs EPSG:4326 -t_srs EPSG:4326 output.shp input.csv -dialect
SQLite -sql "SELECT way_id, MakeLine(MakePointZ(CAST(x AS float),CAST(y AS
float),CAST(z AS float))) FROM input GROUP BY way_id"

Saluti

--
View this message in context: http://osgeo-org.1560.x6.nabble.com/conversione-file-atipico-tp5324391p5324672.html
Sent from the QGIS Italian User mailing list archive at Nabble.com.