This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
batimetrielagunave:lineenavigazione [2013/11/05 09:42] alesarrett [Soluzione con ogr2ogr il Linux] |
batimetrielagunave:lineenavigazione [2015/09/11 08:57] (current) |
||
---|---|---|---|
Line 18: | Line 18: | ||
==== Comando completo ==== | ==== Comando completo ==== | ||
- | ''ogr2ogr file_first12_FID.shp file_first12.shp -sql "SELECT *, FID AS FID4JOIN FROM file_first12" && ogr2ogr file_last12_FID.shp file_last12.shp -sql "SELECT *, FID AS FID4JOIN FROM file_last12" && ogr2ogr -f "ESRI Shapefile" -overwrite output.shp file_first12_FID.shp -sql "SELECT Key, Feature, CONCAT(file_first12_FID.Source, file_last12_FID.Source) AS Source, Theme, Length, MinZ, MaxZ FROM file_first12_FID LEFT JOIN 'file_last12_FID.dbf'.file_last12_FID ON file_first12_FID.FID4JOIN = file_last12_FID.FID4JOIN" && rm *_FID*'' | + | ''ogr2ogr file_first12_FID.shp file_first12.shp -sql "SELECT *, FID AS FID4JOIN FROM file_first12" && ogr2ogr file_last12_FID.shp file_last12.shp -sql "SELECT *, FID AS FID4JOIN FROM file_last12" && ogr2ogr -f "ESRI Shapefile" -overwrite output.shp file_first12_FID.shp -sql "SELECT Key, Feature, CONCAT(file_first12_FID.Source, substr(file_last12_FID.Source,5)) AS Source, Theme, Length, MinZ, MaxZ FROM file_first12_FID LEFT JOIN 'file_last12_FID.dbf'.file_last12_FID ON file_first12_FID.FID4JOIN = file_last12_FID.FID4JOIN" && rm *_FID*'' |
Maggiori informazioni sul significato dei singoli comandi qui: [[batimetrielagunave:lineenavigazione#spiegazione_dettagliata_del_comando|Spiegazione dettagliata del comando]] | Maggiori informazioni sul significato dei singoli comandi qui: [[batimetrielagunave:lineenavigazione#spiegazione_dettagliata_del_comando|Spiegazione dettagliata del comando]] | ||
Line 40: | Line 40: | ||
* Avanti | * Avanti | ||
* Attendere il download e l'installazione dei pacchetti | * Attendere il download e l'installazione dei pacchetti | ||
- | * per lanciare la shell cliccare sull'icona //OSGeo4W Shell// che dovrebbe essere presente ora sul Desktop | + | * per lanciare la shell cliccare sull'icona **OSGeo4W Shell** che dovrebbe essere presente ora sul Desktop |
- | * il comando va leggermente modificato, modificando l'ultima istruzione che rimuove i file di passaggio da ''rm *_FID*'' in ''del *_FID*''. Risulterà quindi il seguente: | + | * altrimenti, se non è presente alcuna icona sul desktop, basta lanciare **OSGeo4W.bat** da C:\OSGeo4W64 |
+ | * nella finestra del terminale è necessario spostarsi nella cartella contenente gli shapefile originali da unire, utilizzando il comando ''cd'' ([[http://comandi-dos-e-altro.jimdo.com/i-comandi-dos/cd-o-chdir|qui]] alcune info in più) | ||
+ | * il comando è leggermente modificato rispetto a quello in Linux, modificando l'ultima istruzione che rimuove i file di passaggio da ''rm *_FID*'' in ''del *_FID*''. Risulterà quindi il seguente: | ||
- | ''ogr2ogr file_first12_FID.shp file_first12.shp -sql "SELECT *, FID AS FID4JOIN FROM file_first12" && ogr2ogr file_last12_FID.shp file_last12.shp -sql "SELECT *, FID AS FID4JOIN FROM file_last12" && ogr2ogr -f "ESRI Shapefile" -overwrite output.shp file_first12_FID.shp -sql "SELECT Key, Feature, CONCAT(file_first12_FID.Source, file_last12_FID.Source) AS Source, Theme, Length, MinZ, MaxZ FROM file_first12_FID LEFT JOIN 'file_last12_FID.dbf'.file_last12_FID ON file_first12_FID.FID4JOIN = file_last12_FID.FID4JOIN" && del *_FID*'' | + | ''ogr2ogr NAV_XX_WEEK_first12_FID.shp NAV_XX_WEEK_first12.shp -sql "SELECT *, FID AS FID4JOIN FROM NAV_XX_WEEK_first12" && ogr2ogr NAV_XX_WEEK_last12_FID.shp NAV_XX_WEEK_last12.shp -sql "SELECT *, FID AS FID4JOIN FROM NAV_XX_WEEK_last12" && ogr2ogr -f "ESRI Shapefile" -overwrite NAV_XX_WEEK.shp NAV_XX_WEEK_first12_FID.shp -sql "SELECT CONCAT(NAV_XX_WEEK_first12_FID.Source, SUBSTR(NAV_XX_WEEK_last12_FID.Source,5)) AS Source, Length FROM NAV_XX_WEEK_first12_FID LEFT JOIN 'NAV_XX_WEEK_last12_FID.dbf'.NAV_XX_WEEK_last12_FID ON NAV_XX_WEEK_first12_FID.FID4JOIN = NAV_XX_WEEK_last12_FID.FID4JOIN" && del *_FID*'' |
+ | * in un editor di testo basterà sostituire nel comando le "XX" con il numero di settimana corrispondente | ||
===== Spiegazione dettagliata del comando ===== | ===== Spiegazione dettagliata del comando ===== | ||
Line 56: | Line 59: | ||
* l'istruzione seleziona (''SELECT'') e quindi restituisce in output, tutti i campi presente nel file originale (''*'') e in più anche il campo ''FID'', che viene rinominato in ''FID4JOIN'' (perché sarà usato in funzione del JOIN successivo) | * l'istruzione seleziona (''SELECT'') e quindi restituisce in output, tutti i campi presente nel file originale (''*'') e in più anche il campo ''FID'', che viene rinominato in ''FID4JOIN'' (perché sarà usato in funzione del JOIN successivo) | ||
* a questo punto abbiamo due nuovi shapefile **file_first12_FID.shp** e **file_last12_FID.shp** che verranno usati nel comando successivo | * a questo punto abbiamo due nuovi shapefile **file_first12_FID.shp** e **file_last12_FID.shp** che verranno usati nel comando successivo | ||
- | ''ogr2ogr -f "ESRI Shapefile" -overwrite output.shp file_first12_FID.shp -sql "SELECT Key, Feature, CONCAT(file_first12_FID.Source, file_last12_FID.Source) AS Source, Theme, Length, MinZ, MaxZ FROM file_first12_FID LEFT JOIN 'file_last12_FID.dbf'.file_last12_FID ON file_first12_FID.FID4JOIN = file_last12_FID.FID4JOIN"'' | + | ''ogr2ogr -f "ESRI Shapefile" -overwrite output.shp file_first12_FID.shp -sql "SELECT Key, Feature, CONCAT(file_first12_FID.Source, substr(file_last12_FID.Source,5)) AS Source, Theme, Length, MinZ, MaxZ FROM file_first12_FID LEFT JOIN 'file_last12_FID.dbf'.file_last12_FID ON file_first12_FID.FID4JOIN = file_last12_FID.FID4JOIN"'' |
* di nuovo viene chiamato il comando ogr2ogr | * di nuovo viene chiamato il comando ogr2ogr | ||
* il parametro ''-f "ESRI Shapefile"'' dice che i successivi file in input sono di tipo //ESRI shapefile// | * il parametro ''-f "ESRI Shapefile"'' dice che i successivi file in input sono di tipo //ESRI shapefile// | ||
Line 64: | Line 67: | ||
* ''-sql'' dice nuovamente che la seguente espressione contenuta tra virgolette ''"'' è un'istruzione SQL | * ''-sql'' dice nuovamente che la seguente espressione contenuta tra virgolette ''"'' è un'istruzione SQL | ||
* l'istruzione SQL fa un JOIN tra il file //file_first12_FID.shp// e il file //file_last12_FID.dbf //usando il campo univoco //FID4JOIN// presente in entrambi i file (istruzione ''LEFT JOIN 'file_last12_FID.dbf'.file_last12_FID ON file_first12_FID.FID4JOIN = file_last12_FID.FID4JOIN'') | * l'istruzione SQL fa un JOIN tra il file //file_first12_FID.shp// e il file //file_last12_FID.dbf //usando il campo univoco //FID4JOIN// presente in entrambi i file (istruzione ''LEFT JOIN 'file_last12_FID.dbf'.file_last12_FID ON file_first12_FID.FID4JOIN = file_last12_FID.FID4JOIN'') | ||
- | * il ''SELECT'' crea uno shapefile contenente tutti i campi originali (Key, Feature, Source, Theme, Length, MinZ, MaxZ) con //Source //che però contiene l la concatenazione (''CONCAT'') dei due campi //Source //originari. | + | * il ''SELECT'' crea uno shapefile contenente tutti i campi originali (Key, Feature, Source, Theme, Length, MinZ, MaxZ) con //Source //che però contiene l la concatenazione (''CONCAT'') dei due campi //Source //originari. In realtà dal secondo campo viene estratta una stringa a partire dal 5° carattere tramite il comando ''substr(nomeFile.campo,5)'' |