[Proj] Geo Transfoms and calculations

Eric Miller EMiller at dfg.ca.gov
Tue Dec 30 12:39:57 EST 2008


You need only a minor modification to Gerald's libproj4 to compile on
windows.  Because Microsoft is lame, their math library does not include
atanh (or asinh or acosh). 

Previously, I overcame this by building in a naive implementation of
atanh as:

double atanh( double x )
{
	return log((1 + x)/(1 - x))/2;
}

Since Gerald has since embraced the GSL, maybe we can get him to use
the GSL versions of those functions and let the GNU folks handle
platform compatibility.

>>> On 12/30/2008 at 7:40 AM, "Till" <till at free.fr> wrote:
> Thanks for your answers Gerald,
> 
> Is this library already available, or it is a brand new product that
can be
> only tested after being released? (Next week, obviously)
> 
> As far as I have understood, you're working on libproj4 project. Will
the
> 'geod_*' stuff be associated/related to it?
> By now, we only worked with proj.4, that means using proj.dll. This
is the
> only library we managed to compile with Visual C++. We failed with
libproj4,
> which looks as linux only.
> But we're quite happy with it, proj.dll fits properly our needs,
except
> we're missing those distance calculation functions.
> 
> What is your recommendation regarding this?
> How should the 'geod_*' set work in conjunction with it?
> 
> Thanks for your feedback.
> 
> -----Message d'origine-----
> De : Gerald I. Evenden [mailto:geraldi.evenden at gmail.com] 
> Envoyé : mardi 30 décembre 2008 01:55
> À : proj at lists.maptools.org 
> Cc : Till
> Objet : Re: [Proj] Geo Transfoms and calculations
> 
> Your timing could not be much better.
> 
> I have almost completed a library set 'geod_*' that covers geodesic 
> computations for both the spherical and elliptical earth.  I expect
to have
> a 
> first release out by this weekend as I am only doing finishing
touches on
> the 
> ellps= section (a user program version works right now with the
libproj4 
> library).  The ellipse method is based upon the NOAA routines rather
than
> the 
> USNOO process that I used in 'geod'---accuracy is also a little
better.
> 
> The release comes with Doxygen html documentation (~2mb), of all the
code
> and 
> a self documenting user program 'geodesic'---that is: you type
"geodesic"
> and 
> at the prompt "geod:" type "help."  Maybe a little more help on the
Doxygen 
> front page. ;-)
> 
> Also, see note imbedded below and geodesic example at end.
> 
> On Monday 29 December 2008 7:07:28 pm Till wrote:
>> Hi all,
>>
>> We're quite new to geographic fundamentals, but it sounds like
PROJ.4 is a
>> pretty good base where to find proper 'geographic related'
libraries.
>>
>> We're currently working on graphic (2D/3D) tools for displaying
accurate
>> GPS information and our goal is to rely on standard systems,
avoiding to
>> 'reinvent the wheel', feeling it should be much of a benefit if we
could
>> share with the community.
>>
>> By now, we were able to properly use the 'proj' API in order to
match
>> different projection schemes into 'Cartesian' (3D space)
coordinates, and
>> also mix 2D representations.
>>
>> However, distance calculation seems to be another issue.
>>
>> While we could find ways to implement a reasonable calculation
>>
>> (for instance :
>>
>> gpsDist(PointF P1, PointF P2)
>>
>> {
>>
> This is a common equation for spherical geodesic but it is not very
good for
> 
> small values of the argument because acos looses precision.  All
geodesic 
> code I have used employs Snyder's recommended variation as in the
geod_* 
> library.
> 
>> return Acos( sin(P1.y)*sin(P2.y) +
cos(P1.y)*cos(P2.y)*cos(P1.x-P2.x) ) *
>> earthRadius;
>>
>> }),
>>
>> our approach considers it could be concentrated on the same system,
in
>> order to provide consistency (at least sharing 'earthRadius'
values).
>>
>> In that manner, we failed to use 'geod' or affiliate as API.
>>
>> We have to say that we're developing on Windows platform (VS 2005),
and
>> we're lacking sample/tutorial/help for such a use.
>>
>> Any help in that manner would be welcome.
>>
>>
>>
>> PS: Is there a proper (recommended) way to increase 'ellipsoid'
> definitions
>> (increasing or modifying  'pj_ellps' table, for instance changing
>> "sphere"'s radius)?
> 
> Note that both traditional proj DMS and GRASS colon format geographic

> coordinates are read.
> 
> gie at charon:~/CARTO/geodesic/src$ ./geodesic
> geod: help
> command: earth -- set earth shape parameters
> command: show -- display [arc|earth] structure contents
> command: p1 -- set point 1 [lon lat]
> command: p2 -- set point 2 [lon lat]
> command: open -- open output file
> command: vector -- set vector [distance azimuth
> command: line -- compute geodesic line
> command: circle -- compute circle or arc [2nd azi. del azi.]
> command: prec -- set display precision
> command: quit -- exit program
> command: help -- show this list
> 
> For more detailed assistance type "<command> help" for
> more detailed information on that command.
> geod: earth ellps=WGS84
> geod: p1 100d14'33.2W 30d15
> geod: p2 -90:17:55 44d7'30n
>     Point 1 Lon:  100d14'33.20000"W  Lat:   30d15'00.00000"N  height:
0.000
>     Point 2 Lon:   90d17'55.00000"W  Lat:   44d07'30.00000"N  height:
0.000
>     Azimuth p1->p2: 26d55'6.60"
>     Distance: 1771916.625
>     Azimuth p2->p1: 212d58'58.59"
> geod: quit
> geodesic at completion.   G'day mate!
> gie at charon:~/CARTO/geodesic/src$


More information about the Proj mailing list