[GIS] Converting NAD83 (epsg:4269) to WGS84 (epsg:4326) using pyproj

nad83projpyprojpythonwgs84

I'm trying to convert US census data (NAD83) to WGS84.
I know the difference between the two is quite minor, but trying to apply the transformation using pyproj does not do anything. e.g.:

from pyproj import Proj, transform
p1 = Proj(init='epsg:4269')
p2 = Proj(init='epsg:4326')
transform(p1, p2 , -80.00001, 40.00001)

yields:

(-80.00001, 40.00001000000001)

Any idea why? Shouldn't I expect small shifts of ~1 meter?

Best Answer

Until you project your point(s), you won't know where they lie in one system in relation to themselves in the other system.

WGS84 and NAD83 are not, themselves projections, but coordinate systems differing by the datum (or 'representations of the spheroidal earth, defined mathematically') that they use.

Imagine two points which have almost no horizontally spacing, but one very high up in the air and one close to the ground. In this case you have no shift in meters because you have no flat surface, or single plane, to travel across in order to measure. Your output set of points is essentially completely coincident with the first set so yes, you should have no practical shift, but you must project each set to calculate the difference.

There is a very good explanation here in the answer to Difference Between Projection and Datum that I think addresses your question further.

I hope this was helpful.

Related Question