wiki:CsMapRfc7

Version 2 (modified by Norm Olsen, 10 years ago) ( diff )

--

=CS-Map RFC # - NSRS2007 / NSRS 2011 Implementation=

This page contains an change request (RFC) for the CS-Map Open Source project. More CS-Map RFCs can be found on the RFCs page. The change described in this request is to add support for the relatively new National Spatial Reference Systems of 2007 and 2011. These are, essentially, horizontal and vertical geodetic reference systems for the United States and its territories; produce by the National Geodetic Service of the United states. The acronyms NSRS2007 and NSRS2011 are commonly used to refer to these systems. They are also known as NAD83(2007) and NAD83(2011). ==Status==

RFC Template Version(1.0)
Submission Date18 February 2014
Last Modified18February 2014
AuthorNorm Olsen
RFC StatusDraft
Implementation StatusDeveloped, under test
Proposed MilestoneDon't know who/how milestones are assigned; possibly 13.30(?)
Assigned PSC guide(s)Norm Olsen(?)
Voting History
+1Norm
+0
-0
-1
no vote

==Overview== While National Spatial Reference System 2007 )NSRS2007) has been around for several years, the shift defined by the new system, relative to the previous system (NAD83/96, aka HARN, HPGN, NAD83/91; we'll use HARN in this RFC document) was considered to small to deserve a defined shift definition. That is, the shifts were on the order of a few centimeters and at that time this was considered to be as small as the level of error. Fats forward to 2013, and precise and definitive geodetic shift models have been developed for NSRS2007. This was done at the time the US National Geodetic Survey was defining the National Spatial Reference System of 2011. Thus, at the current time, definitive models and algorithms exist for the migration of geodetic coordinates from HARN to NSRS2007 and subsequently to NSRS 2011.

==Motivation==

Please note that this is a sequential conversion process. That is, geodetic coordinates referenced to NAD83 must first be converted to HARN, and then converted to NSRS2007, before they can finally be converted to NSRS2011. Each of these three conversion processes has its own level of error, and each produces shifts of centimeters in magnitude. The following table indicates the expected magnitude of shifts for the three distinct datum shift calculations:

Datum Shift CalculationExpected Shift in centimeters
NAD83 --> HARN40
HARN --> NSRS2007 3
NSRS2007 --> NSRS20113

Unlike the NAD83 <--> HARN shift which has now been available for almost 2 decades, the new references systems do include vertical components. The vertical shifts are of the same magnitude as the horizontal shift indicated above. Perhaps this vertical shift is important to some users.

Finally, the new reference system definitions include Alaska which was never included in the HARN series of datum shift files. Quite frankly, I'm unaware of exactly how to convert Alaskan geography from NAD83 to NSRS2007. NSRS models do exist for Puerto Rico and the Virgin Islands, but not for Hawaii or American Samoa for which HARN datum shift files have been defined.

So, the actual significance of this change is questionable. A small portion of the user base is likely to want these features. The implementation of these new geodetic systems no negative effect on the operation of the library other than, perhaps, disk space. The data files used to model the NSRS2007 and NSRS2011 shifts are relatively huge, and each of the three geographic areas covered (48 states, Alaska, and Puerto Rico) requires three distinct data files (longitude shift, latitude shift, and vertical shift). Each of the data files for the 48 states are about 28 megabytes in size. Thus, the size of distribution files could grow to be unreasonably large if full support of the NSRS2007 & NSRS2011 geodetic reference systems is to be included.

Please remember, you can't get to NSRS2011 without first converting to NSRS2007. So, including coverage for 49 states in three dimensions for both of the new reference systems in a distribution will require an additional 456 megabytes of data. It is indeed possible, and perhaps likely, that the data files used in these new reference systems could be de-densifed - a grid cell in all of these files is one minute by one minute; but that will have to be the subject of a new and different RFC.

==Proposed Solution==

From a technical aspect of view, implementing NSRS2007 and NSRS2011 is rather straight forward. The models for these datum shifts as produced by the NGS is based on a new file format/interpolation combination which the NGS refers to as GEOCON. This format is very similar (almost identical) to previous file formats used, is that used for both horizontal and vertical NSRS datum shifts, and is also now used for the latest geoid height models produced by NGS. Adding a new grid interpolation file format named GEOCON to the repertoire which understands this new file format is relative straight forward; several standard modules are coded and the appropriate entries made in the grid file interpolation table.

Having made the GEOCON grid file format option available, the NSRS2007 and NSRS2011 geodetic transformations can be easily be defined in the Geodetic Transformation Dictionary by referencing the appropriate files. As Datum definitions are now simply name placeholders, the NSRS2007 and NSRS2011 datums are easy to define.

Having the above in place leaves the more difficult and error prone, bureaucratic portion of the implementation. Theis phase includes several tasks which are intended to be done - to the degree possible - via automated means. The process here typically implies:

  1. writing a program which produces tabular information in 'C++' code syntax,
  2. manually editing the result tabular data to add/remove exemplary cases, and
  3. writing a program to manipulate data (such as a dictionary source file) using the modified tablular data.

The result is a modifictaion to, for example, a dictionary file which can be examined and tested. Should test results indicate, the program/table is adjusted and the modifictaion process is repeated until the modified data file (typiocally a dictionary source file) satifies the necessary requirements. In this manner, the modifications to the necessary data files are accomplished with the lowest possible probability of error, typographical or otherwise. These various programs and reulsting tables are all version controlled in the folder named ConsoleUtilities.

Using the abovev described technique, the following chores must be accomplished:

  • A NSRS2007 version of most all HARN CRS systems must be generated.
  • A NSRS2011 version of most all HARN CRS systems must be generated.
  • Catalog entries for all new CRS systems must be generated.
  • NameMapper entries for all new systems must be generated.
  • Entries for the EPSG names and EPSG code must be added to the NameMapper and properly associated with the new CS-MAP NSRS CRS definition.
  • Extries for the ESRI names and ESRI codes must be added to the NameMapper and properly associated with the new CS-MAP NSRS CRS definitions and the EPSG Names and codes.
  • To perform that immediately above, programs which manipulate ESRI projection files (i.e. the WKT files with the .prj extension) need to written to properly extract ESRI names and code.
  • Programs which will properly match EPSG, ESRI, and CS-MAP definition names and codes need to be written.

Having accomplished all of the above, NSRS2007 and NSRS 2011 will have been implemented, but with one major issue remaining.

Implications

This section allows discussion of the repercussions of the change, such as whether there will be any breakage in backwards compatibility, if documentation will need to be updated, etc. Test Plan

How the proposed change will be tested, if applicable. New unit tests should be detailed here??? Funding/Resources?

This section will confirm that the proposed feature has enough support to proceed. This would typically mean that the entity making the changes would put forward the RFC, but a non-developer could act as an RFC author if they are sure they have the funding to cover the change.

Note: See TracWiki for help on using the wiki.