las2las change projection of las files

3,203 views
Skip to first unread message

ana wells

unread,
Apr 18, 2018, 1:03:48 PM4/18/18
to LAStools - efficient tools for LiDAR processing
I reprojected one LAS file from -epgs 7590 to -target_epgs 6344. I also want to change the vertical datum information to EPSG 5703 (height from NADV88 in feet to NADV88 in meters). Is there a command in LAStools that I can use? 

Thanks,
Ana


Here is the lasinfo report from my LAS file:


reporting all LAS header entries:
  file signature:             'LASF'
  file source ID:             0
  global_encoding:            17
  project ID GUID data 1-4:   484AD7F9-DAD2-49D1-84A4-9636872BFB52
  version major.minor:        1.4
  system identifier:          'LAStools (c) by rapidlasso GmbH'
  generating software:        'las2las (version 180209)'
  file creation day/year:     315/2016
  header size:                375
  offset to point data:       2262
  number var. length records: 3
  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:               600000 5100000 0
  min x y z:                  627990.85 5170753.46 273.35
  max x y z:                  629393.81 5172156.51 335.65
  start of waveform data packet record: 0
  start of first extended variable length record: 335442342
  number of extended_variable length records: 1
  extended number of point records: 11181336
  extended number of points by return: 7271500 2707619 953962 248255 0 0 0 0 0 0 0 0 0 0 0
variable length header record 1 of 3:
  reserved             0
  user ID              'LASF_Spec'
  record ID            7
  length after header  1065
  description          'OGC WKT Coordinate System'
variable length header record 2 of 3:
  reserved             0
  user ID              'LASF_Projection'
  record ID            34735
  length after header  40
  description          'by LAStools of rapidlasso GmbH'
    GeoKeyDirectoryTag version 1.1.0 number of keys 4
      key 1024 tiff_tag_location 0 count 1 value_offset 1 - GTModelTypeGeoKey: ModelTypeProjected
      key 3072 tiff_tag_location 0 count 1 value_offset 6344 - ProjectedCSTypeGeoKey: NAD83(2011) / UTM zone 15N
      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
variable length header record 3 of 3:
  reserved             0
  user ID              'LASF_Projection'
  record ID            2112
  length after header  616
  description          'by LAStools of rapidlasso GmbH'
    WKT OGC COORDINATE SYSTEM:
    PROJCS["NAD83(2011) / UTM zone 15N",GEOGCS["NAD83(2011)",DATUM["NAD_1983_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],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","6344"]]
extended variable length header record 1 of 1:
  reserved             0
  user ID              'LASF_Projection'
  record ID            2112
  length after header  894
  description          'Georeference Info'
    OGC COORDINATE SYSTEM WKT:
    COMPD_CS["NAD_1983_2011_WISCRS_Bayfield_Feet + NAVD88 height - Geoid12A (ftUS)",PROJCS["NAD_1983_2011_WISCRS_Bayfield_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",750000.001],PARAMETER["False_Northing",487372.659],PARAMETER["Central_Meridian",-91.15277777777779],PARAMETER["Standard_Parallel_1",46.66964837722222],PARAMETER["Scale_Factor",1.0000331195],PARAMETER["Latitude_Of_Origin",46.66964837722222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG","7590"]],VERT_CS["NAVD88 height - Geoid12A (ftUS)",VERT_DATUM["North American Vertical Datum 1988",2005,AUTHORITY["EPSG","5103"]],AXIS["Gravity-related height",UP],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],AUTHORITY["EPSG","6360"]]]
the header is followed by 4 user-defined bytes
reporting minimum and maximum for all LAS point record entries ...
  X             2799085    2939381
  Y             7075346    7215651
  Z               27335      33565
  intensity          17      65298
  return_number       1          4
  number_of_returns   1          4
  edge_of_flight_line 0          1
  scan_direction_flag 0          1
  classification      1         18
  scan_angle_rank   -21         21
  user_data           0          0
  point_source_ID   180        183
  gps_time 131031533.698468 131035608.494316
  extended_return_number          1      4
  extended_number_of_returns      1      4
  extended_classification         1     18
  extended_scan_angle         -3500   3500
  extended_scanner_channel        0      0
number of first returns:        7271500
number of intermediate returns: 1201674
number of last returns:         7273652
number of single returns:       4565490
overview over extended number of returns of given pulse: 4565490 3506766 2116505 992575 0 0 0 0 0 0 0 0 0 0 0
histogram of classification of points:
         5468120  unclassified (1)
         5713150  ground (2)
              66  Reserved for ASPRS Definition (18)
 +-> flagged as extended overlap: 4696708

Martin Isenburg

unread,
Apr 19, 2018, 6:35:49 PM4/19/18
to LAStools - efficient command line tools for LIDAR processing
Hello,

oh boy. You know have two *different* OGC WKT strings in the file. One stored in the VLR (by your las2las call) and one is stored in the EVLR section (by some other software). We strongly advise *AGAINST* storing anything in the EVLR section of a file that does not absolutely need to be stored there (because it's over the VLR payload or is being added in-place) and recommend to move all EVLRr from the EVLR section to the VLR section whenever a file is rewritten. Why? See these other discussion threads:


The next version of las2las (we can send you a preliminary one) will have the new options:

-remove_all_evlrs
-remove_evlr 0
-remove_evlrs_from_to 1 3

to get rid of that old ELVR but we should really do than an automatic thing during any re-projection (or re-setting) of the CRS.

Back to your.question run the following las2las call to get vertical feet:

las2las  -i in.laz ^
             -epsg 7590 -elevation_feet ^
             -target_epsg 6344 -target_elevation_meter ^
             -vertical_navd88 ^
             -set_ogc_wkt ^
             -o out.laz

Here the same with 'fusa.laz' as (the silly) input:

e:\LAStools\bin>las2las -i ..\data\fusa.laz ^
              -epsg 7590 -elevation_feet ^
              -target_epsg 6344 -target_elevation_meter ^
              -vertical_navd88 ^
              -set_ogc_wkt ^
              -o out.laz
WARNING: current implementation for Lambert Conic Conformal (1SP) ignores scale factor

e:\LAStools\bin>lasinfo -i out.laz
lasinfo (180419) report for 'out.laz'
reporting all LAS header entries:
  file signature:             'LASF'
  file source ID:             0
  global_encoding:            0
  project ID GUID data 1-4:   00000000-0000-0000-0000-000000000000
  version major.minor:        1.1
  system identifier:          'LAStools (c) by rapidlasso GmbH'
  generating software:        'las2las (version 180419)'
  file creation day/year:     40/2010
  header size:                227
  offset to point data:       1246
  number var. length records: 2
  point data format:          1
  point data record length:   28
  number of point records:    277573
  number of points by return: 263413 13879 281 0 0
  scale factor x y z:         0.01 0.01 0.01
  offset x y z:               400000 6800000 0
  min x y z:                  459090.80 6859979.03 12.87
  max x y z:                  459165.39 6860053.59 19.61
variable length header record 1 of 2:
  reserved             0
  user ID              'LASF_Projection'
  record ID            34735
  length after header  48
  description          'by LAStools of rapidlasso GmbH'
    GeoKeyDirectoryTag version 1.1.0 number of keys 5
      key 1024 tiff_tag_location 0 count 1 value_offset 1 - GTModelTypeGeoKey: ModelTypeProjected
      key 3072 tiff_tag_location 0 count 1 value_offset 6344 - ProjectedCSTypeGeoKey: NAD83(2011) / UTM zone 15N
      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 5103 - VerticalCSTypeGeoKey: VertCS_North_American_Vertical_Datum_1988
variable length header record 2 of 2:
  reserved             0
  user ID              'LASF_Projection'
  record ID            2112
  length after header  863
  description          'by LAStools of rapidlasso GmbH'
    WKT OGC COORDINATE SYSTEM:
    COMPD_CS["NAD83(2011) / UTM zone 15N + NAVD88",PROJCS["NAD83(2011) / UTM zone 15N",GEOGCS["NAD83(2011)",DATUM["NAD_1983_2011",SPHEROID["GRS 1980",6378137,29
8.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG
","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_fact
or",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH]
,AUTHORITY["EPSG","6344"]],VERT_CS["NAVD88",VERT_DATUM["North American Vertical Datum 1988",2005,AUTHORITY["EPSG","5103"]],UNIT["metre",1.0,AUTHORITY["EPSG","90
01"]],AXIS["Gravity-related height",UP],AUTHORITY["EPSG","5703"]]]
LASzip compression (version 3.2r3 c2 50000): POINT10 2 GPSTIME11 2
reporting minimum and maximum for all LAS point record entries ...
  X             5909080    5916539
  Y             5997903    6005359
  Z                1287       1961
  intensity          10      62293
  return_number       1          3
  number_of_returns   1          3
  edge_of_flight_line 0          0
  scan_direction_flag 0          0
  classification      1          6
  scan_angle_rank    79        103
  user_data           0        197
  point_source_ID     1          1
  gps_time 5880.963028 5886.739738
number of first returns:        263413
number of intermediate returns: 283
number of last returns:         263370
number of single returns:       249493
overview over number of returns of given pulse: 249493 27232 848 0 0 0 0
histogram of classification of points:
           17553  unclassified (1)
          180868  ground (2)
           37030  high vegetation (5)
           42122  building (6)

ana wells

unread,
Apr 23, 2018, 3:24:04 PM4/23/18
to LAStools - efficient tools for LiDAR processing
Hello Martin,

thank you very very much. I was able to change the vertical datum. I removed the old record from the VLR section, but I still have two different OGC WKT strings in the .las file.  I read the discussion below about the EVLR section. When is the new version of las2las going to be available?

Thank you again,

Ana

Martin Isenburg

unread,
Apr 24, 2018, 8:51:56 AM4/24/18
to LAStools - efficient command line tools for LIDAR processing
Hello Ana,

in the latest version of LAStools (180422) you'll find las2las with new options to remove ELVRs. Other CHANGES are:

22 April 2018 -- lasview: also display 'user data' attribute for points picked with 'i'
21 April 2018 -- lasgrid, las2dem, lascanopy: fix bug of removed filters/transforms when gridding/rasterizing '-attribute ...' 
21 April 2018 -- lastrack: '-store_height_as_extra_bytes', '-store_yz_range_as_extra_bytes', '-store_xyz_range_as_extra_bytes' 
20 April 2018 -- lastrack: new '-classify_xyz_range_between 50 1000 7' uses 3D distance from point to track
19 April 2018 -- las2las: 'remove_all_evlrs' and '-remove_all_evlr 0' and '-remove_evlrs_from_to 1 3'
17 April 2018 -- lasinfo: better formatted output when bins of histograms have decimal digitls
11 April 2018 -- lasgrid: fix issue for huge rasters (using temp file storage) running on multiple cores
 9 April 2018 -- lasclip, las2las, lasheight, lasnoise: remove empty files unless '-dont_remove_empty_files'

Regards,

Martin @rapidlasso


ana wells

unread,
May 15, 2018, 12:59:12 PM5/15/18
to LAStools - efficient tools for LiDAR processing
Hi Martin,

I reprojected several las files. I noticed that the vertical projection has direction down instead of up (as if it was depth instead of height); and also when I reprojected to WTM (EPSG 3071), I get a warning from arc gis.  I wonder if I am doing something wrong.  Here is what I have done:


1 --- One set to: UTM zone 15N  (EPSG 6344) -- NAD_1983_2011_UTM_Zone_15N; with Vertical Datum NAVD83 (5103) in meters (EPSG 5703). Here is the example of one las file:

las2las  -i F:\lidar\BayLaz\808.laz ^
              -epsg 7590 -elevation_feet ^
              -target_epsg 6344 -target_elevation_meter ^
              -vertical_navd88_geoid12b ^
              -olas -odir F:\lidar\BayfieldUTM\ -odix _UTM6344  ^
              -set_ogc_wkt ^
              -remove_vlr 0  ^
              -remove_all_evlrs

LastInfo from the reprojected las file:

lasinfo (180422) report for 'F:\lidar\BayfieldUTM\808_UTM6344.las'
reporting all LAS header entries:
  file signature:             'LASF'
  file source ID:             0
  global_encoding:            17
  project ID GUID data 1-4:   484AD7F9-DAD2-49D1-84A4-9636872BFB52
  version major.minor:        1.4
  system identifier:          'LAStools (c) by rapidlasso GmbH'
  generating software:        'las2las (version 180422)'
  file creation day/year:     315/2016
  header size:                375
  offset to point data:       1434
  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:               600000 5100000 0
  min x y z:                  627990.85 5170753.46 273.35
  max x y z:                  629393.81 5172156.51 335.65
  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: 11181336
  extended number of points by return: 7271500 2707619 953962 248255 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            2112
  length after header  899
  description          'by LAStools of rapidlasso GmbH'
    WKT OGC COORDINATE SYSTEM:
    COMPD_CS["NAD83(2011) / UTM zone 15N + NAVD88 height - Geoid12B",PROJCS["NAD83(2011) / UTM zone 15N",GEOGCS["NAD83(2011)",DATUM["NAD_1983_2011",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],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","6344"]],VERT_CS["NAVD88 height - Geoid12B",VERT_DATUM["North American Vertical Datum 1988",2005,AUTHORITY["EPSG","5103"]],UNIT["metre",1.0,AUTHORITY["EPSG","9001"]],AXIS["Gravity-related height",UP],AUTHORITY["EPSG","5703"]]]
variable length header record 2 of 2:
  reserved             0
  user ID              'LASF_Projection'
  record ID            34735
  length after header  48
  description          'by LAStools of rapidlasso GmbH'
    GeoKeyDirectoryTag version 1.1.0 number of keys 5
      key 1024 tiff_tag_location 0 count 1 value_offset 1 - GTModelTypeGeoKey: ModelTypeProjected
      key 3072 tiff_tag_location 0 count 1 value_offset 6344 - ProjectedCSTypeGeoKey: NAD83(2011) / UTM zone 15N
      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 5103 - VerticalCSTypeGeoKey: VertCS_North_American_Vertical_Datum_1988


2 ---- Other set to: WTM (EPSG 3071) -- NAD_1983_HARN_Wisconsin_TM; also with Vertical Datum NAVD83 (5103) in meters (EPSG 5703). Here is the example of one las file:
las2las  -i F:\lidar\BayLaz\808.laz ^
              -epsg 7590 -elevation_feet ^
              -target_epsg 3071 -target_elevation_meter ^
              -vertical_navd88_geoid12b ^
              -olas -odir F:\lidar\BayfieldWTM\ -odix _WTM3071  ^
              -set_ogc_wkt ^
              -remove_vlr 0  ^
              -remove_all_evlrs


lasinfo from the reprojected las file:
lasinfo (180422) report for 'F:\lidar\BayfieldWTM\808_WTM3071.las'
reporting all LAS header entries:
  file signature:             'LASF'
  file source ID:             0
  global_encoding:            17
  project ID GUID data 1-4:   484AD7F9-DAD2-49D1-84A4-9636872BFB52
  version major.minor:        1.4
  system identifier:          'LAStools (c) by rapidlasso GmbH'
  generating software:        'las2las (version 180422)'
  file creation day/year:     315/2016
  header size:                375
  offset to point data:       1498
  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:               400000 600000 0
  min x y z:                  418581.68 690226.56 273.35
  max x y z:                  419972.61 691617.61 335.65
  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: 11181336
  extended number of points by return: 7271500 2707619 953962 248255 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            2112
  length after header  963
  description          'by LAStools of rapidlasso GmbH'
    WKT OGC COORDINATE SYSTEM:
    COMPD_CS["NAD83(HARN) / Wisconsin Transverse Mercator + NAVD88 height - Geoid12B",PROJCS["NAD83(HARN) / Wisconsin Transverse Mercator",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-90],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",520000],PARAMETER["false_northing",-4480000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","3071"]],VERT_CS["NAVD88 height - Geoid12B",VERT_DATUM["North American Vertical Datum 1988",2005,AUTHORITY["EPSG","5103"]],UNIT["metre",1.0,AUTHORITY["EPSG","9001"]],AXIS["Gravity-related height",UP],AUTHORITY["EPSG","5703"]]]
variable length header record 2 of 2:
  reserved             0
  user ID              'LASF_Projection'
  record ID            34735
  length after header  48
  description          'by LAStools of rapidlasso GmbH'
    GeoKeyDirectoryTag version 1.1.0 number of keys 5
      key 1024 tiff_tag_location 0 count 1 value_offset 1 - GTModelTypeGeoKey: ModelTypeProjected
      key 3072 tiff_tag_location 0 count 1 value_offset 3071 - ProjectedCSTypeGeoKey: NAD83(HARN) / Wisconsin Transverse Mercator
      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 5103 - VerticalCSTypeGeoKey: VertCS_North_American_Vertical_Datum_1988
the header is followed by 4 user-defined bytes
reporting minimum and maximum for all LAS point record entries ...
  X             1858168    1997261
  Y             9022656    9161761


For both reprojections, in arc gis, the Z coordinate system has in the LAS dataset Properties:    Direction: positive down and a Vertical Shift:  different from zero





When I load the reprojected file in WTM into arc gis, I get a warning:




 Thank you,

Ana

Martin Isenburg

unread,
May 15, 2018, 1:28:08 PM5/15/18
to LAStools - efficient command line tools for LIDAR processing
Hello Ana,

sorry. I am not a user of ArghhhGIS and won't be able to assist you with their WARNINGS or ERROR messages. As far as I can tell your command lines are correct. You are merely *setting* the vertical datum to be a particular NAVD88 GEOID. Previously the vertical datum was not defined. You are *not* changing the vertical coordinates other than converting the units from feet to meters. They are still on the same (previously undefined) vertical datum that they used to be, except that this is now declared to be  a particular NAVD88 GEOID and the heights are converted to meters.

Regards,

Martin @rapidlasso

PS: The tool for changing vertical datums assuming you have a GEOID correction grid is lasheight. 
Reply all
Reply to author
Forward
0 new messages