[Gfoss] Grass double precision field
Marco Guiducci
marcoguiducci a ymail.com
Mer 28 Nov 2012 13:50:24 CET
----- Messaggio originale -----
> Da: "a.furieri a lqt.it" <a.furieri a lqt.it>
> A: gfoss a lists.gfoss.it
> Cc:
> Inviato: Mercoledì 28 Novembre 2012 13:14
> Oggetto: Re: [Gfoss] Grass double precision field
>
> On Wed, 28 Nov 2012 11:44:37 +0000 (GMT), Marco Guiducci wrote:
>> Il valore dell'area calcolata di è di 0.999021.
>> Questo valore lo posso leggere sia da QGis, sia dalla gui di grass,
>> sia da shell, ovviamente.
>> Domanda: essendo il campo un double precision (lungo 20), mi sarei
>> aspettato di leggere più decimali (perché mi occorrono più decimali
>> per discriminare i poligoni in base alla loro superficie).
>>
>
> Marco,
>
> le variabili "double precision" sono numeri binari a virgola mobile
> conformi allo standard IEEE 754:
> http://it.wikipedia.org/wiki/IEEE_754
>
> come puoi vedere, proprio in quanto "a virgola mobile", non hanno
> un numero predeterminato di cifre intere e decimali, dipende tutto
> dal valore che viene effettivamente memorizzato.
> approssimativamente, la somma delle cifre decimali e di quelle
> intere e' 17 o 18 (non aspettarti un valore esatto, perche' essendo
> un formato binario non ha un'esatta corrispondenza in base10)
>
> dato che per qualsiasi sw e' del tutto impossibile sapere a priori
> quante cifre decimali (precisione) sono effettivamente disponibili,
> si usa sempre visualizzare una rappresentazione approssimativa ed
> arrotondata che utilizza un numero limitato di cifre decimali:
> tipicamente 4 oppure 6, molto piu' raramente 8.
>
> questo non significa affatto che il valore memorizzato internamente
> abbia subito un troncamento: e' semplicemente la visualizzazione che
> avviene in modo arrotondato, sia per consentire un piu' agevole
> allineamento delle cifre in colonna, sia per evitare di esporre un
> numero esagerato di decimali poco significativi.
>
> insomma, non e' affatto un problema di GRASS; e' semplicemente una
> specie di "convenzione standard" adottata universalmente da qualsiasi
> sw che si trovi a dovere visualizzare/stampare valori floating point.
>
ok, quel che dici non mi è nuovo.
Sto solo cercando un sistema per vederli quei decimali, visto che ci sono :-)
per ora mi accontento di questo
v.out.ascii input=miobuffer dp=16 columns=Area
così vedo i valori dell'area di tutti i buffer, trovo la soglia che serve per poi fare una select.
(serebbe più carino nelle gui, compreso QGis, un'opzione per vedere qualcosina di più ;-)
Purtroppo si lavora con buffer di 40 cm su punti distanti pochi centimetri, ma con coordinate a 7 cifre sulla parte intera :-(
grazie
marco
Maggiori informazioni sulla lista
Gfoss