3

I'm trying to implement the recommended WGS84 - NAD83 transformation for Alaska using PostGIS. This post: Geographic Transformations in Alaska Between NAD83 and WGS84 indicates the proper transformation in ArcGIS to be WGS_1984_(ITRF00)_To_NAD_1983. I haven't been successful at finding this in spatial_ref_sys. I tried adding my own transformation into spatial_ref_sys using the following proj4text:

+proj=longlat +ellps=GRS80 +datum=NAD83
+towgs84=-0.9956,1.9013,0.5215,-0.025915,-0.009246,-0.011599,-0.00062
+no_defs

The towgs84 values were copied from the listed settings that ArcMap shows when you choose this transformation (reversing the sign because it's to WGS84 in PROJ4 and from WGS84 in ArcMap). In PostGIS, I use it like this, transforming WGS84 to NAD83 using my custom projection, then transforming it again into 4269 (or whatever NAD83 projection I really want, like 3338).

ST_Transform(ST_Transform(geom_wgs84, 900999), 4269)

The problem is that the transformed values don't seem to match the transformations that ArcGIS are using, so if I have a mix of WGS84 data and custom-transformed into NAD83 data, ArcGIS's WGS84 -> NAD83 transformation is different from PostGIS and the data doesn't line up. The errors are small (1-2 meters), but large enough to see.

Can anyone suggest an appropriate PROJ4 string to replicate the results of the ArcMap transformation, or something better for the state of Alaska such as using a NAD grid? Or tell me what I'm doing wrong with my custom projection?

  • Have you tried 4326 ? that is WGS 84 in PostGIS. – LR1234567 Aug 29 '14 at 18:57
  • The source data is WGS84, but I need to make circle polygons around a collection of WGS84 points and wanted to make them in 3338. To do that, I have to transform the WGS84 points to NAD83, then Alaska Albers. I want both the WGS84 points and the circular boundary polygons to show up properly in ArcGIS, which means I need to replicate the WGS84 -> NAD83 transform that Arc uses. – cswingle Aug 29 '14 at 19:11
3

PROJ.4 uses the position vector method for its 7 parameter transformations. The ArcGIS transformation that you're referring to uses the coordinate frame method. They use different conventions for the rotation values, so switch the signs on the rotation values and retry.

General information:

To change the direction of a 7-parameter transformation (coordinate frame, position vector, Bursa-Wolf), change the signs of all parameters. This is not quite equivalent to calculating a full inversion of the rotation matrix, but usually fine within the accuracy of the transformation.

To convert between the coordinate frame and position vector methods, switch the signs on the rotation parameters only. The two methods use different conventions (one rotates the axes, the other the coordinates/vector).

So Esri's transformation is:

WGS84/ITRF00 to NAD 1983 (approx. CORS96 version)
method: coordinate frame
dx = 0.9956
dy = -1.9013
dz = -0.5215
rx = 0.025915
ry = 0.009426
rz = 0.0011599
ds = 0.00062

Change direction:

NAD 1983 to WGS84/ITRF00  
method: coordinate frame
dx = -0.9956
dy = 1.9013
dz = 0.5215
rx = -0.025915
ry = -0.009426
rz = -0.0011599
ds = -0.00062

Change method:

NAD 1983 to WGS84/ITRF00  
method: position vector
dx = -0.9956
dy = 1.9013
dz = 0.5215
rx = 0.025915
ry = 0.009426
rz = 0.0011599
ds = -0.00062

Note: I haven't tried it, but I think that's the issue.

Disclosure: I work for Esri.

  • Thanks! I think that was the issue. Do you know if the last parameter (scale?) needs to have it's sign reversed for a towgs84 compared with what ArcMap shows, or is it just the dx,dy,dz values that are the opposite sign? – cswingle Aug 29 '14 at 19:01
  • I always have to think through this...maybe I'll put in the answer too. To convert the direction, change all signs. To convert between methods, change signs on the rotation parameters only. – mkennedy Aug 29 '14 at 19:31
  • Thanks for making it explicit in the answer. That should help make it more generalizable to other cases. – cswingle Aug 29 '14 at 20:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.