postgis e query "on the fly"

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

postgis e query "on the fly"

frangex
Salve a tutti.
Oggi mi si è presentato un problema che pensavo fosse banalissimo ma invece non è così: ovvero fare query spaziali con tabelle che hanno srid differenti. Io ero convinto che postgis potesse fare query "on the fly" gestendo srid differenti e invece non è così! Io ho risolto facendo una select annidata con un st_transform per portare tutto al solito srid. Ma ho sbagliato qualcosa io oppure veramente non si possono fare query con tabelle cha hanno srid diversi?

Grazie e saluti a tutti.


_______________________________________________
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.
485 iscritti al 20.11.2010
Reply | Threaded
Open this post in threaded view
|

Re: postgis e query "on the fly"

Luca Delucchi
Il 20 gennaio 2011 13:32, Francesco Geri <[hidden email]> ha scritto:
> Salve a tutti.

ciao francesco

> Oggi mi si è presentato un problema che pensavo fosse banalissimo ma invece
> non è così: ovvero fare query spaziali con tabelle che hanno srid
> differenti. Io ero convinto che postgis potesse fare query "on the fly"
> gestendo srid differenti e invece non è così! Io ho risolto facendo una
> select annidata con un st_transform per portare tutto al solito srid. Ma ho
> sbagliato qualcosa io oppure veramente non si possono fare query con tabelle
> cha hanno srid diversi?
>

intendi query spaziali vero?
se è così direi che è abbastanza normale (forse perchè lavorando tanto
con GRASS che costringe ad avere dati nello stesso sistema di
coordinate)...

> Grazie e saluti a tutti.
>

--
ciao
Luca

www.lucadelu.org
_______________________________________________
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.
485 iscritti al 20.11.2010
Reply | Threaded
Open this post in threaded view
|

Re: postgis e query "on the fly"

a.furieri
In reply to this post by frangex
On Thu, 20 Jan 2011 12:32:46 +0000 (GMT), Francesco Geri wrote
> Io ero convinto che postgis potesse fare query
> "on the fly" gestendo srid differenti
>

Francesco,

certo che puoi (almeno, in linea di massima).
come dici tu stesso, ST_Transform() serve
proprio per questo.

Ma quando tu dici "on the fly", cosa intendi
dire esattamente ?

cerco di farti un esempio "tera tera"; ammesso
che tbl1.geom abbia SRID=32632 mentre
tbl2.geom abbia SRID=4326

---------------------------
SELECT *
FROM tbl1, tbl2
WHERE ST_Intersects(tbl1.geom, tbl2.geom);

questa sicuramente fallisce, perchè SQL non ha la bacchetta
magica, e non ha nessuna idea che tu intendi applicare
una riproiezione.

------------------------
SELECT *
FROM tbl1, tbl2,
WHERE ST_Intersects(tbl1.geom, ST_Transform(tbl2.geom, 32632));

oppure

SELECT *
 FROM tbl1, tbl2,
 WHERE ST_Intersects(ST_Transform(tbl1.geom, 4326), tbl2.geom);

invece queste funzioneranno sicuramente,
perchè ora *entrambe* le geometrie appartengono
al medesimo SRID
ma glielo devi spiegare tu a SQL che occorre
applicare una riproiezione :-)

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.
485 iscritti al 20.11.2010
Reply | Threaded
Open this post in threaded view
|

Re: postgis e query "on the fly"

frangex

questa sicuramente fallisce, perchè SQL non ha la bacchetta 
magica, e non ha nessuna idea che tu intendi applicare
una riproiezione.

------------------------
SELECT *
FROM tbl1, tbl2,
WHERE ST_Intersects(tbl1.geom, ST_Transform(tbl2.geom, 32632));

oppure

SELECT *
FROM tbl1, tbl2,
WHERE ST_Intersects(ST_Transform(tbl1.geom, 4326), tbl2.geom);

invece queste funzioneranno sicuramente,
perchè ora *entrambe* le geometrie appartengono
al medesimo SRID
ma glielo devi spiegare tu a SQL che occorre
applicare una riproiezione :-)

ciao Sandro
Si. Esattamente come ho fatto anch'io.
select count(*) from flora3,bioitaly where st_contains(st_transform(bioitaly.the_geom,4326),flora3.the_geom) and bioitaly."DESCZPS" like '%Apuane%';
Solo che speravo che postgis avesse la bacchetta magica appunto e facesse una riproiezione al volo in funzione degli srid. Ho preteso un po' troppo. :-)
Grazie e ciao!

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.
485 iscritti al 20.11.2010
Reply | Threaded
Open this post in threaded view
|

gdal rasterize

albertobonati
In reply to this post by a.furieri
Salve a tutti.

Volevo utilizzare gdal rasterize per rasterizzare uno shapefile
contenente curve di livello in un file geotiff.
il comando lo trovo anche in qgis, ma mi dice che il file .tif deve già
esistere ma non capisco come creare questo .tif vuoto...
Ho provato anche a lanciare gdal rasterize da riga di comando per creare
il file tif ex novo, aggiungendo il parametro -ts...
mi sa che manca qualcosa....

ciao e grazie

alberto

_______________________________________________
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.
485 iscritti al 20.11.2010
Reply | Threaded
Open this post in threaded view
|

Re: gdal rasterize

Luca Delucchi
Il 20 gennaio 2011 15:24, albertobonati <[hidden email]> ha scritto:
> Salve a tutti.
>
> Volevo utilizzare gdal rasterize per rasterizzare uno shapefile contenente
> curve di livello in un file geotiff.
> il comando lo trovo anche in qgis, ma mi dice che il file .tif deve già
> esistere ma non capisco come creare questo .tif vuoto...
> Ho provato anche a lanciare gdal rasterize da riga di comando per creare il
> file tif ex novo, aggiungendo il parametro -ts...
> mi sa che manca qualcosa....


ma non è che sbagli e metti la destinazione nel sorgente? gdal da
linea di comando funziona così, prima la destinazione e poi il
sorgente (strano ma vero :-) )

>
> ciao e grazie
>
> alberto
>

--
ciao
Luca

www.lucadelu.org
_______________________________________________
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.
485 iscritti al 20.11.2010
Reply | Threaded
Open this post in threaded view
|

Re: gdal rasterize

Paolo Corti
In reply to this post by albertobonati
> Volevo utilizzare gdal rasterize per rasterizzare uno shapefile contenente
> curve di livello in un file geotiff.
> il comando lo trovo anche in qgis, ma mi dice che il file .tif deve già
> esistere ma non capisco come creare questo .tif vuoto...
> Ho provato anche a lanciare gdal rasterize da riga di comando per creare il
> file tif ex novo, aggiungendo il parametro -ts...
> mi sa che manca qualcosa....

ciao
dalla pagina di documentazione:

dst_filename:
The GDAL supported output file. Must support update mode access.
Before GDAL 1.8.0, gdal_rasterize could not create new output files.

Quindi con GDAL 1.8 non avresti problemi, con versioni precedenti devi
creare tu stesso il raster di output prima di lanciare gdal_rasterize.

Esiste anche una FAQ che spiega la questione, e fornisce possibili
soluzioni per generare il raster di output:
http://trac.osgeo.org/gdal/wiki/FAQRaster#Howtoconvertarastertoalayerofpolygons

L'approccio con  gdal_translate mi sembra quello piu' semplice nella
maggior parte dei casi.
Ovviamente tutto cio' se non ti e' possibile effettuare l'update a GDAL 1.8 ;)

ciao
P

--
Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @paolo_corti
_______________________________________________
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.
485 iscritti al 20.11.2010
Reply | Threaded
Open this post in threaded view
|

Re: gdal rasterize

pcav
Il giorno gio, 20/01/2011 alle 15.55 +0100, Paolo Corti ha scritto:
> Quindi con GDAL 1.8 non avresti problemi, con versioni precedenti devi
> creare tu stesso il raster di output prima di lanciare gdal_rasterize.
>
> Esiste anche una FAQ che spiega la questione, e fornisce possibili
> soluzioni per generare il raster di output:
> http://trac.osgeo.org/gdal/wiki/FAQRaster#Howtoconvertarastertoalayerofpolygons
>
> L'approccio con  gdal_translate mi sembra quello piu' semplice nella
> maggior parte dei casi.

Se usi QGIS, un'alternativa semplice e' utilizzare il raster calculator
e trasformare un raster esistente con raster*0
Saluti.
--
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.
485 iscritti al 20.11.2010
Reply | Threaded
Open this post in threaded view
|

Re: gdal rasterize

albertobonati
Il 21/01/2011 9.01, Paolo Cavallini ha scritto:
> Se usi QGIS, un'alternativa semplice e' utilizzare il raster calculator
> e trasformare un raster esistente con raster*0
> Saluti.
Grazie a tutti per i consigli.

Ho scaricato la gdal 1.8 e con quella il file lo crea ex novo, il
problema era che credevo di avere l' ultima versione di gdal ma non era
così...

Non ho comunque risolto il problema visto che mi crea una immagine tutta
rigata (sembra che generi una colonna di pixel si ed una no...). Ho
provato a modificare i parametri -b e -burn ma nulla da fare e d'
altronde la guida non è molto ricca di esempi.

Non so se il problema deriva dal fatto di creare ex novo il file,

Altro problema è che il file shp con le curve di livello, ottenuto con
gdal contour senza problemi, è uno shp che contiene le curve di livello
con dettaglio 10 mt di una estensione corrispondente ad un grado di
ampiezza e il file rasterizzato dpovrebbe essere molto grande, il mio
scopo sarebbe poi di trasformarlo in tiles.

Non ho trovato nulla che mi generi direttamente le tiles da shp, mi
viene comunque il dubbio che gdal rasterize non sia adatto allo scopo.

ciao

alberto

_______________________________________________
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.
485 iscritti al 20.11.2010
Reply | Threaded
Open this post in threaded view
|

Re: gdal rasterize

Paolo Corti
> Non ho comunque risolto il problema visto che mi crea una immagine tutta
> rigata (sembra che generi una colonna di pixel si ed una no...). Ho provato
> a modificare i parametri -b e -burn ma nulla da fare e d' altronde la guida
> non è molto ricca di esempi.
>
> Non so se il problema deriva dal fatto di creare ex novo il file,

secondo me devi aumentare la risoluzione dell'output, per far cio'
puoi impostare ad es. il parametro -ts

> Altro problema è che il file shp con le curve di livello, ottenuto con gdal
> contour senza problemi, è uno shp che contiene le curve di livello con
> dettaglio 10 mt di una estensione corrispondente ad un grado di ampiezza e
> il file rasterizzato dpovrebbe essere molto grande, il mio scopo sarebbe poi
> di trasformarlo in tiles.

le tile si generano a partire da un immagine, quindi nel tuo caso e'
giusto l'approccio di rasterizzare inizialmente lo shapefile.
Puoi usare poi gdal_retile (un'altra utility di GDAL) per generare le
tiles (puoi anche impostare piu livelli piramidali).

ciao
P

--
Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @paolo_corti
_______________________________________________
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.
485 iscritti al 20.11.2010