clip

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

clip

frangex
Salve.
Ho alcuni shapefile di grosse dimensioni che devo tagliare su dei confini. Ho provato a farlo direttamente con ogr2ogr visto che sia qgis che gvsig (non ho provato con grass) impiegavano tempi biblici.
La stringa che ho utilizzato è più o meno la seguente:
ogr2ogr -clipsrclayer layer.shp output.shp input.shp
oppure 
ogr2ogr -clipsrc layer.shp output.shp input.shp

Nel primo caso mi restituisce il layer in input ma non tagliato, mentre nel secondo mi da errore perchè non riconosce il datasource.

Qualcuno ha mai provato?

P.S.: Sto provando a tagliare con postgis in questo momento. Utilizzo la seguente query:
create table grid_cut as select g."campo1",Intersection(g.the_geom, f.the_geom) AS the_geom from layer1 f, layer2 g where f.the_geom && g.the_geom and Intersects(g.the_geom, f.the_geom);

Con spatialite funzionerebbe?

Grazie a tutti!

Francesco


_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
540 iscritti al 4.11.2011
Reply | Threaded
Open this post in threaded view
|

Re: clip

Andrea Peri
>P.S.: Sto provando a tagliare con postgis in questo momento. Utilizzo la seguente query:
>create table grid_cut as select g."campo1",Intersection(g.the_geom, f.the_geom) AS the_geom from layer1 f, layer2 g where f.the_geom && g.the_geom and Intersects(g.the_geom, f.the_geom);
>
>Con spatialite funzionerebbe?

Io taglio regolarmente con spatialite, e si tratta di roba anche molto pesa.

Se sono minuzzaglie allora va anche bene usare uno strumento gis desktop.
Ma se sono roba corposa io userei decisamente spatialite (o postgis se ne hai uno sottomano), ma bada che comunque spatialite non ha niente da
inviadiare a postgis su questo fronte.

La query che hai scritto te, va bene solo in teoria.
Quasi sempre su archivi reali in un 1% di casi, quando si taglia, si generano delle geometrie non valide oppure delle geometrie complesse.
Di conseguenza ti ritroverai' una tabella con il campo geometrico di tipo "geometry" egnerico e non potrai impiegarlo.

Per depurare il risultato della query occorre aggiungervi alcune funzioni ad hoc.
Ma esse dipendono dal tipo di archivio che stai trattando.
Devi un po' studiare la manualistica.
Io ti consiglio di impiegare spatialite, che ti rende piu' semplice la vita nella fase iniziale (import da shapefile) e finale (export su shapefile)
e poi e' piu' versatile.

Qualche dritta e spiegazione su come correggere le query la trovi in questo thread:
http://lists.gfoss.it/pipermail/gfoss/2011-November/020699.html
Invece delle dritte su come correggere le geometrie invalide le trovi su questo fantastico documento di Ramsey.

http://s3.opengeo.org/postgis-power.pdf

L'unica cosa che non hai su spatialite (per ora) e' la ST_MakeValid(),
ma per i problemi che ti nasceranno dai tagli potrai sopperire con le soluzioni che Ramsey indica in quel documento.

Io li uso regolarmente con spatialite e funzioanno alla grande.

Saluti,

--
-----------------
Andrea Peri
. . . . . . . . .
qwerty àèìòù
-----------------


_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
540 iscritti al 4.11.2011
Reply | Threaded
Open this post in threaded view
|

Semplicita' di import/export shapefile (era: clip)

Sandro Santilli
On Wed, Dec 14, 2011 at 02:03:34PM +0100, Andrea Peri wrote:

> Io ti consiglio di impiegare spatialite, che ti rende piu' semplice la
> vita nella fase iniziale (import da shapefile) e finale (export su
> shapefile)

Posso chiedere lumi circa la maggior complessita' di PostGIS nella fase
di import/export shapefile ? Magari si puo' semplificare qualcosa, in vista
del rilascio della 2.0.

Grazie.

--strk;

  ,------o-.
  |   __/  |    Thank you for PostGIS-2.0 Topology !
  |  / 2.0 |    http://www.pledgebank.com/postgistopology
  `-o------'

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
540 iscritti al 4.11.2011
Reply | Threaded
Open this post in threaded view
|

Re: Semplicita' di import/export shapefile (era: clip)

pcav
Il 14/12/2011 14:10, Sandro Santilli ha scritto:
> Posso chiedere lumi circa la maggior complessita' di PostGIS nella fase
> di import/export shapefile ? Magari si puo' semplificare qualcosa, in vista
> del rilascio della 2.0.
oggi si possono importare shp in sl e pg anche solo droppandoceli, via
DB Manager (plugin di QGIS).
Saluti.

--
Paolo Cavallini
See: http://www.faunalia.it/pc

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
540 iscritti al 4.11.2011
Reply | Threaded
Open this post in threaded view
|

Re: Semplicita' di import/export shapefile (era: clip)

Andrea Peri
In reply to this post by Sandro Santilli
Non e' correggibile, la differenza è insita nella modalita' implementativa dei due sistemi.

Spatialite, ha una sua console specifica, all'interno della quale si puo' fare un semplice comando:

.loadshp ....
e ci si ritrova lo shapefile caricato in una tabella.

poi con
.dumpshp ...
si riesce a ributtare una tabella in uno shapefile (ovviamente devono essere compatibili come geometria e struttura).

Su postgis non si puo' operare sempre all'interno del medesimo ambiente.
Perche' la console di postgis e' in realta' quella di postgres e non ha dei comandi dot come la console di spatialite (ne' penso li potrebbe avere)

Per cui , in postgis si deve per prima cosa usar "shp2sql" e generarsi il file sql, poi con psql lo si carica su postgis.
E' vero che in alternativa si potrebbe usare ogr2ogr, ma si e' sempre su una shell e poi si entra in psql per dare i comandi sql per il clip.

Invece da spatialite si fa' tutto dall'interno del medesimo ambiente.
Almeno su questo punto postgis prende un gol da spatialite.

Anche se poi sono il primo a dire che alla lunga vince postgis ci mancherebbe altro, spatialite ha delle mancanze strutturali importanti.

IN PRIMIS LA STORIA DEGLI INDICI SPAZIALI !!!!

e infatti poi la query sara' un po' piu' complessa da scriversi.
Ma una volta scritta va sempre bene e la ricicli in ogni circostanza in cui devi clippare.

Per cui chi deve semplicemente clippare un archivio in shapefile, e poi riportarsi il risultato anche esso in shapefile, fa certamente prima a passare da spatialite .

Andrea.


Il giorno 14 dicembre 2011 14:10, Sandro Santilli <[hidden email]> ha scritto:
On Wed, Dec 14, 2011 at 02:03:34PM +0100, Andrea Peri wrote:

> Io ti consiglio di impiegare spatialite, che ti rende piu' semplice la
> vita nella fase iniziale (import da shapefile) e finale (export su
> shapefile)

Posso chiedere lumi circa la maggior complessita' di PostGIS nella fase
di import/export shapefile ? Magari si puo' semplificare qualcosa, in vista
del rilascio della 2.0.

Grazie.

--strk;

 ,------o-.
 |   __/  |    Thank you for PostGIS-2.0 Topology !
 |  / 2.0 |    http://www.pledgebank.com/postgistopology
 `-o------'




--
-----------------
Andrea Peri
. . . . . . . . .
qwerty àèìòù
-----------------


_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
540 iscritti al 4.11.2011
Reply | Threaded
Open this post in threaded view
|

Re: Semplicita' di import/export shapefile (era: clip)

a.furieri
In reply to this post by Sandro Santilli
On Wed, 14 Dec 2011 14:10:09 +0100, Sandro Santilli wrote
> Posso chiedere lumi circa la maggior complessita' di PostGIS nella fase
> di import/export shapefile ? Magari si puo' semplificare qualcosa,
> in vista del rilascio della 2.0.
>

a) SpatiaLite supporta VirtualShape; tramite una semplice
   CREATE VIRTUAL TABLE abcd USING (args);
   puoi interrogare al volo [in puro SQL] qualsiasi SHP
   esterno senza alcun bisogno di importarlo preventivamente
   dentro al DBMS
   e poi per chiudere la connessione con lo SHP esterno basta
   DROP TABLE abcd;
   p.es. questo ti consente di importare una porzione
   selezionata invece di tutto quanto, ti permette di
   cambiare i nomi di tavola e di colonna a piacere,
   sopprimere colonne, aggiungere colonne calcolate etc
   Insomma, e' dannatamente flessibile ;-)
   E' puro SQL, ed e' direttamente intergrato dentro
   al main-core: funziona da GUI, funziona da CLI,
   funziona negli SQL scripts, e naturalmente funziona
   anche da C/C++ Python Java etc

b) sia SpatiaLite CLI-front-end che spatialite_gui ti
   permettono di importare/esportare "al volo" SHP,
   ma anche DBF, TXT/CSV, HTML, GeoJSON, KML etc etc

diciamo per capirci che l'equivalente sarebbe se PSQL
potesse supportare un qualche magico comando interno
che consentisse di importare/esportare direttamente
uno SHP

oppure come se PgAdminIII avesse tra i vari bottoni
della toolbar e su qualche menu popup anche le
opzioni "importa SHP", "esporta SHP" etc

ciao Sandro


_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
540 iscritti al 4.11.2011
Reply | Threaded
Open this post in threaded view
|

Re: Semplicita' di import/export shapefile (era: clip)

Sandro Santilli
In reply to this post by Andrea Peri
On Wed, Dec 14, 2011 at 02:26:29PM +0100, Andrea Peri wrote:

> Spatialite, ha una sua console specifica, all'interno della quale si puo'
> fare un semplice comando:
>
> .loadshp ....
> e ci si ritrova lo shapefile caricato in una tabella.
>
> poi con
> .dumpshp ...
> si riesce a ributtare una tabella in uno shapefile (ovviamente devono
> essere compatibili come geometria e struttura).
>
> Su postgis non si puo' operare sempre all'interno del medesimo ambiente.
> Perche' la console di postgis e' in realta' quella di postgres e non ha dei
> comandi dot come la console di spatialite (ne' penso li potrebbe avere)

Capito, grazie delle informazioni.

Da utente UNIX non riesco ad apprezzare la differenza, perche' per me
l' "ambiente unico" e' la shell di unix, e psql e' solo un'altro elemento
da usare nell'ambiente:

 $ shp2pgsql myshape | psql
 $ psql -c "update myshape set the_geom = st_makevalid(the_geom)"
 $ pgsql2shp myshape

Come dici tu ``psql'' non e' specifico di PostGIS, ma ha dei
comandi "dot" (quelli che iniziano con il backslash).

Purtroppo sebene funzioni usare il pipe in output:

 => \o | mail [hidden email]

Lo stesso non funziona in input:

 => \i !shp2psgql myshape

Quindi pare che ad oggi l'unico modo per farlo senza uscire sia:

 => \! shp2pgsql myshape | psql

Consentire a psql una maggior flessibilita' nell'estensione dei
comandi sarebbe un progetto interessante.

--strk;

  ,------o-.
  |   __/  |    Thank you for PostGIS-2.0 Topology !
  |  / 2.0 |    http://www.pledgebank.com/postgistopology
  `-o------'

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
540 iscritti al 4.11.2011
Reply | Threaded
Open this post in threaded view
|

Re: clip

Markus Neteler
In reply to this post by frangex
2011/12/14 Francesco Geri <[hidden email]>:
> Salve.
> Ho alcuni shapefile di grosse dimensioni che devo tagliare su dei confini.

Quanto grande sono?

> Ho provato a farlo direttamente con ogr2ogr visto che sia qgis che gvsig
> (non ho provato con grass) impiegavano tempi biblici.

Con GRASS 7 dovrebbe essere abbastanza veloce grazie agli algoritmi
ottimizzati (v.select, v.overlay).

ciao
Markus
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
540 iscritti al 4.11.2011
Reply | Threaded
Open this post in threaded view
|

Re: Semplicita' di import/export shapefile (era: clip)

Sandro Santilli
In reply to this post by a.furieri
On Wed, Dec 14, 2011 at 02:38:03PM +0100, [hidden email] wrote:

> diciamo per capirci che l'equivalente sarebbe se PSQL
> potesse supportare un qualche magico comando interno
> che consentisse di importare/esportare direttamente
> uno SHP

Ci vorrebbe una versione estendibile di psql, ad oggi
non e' disponibile, ma sono sicuro che delle modifiche
in quella direzione sarebbero ben accette.

> oppure come se PgAdminIII avesse tra i vari bottoni
> della toolbar e su qualche menu popup anche le
> opzioni "importa SHP", "esporta SHP" etc

Credo questa ci sia, e' la gui del loader di postgis,
che si integra con PgAdminIII.
Io non l'ho mai usata (non sono tipo da gui) ma e'
uno sviluppo recente.

--strk;

  ,------o-.
  |   __/  |    Thank you for PostGIS-2.0 Topology !
  |  / 2.0 |    http://www.pledgebank.com/postgistopology
  `-o------'

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
540 iscritti al 4.11.2011
Reply | Threaded
Open this post in threaded view
|

Re: clip

Paolo Corti
In reply to this post by frangex
2011/12/14 Francesco Geri <[hidden email]>:

> Salve.
> Ho alcuni shapefile di grosse dimensioni che devo tagliare su dei confini.
> Ho provato a farlo direttamente con ogr2ogr visto che sia qgis che gvsig
> (non ho provato con grass) impiegavano tempi biblici.
> La stringa che ho utilizzato è più o meno la seguente:
> ogr2ogr -clipsrclayer layer.shp output.shp input.shp
> oppure
> ogr2ogr -clipsrc layer.shp output.shp input.shp
>
> Nel primo caso mi restituisce il layer in input ma non tagliato, mentre nel
> secondo mi da errore perchè non riconosce il datasource.
>
> Qualcuno ha mai provato?
>

Non so gvSIG, ma QGIS credo che lanci dietro le quinte ogr2ogr, quindi
i tempi di elaborazione devono coincidere.
Per quanto riguarda ogr2ogr, la prima sintassi e' sbagliata, ma la
seconda e' corretta, e a me funziona perfettamente, ho appena provato.
Nel caso degli shapefile infatti non e' necessario specificare
l'opzione -clipsrclayer, in quanto sono costituiti da un unico layer.
Devi pero' specificare necessariamente l'opzione -clipsrc

Che versione di GDAL usi? (per saperlo puoi fare: $ ogr2ogr --version)
Puoi mettere online un piccolo set dei dati che replicano il problema?

ciao
P



--
Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @capooti
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
540 iscritti al 4.11.2011
Reply | Threaded
Open this post in threaded view
|

Re: clip

Andrea Peri
In reply to this post by Andrea Peri
Il 14/12/2011 19:08, Francesco ha scritto:
> Con postgis ha funzionato perfettamente, anche se ci ha messo un sacco
> di tempo, forse dovevo utilizzare gli indici spaziali (in effetti però

Si. Gli indici spaziali sono un "must" per il clip.

> non ho provato a controllare l'integrità geometrica). Ho provato a fare
> la stessa cosa con spatialite, ma continuo ad ottenere tabelle vuote.
> Probabimente la sintassi non è sovrapponibile con quella di postgis.

strano....

Non dovrebbe esserci niente.

l'unica differenza e' l'impiego di 1/0 al posto di true/false in
ST_Intersects(..)

Andrea.
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
540 iscritti al 4.11.2011