Projection not implemented for LAS header - not even with custom EPSG code
Joey Neidert
Global Mapper UserTrusted User
I have used Global Mapper 13 in the past to batch process LAS headers. I have an issue in that it's not writing the projection into the header:
"key 3072 tiff_tag_location - count 1 value_offset 2236 - ProjectedCSTypeGeoKey: look-up for 2236 not implemented"
Now, what's odd, is.. I can set the projection in Global Mapper by either loading a projection file or 'Init from EPSG' (code 2236). Either way, it looks like the projection is set-
Projection: State Plane Coordinate System
Zone: Florida East (FIPS 901)
Datum: NAD83
Planar Units: FEET(US SURVEY)
etc....
I don't understand the mismatch between Global Mapper letting me select the projection through the configuration or EPSG code/set it in my script as I usually do
****
GLOBAL_MAPPER_SCRIPT VERSION="1.00"
DIR_LOOP_START DIRECTORY="T:\DISK005\MCSF_Blount_Island_FL\04_Processed_Data\08_Clipped_to_AOI_Buffered_2m" FILENAME_MASKS="*.LAS" RECURSE_DIR=NO
IMPORT FILENAME="%FNAME_W_DIR%" TYPE=LIDAR_LAS
LOAD_PROJECTION FILENAME="T:\DISK005\MCSF_Blount_Island_FL\01_Project_Planning\Tile_and_Block_Indexes\BlountIsland_SP_FloridaEast.prj"
EXPORT_VECTOR FILENAME="T:\DISK005\MCSF_Blount_Island_FL\04_Processed_Data\09_Point_ID_and_Projection_Applied\%FNAME_WO_EXT%_HEADER.LAS" TYPE=LIDAR_LAS \
VERT_CITATION="VertCS_North_American_Vertical_Datum_1988 (GEOID12A)" LAS_VERSION="1.2" SYSTEM_ID="EXTRACTION" GEN_SOFTWARE="NGC LAS Utils"
UNLOAD_ALL
DIR_LOOP_END
****
but it just won't write the projection into the LAS header, while everything else looks correct.
Also, I did add the 2236 definition to the EPSG txt file, but that didn't change my results.
Thanks for any advice,
Joey
"key 3072 tiff_tag_location - count 1 value_offset 2236 - ProjectedCSTypeGeoKey: look-up for 2236 not implemented"
Now, what's odd, is.. I can set the projection in Global Mapper by either loading a projection file or 'Init from EPSG' (code 2236). Either way, it looks like the projection is set-
Projection: State Plane Coordinate System
Zone: Florida East (FIPS 901)
Datum: NAD83
Planar Units: FEET(US SURVEY)
etc....
I don't understand the mismatch between Global Mapper letting me select the projection through the configuration or EPSG code/set it in my script as I usually do
****
GLOBAL_MAPPER_SCRIPT VERSION="1.00"
DIR_LOOP_START DIRECTORY="T:\DISK005\MCSF_Blount_Island_FL\04_Processed_Data\08_Clipped_to_AOI_Buffered_2m" FILENAME_MASKS="*.LAS" RECURSE_DIR=NO
IMPORT FILENAME="%FNAME_W_DIR%" TYPE=LIDAR_LAS
LOAD_PROJECTION FILENAME="T:\DISK005\MCSF_Blount_Island_FL\01_Project_Planning\Tile_and_Block_Indexes\BlountIsland_SP_FloridaEast.prj"
EXPORT_VECTOR FILENAME="T:\DISK005\MCSF_Blount_Island_FL\04_Processed_Data\09_Point_ID_and_Projection_Applied\%FNAME_WO_EXT%_HEADER.LAS" TYPE=LIDAR_LAS \
VERT_CITATION="VertCS_North_American_Vertical_Datum_1988 (GEOID12A)" LAS_VERSION="1.2" SYSTEM_ID="EXTRACTION" GEN_SOFTWARE="NGC LAS Utils"
UNLOAD_ALL
DIR_LOOP_END
****
but it just won't write the projection into the LAS header, while everything else looks correct.
Also, I did add the 2236 definition to the EPSG txt file, but that didn't change my results.
Thanks for any advice,
Joey
Comments
-
Joey,
I just tried exporting to a LAS file with the projection set to 2236 and it worked fine for me. I could reload the LAS file and Global Mapper recognized the projection. That error message that you listed at the beginning of your message about ProjectedCSTypeGeoKey, where is that coming from? It sounds like perhaps some application that doesn't know about the 2236 EPSG code or something.
Thanks,
Mike
Global Mapper Guru
geohelp@bluemarblegeo.com
Blue Marble Geographics for Coordinate Conversion, Image Reprojection and Vector Translation -
I just exported (LAS to LAS) using that script I posted above, and a .prj file created with Global Mapper and when loading the file in Global Mapper, the projection appears correct in the config dialog. However, I am viewing the LAS header using 'lasinfo.exe' and it still doesn't show the projection. An excerpt of the header:
Another thing that I don't understand is that even though I specify the projection in the script:
After running script in Global Mapper, right as the script starts to run, the 'Select Projection for XXXXX.las' dialog box pops up, as if I'm confirming what I've directed the software to use (from the .prj file the script uses). This seems to be the only place in Global Mapper to select Elevation (vertical) Units. When initially setting a projection (to create and save a .prj file), only the choice for Horizontal is there. I check 'Use selected projection for all selected files' and the script starts to run.
However.......the 'Elevation' units=feet that I confirmed seems to have no bearing on what it is being written to the LAS header. It seems as though Global Mapper always assumes the vertical=meters. The source LAS file that I read had no projection info at all in the LAS header, so it's apparently not just something that's being carried over in the import/export, but Global Mapper is putting that in there.
My projection file contains:
PROJCS["NAD83_Florida_East_ft",GEOGCS["GCS_Geographic Coordinate System",DATUM["D_NORTH_AMERICAN_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],
UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["scale_factor",0.999941177],
PARAMETER["central_meridian",-81],PARAMETER["latitude_of_origin",24.33333333333333],
PARAMETER["false_easting",656166.6666666667],PARAMETER["false_northing",0],UNIT["Foot_US",0.30480060960121924]]
lasinfo.exe output of header (partial):
variable length header record 1 of 3:
reserved 43707
user ID 'LASF_Projection'
record ID 34735
length after header 88
description 'Georeferencing Information'
GeoKeyDirectoryTag version 1.1.0 number of keys 10
key 1024 tiff_tag_location 0 count 1 value_offset 1 - GTModelTypeGeoKey: M
odelTypeProjected
key 2048 tiff_tag_location 0 count 1 value_offset 4269 - GeographicTypeGeo
Key: GCS_NAD83
key 2054 tiff_tag_location 0 count 1 value_offset 9102 - GeogAngularUnitsG
eoKey: Angular_Degree
key 2057 tiff_tag_location 34736 count 1 value_offset 0 - GeogSemiMajorAxi
sGeoKey: 6378137
key 2058 tiff_tag_location 34736 count 1 value_offset 1 - GeogSemiMinorAxi
sGeoKey: 6356752.3
key 2059 tiff_tag_location 34736 count 1 value_offset 2 - GeogInvFlattenin
gGeoKey: 298.25722
key 3072 tiff_tag_location 0 count 1 value_offset 2236 - ProjectedCSTypeGe
oKey: look-up for 2236 not implemented
key 3076 tiff_tag_location 0 count 1 value_offset 9003 - ProjLinearUnitsGe
oKey: Linear_Foot_US_Survey
key 4097 tiff_tag_location 34737 count 53 value_offset 0 - VerticalCitatio
nGeoKey: VertCS_North_American_Vertical_Datum_1988 (GEOID12A)
key 4099 tiff_tag_location 0 count 1 value_offset 9001 - VerticalUnitsGeoK
ey: Linear_Meter
variable length header record 2 of 3:
reserved 43707
user ID 'LASF_Projection'
record ID 34736
length after header 24
description 'Double Param Array'
GeoDoubleParamsTag (number of doubles 3)
6.37814e+006 6.35675e+006 298.257
variable length header record 3 of 3:
reserved 43707
user ID 'LASF_Projection'
record ID 34737
length after header 53
description 'GeoAsciiParamsTag'
GeoAsciiParamsTag (number of characters 53)
VertCS_North_American_Vertical_Datum_1988 (GEOID12A)| -
It sounds like the input file doesn't have a projection that Global Mapper recognizes, hence the prompt. If you know it is the 2236 projection, just add PROJ="EPSG:2236" to your IMPORT command to specify that is the native projection for the layer.
You can also specify the native elevation units for the points by adding an ELEV_UNITS parameter to the IMPORT command. For example, add ELEV_UNITS="FEET" if the native units are feet. You can also add ELEV_UNITS to the EXPORT_VECTOR command to specify meters or feet. If neither is specified meters will be used.
The exported LAS does have the projection stored as 2236, it just looks like LASinfo doesn't have EPSG lookup so it just reports what the value is but doesn't decode it. The ProjectedCSTypeGeoKey is where the projection system code is stored.
Thanks,
Mike
Global Mapper Guru
geohelp@bluemarblegeo.com
Blue Marble Geographics for Coordinate Conversion, Image Reprojection and Vector Translation -
That works for me. Thanks a bunch. I will have to go with lasinfo not having the lookup, as it does report the correct EPSG code in the header, so that seems fine. Also, the elev_units parameter did the trick!
Thanks,
Joey
Categories
- 12.7K All Categories
- 5.6K Features Discussion
- 342 Downloading Imagery
- 1.3K Elevation Data
- 380 Georeferencing Imagery Discussion
- 628 GM Script Language
- 53 User Scripts
- 113 GPS Features
- 414 Projection Questions
- 819 Raster Data
- 1.3K Vector Data
- 6.6K Support
- 177 Announcement and News
- 908 Bug Report
- 558 SDK
- 1.2K Suggestion Box
- 3.7K Technical Support
- 562 Other Discussion
- 129 GIS Data Sources
- 27 Global Mapper Showcase
- 233 How I use Global Mapper
- 107 Global Mapper Forum Website