[Gfoss] Comparazione di due poligoni vettoriali: è possibile?

Salve a tutti,
mi piacerebbe sapere se è possibile confrontare due poligoni
vettoriali e ricavarne un valore di corrispondenza.

La mia domanda ha poca affinità col dato geografico, ma avendo dei
profili di oggetti vettorializzati in svg o dxf, vorrei capire se a
partire da strumenti propri del GIS è possibile arrivare a fare delle
comparazioni.

In realtà potrei applicarlo anche alle forme degli edifici, per
esempio delle piante di chiese e capire quanto due piante sono simili
tra loro.

Il tutto partirebbe da una esigenza fondamentale in archeologia, dove
si categorizzano i disegni dei profili degli oggetti in base alla
similitudine per sovrapposiazione e vedendo (non ridete please) i
bellissimi software di CSI che confrontano le impronte digitali, mi
chiedevo se esisteva qualcosa di simile nel mondo opensource...

...se devo telefonare al RIS di Parma ditemelo...però se finisco
inquisito mi avrete sulla coscienza! :slight_smile:

Grazie a tutti!

Luca

http://en.wikipedia.org/wiki/Hausdorff_distance

implementato direttamente da GEOS (versioni recenti), e quidi
supportato sia da PostGIS che da SpatiaLite
http://postgis.refractions.net/docs/ST_HausdorffDistance.html

ciao Sandro

--
Il messaggio e' stato analizzato alla ricerca di virus o
contenuti pericolosi da MailScanner, ed e'
risultato non infetto.

Wow! Grazie Alessandro per la lesta risposta...(e per non avermi preso
in giro : )).

Non avendo mai utilizzato le funzioni da query postgis, leggendo gli
esempi mi perdo sempre un attimo:

La query dell'esempio

SELECT st_HausdorffDistance(
        'LINESTRING (0 0, 2 0)'::geometry,
        'MULTIPOINT (0 1, 1 0, 2 1)'::geometry);

Diventerebbe così se dovessi confrontare due poligoni della medesima
tabella ma con id diversi?

SELECT st_hausdorffdistance(SELECT geom_1 FROM tab_1 WHERE 'ID' = 1,
SELECT geom_1 FROM tab_1 WHERE 'ID' = 2)

On Mon, Oct 01, 2012 at 12:23:27PM +0200, Luca Mandolesi wrote:

Diventerebbe così se dovessi confrontare due poligoni della medesima
tabella ma con id diversi?

SELECT st_hausdorffdistance(SELECT geom_1 FROM tab_1 WHERE 'ID' = 1,
SELECT geom_1 FROM tab_1 WHERE 'ID' = 2)

SELECT ST_HausdorffDistance(a.geom, b.geom) FROM tab_1 a, tab_1 b
WHERE a.id = 1 and b.id = 2;

--strk;

http://www.cartodb.com - Map, analyze and build applications with your data

                                       ~~ http://strk.keybit.net

On Mon, 1 Oct 2012 12:23:27 +0200, Luca Mandolesi wrote:

Diventerebbe così se dovessi confrontare due poligoni della medesima
tabella ma con id diversi?

SELECT st_hausdorffdistance(SELECT geom_1 FROM tab_1 WHERE 'ID' = 1,
SELECT geom_1 FROM tab_1 WHERE 'ID' = 2)

io personalmente me la scriverei in questa forma qua :wink:

SELECT ST_HausdorffDistance(a.geom, b.geom)
FROM my_table AS a, my_table AS b
WHERE a.id = 1 AND b.id = 2;

ciao Sandro

--
Il messaggio e' stato analizzato alla ricerca di virus o
contenuti pericolosi da MailScanner, ed e'
risultato non infetto.

Grazie a tutti! Provo subito...poi magari vi chiedo se è corretta
l'interpretazione del dato di uscita che ne darei...

Ciao
Luca

Cosa carina, ho trovato questo articolo sull'argomento della
housedorff distance applicato tramite python, ma non capisco come come
utilizzarla. Per caso qualche pythonaro capisce come utilizzarlo,
magari in connubio con qualche funzione di pyQgis per ricavare le
coordinate?

http://www.alexandria.ucsb.edu/~gjanee/archive/2003/similarity.html