Folks, I owe you all (and Howard and Mike in particular) a status report on my vertical datum support efforts for liblas and other client libraries and applications.
First, I will refer you to the RFC I wrote in the spring related to vertical coordinate system support at: http://liblas.org/development/rfc/rfc_1_verticalcs.html That was implemented, but recently I have added some additional work, aiming to actually support applying vertical datum shifts as part of a reprojection operation with liblas (ie. las2las). The key elements in this are: 1) PROJ.4 has been upgraded to support a +geoidgrids= parameter which can reference one or more geoid files relating geoid heights to WGS84 ellipsoidal heights. These are used to transform back and forth to/from geoidal vertical datums like NAVD88. 2) Some geoid files in the .gtx format have been assembled at the following url, notably US files from NOAA suitable for use for NAVD88 and global models from NGA suitable for approximating other geoidal coordinate systems world wide. http://download.osgeo.org/proj/vdatum 3) Libgeotiff's EPSG to csv translation script was upgraded to capture some information about EPSG vertical coordinate systems, and compound coordinate systems (in vertcs.csv and compdcs.csv respectively). The vertcs.csv includes a column indicating what .gtx transformation files can be used to get from a given vertical datum to WGS84 ellipsoidal. This has been forcably populated for NAVD88 and "EGM96 Geoid Height". 4) GDAL/OGR's OGRSpatialReference object has been extended to support importing vertical and compound coordinate systems with importFromEPSG(). A new EXTENSION node on the VERT_DATUM object can be used to list geoid grid shift files. 5) GDAL/OGR's OGRSpatialReference::SetFromUserInput() method has been extended to allow defining a compound coordinate system from any EPSG vertical coordinate system and any (GCS or PCS) horizontal coordinate system using the form EPSG:4326+5703 (WGS84 + NAVD88 in this case). 6) OGRSpatialReference's from and to PROJ.4 functions have been updated to support the +geoidgrids= and corresponding WKT EXTENSION node. 7) The GeoTIFF to WKT translation code now uses definitions from vertcs.csv when available which also picks up the geoid grid files. 8) liblas has been updated to use the latest geotiff translation code and to ensure that "eCompoundOK" forms of WKT are used for translation too and from proj.4 format so we get the geoidgrids. As a result of the above, if you were to build liblas, GDAL, PROJ.4, and perhaps libgeotiff from SVN "trunk" of each project, and ensure you populated your PROJ.4 grid shift file directory (ie. /usr/local/share/proj) with the appropriate grid shift files you could do: las2las -t_srs WGS84 srs_vertcs.las wgs84_ellipsoidal.las and transform the sample srs_vertcs.las file from NAVD88 geoidal heights to WGS84 with WGS84 ellipsoidal heights! That may not seem that exciting to you but for me it's a milestone. I have a variety of cleanup, documentation, and validation to do, but I feel the essentials of my project are now in place. Testing and feedback are welcome, though you might want to wait till I have better documentation in place. Best regards, -- ---------------------------------------+-------------------------------------- I set the clouds in motion - turn up | Frank Warmerdam, [email protected] light and sound - activate the windows | http://pobox.com/~warmerdam and watch the world go round - Rush | Geospatial Programmer for Rent _______________________________________________ Liblas-devel mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/liblas-devel
