[postgis-users] [postgis-devel] Sphere or Spheroid

Paragon Corporation lr at pcorp.us
Fri Oct 30 16:48:40 PDT 2009


 
The choice of default sphere vs. spheroid is probably something we should
ask the general PostGIS users group so cc'ing them since more people
frequent that list that would have strong opinions on this subject.

So question folks -- is which do you prefer as default behavior for new
geography data type

faster sphere calculation (with 0.05% - 1% margin error) (I vaguely recall
that's what my studies suggested around the globe compared to UTM)

or 
slower more accurate spheroid calculation

Keep in mind -- this is just default behavior without an extra arg to the
functions, you can use both in your work.

details of current functions below

http://www.postgis.org/documentation/manual-svn/ch08.html#PostGIS_GeographyF
unctions

Thanks,
Regina  
-----Original Message-----
From: postgis-devel-bounces at postgis.refractions.net
[mailto:postgis-devel-bounces at postgis.refractions.net] On Behalf Of Paul
Ramsey
Sent: Friday, October 30, 2009 7:41 PM
To: PostGIS Development Discussion
Subject: Re: [postgis-devel] Sphere or Spheroid

Oh, BTW, we could just as easily have a utility function
geography_set_spheroid(bool) that you can call from SQL that will manipulate
the global variable. That's all that the SET command ends up doing in the
end anyways.

P.

On Fri, Oct 30, 2009 at 4:29 PM, Paragon Corporation <lr at pcorp.us> wrote:
> Ah okay, maybe that was why we decided against it last time.  You 
> should put that in the notes.  Anyrate even if we had GUC, I would 
> still go with the multiple signatures as well since you may want 
> different behavior for a specific query or when you are comparing numbers
(you want both).
>
>
>
> -----Original Message-----
> From: postgis-devel-bounces at postgis.refractions.net
> [mailto:postgis-devel-bounces at postgis.refractions.net] On Behalf Of 
> Paul Ramsey
> Sent: Friday, October 30, 2009 7:25 PM
> To: PostGIS Development Discussion
> Subject: Re: [postgis-devel] Sphere or Spheroid
>
> I did GUC research this morning and even did a GUC implementation! I 
> don't think it makes this decision any less relevant, because frankly 
> the default will rule 95% of the users. So choosing the "right"
> default is a good idea.
>
> Anyhow, on the GUC, a module-controlled GUC has an issue, in that the 
> GUC can't exist until it's initialized by the module, and the 
> initialization routine for the module is not executed until the first 
> time a module function is called. So, running "SET 
> geography.use_spheroid = true" will return an error if it's the first 
> thing you do, but will work if you first do something like "SELECT 
> ST_AsText('POINT(0 0)'::geography)" to force the module to load
>
> In all, a non-happy situation, so I have opted for function signatures 
> for now, unless someone can tell me I should do otherwise.
>
> P.
>
> On Fri, Oct 30, 2009 at 4:10 PM, Paragon Corporation <lr at pcorp.us> wrote:
>> I'm still dreaming of the GUC by the way.
>> http://trac.osgeo.org/postgis/ticket/267 to make this decision less 
>> relevant.
>
>
>>
>> What is bool (will that mean True if you want measured in sphere?).
>> Regardless of what default you decide, that boolean has to mean the 
>> same thing I think. (but I guess that's not too important)
>>
>> Thanks,
>> Regina
>>
>> -----Original Message-----
>> From: postgis-devel-bounces at postgis.refractions.net
>> [mailto:postgis-devel-bounces at postgis.refractions.net] On Behalf Of 
>> Paul Ramsey
>> Sent: Friday, October 30, 2009 4:41 PM
>> To: PostGIS Development Discussion
>> Subject: Re: [postgis-devel] Sphere or Spheroid
>>
>> I should add that in general, the differences seem to be about 0.1% 
>> to 0.2% for my Oregon test area.
>>
>> P.
>>
>> On Fri, Oct 30, 2009 at 1:39 PM, Paul Ramsey <pramsey at opengeo.org> wrote:
>>> I am just now hooking up some spheroid calculations into SQL and the 
>>> choice is here: what is the default return for ST_Distance(geog,
>>> geog) ? I have an extra signature ST_Distance(geog, geog, bool) 
>>> which allows you to choose, *but* something has to be the default. 
>>> So, slow and accurate or fast and not-quite-right? For reference, 
>>> here's some test
>>> numbers:
>>>
>>>     spheroid     |      sphere      |         diff         | 
>>> diff_pct
>>> ------------------+------------------+----------------------+-------
>>> ------------------+------------------+----------------------+-
>>> ------------------+------------------+----------------------+-
>>> ------------------+------------------+----------------------+-------
>>> ------------------+------------------+----------------------+-
>>> ------------------+------------------+----------------------+-
>>> ------------------+------------------+----------------------+-----
>>>  14.1244075108035 | 14.1394160043876 |  -0.0150084935841761 |
>>> -0.00106146488507862
>>>  14.6266188748041 | 14.5910056309084 |   0.0356132438956287 |
>>> 0.00244076692151968
>>>  20.7346086743544 | 20.7259709082645 |  0.00863776608995082 |
>>> 0.000416760504402065
>>>  21.9682444424626 | 21.9811452394388 |  -0.0129007969762469 |
>>> -0.000586902858596291
>>>  23.7383733187578 | 23.7519404190066 |  -0.0135671002487641 |
>>> -0.000571199658193295
>>>   24.71417232105 | 24.6751858115921 |   0.0389865094578177 |
>>> 0.00157998848541607
>>>  26.060846145618 | 25.9957171978245 |   0.0651289477934469 |
>>> 0.00250537222334829
>>>  29.1593418185795 | 29.0828389449609 |   0.0765028736186224 |
>>> 0.00263051601542076
>>>  30.4726043383638 |  30.407477679772 |   0.0651266585918009 |
>>> 0.00214179746434954
>>>  33.3089494734479 | 33.2231927324098 |    0.085756741038054 |
>>> 0.00258123118174602
>>>  54.5278744382593 | 54.5740236709768 |  -0.0461492327175321 |
>>> -0.000845626355054244
>>>  56.6270596077484 | 56.4794616931023 |    0.147597914646141 |
>>> 0.00261330243280571
>>>  58.0564235524421 | 57.9072919817022 |    0.149131570739875 |
>>> 0.00257535045477517
>>>  61.5962238336604 | 61.6609971505153 |  -0.0647733168549323 |
>>> -0.00105047468980788
>>>  61.7015675105702 | 61.5433341315128 |    0.158233379057449 |
>>> 0.00257108883180295
>>>  67.6094786823676 | 67.4707740811243 |    0.138704601243305 |
>>> 0.00205577308297266
>>>  68.2569872101138 | 68.0830690889332 |    0.173918121180577 |
>>> 0.00255449884248604
>>>  68.4943435865133 | 68.5554249222873 |  -0.0610813357739914 |
>>> -0.000890977422184046
>>>  68.5746705524887 | 68.4885568487924 |   0.0861137036962845 |
>>> 0.00125734440406453
>>>  68.6758026445452 | 68.7123761613873 |  -0.0365735168421395 |
>>> -0.000532269714501474
>>>  73.4229241308488 | 73.4212994751178 |  0.00162465573099269 |
>>> 2.21278531244639e-05
>>>  79.4484754792361 | 79.4536134385929 | -0.00513795935687256 |
>>> -6.46661509088383e-05
>>>  85.4392924899187 | 85.3402382287158 |   0.0990542612029799 |
>>> 0.00116069820355446
>>>  85.4539811995932 | 85.3919394786419 |   0.0620417209512425 |
>>> 0.00072655242789936
>>>  93.5788665631846 | 93.4985937971677 |   0.0802727660169325 |
>>> 0.000858545169043645
>>>  96.3199573238008 | 96.1797387047942 |     0.14021861900666 |
>>> 0.00145788105577033
>>>  101.328501281213 | 101.062654489096 |    0.265846792116648 |
>>> 0.00263051463926598
>>>  101.649559586565 | 101.502533562595 |     0.14702602397027 |
>>> 0.00144849609965254
>>>  108.809850830453 | 108.894277925073 |  -0.0844270946195422 |
>>> -0.000775312497848917
>>>  109.397307465226 | 109.316521134613 |   0.0807863306121561 |
>>> 0.000739013003466101
>>>  110.654864554623 | 110.763015546595 |   -0.108150991971058 |
>>> -0.000976417908426867
>>>  113.60376179349 | 113.561772904965 |   0.0419888885251396 |
>>> 0.000369744919007898
>>>  114.121155128581 | 113.828085749691 |    0.293069378889427 |
>>> 0.00257466667351227
>>>  114.310532244975 | 114.431988777869 |   -0.121456532893603 |
>>> -0.00106138619271374
>>>  115.797340494535 | 115.877511025684 |  -0.0801705311490082 |
>>> -0.000691855826375479
>>>  116.509315790761 | 116.204507950436 |    0.304807840325097 |
>>> 0.00262302939620126
>>>  116.944936442573 | 116.776885086999 |    0.168051355574235 |
>>> 0.00143908064895751
>>>  118.802848975488 | 118.599760910854 |    0.203088064634358 |
>>> 0.00171238173732078
>>>  124.752683002401 | 124.793829377275 |  -0.0411463748743159 |
>>> -0.000329714819071083
>>>
>> _______________________________________________
>> postgis-devel mailing list
>> postgis-devel at postgis.refractions.net
>> http://postgis.refractions.net/mailman/listinfo/postgis-devel
>>
>>
>> _______________________________________________
>> postgis-devel mailing list
>> postgis-devel at postgis.refractions.net
>> http://postgis.refractions.net/mailman/listinfo/postgis-devel
>>
> _______________________________________________
> postgis-devel mailing list
> postgis-devel at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-devel
>
>
> _______________________________________________
> postgis-devel mailing list
> postgis-devel at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-devel
>
_______________________________________________
postgis-devel mailing list
postgis-devel at postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-devel





More information about the postgis-users mailing list