Is re-projection needed from SRID 4326 (WGS 84) to 4269 (NAD 83)SRID

November 19Hits:3

Advertisement

I have US census data against state boundaries stored as SRID 4269, in an MSSQL DB.

The input data used for calculations against that dataset is stored as SRID 4326.

As far as I can infer from the SpatialReference.org, SRID 4269 is just a subset of SRID 4326 and no coordinate re-projection is necessary.

Do I actually need to re-project from SRID 4326 to SRID 4269, provided that the input data is always within the bounds of the SRID 4269?

Answers

Well, technically, NAD83 is not a subset of WGS84. If you mine further in the SpatialReference.org projetion definitions, you can see the difference between the two projections.

PROJ.4 definiton of NAD83:

+proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs

PROJ.4 definition of WGS84:

+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs

As you can see, the two projections use a different ellipsoid as a datum. However, with some further research, you can easily find the parameters of the two ellipsoids. By the way, and ellipsoid can be defined by two parameters: its semi-major axis, and its flattening.

As there is only a millimeter difference between the two flattenings, and the semi-major axes are equal, you may skip the coordinate transformation (datum transformation), if a maximum error in the order of meters is good for you.

How comes the order of meter in absolute error, when the difference in the ellipsoids is only in the order of tenth of millimeter? Well, it simply comes from the local datum of NAD83, the NAD83 projection uses. In a nutshell, the datum is the offset from the reference ellipsoid.

As the WGS84, and the GRS80 ellipsoids both serve the purpose of minimizing the average error compared to the real shape of the Earth, they do not fit every part of Earth's true shape very well. To minimize errors even further, local projections use local datums, thus offset the reference ellipsoid to fit the Earth in the bounds of their validity extent with minimal error. As mkennedy pointed out in the comments, NAD83 uses a datum other than the reference ellipsoid (GRS80), thus it is not earth-centered. If we neglect the difference between the WGS84, and the GRS80 ellipsoids, the offset (datum difference) still gives us a constant error in the order of meters, which can be resolved with a datum transformation (correcting every coordinate with the offset).

One additional thing to consider, when transforming from a global projection to a local projection: plate tectonics. Global projections, such as WGS84 take plate movements into account, and change from time to time. However, some local projections, such as NAD83, are moving with the plate underneath, because their validity extent covers an area, which can be described with the same movement vector.

Consequentially, the error of transforming coordinates between a local, and a global projection grows by 1.5-2.5 centimeters per year in the case of the North American Plate (counted from the time of the measurement).

I have US census data against state boundaries stored as SRID 4269, in an MSSQL DB. The input data used for calculations against that dataset is stored as SRID 4326. As far as I can infer from the SpatialReference.org, SRID 4269 is just a subset of S

In SQLServer geometry field, I want to change the coordinates of geometry from one spatial reference system to another spatial reference system (from SRID 4326 to SRID 3011) by using ST_Transform. But the destination SRID 3011 is not available in sys

From this line: SELECT ST_AsEWKT(geom) FROM buildings LIMIT 1; I get this result: "SRID=4326;MULTIPOLYGON(((404269.308014269 4543087.6184561,...)))" I'm wondering if the coordinations are actually in the right format as SRID 4326? Thank you. EDI

I'm a Rails developer with minimal GIS experience, working with PostGIS and the RGeo gem. I'd like to find all of the cows within 500 meters of my current location. So, I'll create a model for my cows: class Cow < ActiveRecord::Base set_rgeo_factory_

I used OGR2OGR to import SRID 4326 point data into MSSQL Server. Didn't realize that it defaults to creating a geometry column instead of detecting the data as 4326 and creating a geography column. I know the code to get around this so no issue there

there is one thing I do not understand when using the following Query in geometries which are all SRID 4326. WITH s AS (SELECT * FROM de_sim_points_start WHERE id = 6545) SELECT e.*, ST_Distance(e.geom, s.geom, true) as distance FROM de_sim_points_en

I am currently trying to run a kernel density analysis and need to change the co-ordinate system to a UTM measurement in order to set some meaningful biological constraints to my seabird data (eg, Search Area and cell size output). The best out come

I have a QGIS (2.10.1) project that contains several shapefiles, all of which are EPSG:3338 (NAD83 / Alaska Albers). The project property CRS is also EPSG:3338. All of the shapefiles display correctly, and the project is to my liking. However, when I

I'm currently working on displaying twitter geo data (currently just long/lat -> cartesian without any analysis). This is the world map (source: naturalearthdata): This is the rendered data: . The mapping is done via mercator projection (with R = 1):

We are using Geoserver to render some data onto maps in a web application. The map shapes are read by Geoserver from a postgis database. The shapes are imported into postgis using the ogr2ogr utility. An event on the map makes geoserver query the pos

I'm trying to import some OSM data into psql as equirectangular projection using osm2pgsql with the following command: osm2pgsql -c -d osm -S /usr/local/share/osm2pgsql/default.style -l /OPENSTREETMAP/south-america-latest.osm.pbf However, it fails wi

I am attempting a relatively simple task but have been running into trouble. I have two tables, one which has lat and lon points which were geocoded using google (SRID 3857) and another table which contains block boundaries obtained from the Census (

I run the following query and irrelevant of the point coordinates and radius I always recieve all the records of the table I'm querying. Can anyone point out what the problem could be with this query? SELECT * FROM Buildings WHERE ST_DWithin(geom, ST

Using PostGIS 2.0.0 I need to filter the results of a function, which returns many POINTs, to find the ones that lie within an elliptical area defined by two points and a distance (all parameters passed into the query). A filter using ST_Distance doe

Using PostGIS 2.0.0 I need to filter the results of a function, which returns many POINTs, to find the ones that lie within an elliptical area defined by two points and a distance (all parameters passed into the query). A filter using ST_Distance doe

I am quite confused the way PostGIS is returning the result for this basic query. So I am trying to find the distance between two points 45.2714,71.2087 and 42.3739,66.39 and the distance should be ~505 km but when I ran the query (considering 1 degr

In PostGIS 2.1.1, I've been plotting elevations from a raster over distances, but noticed that beyond 1km, the earth's curvature seems to be greatly exaggerated. In this example over a 40km geodesic entirely at 0 altitude (for simplification), the ea

Using PostGIS 2.0.0 I'd like to find the point on a LINESTRING that is closest to a given point. The LINESTRING represents a great circle line (ie. geography type). ST_ClosestPoint appears to do exactly what I want, however, I find that the returned

Can anyone please tell me what I'm doing wrong, and how do I avoid the problem? I'll attempt to clarify what I'm doing as things go along. The geom column is a multipolygon column, all values are SRID=4326. archive=> select st_intersects( GeomFromewk

SELECT ST_Distance(gg1, gg2) As spheroid_dist, ST_Distance(gg1, gg2, false) As sphere_dist FROM (SELECT ST_GeographyFromText('SRID=4326;POINT(37 -122)') As gg1, ST_GeographyFromText('SRID=4326;POINT(48 2)') As gg2 ) As foo ; --> ERROR: Coordinate val