Re: (senza oggetto)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: (senza oggetto)

Andrea Peri
>SELECT ST_Distance_Sphere(
> ST_Transform(ST_PointFromText('POINT(1626216 4855458)', 3003), 4326),
> ST_Transform(ST_PointFromText('POINT(1626216 4855459)', 3003), 4326)
>);
> st_distance_sphere
>--------------------
>
> 1.0009418016345
>

La stessa query la applico sul mio pg ed ottengo un risultato leggermente, ma inequivocabilmente e decisamente, differente.

1,0009418011511229


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


_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
Reply | Threaded
Open this post in threaded view
|

Re: (senza oggetto)

Luca Delucchi
Il 19 novembre 2009 19.38, Andrea Peri <[hidden email]> ha scritto:

>>SELECT ST_Distance_Sphere(
>>    ST_Transform(ST_PointFromText('POINT(1626216 4855458)', 3003), 4326),
>>    ST_Transform(ST_PointFromText('POINT(1626216 4855459)', 3003), 4326)
>>);
>
>> st_distance_sphere
>>--------------------
>>
>>    1.0009418016345
>
>>
>
> La stessa query la applico sul mio pg ed ottengo un risultato leggermente,
> ma inequivocabilmente e decisamente, differente.
>
> 1,0009418011511229
>
>

a me viene uguale a niccolo

ciao
Luca
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
Reply | Threaded
Open this post in threaded view
|

Re: (senza oggetto)

Andrea Peri
Che configurazione usi ?

La mia e' debian X86_64 con postgres 8.4.0 + postgis 1.4.0 e geos trunk
(dovrebbe essere una 3.2.+)
il tutto compilato dai sorgenti a 64 bit.

Sospetto che la differenza provenga dalla libreria geos.


Luca Delucchi ha scritto:

> Il 19 novembre 2009 19.38, Andrea Peri <[hidden email]> ha scritto:
>  
>>> SELECT ST_Distance_Sphere(
>>>    ST_Transform(ST_PointFromText('POINT(1626216 4855458)', 3003), 4326),
>>>    ST_Transform(ST_PointFromText('POINT(1626216 4855459)', 3003), 4326)
>>> );
>>>      
>>> st_distance_sphere
>>> --------------------
>>>
>>>    1.0009418016345
>>>      
>> La stessa query la applico sul mio pg ed ottengo un risultato leggermente,
>> ma inequivocabilmente e decisamente, differente.
>>
>> 1,0009418011511229
>>
>>
>>    
>
> a me viene uguale a niccolo
>
> ciao
> Luca
>
>  

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
Reply | Threaded
Open this post in threaded view
|

Re: (senza oggetto)

Niccolo Rigacci
In reply to this post by Andrea Peri
On Thu, Nov 19, 2009 at 07:38:34PM +0100, Andrea Peri wrote:

> >SELECT ST_Distance_Sphere(
> >    ST_Transform(ST_PointFromText('POINT(1626216 4855458)', 3003), 4326),
> >    ST_Transform(ST_PointFromText('POINT(1626216 4855459)', 3003), 4326)
> >);
> > st_distance_sphere
> >--------------------
> >
> >    1.0009418016345
>
> >
>
> La stessa query la applico sul mio pg ed ottengo un risultato leggermente,
> ma inequivocabilmente e decisamente, differente.
>
> 1,0009418011511229


Quella è la seconda prova che ho fatto, che comprende la
ST_Transform(point, 4326). Anche a me in quel caso torna
giustamente 1 metro circa.

L'errore c'era senza ST_Transform(), in quel caso
ST_Distance_Sphere() non funziona.

--
Niccolo Rigacci
Firenze - Italy
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
Reply | Threaded
Open this post in threaded view
|

Re: (senza oggetto)

Andrea Peri
Il problema e' che il valore che ritorna a me e' differente da quello che il tuo PG ritorna.
:(

Ora mi tocca scervellarmi per scoprire quale cavolo di libreria e' in difetto.



Il giorno 20 novembre 2009 07.16, Niccolo Rigacci <[hidden email]> ha scritto:
On Thu, Nov 19, 2009 at 07:38:34PM +0100, Andrea Peri wrote:
> >SELECT ST_Distance_Sphere(
> >    ST_Transform(ST_PointFromText('POINT(1626216 4855458)', 3003), 4326),
> >    ST_Transform(ST_PointFromText('POINT(1626216 4855459)', 3003), 4326)
> >);
> > st_distance_sphere
> >--------------------
> >
> >    1.0009418016345
>
> >
>
> La stessa query la applico sul mio pg ed ottengo un risultato leggermente,
> ma inequivocabilmente e decisamente, differente.
>
> 1,0009418011511229


Quella è la seconda prova che ho fatto, che comprende la
ST_Transform(point, 4326). Anche a me in quel caso torna
giustamente 1 metro circa.

L'errore c'era senza ST_Transform(), in quel caso
ST_Distance_Sphere() non funziona.

--
Niccolo Rigacci
Firenze - Italy



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


_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
Reply | Threaded
Open this post in threaded view
|

Re: (senza oggetto)

Stefano Salvador
>Il problema e' che il valore che ritorna a me e' differente da quello che il
>tuo PG ritorna.

considera che ST_Transform in questo caso opera una trasformazione di
elissoide e quindi utilizza delle formule approssimate, la differenza
(0.0000005 mm circa ...) può essere dovuta anche all'archittettura hardware
(32 vs 64 bit) oppure a dei parametri di trasformazione lievemente diversi.

Comunque la differenza è molto ma molto più piccola di qualsiasi errore di
misura.


Ciao,

Stefano
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
Reply | Threaded
Open this post in threaded view
|

Re: (senza oggetto)

Andrea Peri
Infatti e' senz'altro cosi',

Pero' il computer e' sostanzialmente una macchina deterministica e
questo significa che a input uguali devono corrispondere risposte uguali.
Per cui questa differenza di risultato, per piccola che sia e' un
qualcosa che in analoghe condizioni si ripresentera' sempre.
Ed e' interessante capire quali siano i parametri che fanno divergere il
risultato.

Comunque e' molto probabile che la differenza sia dovuta alla differenza
di architettura.
infatti facendo la prova su un'altra configurazione Linux sempre a 64 bit.

Ottengo il medesimo risultato ovvero
1,0009418011511229

Preciso all'ultimo decimale con il risultato della prova su Debian 64bit.

Sebbene la architettura su cui faccio questa seconda prova pur essendo
sempre una linux a 64 bit sia sensibilmente differente e la Geos era la
3.1.1 released.

Per ora gli indizi vanno tutti verso una differenza di risultati tra 32
e 64 bit.
Probabilmente legato anche alla differente precisione con cui possono
essere effettuati i calcoli.
Mi domando se esiste un metodo per riportare i calcoli di una
configurazione a 64bit alla precisione di una architettura a 32bit,
magari settando qualche parametro di configurazione su Postgis ....

La riproducibilita' del risultato e' un traguardo.



Stefano Salvador ha scritto:

>> Il problema e' che il valore che ritorna a me e' differente da quello che il
>> tuo PG ritorna.
>>    
>
> considera che ST_Transform in questo caso opera una trasformazione di
> elissoide e quindi utilizza delle formule approssimate, la differenza
> (0.0000005 mm circa ...) può essere dovuta anche all'archittettura hardware
> (32 vs 64 bit) oppure a dei parametri di trasformazione lievemente diversi.
>
> Comunque la differenza è molto ma molto più piccola di qualsiasi errore di
> misura.
>
>
> Ciao,
>
> Stefano
>
>  


_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.