[Gfoss] [Spatialite] caricare shapefile in batch

a.furieri a lqt.it a.furieri a lqt.it
Ven 2 Ott 2015 14:08:59 CEST


On Fri, 2 Oct 2015 13:39:15 +0200, Amedeo Fadini wrote:
> Salve a tutti,
>
> ma qual'รจ il modo migliore per caricare una serie di shapefile in un
> db spatialite? finora me la sono cavata egregiamente con ogr2ogr da
> script Bash o Dos
>

ottima scelta: ogr2ogr offre un supporto veramente buono per
spatialite, e tra l'altro supporta pure la modalita' append.

ottima anche la scelta di lavorare direttamente da shell
lasciando completamente perdere la GUI; quando devi fare
import massivi e che coinvolgono tanti files diversi usare
una interfaccia grafica e' uno degli approcci piu' irrazionali
e meno produttivi che la mente umana possa concepire.


> ho provato ad utilizzarlo anche all'interno di
> pyQgis per un plugin che porto avanti nei ritagli di tempo [0], ma
> dovrebbe esserci qualcosa di meglio... pyspatialite? Qspatialite?
>

certamente esiste qualcosa di meglio (piu' flessibile, piu'
efficiente, meglio controllabile): lascia perdere pyspatialite
e/o qspatialite.

fatti piuttosto un bello script SQL, magari anche bello polposo
da un migliaio di righe (e pure oltre, se serve).
spatialite ti mette direttamente a disposizione tutte le funzioni
SQL che ti servono per accedere ai tuoi SHP esterni (e magari
pure per tirare dentro qualche file csv, foglio excel etc):
https://www.gaia-gis.it/fossil/libspatialite/wiki?name=4.2.1+functions#2

per scrivere uno sql script ti basta "vi" (o qualsiasi altro
text editor a tua scelta): e per lanciarlo in esecuzione ti
basta semplicemente la shell dei comandi passando il tuo
script sullo standard input di spatialite (CLI)

# spatialite miodb.sqlite <mio-scropt.sql

se usi saggiamente le transazioni puoi arrivare ad ottenere
qualcosa che ha la medesima robustezza di un carro armato.

magari all'inizio ti potra' sembrare un modo stravagante di
lavorare; ma vedrai che quando ci avrai preso la mano finarai
per scoprire anche tu (come moltissimi altri power-users) che
ricorrerre massivamente agli sql scripts lanciati in batch e'
il modo piu' elegantemente efficiente e produttivo per sfruttare
fino in fondo tutta la potenza di cui un DBMS e' capace.

ciao Sandro


Maggiori informazioni sulla lista Gfoss