[Proj] Distance calculations

OvV_HN ovv at hetnet.nl
Sun Oct 19 07:46:20 EDT 2008

----- Original Message ----- 
From: "Irwin Scollar" <al001 at uni-koeln.de>
To: <proj at lists.maptools.org>
Sent: Saturday, October 18, 2008 10:46 AM
Subject: [Proj] Distance calculations

> The Zhang Xue-Lian method of distance calculation was implemented in C in 
> the NIMA/MUSE DTCC4 program for the forward and inverse cases as distazm.h 
> and distazm.c.  I converted the inverse implementation to Pascal for use 
> in a dll which is freely available
> The DTCC4 suite and the web links are no longer available. If anyone needs 
> help with this, please ask off-line.
> Irwin Scollar

Recently I obtained a copy of the DTCC4 code from mr. Scollar (thanks!).
I compared the inverse (this is from two lat/lons to dist/azi) with the NGS 
Vincenty version and the Saito 1979 examples.
* NGS Vincenty: http://www.ngs.noaa.gov/PC_PROD/Inv_Fwd/
* Saito 1979: Tsutomu Saito, The computation of long geodesics on the 
ellipsoid through
Gaussian quadrature, Bull. Geod. 53 (1979), pp. 165-177
* DTCC4 ask Irwin Scollar

Superficially the DTCC4 method looks the same as the Simgear method, 
mentioned earlier 

There are hardly any differences in the results from the DTCC4 method or the 
Vincenty method. As long as the lat/lons do not lie in difficult regions.
In difficult regions (see for instance the Saito paper, Examples 7,8,9) the 
DTCC4 code does not always converge and is pretty useless.
The Vincenty method gives a distance which is off, and completely wrong 
For the difficult regions Saito gives separate algorithms. The 'regular' 
code is excellent, but the 'special' algorithms seem to suffer from errors 
in the paper - for instance perhaps the sin(sigma) for beta1.beta2>0, on 
page 173.

How silly are the 'difficult regions'? See for yourself.
For instance, Saito Example 7:

Ellipsoid: axis_a = 6378388 m; flattening = 1/297;
lat1 = 30d 19m 54.95367s; lon1 = 0;
lat2 = -30d 11m 50.15681s; lon2 = 179d 58m 17.84244s;
Saito paper: dist = 19989590.5480 m, azi1 = 2d 23m 52.108130s, azi2 = 177d 
36m 19.670109s
-> DTCC4 geo_inverse: no convergence
-> Vincenty NGS:
dist = 19934085.484195, azi1 = 288d 06m 04.5934s, azi2 = 71d 39m 40.3207s

Oscar van Vlijmen

More information about the Proj mailing list