Concerned about the accuracy

Jun 28, 2012 at 9:42 AM

I'm slightly concerned about the accuracy transforming from one coordinate system to another. The results are fairly close, but not accurate enough, and are wondering if this is the right library to use in production.

Let's assume for example I want to transform coordinates from WGS 84 (SRID 4326 - http://spatialreference.org/ref/epsg/4326/) to GDA94 / MGA zone 50 (SRID 28350 - http://spatialreference.org/ref/epsg/28350/):

Given the following coordinates (-30, 136) as latitude and longitude for WGS 84, after transforming to GDA94 / MGA zone 50, it get:

2349331.13330103 6524251.64080134

Now let's verify against different sources:

1) Redfearn's formulas:

2349315.03514871 6524249.9019923

2) PostGIS:

SELECT ST_AsText(ST_Transform('SRID=4326;POINT(136 -30)'::geometry,28350))

2349315.05731837 6524249.91789138

3) GeoCalc

2349315.0351 6524249.9017

As you can see, all the other sources come within decimal precision (at least 2nd), where proj.net is out by about 15 units.

Please note that the default WKT for the above spatial reference systems have been used as indicated by http://spatialreference.org.

Is this the closest / best that proj.net can do, or is their additional parameters we should supply in the WKT, such as minor axis for example?

This is very important for us to make a call and decide if we should proj.net for our transformations, as the data is survey related and precision is of the utmost importance.

Any feedback and guidance would be appreciated. (Alastair Aitchison?)

Andries

 

Jan 11, 2013 at 2:58 PM

I have the exact same issue.  WGS84_UTM(18,N) to WGS84:

Input: 307821.867 4219306.387

Proj.Net output: -77.191748384445773 38.100463291796331

 

The correct answer according to a bunch of different websites and spatialite

spatialite> select astext(st_transform(MakePoint(307821.867, 4219306.387, 32618), 4326));

POINT(-77.191769 38.101147)

 

This is causing meters worth of inaccuracy.

Jeremy

Jan 23, 2014 at 12:18 PM
Edited Jan 23, 2014 at 12:36 PM
POINT (2349315.05730234 6524249.91779831) using DotSpatial.Projections, ProjectionInfo.FromEpsgCode(28350);
POINT (2349315.05731837 6524249.91789138) using also DotSpatial.Projections, only KnownCoordinateSystems.Projected.NationalGridsAustralia.GDA1994MGAZone50;