[Gfoss] Trasformazione per punti omologhi in PostGIS

Andrea Peri aperi2007 a gmail.com
Mar 18 Ago 2015 14:54:16 CEST


Penso che convenga delimitare il problema.
Infatti il problema della segmentiazzione che rovina la topologia vale
per dataset poligonali.
Penso che non valga per quelli lineari e corretti topologicamente.

Quindi, nel caso dei poligoni:
Una possibile soluzione potrebbe essere prendere le linee di bordo,
rimuovere le linee sovrapposte , segmentizzare quelle, convertire in
altro sistema di riferimento e poi ricostruire nuovamente i poligoni.

L'approccio della griglia non sono sicuro che possa funzionare
Il problema e' che nelle simplefeautre ci sono due linee che
dovrebbero essere perfettamente uguali che vengono necessariamente
percorse in sensi opposti.
Per cui a seconde del verso in cui viene percorso l'approssimazione
del nuovo vertice aggiunto potrebbe fare scattare il vertice su una
cella oppure su quella accanto.

A.


Il 18 agosto 2015 14:36, G. Allegri <giohappy a gmail.com> ha scritto:
> Non perdiamo il filo.
> Sto dicendo che la preserve topology funziona in una multipart, quindi in un
> certo senso tra geometrie distinte anche se facenti parti dello stesso
> elemento (multiline o multipolygon).
> Io l'ho usato abbondantemente in passato e ti assicuro che funziona. Provo a
> non usarla e vedi che belle schifezze che vengono con una simplify normale.
>
> Tornando al discorso originale, dicevo solo che serve un meccanismo simile
> (da vedere come potrebbe essere riprodotto, e da usare su elementi diversi)
> che permetta di eseguire la trasformazione mantenendo i rapporti
> topoloigoc-spaziali invariati.
> Un approccio molto banale potrebbe essere l'impiego di una griglia, con
> dimensioni della cella ottenute a partire all'errore della trasformazione,
> sulla cui base verrebbero aggiunti i vertici intermedi alle geometrie
> (geometrie adiacenti si ritroverebbero vertici aggiuntivi nella stessa
> posizione), per poi applicare la trasformazione.
>
>
>
> Il giorno 18 agosto 2015 14:30, Andrea Peri <aperi2007 a gmail.com> ha
> scritto:
>>
>> Non so se in una multiparte viene preservata.
>> Non ci conterei troppo.
>>
>> Ma comunque il problema e' tra oggetti distinti.
>> La preservazione internamente a un oggetto (e un oggetto multiparte,
>> cioe' coposto di 2 o piu'parti e' comunque un unico oggetto) e' meno
>> del minimo.
>>
>> Un qualsiasi poligono anche il piu' fetido preso da solo se non ha
>> invalidita' geometriche e' implicitamente topologico.
>> La topologia e' una caratteristica che connota le relazioni tra
>> oggetti distinti e diversi. E quindi non ha senso guardarla
>> internamente a un singolo oggetto.
>>
>> A.
>>
>>
>>
>> Il 18 agosto 2015 14:24, G. Allegri <giohappy a gmail.com> ha scritto:
>> >> No, la semplificazione con preservamento della topologia preserva solo
>> >> la posizione dei nodi.
>> >>
>> >> Non nei vertici intermedi.
>> >> Per cui la topologia e' comunque rovinata.
>> >
>> >
>> > ???
>> > Tra oggetti distinti ok, ma in una multipart viene preservata, come no?
>> > https://trac.osgeo.org/postgis/wiki/UsersWikiSimplifyPreserveTopology
>> >
>> >
>> >>
>> >>
>> >> A.
>> >>
>> >>
>> >> Il 18 agosto 2015 13:55, G. Allegri <giohappy a gmail.com> ha scritto:
>> >> > Sicuro, questi meccanismi, volendo anche semiautomatici
>> >> > (segmentazione
>> >> > basata sull'errore della trasformazione) devono mantenere la
>> >> > correttezza
>> >> > topologica. Ovvio che su una struttura topologica questo viene da sé,
>> >> > altrimenti servono meccanismi più sofisticati, come nella
>> >> > semplificazione
>> >> > con preservamento della topologia.
>> >> >
>> >> > giovanni
>> >> >
>> >> > Il 18/ago/2015 13:32, "Andrea Peri" <aperi2007 a gmail.com> ha scritto:
>> >> >>
>> >> >> Pero' non va fatto in automatico, deve essere una azione voluta e
>> >> >> ponderata.
>> >> >> Infatti la segmentize rishcia di rompere la eventuale precisione
>> >> >> topologica del dato.
>> >> >>
>> >> >> Infatti, quando si va a segmentizzare per distanza, ogni linea viene
>> >> >> segmentizzata autonomamente.
>> >> >> Questo potrebbe comportare che i vertici di due linee sovrapposte
>> >> >> che
>> >> >> in partenza erano perfettamente coincidenti, poi non lo sono piu',
>> >> >> perche' in una linea e nell'altra si sono aggiunti vertici in punti
>> >> >> differenti.
>> >> >>
>> >> >> Questo e' quasi sicuro se le due linee sono percorse in senso
>> >> >> opposto.
>> >> >> e questo succede sicuramente se le due linee sono coincidenti e
>> >> >> appartenenti a due poligoni confinanti.
>> >> >>
>> >> >> Ecco che si entra subito in un discorso di topologia.
>> >> >> Un conto e' fare queste cose in un mondo topologico (in una vera
>> >> >> struttura topologica) e un conto e' farle in un mondo
>> >> >> simple-feature,
>> >> >> dove appena tocchi qualcosa rompi degli equilibri fragilissimi.
>> >> >>
>> >> >> A.
>> >> >>
>> >> >>
>> >> >> Il 18 agosto 2015 13:14,  <a.furieri a lqt.it> ha scritto:
>> >> >> > On Tue, 18 Aug 2015 12:41:47 +0200, G. Allegri wrote:
>> >> >> >>
>> >> >> >> E' proprio quello che intendevo ;)
>> >> >> >>
>> >> >> >> Il 18/ago/2015 12:24, "Andrea Peri"  ha scritto:
>> >> >> >>
>> >> >> >>> Per spiegare meglio:
>> >> >> >>>
>> >> >> >>> il buon vecchio arcims della esri (prodotto ormai dismesso da
>> >> >> >>> tempo) ,
>> >> >> >>> aveva un parametro che se attivato , quando trasformava da una
>> >> >> >>> linea
>> >> >> >>> in un altro sistema di riferimento a un altro, non si limitava a
>> >> >> >>> trasformare i vertici, ma densificava la linea, mettendo un
>> >> >> >>> certo
>> >> >> >>> numero di vertici extra.
>> >> >> >>> Questo per permettere appunto a una linea retta di diventare
>> >> >> >>> "curva".
>> >> >> >>> Ovviamente era piu' lento, e anche produceva roba piu' pesante
>> >> >> >>> visto che aveva piu' vertici, ma con ragione.
>> >> >> >>>
>> >> >> >
>> >> >> > ossia, in termini Spatial SQL (vale tanto per postgis come per
>> >> >> > splite):
>> >> >> > per ottenere un effetto assolutamente identico basta semplicemente
>> >> >> > richiamare la funzione ST_Segmentize() immediatamente prima di
>> >> >> > applicare la trasformazione affine.
>> >> >> >
>> >> >> > ST_Segmentize(geom,  max_segment_length)
>> >> >> >
>> >> >> > la Segmentize ritorna una nuova geometria ottenuta trasformando
>> >> >> > tutti i Linestring o Polygon ricevuti in input in modo tale da
>> >> >> > "spezzare" ciascun singolo segmento in una sequenza di segmentini
>> >> >> > piu' corti, ciascuno dei quali e' individualmente non piu' lungo
>> >> >> > della soglia prefissata dall'argomento <max_segment_length>.
>> >> >> > e quindi in ultima analisi consente di densificare a piacere
>> >> >> > le geometrie da sottoporre a trasformazione.
>> >> >> >
>> >> >> > ciao Sandro
>> >> >>
>> >> >>
>> >> >>
>> >> >> --
>> >> >> -----------------
>> >> >> Andrea Peri
>> >> >> . . . . . . . . .
>> >> >> qwerty àèìòù
>> >> >> -----------------
>> >>
>> >>
>> >>
>> >> --
>> >> -----------------
>> >> Andrea Peri
>> >> . . . . . . . . .
>> >> qwerty àèìòù
>> >> -----------------
>> >
>> >
>> >
>> >
>> > --
>> > Giovanni Allegri
>> > http://about.me/giovanniallegri
>> > Gis3W - http://gis3w.it
>> > Ikare - http://ikare.it
>> > Twitter: https://twitter.com/_giohappy_
>> > blog: http://blog.spaziogis.it
>> > GEO+ geomatica in Italia http://bit.ly/GEOplus
>>
>>
>>
>> --
>> -----------------
>> Andrea Peri
>> . . . . . . . . .
>> qwerty àèìòù
>> -----------------
>
>
>
>
> --
> Giovanni Allegri
> http://about.me/giovanniallegri
> Gis3W - http://gis3w.it
> Ikare - http://ikare.it
> Twitter: https://twitter.com/_giohappy_
> blog: http://blog.spaziogis.it
> GEO+ geomatica in Italia http://bit.ly/GEOplus



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


Maggiori informazioni sulla lista Gfoss