[Gfoss] catasto: prossimo passo..

Bud P. Bruegger bud a comune.grosseto.it
Lun 14 Gen 2008 18:17:25 CET


Sto pensando al prossimo passo da fare per raggiungere la
"pseudo-congruenza" tra catasto e CTR.  Scrivo che ho in mente per
avere critiche, suggerimenti, commenti.

Come descritto nei mails precedenti, con una trasformazione globale per
tutti fogli catastali sono arrivato a un "match" iniziale dove un
fabbricato catastale normalmente e' piu' o meno sopra il suo
equivalente della CTR.  

Guardanto i dati nel mio comune, ho i seguenti impressioni:
* la trasformazione fatta non e' ancora soddisfacente
* la differenza rimanente tra edifici in catasto e CTR su un singolo
foglio sembra molte bene descritto con una translazione (non mi sembra
necessario una rotazione).
* ci sono notevoli (e non sistematici) differenze tra la translazione
in un foglio e uno accanto.  

Per questo penso che e' necessario una trasformazione aggiuntiva
separato per folgio e vorrei trovare in automatico i punti di
correspondenza da usare.  Poi posso decidere in un secondo passo che
tipo di trasformazione usare (solo translazione, helmert, affine...)

Avendo gia una sopraposizione rozza, pensavo al seguente algorithmo per
avere punti di correspondenza:

1. un spatial join dai fabbricati del catasto con quelle della CTR:  
* il centroide del uno deve essere contenuto nel altro poligono
* butto tutti casi dove questo non e' unico
  (un modo costoso di farlo e' sceglere il poligono con la minima
   distanza tra centroide a centroide)
* butto tutto casi dove non trovo una soluzione (ad es, dove il
centroide non e' contenuto nel poligono)

2. condizioni aggiuntivi per il join sopra che seleziona i "match" buoni
da usare per punti di coincidenza e cattivi da scartare:
* il numero di vertici dei poligoni devono essere uguali (ST_NumPoints)
* i poligoni devono essere molto simili in una rappresentanza che e'
invariante alla translazione:
- rappresento il poligono in un sistema locale col origine nel
centroide.  
- Misuro un modo o altro la diversita' ad esempio:
. area della differenza (diviso perimetro) sotto una certa soglia 
  (ST_Difference, ST_Area, ST_Perimeter) 
. distanza massimo del bordo di un poligono al altro 
  (ST_Boundary, ST_max_distance)
. qualche alternativa e come implementarla in postgis?

3. prendere tutti i vertici dei poligoni scelti come correspondence
points.  Ancora non ho capito come esprimere questo in SQL (dissolvere
il poligono in punti, fare un join ti tutti set di punti per ogni
foglio).  Ma al limite qui si puo operare con un programmino
esterno...) Idee?

Che ne pensate?  Che avete fatto voi di simile/diverso?

saluti
-b

-- 
Bud P. Bruegger, Ph.D.          +39-0564-488577 (voice),  -21139 (fax) 
   European Chair, Global Collaboration Forum on eID
   Chair, Porvoo Subgroup on collab. govs/operating systems
   Leader of the Permanent eID Status Observatory (PESO) project
Servizio Elaborazione Dati       e-mail:  bud at comune.grosseto.it
Comune di Grosseto               jabber:  bud at jabber.no
Via Ginori, 43                   http://www.comune.grosseto.it/
58100 Grosseto (Tuscany, Italy)
http://www.comune.grosseto.it/interopEID/



Maggiori informazioni sulla lista Gfoss