[Gfoss] importare più shapefile in db spatialite

Salve a tutti,
vorrei importare, in un db spatialite, più shapefile contemporaneamente;
ho fatto alcune ricerche nel web e l'unica soluzione trovata è quella
spiegata da Furieri qui [0], ho seguito la procedura ma con esito negativo;

uso spatialite_gui 2.0.0 devel
spatialite 4.3.0a
sqlite 3.8.11.1
su win 10 64 bit

procedura usata:

creo script sql:
SELECT InitSpatialMetadata(1);
SELECT ImportSHP('C:\Users\Salvatore\Desktop\wrf23032\retic',
'retic','CP1252', 23032);
SELECT ImportSHP('C:\Users\Salvatore\Desktop\wrf23032\reg', 'reg','CP1252',
23032);

avvio shell OSGeo4W e digito:
SET SPATIALITE_SECURITY=relaxed

poi

spatialite_gui db_toto_2.sqlite mysqlscript.sql

risultato:
si avvia correttamente spatialite_gui con il db, ma non importa nulla.

dove sbaglio?

saluti

[0]
https://groups.google.com/forum/#!msg/spatialite-users/kDjizwCRFd4/Iq3ZrQCHNQAJ

--
*Ing. Salvatore Fiandaca*
*mobile*.:+39 327.493.8955
*m*: *pigrecoinfinito@gmail.com <pigrecoinfinito@gmail.com>*
*C.F*.: FNDSVT71E29Z103G
*P.IVA*: 06597870820
*blog:** https://pigrecoinfinito.wordpress.com/
<https://pigrecoinfinito.wordpress.com/&gt; *

43°51'0.54"N 10°34'27.62"E - EPSG:4326

“Se la conoscenza deve essere aperta a tutti,
perchè mai limitarne l’accesso?”
R. Stallman

Questo documento, allegati inclusi, contiene informazioni di proprietà di
FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario
in relazione alle finalità per le quali è stato ricevuto. E' vietata
qualsiasi forma di riproduzione o divulgazione senza l'esplicito consenso
di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega di
informare tempestivamente il mittente e distruggere la copia in proprio
possesso.

Il 24/05/2017 18:01, Totò Fiandaca ha scritto:

Salve a tutti,
vorrei importare, in un db spatialite, più shapefile contemporaneamente;
ho fatto alcune ricerche nel web e l'unica soluzione trovata è quella

Perché non con Processing?
Saluti.

--
Paolo Cavallini - www.faunalia.eu
QGIS & PostGIS courses: http://www.faunalia.eu/training.html
https://www.google.com/trends/explore?date=all&geo=IT&q=qgis,arcgis

Il giorno 24 maggio 2017 18:03, Paolo Cavallini <cavallini@faunalia.it> ha
scritto:

Perché non con Processing?

​indicazione utile ma insufficiente per me.

ho usato parola chiave import nel processing e trovo solo import verso
PostGIS!!!

potresti, per favore, essere più preciso!

saluti​

--
*Ing. Salvatore Fiandaca*
*mobile*.:+39 327.493.8955
*m*: *pigrecoinfinito@gmail.com <pigrecoinfinito@gmail.com>*
*C.F*.: FNDSVT71E29Z103G
*P.IVA*: 06597870820
*blog:** https://pigrecoinfinito.wordpress.com/
<https://pigrecoinfinito.wordpress.com/&gt; *

43°51'0.54"N 10°34'27.62"E - EPSG:4326

“Se la conoscenza deve essere aperta a tutti,
perchè mai limitarne l’accesso?”
R. Stallman

Questo documento, allegati inclusi, contiene informazioni di proprietà di
FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario
in relazione alle finalità per le quali è stato ricevuto. E' vietata
qualsiasi forma di riproduzione o divulgazione senza l'esplicito consenso
di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega di
informare tempestivamente il mittente e distruggere la copia in proprio
possesso.

Il 24/05/2017 18:18, Totò Fiandaca ha scritto:

Il giorno 24 maggio 2017 18:03, Paolo Cavallini <cavallini@faunalia.it
<mailto:cavallini@faunalia.it>> ha scritto:

    Perché non con Processing?

​indicazione utile ma insufficiente per me.

ho usato parola chiave import nel processing e trovo solo import verso
PostGIS!!!

Hai ragione, non pensavo a SL, in effetti. Ora non posso controllare, ma
ci dovrebbe essere un convertitore generico, no?
Scusa, ma il tempo è tyranno.
Saluti.

--
Paolo Cavallini - www.faunalia.eu
QGIS & PostGIS courses: http://www.faunalia.eu/training.html
https://www.google.com/trends/explore?date=all&geo=IT&q=qgis,arcgis

On Wed, 24 May 2017 18:01:04 +0200, Totò Fiandaca wrote:

Salve a tutti,
vorrei importare, in un db spatialite, più shapefile contemporaneamente;
ho fatto alcune ricerche nel web e l'unica soluzione trovata è quella
spiegata da Furieri qui [0], ho seguito la procedura ma con esito negativo;

uso spatialite_gui 2.0.0 devel
spatialite 4.3.0a
sqlite 3.8.11.1
su win 10 64 bit

procedura usata:

creo script sql:
SELECT InitSpatialMetadata(1);
SELECT ImportSHP('C:\Users\Salvatore\Desktop\wrf23032\retic',
'retic','CP1252', 23032);
SELECT ImportSHP('C:\Users\Salvatore\Desktop\wrf23032\reg', 'reg','CP1252',
23032);

avvio shell OSGeo4W e digito:
SET SPATIALITE_SECURITY=relaxed

poi

spatialite_gui db_toto_2.sqlite mysqlscript.sql

risultato:
si avvia correttamente spatialite_gui con il db, ma non importa nulla.

dove sbaglio?

ciao Toto',

stai facendo un po' di confusione tra ambienti di
shell (riga di comando) e ambienti grafici (GUI).

tanto per iniziare, la variabile di ambiente
SPATIALITE_SECURITY_RELAXED la devi impostare
esplicitamente solo quando usi i tools a riga
di comando direttamente dalla shell.
ma non serve assolutamente a nulla quando usi
spatialite_gui; la GUI e' sempre autorizzata
by default a leggere e scrivere sul filesystem,
e se proprio vuoi abilitare/disabilitare questa
funzionalita' lo devi fare tramite gli appositi
pulsanti della toolbar.

a seguire: la GUI non e' lo strumento migliore
per eseguire uno SQL script.
usa piuttosto uno dei tools command line, che
sono fatti apposte per integrarsi nell'ambiente
di shell. quindi:
- puoi usare direttamente spatialite.exe
- oppure puoi usare sqlite3.exe, ma in questo
   caso devi modificare il tuo SQL script in
   modo tale da caricare per prima cosa il
   modulo di estensione spatialite.
   sostanzialmente, basta aggiungere questa
   riga in testa allo SQL script:
   SELECT load_extension('mod_spatialite'),

ultimo errore: il tuo comando e' il seguente:

spatialite_gui db_toto_2.sqlite mysqlscript.sql

abbiamo gia' visto che e' sbagliato utilizzare
spatialite_gui, casomai dovresti usare spatialite.exe;
ma anche in questo caso stai usando la sintassi
sbagliata.
il path del datatabase-file e' un argomento di
invocazione, ma il path dello script lo devi
passare come redirezione dello standard input;
invece come lo stai passando tu diventa
semplicemente un ulteriore argomento, e viene
semplicemente ignorato.
la sintassi corretta (sia su Windows che su Linux)
e' questa qua:

spatialite db_toto_2.sqlite <mysqlscript.sql

in cui quel segno "minore" davanti al path dello
SQL script serve proprio per ridirigere lo
standard input del processo.
in soldoni: stai semplicemente chiedendo al
comando spatialite.exe di leggere i comandi
SQL da un file (lo script, appunto) invece
che dalla tastiera come normalmente accade;
qundo l'ultimo dei comandi presenti nello
SQL script spatialite.exe terminera'.

ovviamente questo "barbatrucco" non potra' mai
funzionare con un'applicazione GUI, semplicemente
perche' nell'ambiente GUI non esiste proprio il
concetto di uno standard input associato al processo.

ultima osservazione: se proprio ritieni
indispensabile utilizzare la GUI anche per
eseguire gli SQL script lo puoi comunque
fare (anche se non ha molto senso).
se cerchi bene tra i vari pulsanti della
toolbar vedrai che e' presente un pulsantino
"execute SQL script"

ciao Sandro

On 05/24/17 , Totò Fiandaca wrote:

vorrei importare, in un db spatialite, più shapefile contemporaneamente;

#!/bin/bash

SHP=$(ls directory_con_shapefile)

for i in $SHP; do
  ogr2ogr -update -f SQLite -dsco SPATIALITE=YES db.sqlite $i.shp
done

Un saluto,
     Marco

uso molto la gui e grazie al tuo suggerimento ho risolto tutto, funziona
bene.

grazie

Il giorno 24 maggio 2017 20:13, <a.furieri@lqt.it> ha scritto:

On Wed, 24 May 2017 18:01:04 +0200, Totò Fiandaca wrote:

Salve a tutti,
vorrei importare, in un db spatialite, più shapefile contemporaneamente;
ho fatto alcune ricerche nel web e l'unica soluzione trovata è quella
spiegata da Furieri qui [0], ho seguito la procedura ma con esito
negativo;

uso spatialite_gui 2.0.0 devel
spatialite 4.3.0a
sqlite 3.8.11.1
su win 10 64 bit

procedura usata:

creo script sql:
SELECT InitSpatialMetadata(1);
SELECT ImportSHP('C:\Users\Salvatore\Desktop\wrf23032\retic',
'retic','CP1252', 23032);
SELECT ImportSHP('C:\Users\Salvatore\Desktop\wrf23032\reg',
'reg','CP1252',
23032);

avvio shell OSGeo4W e digito:
SET SPATIALITE_SECURITY=relaxed

poi

spatialite_gui db_toto_2.sqlite mysqlscript.sql

risultato:
si avvia correttamente spatialite_gui con il db, ma non importa nulla.

dove sbaglio?

ciao Toto',

stai facendo un po' di confusione tra ambienti di
shell (riga di comando) e ambienti grafici (GUI).

tanto per iniziare, la variabile di ambiente
SPATIALITE_SECURITY_RELAXED la devi impostare
esplicitamente solo quando usi i tools a riga
di comando direttamente dalla shell.
ma non serve assolutamente a nulla quando usi
spatialite_gui; la GUI e' sempre autorizzata
by default a leggere e scrivere sul filesystem,
e se proprio vuoi abilitare/disabilitare questa
funzionalita' lo devi fare tramite gli appositi
pulsanti della toolbar.

a seguire: la GUI non e' lo strumento migliore
per eseguire uno SQL script.
usa piuttosto uno dei tools command line, che
sono fatti apposte per integrarsi nell'ambiente
di shell. quindi:
- puoi usare direttamente spatialite.exe
- oppure puoi usare sqlite3.exe, ma in questo
  caso devi modificare il tuo SQL script in
  modo tale da caricare per prima cosa il
  modulo di estensione spatialite.
  sostanzialmente, basta aggiungere questa
  riga in testa allo SQL script:
  SELECT load_extension('mod_spatialite'),

ultimo errore: il tuo comando e' il seguente:

spatialite_gui db_toto_2.sqlite mysqlscript.sql

abbiamo gia' visto che e' sbagliato utilizzare
spatialite_gui, casomai dovresti usare spatialite.exe;
ma anche in questo caso stai usando la sintassi
sbagliata.
il path del datatabase-file e' un argomento di
invocazione, ma il path dello script lo devi
passare come redirezione dello standard input;
invece come lo stai passando tu diventa
semplicemente un ulteriore argomento, e viene
semplicemente ignorato.
la sintassi corretta (sia su Windows che su Linux)
e' questa qua:

spatialite db_toto_2.sqlite <mysqlscript.sql

in cui quel segno "minore" davanti al path dello
SQL script serve proprio per ridirigere lo
standard input del processo.
in soldoni: stai semplicemente chiedendo al
comando spatialite.exe di leggere i comandi
SQL da un file (lo script, appunto) invece
che dalla tastiera come normalmente accade;
qundo l'ultimo dei comandi presenti nello
SQL script spatialite.exe terminera'.

ovviamente questo "barbatrucco" non potra' mai
funzionare con un'applicazione GUI, semplicemente
perche' nell'ambiente GUI non esiste proprio il
concetto di uno standard input associato al processo.

ultima osservazione: se proprio ritieni
indispensabile utilizzare la GUI anche per
eseguire gli SQL script lo puoi comunque
fare (anche se non ha molto senso).
se cerchi bene tra i vari pulsanti della
toolbar vedrai che e' presente un pulsantino
"execute SQL script"

ciao Sandro

_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni
dell'Associazione GFOSS.it.
808 iscritti al 07/03/2017

--
*Ing. Salvatore Fiandaca*
*mobile*.:+39 327.493.8955
*m*: *pigrecoinfinito@gmail.com <pigrecoinfinito@gmail.com>*
*C.F*.: FNDSVT71E29Z103G
*P.IVA*: 06597870820
*blog:** https://pigrecoinfinito.wordpress.com/
<https://pigrecoinfinito.wordpress.com/&gt; *

43°51'0.54"N 10°34'27.62"E - EPSG:4326

“Se la conoscenza deve essere aperta a tutti,
perchè mai limitarne l’accesso?”
R. Stallman

Questo documento, allegati inclusi, contiene informazioni di proprietà di
FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario
in relazione alle finalità per le quali è stato ricevuto. E' vietata
qualsiasi forma di riproduzione o divulgazione senza l'esplicito consenso
di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega di
informare tempestivamente il mittente e distruggere la copia in proprio
possesso.

grazie per il suggerimento, appena posso provo anche questa via molto
affascinate.

saluti

Il giorno 24 maggio 2017 20:15, Marco Curreli <marcocurreli@tiscali.it> ha
scritto:

On 05/24/17 , Totò Fiandaca wrote:
> vorrei importare, in un db spatialite, più shapefile contemporaneamente;

#!/bin/bash

SHP=$(ls directory_con_shapefile)

for i in $SHP; do
  ogr2ogr -update -f SQLite -dsco SPATIALITE=YES db.sqlite $i.shp
done

Un saluto,
     Marco

_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni
dell'Associazione GFOSS.it.
808 iscritti al 07/03/2017

--
*Ing. Salvatore Fiandaca*
*mobile*.:+39 327.493.8955
*m*: *pigrecoinfinito@gmail.com <pigrecoinfinito@gmail.com>*
*C.F*.: FNDSVT71E29Z103G
*P.IVA*: 06597870820
*blog:** https://pigrecoinfinito.wordpress.com/
<https://pigrecoinfinito.wordpress.com/&gt; *

43°51'0.54"N 10°34'27.62"E - EPSG:4326

“Se la conoscenza deve essere aperta a tutti,
perchè mai limitarne l’accesso?”
R. Stallman

Questo documento, allegati inclusi, contiene informazioni di proprietà di
FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario
in relazione alle finalità per le quali è stato ricevuto. E' vietata
qualsiasi forma di riproduzione o divulgazione senza l'esplicito consenso
di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega di
informare tempestivamente il mittente e distruggere la copia in proprio
possesso.

E si, questa soluzione, con un ciclo "for", mi sembra effettivamente
migliore, perché fa risparmiare righe di codice è quindi tempo.

Saluti
Nino

Il 24 mag 2017 8:30 PM, "Marco Curreli" <marcocurreli@tiscali.it> ha
scritto:

On 05/24/17 , Totò Fiandaca wrote:
> vorrei importare, in un db spatialite, più shapefile contemporaneamente;

#!/bin/bash

SHP=$(ls directory_con_shapefile)

for i in $SHP; do
  ogr2ogr -update -f SQLite -dsco SPATIALITE=YES db.sqlite $i.shp
done

Un saluto,
     Marco

_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni
dell'Associazione GFOSS.it.
808 iscritti al 07/03/2017

Il vantaggio di queta soluzione con gdl/ogr suggerita da Curreli e' che vale anche per caricare su postgis.
Inoltre, se modifichi un po' la chiamata di gdal/ogr puoi anche sfruttarla per fare append sulla medesima tabella.

Ad esempio: se te hai 100 shapwfile che sono il grafo strade tagliato su ogni comune della regione e lo vuoi riportare a un unico shapefile a una unica tabella di spatialite odi postgis.
Basta chiamare il ciclo che ti ha passato Curreli imostandolo perche' faccia "append" sulla medesima tabella e il gioco e' fatto.
(ovviamente gli shp devono avere la stessa struttura, ma lo darei per ovvio e scontato):

A.

Il 24/05/2017 21:14, nino formica ha scritto:

E si, questa soluzione, con un ciclo "for", mi sembra effettivamente
migliore, perché fa risparmiare righe di codice è quindi tempo.

Saluti
Nino

Il 24 mag 2017 8:30 PM, "Marco Curreli" <marcocurreli@tiscali.it> ha
scritto:

On 05/24/17 , Totò Fiandaca wrote:

vorrei importare, in un db spatialite, più shapefile contemporaneamente;

#!/bin/bash

SHP=$(ls directory_con_shapefile)

for i in $SHP; do
   ogr2ogr -update -f SQLite -dsco SPATIALITE=YES db.sqlite $i.shp
done

Un saluto,
      Marco

_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni
dell'Associazione GFOSS.it.
808 iscritti al 07/03/2017

_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
808 iscritti al 07/03/2017

On Wed, 24 May 2017 21:14:03 +0200, nino formica wrote:

E si, questa soluzione, con un ciclo "for", mi sembra effettivamente
migliore, perché fa risparmiare righe di codice è quindi tempo.

attenzione: quella sintassi la potete usare solo
se lavorate su Linux.
Toto' invece ci diceva nel suo post iniziale che
stava cercando una soluzione per Win10 64 bit.

probabilmente anche il linguaggio di scripting della
shell di casa Microsoft consente di fare qualcosa di
simile (non so bene, non l'ho mai usato personalmente),
ma la sintassi sara' certamente del tutto diversa
da quella implementata dalla bash.

una lettura consigliata per chi volesse approfondire:
https://news.ycombinator.com/item?id=11887574

ciao Sandro

Qui trovi una sintassi per usare gdal in u ciclo FOR su una console di windows.

https://trac.osgeo.org/gdal/wiki/BatchCreationIndexesForShapefilesOnDOS

A.

Il 24/05/2017 22:00, a.furieri@lqt.it ha scritto:

On Wed, 24 May 2017 21:14:03 +0200, nino formica wrote:

E si, questa soluzione, con un ciclo "for", mi sembra effettivamente
migliore, perché fa risparmiare righe di codice è quindi tempo.

attenzione: quella sintassi la potete usare solo
se lavorate su Linux.
Toto' invece ci diceva nel suo post iniziale che
stava cercando una soluzione per Win10 64 bit.

probabilmente anche il linguaggio di scripting della
shell di casa Microsoft consente di fare qualcosa di
simile (non so bene, non l'ho mai usato personalmente),
ma la sintassi sara' certamente del tutto diversa
da quella implementata dalla bash.

una lettura consigliata per chi volesse approfondire:
https://news.ycombinator.com/item?id=11887574

ciao Sandro

_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
808 iscritti al 07/03/2017

Si certo bisogna tradurre come "batch" DOS.
Ma volendo, so che ormai dalla scorsa estate c'è la possibilità di
installare la shell bash anche su Win 10. È un'altra possibilità.

Saluti
Nino

Il 24 mag 2017 10:03 PM, "aperi2007" <aperi2007@gmail.com> ha scritto:

Qui trovi una sintassi per usare gdal in u ciclo FOR su una console di
windows.

https://trac.osgeo.org/gdal/wiki/BatchCreationIndexesForShapefilesOnDOS

A.

Il 24/05/2017 22:00, a.furieri@lqt.it ha scritto:

On Wed, 24 May 2017 21:14:03 +0200, nino formica wrote:

E si, questa soluzione, con un ciclo "for", mi sembra effettivamente
migliore, perché fa risparmiare righe di codice è quindi tempo.

attenzione: quella sintassi la potete usare solo
se lavorate su Linux.
Toto' invece ci diceva nel suo post iniziale che
stava cercando una soluzione per Win10 64 bit.

probabilmente anche il linguaggio di scripting della
shell di casa Microsoft consente di fare qualcosa di
simile (non so bene, non l'ho mai usato personalmente),
ma la sintassi sara' certamente del tutto diversa
da quella implementata dalla bash.

una lettura consigliata per chi volesse approfondire:
https://news.ycombinator.com/item?id=11887574

ciao Sandro

_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni
dell'Associazione GFOSS.it.
808 iscritti al 07/03/2017

_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni
dell'Associazione GFOSS.it.
808 iscritti al 07/03/2017

On 05/24/17 , a.furieri@lqt.it wrote:

attenzione: quella sintassi la potete usare solo
se lavorate su Linux.

Io la uso in ufficio sotto windows col terminale di MSYS (fornito
assieme a qgis e grass).

Continua ad approfittare della vostra cortesia,
ho avviato MSYS e incollato:

#!/bin/bash

SHP=$(ls C:\\Users\\Salvatore\\Desktop\\fedele\\catastali_shp)

for i in $SHP; do
  ogr2ogr -update -f SQLite -dsco SPATIALITE=YES
C:\\Users\\Salvatore\\Desktop\\db_1.sqlite $i.shp
done

ma mi segnale questo errore:
FAILURE:
Unable to open datasource `acque.shp.shp' with the following drivers.

per tutti i file presenti nella cartella 'catastali_shp'

cosa sbaglio?

grazie

Il giorno 24 maggio 2017 22:40, Marco Curreli <marcocurreli@tiscali.it> ha
scritto:

On 05/24/17 , a.furieri@lqt.it wrote:
>
> attenzione: quella sintassi la potete usare solo
> se lavorate su Linux.

Io la uso in ufficio sotto windows col terminale di MSYS (fornito
assieme a qgis e grass).

_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni
dell'Associazione GFOSS.it.
808 iscritti al 07/03/2017

--
*Ing. Salvatore Fiandaca*
*mobile*.:+39 327.493.8955
*m*: *pigrecoinfinito@gmail.com <pigrecoinfinito@gmail.com>*
*C.F*.: FNDSVT71E29Z103G
*P.IVA*: 06597870820
*blog:** https://pigrecoinfinito.wordpress.com/
<https://pigrecoinfinito.wordpress.com/&gt; *

43°51'0.54"N 10°34'27.62"E - EPSG:4326

“Se la conoscenza deve essere aperta a tutti,
perchè mai limitarne l’accesso?”
R. Stallman

Questo documento, allegati inclusi, contiene informazioni di proprietà di
FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario
in relazione alle finalità per le quali è stato ricevuto. E' vietata
qualsiasi forma di riproduzione o divulgazione senza l'esplicito consenso
di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega di
informare tempestivamente il mittente e distruggere la copia in proprio
possesso.

On 05/24/17 , Totò Fiandaca wrote:

Continua ad approfittare della vostra cortesia,
ho avviato MSYS e incollato:

#!/bin/bash

SHP=$(ls C:\\Users\\Salvatore\\Desktop\\fedele\\catastali_shp |
grep \.sh

for i in $SHP; do
  ogr2ogr -update -f SQLite -dsco SPATIALITE=YES
C:\\Users\\Salvatore\\Desktop\\db_1.sqlite $i.shp
done

mi sono dimenticato qualcosa:

SHP=(ls etc etc | grep \.shp) # per filtrare i file giusti

e poi $i al posto di $i.shp

On Wed, 24 May 2017 23:08:57 +0200, Totò Fiandaca wrote:

Unable to open datasource `acque.shp.shp'

Toto',

il messaggio di errore dice tutto; come vedi,
stai raddoppiando i suffissi:
.shp ti diventa .shp.shp

questo accade perche' hai impostato la variabile
SHP in modo tale che estrae direttamente la lista
di tutti i files contenuti nalla directory,
ma in questo modo il ciclo FOR ti peschera'
iniscriminatamente sia i files con suffisso
.shp ma anche quelli .shx, .dbf etc
dopo di che tu hai specificato che il path deve
essere $i.shp, ragion per cui ti attacca ancora
un altro suffisso .shp dietro al path che ha
appena pescato dalla lista.

dovesti modificare SHP aggiungendo in coda *.shp
in modo tale da fargli cercare solo i files col
suffisso .shp ignorando tutti gli altri.
e poi ovviamente devi usare $i nudo e crudo senza
aggiungere $i.shp

hint: se prendi la buona abitudine di usare anche
su Windows qualche tool di origine Linex ti prego
di perdere la pessima abitudine di usare gli
orrendi backslash che sono un pugno nell'occhio,
specie se poi li vai a raddoppiare.
non serve scrivere un orrore come questo:

C:\\Users\\Salvatore\\Desktop\\db_1.sqlite

puoi usare direttamente la notazione canonica
in stile Linux/Unix con gli shash "normali":

C:/Users/Salvatore/Desktop/db:1,sqlite

ciao Sandro

On 05/24/17 , Totò Fiandaca wrote:

ho avviato MSYS e incollato:

In ogni caso devi copiare lo script in un editor di testo (meglio wordpad
del blocco note) e nominarlo con un'estensione .sh, poi lo esegui con
   sh nomefile.sh

--
View this message in context: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/importare-piu-shapefile-in-db-spatialite-tp7596986p7597002.html
Sent from the Gfoss -- Geographic Free and Open Source Software - Italian mailing list mailing list archive at Nabble.com.

Alcune altre considerazioni su ogr2ogr:

-- se lo shapefile contiene geometrie miste (semplici e multiple)
l'importazione segna errore, per cui si deve usare l'opzione -nlt:
-nlt MULTILINESTRING
-nlt MULTIPLOLYGON
a seconda della geometria; con ogrinfo si riesce a sapere se ci sono
geometrie miste, ma l'output è molto prolisso, per cui è meglio filtrarlo in
questo modo:

/ogrinfo -al shapefile | sed 's/POLYGON/&#/g' | tr "#" \\n | grep POLYGON/
/ogrinfo -al shapefile | sed 's/LINESTRING/&#/g' | tr "#" \\n | grep
LINESTRING/

-- se, invece di importare un'intera directory si volessero importare solo i
file presenti in un progetto qgis, come elenco di file per il ciclo for si
potrebbe usare questa variabile:

SHP=$(grep datasource progetto.qgs | sed -e 's|.*<datasource>||g' -e
's|</datasource>||g')

--
View this message in context: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/importare-piu-shapefile-in-db-spatialite-tp7596986p7597003.html
Sent from the Gfoss -- Geographic Free and Open Source Software - Italian mailing list mailing list archive at Nabble.com.

Grazie all'aiuto di tutti, in particolare di Andrea Borruso, sono riuscito
ad importare una intera cartella con gli *.shp in un db sqlite utilizzando
il terminale MSYS (come suggerito);
Per lasciar traccia e soprattutto per non dimenticare (io in prima persona)
ho scritto un piccolo articolo [0] (step by step) per realizzare quanto in
oggetto.

Saluti

PS: articolo per 'ignoranti di bash come me'.
[0]
https://pigrecoinfinito.wordpress.com/2017/06/13/importare-shapefile-in-un-db-sqlite-utilizzando-la-shell/

Il giorno 25 maggio 2017 16:30, Marco Curreli <marcocurreli@tiscali.it> ha
scritto:

Alcune altre considerazioni su ogr2ogr:

-- se lo shapefile contiene geometrie miste (semplici e multiple)
l'importazione segna errore, per cui si deve usare l'opzione -nlt:
-nlt MULTILINESTRING
-nlt MULTIPLOLYGON
a seconda della geometria; con ogrinfo si riesce a sapere se ci sono
geometrie miste, ma l'output è molto prolisso, per cui è meglio filtrarlo
in
questo modo:

/ogrinfo -al shapefile | sed 's/POLYGON/&#/g' | tr "#" \\n | grep POLYGON/
/ogrinfo -al shapefile | sed 's/LINESTRING/&#/g' | tr "#" \\n | grep
LINESTRING/

-- se, invece di importare un'intera directory si volessero importare solo
i
file presenti in un progetto qgis, come elenco di file per il ciclo for si
potrebbe usare questa variabile:

SHP=$(grep datasource progetto.qgs | sed -e 's|.*<datasource>||g' -e
's|</datasource>||g')

--
View this message in context: http://gfoss-geographic-free-
and-open-source-software-italian-mailing.3056002.n2.
nabble.com/importare-piu-shapefile-in-db-spatialite-tp7596986p7597003.html
Sent from the Gfoss -- Geographic Free and Open Source Software - Italian
mailing list mailing list archive at Nabble.com.
_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni
dell'Associazione GFOSS.it.
808 iscritti al 07/03/2017

--
*Ing. Salvatore Fiandaca*
*mobile*.:+39 327.493.8955
*m*: *pigrecoinfinito@gmail.com <pigrecoinfinito@gmail.com>*
*C.F*.: FNDSVT71E29Z103G
*P.IVA*: 06597870820
*blog:** https://pigrecoinfinito.wordpress.com/
<https://pigrecoinfinito.wordpress.com/&gt; *

43°51'0.54"N 10°34'27.62"E - EPSG:4326

“Se la conoscenza deve essere aperta a tutti,
perchè mai limitarne l’accesso?”
R. Stallman

Questo documento, allegati inclusi, contiene informazioni di proprietà di
FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario
in relazione alle finalità per le quali è stato ricevuto. E' vietata
qualsiasi forma di riproduzione o divulgazione senza l'esplicito consenso
di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega di
informare tempestivamente il mittente e distruggere la copia in proprio
possesso.