Martin,
I am trying to programmatically extract metadata from lasinfo output for entry into a catalog. I’m having trouble extracting the units for both the xy plane and z axis for LAS 1.2 and 1.4 files. Specifically, I need to know the units of these values reported by lasinfo:
min x y z: 1620000.00002 6628000.00005 445.27980
max x y z: 1620999.99999 6628999.99999 475.97440
How can the units be determined for LAS 1.2 files? I see this section in the lasinfo output:
description ' GeoTIFF GeoKeysDirectoryTag'
GeoKeyDirectoryTag version 1.1.0 number of keys 3
key 3072 tiff_tag_location 0 count 1 value_offset 6580 - ProjectedCSTypeGeoKey: NAD83(2011) / Texas Centric Lambert Conformal
key 1024 tiff_tag_location 0 count 1 value_offset 1 - GTModelTypeGeoKey: ModelTypeProjected
key 4096 tiff_tag_location 0 count 1 value_offset 5703 - VerticalCSTypeGeoKey: NAVD88 height (Reserved EPSG)
However, as I understand it, the units of NAD83 and NAVD88 can be either feet or meters (although the default for NAVD88 is meters).
Using lasinfo’s “-cd” option, this section is included in the output:
point density: all returns 78.83 last only 78.83 (per square meter)
spacing: all returns 0.11 last only 0.11 (in meters)
How does lasinfo determine these units? Are these units guaranteed to be correct for LAS 1.2?
For LAS 1.4, the units are embedded in the “description” field as shown here:
description 'Projection'
WKT OGC COORDINATE SYSTEM:
COMPD_CS["NAD83(2011) / Texas Centric Lambert Conformal + NAVD88 height - Geoid12B",
PROJCS["NAD83(2011) / Texas Centric Lambert Conformal",
. . .
UNIT["metre",1,
AUTHORITY["EPSG","9001"]],
. . .
VERT_CS["NAVD88 height",
VERT_DATUM["North American Vertical Datum 1988",2005,
AUTHORITY["EPSG","5103"]],
UNIT["metre",1,
AUTHORITY["EPSG","9001"]],
AXIS["Up",UP],
AUTHORITY["EPSG","5703"]]]
But strangely, the “point density” and “point spacing” values don’t indicate the actual units as they did for LAS 1.2 files. For example:
point density: all returns 78.83 last only 78.83 (per square units)
spacing: all returns 0.11 last only 0.11 (in units)
overview over extended number of returns of given pulse: 78585827 0 0 0 0 0 0 0 0 0 0 0 0 0 0
I am using version 170828:
lasinfo -version
LAStools (by mar...@rapidlasso.com) version 170828
The complete lasinfo files are attached.
Recommendations
Can you fix the “point density” and “point spacing” fields to indicate the actual units for LAS 1.4 files?
Even better, can you add “xy units” and “z units” fields to the lasinfo output beneath the min and max x y z fields to make this important information easier to find?
min x y z: 1620000.00002 6628000.00005 445.27980
max x y z: 1620999.99999 6628999.99999 475.97440
xy units: [meter, feet, etc.]
z units: [meter, feet, etc.]
Thanks
Tom Jordan, MSCS
Software Engineer
Geospatial data processing and visualization
Space and intelligence systems / HARRIS CORPORATION
Melbourne, FL / HTC-C3014
Thank you Martin. Just two comments…
>> May I suggest you change your exporter to use *proper* scaling factors and *nicer* offsets? This is simply not very useful and somewhat "unprofessional" in my opinion.
Yes, I agree 0.00001 m is way too small. I really appreciate your thorough explanation and I forwarded your comments to our LiDAR production team for review.
>> It seem that lasinfo is currently only parsing the GeoTiff tags but not the OGC WKT string for LAS 1.4 files. I'll fix that in a future release.
Thank you Martin. That should fix the bug in the “point density” and “point spacing” units for LAS 1.4 files (as indicated below).
point density: all returns 78.83 last only 78.83 (per square units)
spacing: all returns 0.11 last only 0.11 (in units)
However, those fields are only displayed when the “-cd” option is used. Can you also add “xy units” and “z units” fields to the lasinfo output; for instance, beneath the min and max x y z fields as shown below?
min x y z: 1620000.00002 6628000.00005 445.27980
max x y z: 1620999.99999 6628999.99999 475.97440
xy units: [degree, meter, metre, m, foot, US survey foot, etc.]
z units: [meter, metre, m, foot, US survey foot, etc.]
That would greatly clarify the dimensions. Also, since lasinfo only reports the EPSG codes for LAS 1.2, users currently have to manually lookup, or write a program to lookup, the XY and Z EPSG codes just to determine the units (quite burdensome).
Since your lasinfo code already determines the correct units, it would be most helpful to include them in the output.