Creating compound WKT string from vertical epsg

24 views
Skip to first unread message

Michael Perdue

unread,
Aug 6, 2026, 1:48:52 PM (3 days ago) Aug 6
to LAStools - efficient command line tools for LIDAR processing
Hello,

Is it possible to create a compound WKT string from an input EPSG and vertical EPSG?

It works when I use flags like -vertical_cgvd28, but when I use the EPSG code directly with -vertical_epsg 5713, it writes the geotiff tag, but does not create a compound WKT string.

>las2las -epsg 26912 -vertical_epsg 5713 -set_ogc_wkt -i foobar.laz -o foobar_vepsg.laz

>lasinfo -nc -i foobar_vepsg.laz
lasinfo (260505) report for 'foobar_vepsg.laz'
reporting all LAS header entries:
  file signature:             'LASF'
  file source ID:             0
  global_encoding:            17 [WKT,GpsStd]
  project ID GUID data 1-4:   00000000-0000-0000-0000-000000000000
  version major.minor:        1.4
  system identifier:          ''
  generating software:        'LASzip DLL 2.4 r0 (150731)'
  file creation day/year:     71/2020
  header size:                375
  offset to point data:       1160
  number var. length records: 2
  point data format:          6
  point data record length:   30
  number of point records:    0
  number of points by return: 0 0 0 0 0
  scale factor x y z:         0.01 0.01 0.01
  offset x y z:               -0 -0 -0
  min x y z:                  403000.00 5611000.00 787.07
  max x y z:                  403999.99 5611999.99 819.08
  start of waveform data packet record: 0
  start of first extended variable length record: 0
  number of extended_variable length records: 0
  extended number of point records: 1967691
  extended number of points by return: 1967686 5 0 0 0 0 0 0 0 0 0 0 0 0 0
variable length header record 1 of 2:
  reserved             0
  user ID              'LASF_Projection'
  record ID            34735
  length after header  56
  description          'by LAStools of rapidlasso GmbH'
    GeoKeyDirectoryTag version 1.1.0 number of keys 6
      key 1024 tiff_tag_location 0 count 1 value_offset 1 - GTModelTypeGeoKey: ModelTypeProjected
      key 1025 tiff_tag_location 0 count 1 value_offset 1 - GTRasterTypeGeoKey: RasterPixelIsArea
      key 3072 tiff_tag_location 0 count 1 value_offset 26912 - ProjectedCSTypeGeoKey: NAD83 / UTM 12N
      key 3076 tiff_tag_location 0 count 1 value_offset 9001 - ProjLinearUnitsGeoKey: Linear_Meter
      key 4099 tiff_tag_location 0 count 1 value_offset 9001 - VerticalUnitsGeoKey: Linear_Meter
      key 4096 tiff_tag_location 0 count 1 value_offset 5713 - VerticalCSTypeGeoKey: CGVD28 height
variable length header record 2 of 2:
  reserved             0
  user ID              'LASF_Projection'
  record ID            2112
  length after header  621
  description          'by LAStools of rapidlasso GmbH'
    WKT OGC COORDINATE SYSTEM:
    PROJCS["NAD83 / NAD83 / UTM 12N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","26912"]]
LASzip compression (version 3.5r0 c3 50000): POINT14 3

>las2las -epsg 26912 -vertical_cgvd28 -set_ogc_wkt -i foobar.laz -o foobar_vname.laz

mikep@NeutronWrangler ~/Development/las_clip/testing
>lasinfo -nc -i foobar_vname.laz
lasinfo (260505) report for 'foobar_vname.laz'
reporting all LAS header entries:
  file signature:             'LASF'
  file source ID:             0
  global_encoding:            17 [WKT,GpsStd]
  project ID GUID data 1-4:   00000000-0000-0000-0000-000000000000
  version major.minor:        1.4
  system identifier:          ''
  generating software:        'LASzip DLL 2.4 r0 (150731)'
  file creation day/year:     71/2020
  header size:                375
  offset to point data:       1410
  number var. length records: 2
  point data format:          6
  point data record length:   30
  number of point records:    0
  number of points by return: 0 0 0 0 0
  scale factor x y z:         0.01 0.01 0.01
  offset x y z:               -0 -0 -0
  min x y z:                  403000.00 5611000.00 787.07
  max x y z:                  403999.99 5611999.99 819.08
  start of waveform data packet record: 0
  start of first extended variable length record: 0
  number of extended_variable length records: 0
  extended number of point records: 1967691
  extended number of points by return: 1967686 5 0 0 0 0 0 0 0 0 0 0 0 0 0
variable length header record 1 of 2:
  reserved             0
  user ID              'LASF_Projection'
  record ID            34735
  length after header  56
  description          'by LAStools of rapidlasso GmbH'
    GeoKeyDirectoryTag version 1.1.0 number of keys 6
      key 1024 tiff_tag_location 0 count 1 value_offset 1 - GTModelTypeGeoKey: ModelTypeProjected
      key 1025 tiff_tag_location 0 count 1 value_offset 1 - GTRasterTypeGeoKey: RasterPixelIsArea
      key 3072 tiff_tag_location 0 count 1 value_offset 26912 - ProjectedCSTypeGeoKey: NAD83 / UTM 12N
      key 3076 tiff_tag_location 0 count 1 value_offset 9001 - ProjLinearUnitsGeoKey: Linear_Meter
      key 4099 tiff_tag_location 0 count 1 value_offset 9001 - VerticalUnitsGeoKey: Linear_Meter
      key 4096 tiff_tag_location 0 count 1 value_offset 5114 - VerticalCSTypeGeoKey: VertCS_Canadian_Geodetic_Vertical_Datum_1928
variable length header record 2 of 2:
  reserved             0
  user ID              'LASF_Projection'
  record ID            2112
  length after header  871
  description          'by LAStools of rapidlasso GmbH'
    WKT OGC COORDINATE SYSTEM:
    COMPD_CS["NAD83 / NAD83 / UTM 12N + CGVD28",PROJCS["NAD83 / NAD83 / UTM 12N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","26912"]],VERT_CS["CGVD28",VERT_DATUM["Canadian Geodetic Vertical Datum of 1928",2005,AUTHORITY["EPSG","5114"]],UNIT["metre",1.0,AUTHORITY["EPSG","9001"]],AXIS["Gravity-related height",UP],AUTHORITY["EPSG","5713"]]]
LASzip compression (version 3.5r0 c3 50000): POINT14 3

Cheers,

Mike

rapidlasso LAStools

unread,
Aug 7, 2026, 1:35:13 AM (2 days ago) Aug 7
to LAStools - efficient tools for LiDAR processing
Hi Mike,
thanks for this information. We are currently extend the WKT/WKT2 logic, also to provide a better support for compound CRS. We will soon release a version that supports this feature.

Cheers,

Jochen @rapidlasso

Reply all
Reply to author
Forward
0 new messages