[GIS] the altitude difference between WGS84 and NAD27 Zone II

coordinate systemgdalwgs84

I have a point cloud in a piece of software and have exported the point in both WGS84 and NAD27 State Plane California Zone II (in US survey feet). The WGS data looks like this, with elevation in meters:

-121.330272 38.547287 5.661467
-121.330272 38.547287 5.646508
-121.330272 38.547287 5.661565
-121.330272 38.547287 5.657426

where as the NAD27 Zone II data looks like this:

2191840.924977 321431.770306 44.012074
2191840.804111 321431.731749 43.962994
2191840.798730 321431.632417 44.012394
2191840.725906 321431.877987 43.998812
2191840.639473 321431.718561 44.001784

I don't understand why the elevation is different and what units it is meant to be in. It's not a simple change from meters to feet. Something else is going on?

EDIT:

I found out that the projection file for the NAD27 Zone II projection used is this in case that helps:

PROJCS["NAD27 / California zone II",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982138982]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["standard_parallel_1",39.83333333333334],PARAMETER["standard_parallel_2",38.33333333333334],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-122],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],UNIT["Foot_US",0.30480060960121924]]

EDIT:

Example code showing difference in converting first point of data.

import pyproj

p1 = pyproj.Proj("+init=EPSG:4326")
p2 = pyproj.Proj("+init=EPSG:26742")

a = (-121.330272, 38.547287, 5.661467)
b = (2191840.924977, 321431.770306, 44.012074)

print "Source point", a
print "Target point", b
print 'Converted: ', pyproj.transform(p1, p2, *a) # different :()

The two coordinate systems are:

Geographic Coordinate System: WGS 84 (EPSG::4326)
Geodetic Datum: World Geodetic System 1984 (EPSG::6326)
Ellipsoid: WGS 84 (EPSG::7030)
Prime Meridian: Greenwich (EPSG::8901)
Angular Units: degree (EPSG::9102)

and

Projected Coordinate System: NAD27 / California zone II (EPSG::26742)
Projection Method: Lambert Conic Conformal (2SP)
    Latitude of false origin: 37.6667
    Longitude of false origin: -122
    Latitude of first standard parallel: 39.8333
    Latitude of second standard parallel: 38.3333
    Easting of false origin: 2e+06
    Northing of false origin: 0
Geographic Coordinate System: NAD27 (EPSG::4267)
Geodetic Datum: North American Datum 1927 (EPSG::6267)
Ellipsoid: Clarke 1866 (EPSG::7008)
Prime Meridian: Greenwich (EPSG::8901)
Linear Units: US survey foot (EPSG::9003)

Best Answer

Agisoft Photoscan states in the documentation that it supports many coordinate reference systems, including most of those in the EPSG registry. I was not able to find a definitive statement that they use GDAL or PROJ.4 for coordinate conversions.

Under the assumption that the input coordinates are WGS84 longitude, latitude and ellipsoidal height (m), I used the GEOID12A online tool to calculate the geoid undulation.

Output from GEOID12A
                         latitude        longitude        N      stddev
Station Name          ddd mm ss.sssss ddd mm ss.sssss   meters   meters
USER LOCATION          38 32 50.23320 121 19 48.97920  -30.490   0.0234

The N value is used in the equation, h = H + N, where h is ellipsoidal height, H is geoidal height (appox. mean sea level), and N is the undulation. So add 30.490 to the input value to approximately get NAVD88. That gives us 36.151467 m.

Because the horizontal coordinates are NAD27 State Plane California II (in US survey feet), it's possible that the z values are in NGVD29 rather than NAVD88. I then used the VERTCON application to check the offset for NAVD88 to NGVD29 for the NAD83 coordinate (it doesn't matter whether you use NAD27 or NAD83--converter isn't that accurate). It was reported as 0.733 m or 2.4 USft. So my results still don't match.

Latitude:   38 32 50.2 (N)
Longitude: 121 19 48.98 (W)

NAVD 88 height:   

Datum shift(NAVD 88 minus NGVD 29):    0.733 meter

I also tried using a 3-parameter, equation-based datum transformation, EPSG::1173 and EPSG::1175. The method used by these transformations convert ellipsoid heights between two geodetic datums. Both transformations returned a new ellipsoid height (on NAD27) of around 22.4 meters, so another mismatch.

Related Question