[Gfoss] Confronto calcolo di aree tra QGIS e POSTGIS con TRIGGER

Massimiliano Moraca info a massimilianomoraca.it
Ven 27 Dic 2019 16:51:50 CET


Si, in effetti impostando 32633 al posto di 3857 il risultato cambia di
molto anche se non è comunque identico. Mi trovo un 0.692005 da PostGIS e
0.692478 da QGIS.
So che 3857 non andrebbe usato per il calcolo delle aree(in generale non
andrebbe usato) ma essendo un test con in un DB di test era il primo EPSG
che mi è venuto in mente e l'ho usato. Certo non mi aspettavo errori così
madornali! Fortuna che era un test!

*ing.Massimiliano Moraca*
*Analisi, progettazione e sviluppo di soluzioni GIS e WebGIS*
*P.IVA*: 08700081212
*CELL*: 333 59 49 583 (*lun - ven 9.00 - 18.00*)
*WEB*: www.massimilianomoraca.it
* Attività svolta ai sensi della Legge 4 del 14 gennaio 2013, art.1*


Il giorno ven 27 dic 2019 alle ore 16:32 Roberto Marzocchi <
roberto.marzocchi a gter.it> ha scritto:

> Per prima cosa ti sconsiglio di fare calcoli su aree usando il 3857 che ha
> delle deformazioni che fanno spavento.. In passato ho fatto delle prove su
> una griglia 80mx80m e un lato mi risultava di 110m
>
> Dalle proprietà del progetto di QGIS puoi vedere quale ellissoide usa per
> fare il calcolo delle aree e tendenzialmente QGIS è in gradi di fare il
> calcolo di lunghezze e aree sull'ellissoide (volendo puoi dirgli anche di
> fare misure planimetriche ma usando 3857 come dicevo sopra lo ritengo
> pericoloso.
>
> PostGIS da quello che si legge sul manuale [1] fa calcoli solo
> planimetrici usando il SRID che trova.
>
> Per verificare tutto ciò prova a settare anche QGIS in quel modo (misure
> planimetriche) e il dato dovrebbe essere simile (ma attento perchè le
> misure dovrebbero risultare simili, ma sono entrambe fortemente sbagliate!!)
>
> In sintesi differenze ci saranno sempre con i 2 metodi ma almeno cambiando
> CRS dei dati dovresti ridurre gli errori.
> R
>
> [1] https://postgis.net/docs/ST_Area.html
>
> Eng. Roberto Marzocchi, PhD
> GIS Project Coordinator
> Gter srl (Unige spin-off)
> Via Ruffini 9R - 16128 GenovaP.IVA/CF 01998770992
> ph: 010-0899150 - mob: 349-8786575
> E-mail: roberto.marzocchi a gter.itwww.gter.it
>
> --
> Gter socialwww.twitter.com/Gteronline - www.facebook.com/Gteronlinewww.linkedin.com/company/gter-srl-innovazione-in-geomatica-gnss-e-gis
>
> -----------------------------------------------------------------
> Please consider the environment before printing this email!
>
>
>
>
> ---- Attivato Fri, 27 Dec 2019 15:56:23 +0100 *Umberto Minora
> <umbertofilippo a tiscali.it <umbertofilippo a tiscali.it>>* ha scritto ----
>
> solo un'ipotesi, ma in QGIS il progetto è impostato sul sistema di
> riferimento del dato ovvero 3857?
>
> Il 27/dic/2019 15:48 Massimiliano Moraca <info a massimilianomoraca.it> ha
> scritto:
> >
> > Salve a tutti e buon Natale passato.
> > Sto sperimentando i TRIGGER usando PostGIS ed ho creato un semplice
> vettore
> > poligonale in cui è presente una colonna area che deve riempirsi
> > automaticamente dopo la creazione del poligono. L'area deve essere in
> > ettari.
> >
> > Ho quindi creato il mio vettore:
> >
> > > CREATE TABLE buffer
> > > (
> > > id INTEGER PRIMARY KEY,
> > > area_ha DECIMAL
> > > );
> > > SELECT AddGeometryColumn(
> > > 'buffer',
> > > 'geom',
> > > 3857,
> > > 'POLYGON',
> > > 2
> > > );
> >
> > Ed i TRIGGER associati:
> >
> > > CREATE FUNCTION areabuffer_trigger_function() RETURNS trigger AS $$
> > > BEGIN
> > >  NEW.area_ha = ST_AREA(NEW.geom)/10000;
> > >  RETURN NEW;
> > > END;
> > > $$ language plpgsql;
> > >
> > > CREATE TRIGGER areabuffer_trigger
> > >  BEFORE INSERT OR UPDATE
> > >  ON buffer
> > >  FOR EACH ROW
> > >  EXECUTE PROCEDURE areabuffer_trigger_function();
> >
> > Creando il poligono o i poligoni in QGIS e salvando l'editing, il campo
> > *area_ha* viene effettivamente riempito con un valore. Come test ho
> creato
> > un field virtuale nel calcolatore di campi usando la funzione
> `*$area/10000*`
> > ma noto che i valori di area calcolati in QGIS sono diversi da quelli che
> > calcola PostGIS usando il TRIGGER.
> > Ad esempo il poligono 1 ha un valore di area da TRIGGER pari a 36,6917
> > mentre il corrispettivo da QGIS è 20,9879.
> >
> > Come mai?
> >
> > *ing.Massimiliano Moraca*
> > *Analisi, progettazione e sviluppo di soluzioni GIS e WebGIS*
> > *P.IVA*: 08700081212
> > *CELL*: 333 59 49 583 (*lun - ven 9.00 - 18.00*)
> > *WEB*: www.massimilianomoraca.it
> > * Attività svolta ai sensi della Legge 4 del 14 gennaio 2013, art.1*
> > _______________________________________________
> > Gfoss a lists.gfoss.it
> > http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> > Questa e' una lista di discussione pubblica aperta a tutti.
> > I messaggi di questa lista non hanno relazione diretta con le posizioni
> dell'Associazione GFOSS.it.
> > 764 iscritti al 23/08/2019
> _______________________________________________
> Gfoss a lists.gfoss.it
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> I messaggi di questa lista non hanno relazione diretta con le posizioni
> dell'Associazione GFOSS.it.
> 764 iscritti al 23/08/2019
>
>
>
>


Maggiori informazioni sulla lista Gfoss