Buona sera a tutti,
dovrei ritagliare la CTR vettoriale della Regione Liguria (composta da 77 shape file) con un confine comunale. Volevo sapere se con QGIS esiste qualche comando per intersecare tutti i 77 shape file con il confine comunale in un unico comando senza dover intersecarli singolarmente uno ad uno? grazie
luca volpin _______________________________________________ [hidden email] 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. 666 iscritti al 22.7.2013 |
This post was updated on .
Si puo' fare in modalita' batch, supponendo che:
* le 77 shape da clippare stiano nella cartella D:\INPUT * la shape "tagliante" chiamata CONFINE.SHP stia nella cartella D:\CLIPPING * il risultato del batch venga salvato nella cartella D:\OUTPUT apri la shell Osgeo, e digita la seguente sintassi: C:\> OGR2OGR -CLIPSRC D:\CLIPPING\CONFINE.SHP D:\OUTPUT D:\INPUT |
This post was updated on .
In reply to this post by Luca Volpin
Era un esempio di studio, avrei potuto chiamare le cartelle PIPPO e PLUTO... Comunque sia, per lanciare il comando OGR2OGR hai bisogno di una shell Dos, quindi vedo due possibilità: 1] installarsi un emulatore Windows sotto Mac 2] caricare shape e "GDAL tools" su un altro computer, sotto Win o Linux Altre idee..? |
Il "mac" è unix. La shell e un terminale decente lo ha di default ;-) --------------------------------------------------- http://www.linkedin.com/in/stefanoiacovella http://twitter.com/#!/Iacovellas Il 26/nov/2013 07:26 "antoniovinci" <[hidden email]> ha scritto:
/ _______________________________________________ [hidden email] 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. 666 iscritti al 22.7.2013 |
In reply to this post by antoniovinci
Interessantissimo, non conoscevo ogr2ogr.
Sapresti dirmi se esiste la possibilità di passare uno shapefile C:\CLIPPING\CONFINI.SHP che abbia più records (es.: centinaia di comuni) e looppare attraverso i diversi record di questo shapefile per inserire in diverse cartelle di output (es. c:\output\comune1, c:\output\comune2, ...dove comune1, comune2 ecc. potrebbero essere i nomi o i codici ISTAT dei diversi comuni) i risultati del clip dei diversi files presenti nella cartella C:\INPUT secondo i tagli definiti dai diversi record dellla shape "tagliante"? Ho cercato esempi in rete ma senza trovare quello che mi sembra faccia al mio caso. Grazie, Maurizio Il 23/11/13, antoniovinci<[hidden email]> ha scritto: > Si puo' fare in modalita' batch, supponendo che: > > * le 77 shape da clippare stiano nella cartella C:\INPUT > * la shape "tagliante" chiamata CONFINE.SHP stia nella cartella C:\CLIPPING > * il risultato del batch venga salvato nella cartella C:\OUTPUT > > apri la shell Osgeo, e digita la seguente sintassi: > > C:\> *OGR2OGR -CLIPSRC C:\CLIPPING\CONFINE.SHP C:\OUTPUT C:\INPUT* > > <http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/file/n7585114/smile.gif> > > > > -- > View this message in context: > http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ritagliare-piu-shapefile-con-QGIS-tp7585096p7585114.html > Sent from the Gfoss -- Geographic Free and Open Source Software - Italian > mailing list mailing list archive at Nabble.com. > _______________________________________________ > [hidden email] > 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. > 666 iscritti al 22.7.2013 [hidden email] 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. 666 iscritti al 22.7.2013 |
This post was updated on .
A quest'ora della notte, ho la senzazione che sia fattibile in almeno 2 modi diversi (escludendo il loop fra i record). Siccome domani ho una consegna, non avro' la possibilita' di testare fisicamente le 2 soluzioni, quindi mi limito a dare gli spunti che spero qualcuno possa elaborare. 1] con OGR2OGR clippare tutto secondo l'unica shape tagliante, per poi splittare i risultati con VETTORE => STRUMENTI DI GESTIONE DATI => DIVIDI VETTORE 2] splittare la shape tagliante come sopra, rinominare i "pezzi" come Pippo1,Pippo2,...,PippoN, e lanciare OGR2OGR in un ciclo di "for" rispetto all'argomento PippoX (con X incrementale da 1 ad N). |
In reply to this post by Maurizio Trevisani
2013/11/27 Maurizio Trevisani <[hidden email]>:
> Interessantissimo, non conoscevo ogr2ogr. > Sapresti dirmi se esiste la possibilità di passare uno shapefile > C:\CLIPPING\CONFINI.SHP > che abbia più records (es.: centinaia di comuni) e looppare attraverso > i diversi record di questo shapefile per inserire in diverse cartelle > di output (es. c:\output\comune1, c:\output\comune2, ...dove comune1, > comune2 ecc. potrebbero essere i nomi o i codici ISTAT dei diversi > comuni) i risultati del clip dei diversi files presenti nella cartella > C:\INPUT secondo i tagli definiti dai diversi record dellla shape > "tagliante"? > Ho cercato esempi in rete ma senza trovare quello che mi sembra faccia > al mio caso. > se non ho capito male dovresti fare una cosa tipo questa (in linux, in windows va adattata e dovresti usare la osgeo4w shell che contiene i comandi grep e awk) : #!/bin/bash for c in `ogrinfo comuni.shp -sql "SELECT DISTINCT codistat FROM comuni" | grep FIPS | awk '{print $4}'` do for s in input/*.shp do echo "Genero clip di shapefile $s per codice istat $c..." mkdir output/$c ogr2ogr output/$c/${s%%.*}.shp $s -clipsrc comuni.shp -clipsrcwhere "codistat='$c'" done done per adattarla su windows potresti fare tipo (non ho un pc con windows su cui testare): for /F "tokens=*" %%c IN ('ogrinfo comuni.shp -sql "SELECT DISTINCT codistat FROM comuni" ^| grep iso2 ^| awk "{print $4}"') do ( for /r %s in (input/*.shp) do ( echo "Genero clip di shapefile %%s per codice istat %%c..." mkdir output/%%c ogr2ogr output/%%c/%%f $s -clipsrc comuni.shp -clipsrcwhere "codistat='%%c'" ) ) ciao p -- Paolo Corti Geospatial software developer web: http://www.paolocorti.net twitter: @capooti skype: capooti _______________________________________________ [hidden email] 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. 666 iscritti al 22.7.2013 |
provo subito,
grazie :-) Il 27/11/13, Paolo Corti<[hidden email]> ha scritto: > 2013/11/27 Maurizio Trevisani <[hidden email]>: >> Interessantissimo, non conoscevo ogr2ogr. >> Sapresti dirmi se esiste la possibilità di passare uno shapefile >> C:\CLIPPING\CONFINI.SHP >> che abbia più records (es.: centinaia di comuni) e looppare attraverso >> i diversi record di questo shapefile per inserire in diverse cartelle >> di output (es. c:\output\comune1, c:\output\comune2, ...dove comune1, >> comune2 ecc. potrebbero essere i nomi o i codici ISTAT dei diversi >> comuni) i risultati del clip dei diversi files presenti nella cartella >> C:\INPUT secondo i tagli definiti dai diversi record dellla shape >> "tagliante"? >> Ho cercato esempi in rete ma senza trovare quello che mi sembra faccia >> al mio caso. >> > > se non ho capito male dovresti fare una cosa tipo questa (in linux, > in windows va adattata e dovresti usare la osgeo4w shell che contiene i > comandi grep e awk) : > > #!/bin/bash > for c in `ogrinfo comuni.shp -sql "SELECT DISTINCT codistat FROM > comuni" | grep FIPS | awk '{print $4}'` > do > for s in input/*.shp > do > echo "Genero clip di shapefile $s per codice istat $c..." > mkdir output/$c > ogr2ogr output/$c/${s%%.*}.shp $s -clipsrc comuni.shp > -clipsrcwhere "codistat='$c'" > done > done > > per adattarla su windows potresti fare tipo (non ho un pc con windows > su cui testare): > > for /F "tokens=*" %%c IN ('ogrinfo comuni.shp -sql "SELECT DISTINCT > codistat FROM comuni" ^| grep iso2 ^| awk "{print $4}"') do ( > for /r %s in (input/*.shp) do ( > echo "Genero clip di shapefile %%s per codice istat %%c..." > mkdir output/%%c > ogr2ogr output/%%c/%%f $s -clipsrc comuni.shp -clipsrcwhere > "codistat='%%c'" > ) > ) > > ciao > p > > -- > Paolo Corti > Geospatial software developer > web: http://www.paolocorti.net > twitter: @capooti > skype: capooti > [hidden email] 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. 666 iscritti al 22.7.2013 |
Free forum by Nabble | Edit this page |