On Tue, Nov 22, 2011 at 09:54:06AM +0100, Andrea Spisni wrote:
> Appare anche utile il cookbook...soprattutto questa parte!: > -------- > > Notes for polygons: > > * polygon_0 are the holes > * polygon_1 are the areas with one centroid > * polygon_2 are the area with two centroids (overlapped areas) Argomento molto caldo in questo periodo ! Ho visto questo layout a Zurigo, dove sono andato proprio per parlare di topologia con gli sviluppatori di QGis e di GRASS. Scusate il thread hijacking, ma colgo l'occasione per trovare utilizzatori del miglior supporto topologico attualmente esistente (GRASS) per modellare quello emergente in PostGIS [1] [1] http://strk.keybit.net/blog/2011/10/14/postgis-topology-iso-sqlmm-complete/ Dal confronto avuto a Zurigo il modello di basso livello topologico GRASS/PostGIS/ISO e' pressocche' lo stesso. Quel che cambia e' il modo in cui si assegnano gli attributi alle "primitive topologiche". In GRASS gli attributi delle aree si assegnano a dei "centroidi". In questo modo una feature costituita da piu' aree disgiunte (multipolygon) avra' piu' "centroidi" (uno per ogni faccia topologica). In PostGIS gli attributi si assegnano a liste di componenti primitivi identificati con un numero (anziche' con una posizione geografica, come succede per il "centroide" di GRASS). In entrambi i casi l'estrazione dell'informazione: > * polygon_0 are the holes > * polygon_1 are the areas with one centroid > * polygon_2 are the area with two centroids (overlapped areas) ... necessita del layer semantico (quello con gli attributi), perche' e' proprio la presenza o meno di "centroidi" (in GRASS) o di "TopoGeometry" (in PostGIS) a determinare l'appartenenza di ogni faccia topologica ad una delle categorie sopra, che potremmo ridefinire in questo modo: * Facce che non appartengono ad alcuna feature * Facce che appartengono ad una feature * Facce che appartengono ad piu' di una feature Proprio in questi giorni mi sono trovato a convertire un dataset particolarmente complesso verso una topologia PostGIS di base. La complessita' del dataset era appunto dovuta alla gran quantita' di overlap e underlap (gap) che mettevano a dura prova la stabilita' numerica degli algoritmi di PostGIS (ora tutti irrobustiti). Come esperimento, una volta importato il dataset, ho indagato le possibilita' di cleanup esistenti con il solo livello primitivo: http://strk.keybit.net/blog/2011/11/21/topology-cleaning-with-postgis Ma ovviamente, avendo soltanto costruito la topologia di base (ISO: nodi, edge, facce), non avevo il livello feature (TopoGeometry) e quindi non avevo la possibilita' di fare un'analisi di quali facce appartenessero a zero, una o piu' features. Importare la topologia di base in PostGIS e' molto semplice, c'e' una funzione ISO: ST_CreateTopoGeo(<toponame>, <collection_of_geometries>). Ma importare le proprie _features_ semplici in modo da crearne di equivalenti ma topologicamente definite richiede un procedimento ad oggi piu' complesso. Si tratterebbe di andare ad identificare, per ogni feature, quali siano i componenti di base che la costituiscono, ed aggiungere nuovi componenti di base ove quelli gia' presenti non fossero sufficienti. Ho immaginato che questa complessita' di conversione (da Geometry a TopoGeometry) possa essere di gran lunga semplificata con l'implementazione di una funzione di import/conversione che dati in input una Geometry e il nome di una topologia, si occupi di creare tutti gli elementi che servono a definirla topologicamente e ritorni una TopoGeometry pronta a l'uso. Il ticket per la funzione: http://trac.osgeo.org/postgis/ticket/1017 Tale funzione, che potrebbe essere alla base di una routine di import topologico equiparabile a quella esistente per GRASS (con la differenza avere il risultato integrato nel database), puo' essere implementata e distribuita con PostGIS-2.0.0 se si riesce a farla entro la fine di Dicembre. Qualcuno ha messo a disposizione parte del budget necessario per il lavoro. Restano ancora da trovare circa 2500 euro. Basterebbero 10 donazioni da 250 euro per raggiungere la cifra, oppure 50 donazioni da 50 euro. Se volete partecipare alla colletta di natale: http://www.pledgebank.com/postgistopology Oppure scrivetemi in privato per possibili alternative. Grazie! --strk; () Free GIS & Flash consultant/developer /\ http://strk.keybit.net/services.html _______________________________________________ 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 |
Free forum by Nabble | Edit this page |