[Gfoss] smooth delle isoipse (contour)

Salve,

utilizzando il modulo contour per creare le isoipse le linee vettoriali sono buone ma con tutti gli spigoli con effetto spezzettato.
Esiste un modo per addolcire gli angoli??

Grazie
Alessandro G.

Il 20/06/2014 15:28, alessandro.giordani@katamail.com ha scritto:

Salve,

utilizzando il modulo contour per creare le isoipse le linee vettoriali sono buone ma
con tutti gli spigoli con effetto spezzettato.
Esiste un modo per addolcire gli angoli??

GRASS le produce migliori, e le puo' "allisciare" usando v.generalize

--
Paolo Cavallini - www.faunalia.eu
Corsi QGIS e PostGIS: http://www.faunalia.eu/training.html

GRASS: modulo v.generalize

SAGA: line simplification

QGIS: 1) modulo v.generalize di grass via processing
         2) modulo line simplification di saga via processing
         3) vector-->geometry tools-->simplify geometries

s.

--
View this message in context: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/smooth-delle-isoipse-contour-tp7588474p7588476.html
Sent from the Gfoss -- Geographic Free and Open Source Software - Italian mailing list mailing list archive at Nabble.com.

On Fri, Jun 20, 2014 at 03:28:23PM +0200, alessandro.giordani@katamail.com wrote:

Salve,

utilizzando il modulo contour per creare le isoipse le linee vettoriali sono buone ma con tutti gli spigoli con effetto spezzettato.
Esiste un modo per addolcire gli angoli??

Prova un paio di offset-curve: prima da un lato, poi dall'altro.
Esempio (con PostGIS 2.0+):

ALTER TABLE mytable ADD geom_dolce;
UPDATE mytable SET geom_dolce = ST_OffsetCurve(
  ST_OffsetCurve(geom,2), -- curva di qua
                     -2 -- curva di la !
);

Buon divertimento !

--strk;

On Fri, Jun 20, 2014 at 03:53:50PM +0200, Sandro Santilli wrote:

On Fri, Jun 20, 2014 at 03:28:23PM +0200, alessandro.giordani@katamail.com wrote:
> Salve,
>
> utilizzando il modulo contour per creare le isoipse le linee vettoriali sono buone ma con tutti gli spigoli con effetto spezzettato.
> Esiste un modo per addolcire gli angoli??

Prova un paio di offset-curve: prima da un lato, poi dall'altro.
Esempio (con PostGIS 2.0+):

ALTER TABLE mytable ADD geom_dolce;
UPDATE mytable SET geom_dolce = ST_OffsetCurve(
  ST_OffsetCurve(geom,2), -- curva di qua
                     -2 -- curva di la !
);

In effetti non funziona, addolcisci da una parte ma perdi la dolcezza
dall'altra. Meglio segmentare e generalizzare, in effetti (con PostGIS
ST_Segmentize e ST_Simplify).

--strk;

Il giorno Fri, 20 Jun 2014 06:50:34 -0700 (PDT)
stefano campus <skampus@gmail.com> ha scritto:

......
QGIS: .......
         3) vector-->geometry tools-->simplify geometries

          ^^^^^^^^

Il giorno Fri, 20 Jun 2014 16:23:01 +0200
Sandro Santilli <strk@keybit.net> ha scritto:

On Fri, Jun 20, 2014 at 03:53:50PM +0200, Sandro Santilli wrote:
> On Fri, Jun 20, 2014 at 03:28:23PM +0200,
> alessandro.giordani@katamail.com wrote:
> > ....

..... Meglio segmentare e generalizzare, in effetti (con PostGIS
ST_Segmentize e ST_Simplify).

                  ^^^^^^^^^^^

solo per imparare :slight_smile:

il termine simplify in letteratura (v. RDP algorithm) mi sembra usato
in senso opposto, cioè per ridurre il numero di vertici di una
linestring all'essenziale; la creazione di un offset _più dolce_ credo
necessiti del contrario, cioè un numero maggiore di vertici: sbaglio,
forse nel capire la domanda iniziale ?

--strk;

ciao,
giuliano

On Fri, Jun 20, 2014 at 04:49:40PM +0200, giulianc51 wrote:

il termine simplify in letteratura (v. RDP algorithm) mi sembra usato
in senso opposto, cioè per ridurre il numero di vertici di una
linestring all'essenziale; la creazione di un offset _più dolce_ credo
necessiti del contrario, cioè un numero maggiore di vertici: sbaglio,
forse nel capire la domanda iniziale ?

No, non sbagli. Per quello ero partito con l'idea dell'offset curve
(con join circolari). In effetti con un dataset di prova la
generalizzazione di un densificato non ha alcun effetto.

Allora conviene tornare all' OffsetCurve e giocarci un po' di piu'.
Una unione dei due round-trip offset e' un superset del risultato voluto:

  update spezza3 x set g = st_union(
    st_offsetcurve(st_offsetcurve(i.g,-2),-2), -- non e' un typo
    st_offsetcurve(st_offsetcurve(i.g,2),-2)
  ) from spezza0 i;

Il risultato ha le smussature _e_ anche gli angoli.

In effetti si direbbe una funzionalita' mancante :slight_smile:

--strk;