PDAL on the VDI: data translation

Why PDAL translate

All data are not equal in the eyes of analysis packages or research purposes. So we need to translate datasets between standard formats, modify metdata, or apply transformations to the point data themselves. PDAL's translate application acts pretty much like GDAL's translate.

A number of possible scenarios are shown below, - step through some or all of them, and if you have a case that doesn't appear let the class know and we can work through it!

Case 1: I need to compress my LAS files to LAZ files

This is a common and really simple case. LAZ is an open, non-lossy compression format for LAS data which uses roughly one-fifth of the storage space - and many tools work transparently with the LAZ format. So we can save some pain on disk (or in file sharing) as follows:

$ pdal translate \
/g/data/rr1/Elevation/Merimbula0313/z55/2013/Mass_Points/LAS/AHD/LAS/Tiles_2k_2k/Merimbula2013-C3-AHD_7605910_55_0002_0002.las \

Check your work - in this case we see the LAZ version occupies about 1/8 of the space on disk.

$ du -hs /g/data/rr1/Elevation/Merimbula0313/z55/2013/Mass_Points/LAS/AHD/LAS/Tiles_2k_2k/Merimbula2013-C3-AHD_7605910_55_0002_0002.las

$ du -hs ./Merimbula2013-C3-AHD_7605910_55_0002_0002.laz

Case 2: My tools require LAS 1.3, I have LAS 1.2

Not all LAS is created equally - and the specification has evolved with the surveying industry. Here we translate forward from 1.2 to 1.3. Notably, PDAL reads and translates LAS 1.4 just as easily:

$ pdal translate /g/data/rr1/Elevation/Merimbula0313/z55/2013/Mass_Points/LAS/AHD/LAS/Tiles_2k_2k/Merimbula2013-C3-AHD_7605910_55_0002_0002.las merimbula_las13.las --writers.las.minor_version=3 

Use your knowledge of PDAL metadata to check your work

Case 3: I have points as text and I want to LAZ them

$ pdal translate /g/data/rr1/Elevation/Merimbula0313/z55/2013/Mass_Points/LAS/AHD/LAS/Tiles_2k_2k/Merimbula2013-C3-AHD_7605910_55_0002_0002.txt merimbula_las13.laz --writers.las.minor_version=3 

Case 4: I need to reproject from GDA94 to UTM

First a note of caution - reprojection is always lossy. With LiDAR data the best practice is to regenerate points in the required projection, but that is not always possible.

Our UTM zone for this exercise is 55 South (EPSG:32755), so using PDAL we can do:

$ pdal translate \
/g/data/rr1/Elevation/Merimbula0313/z55/2013/Mass_Points/LAS/AHD/LAS/Tiles_2k_2k/Merimbula2013-C3-AHD_7605910_55_0002_0002.las \
Merimbula2013-C3-UTM_7605910_55_0002_0002_EPSG32755.laz --filters.reprojection.out_srs="EPSG:32755"

Translation exercises


  1. Check the metadata of your LAZ tile from exercise 1 to see if your compressed data are actually the same as the uncompressed data
  2. One for esoteric LAS users: the LAS specification has different point storage formats as well as different versions. Alter the point storage format of your LAS tile.
  3. What else can you translate your LAS tile to? Try to convert your LAS tile to some different formats.
  4. How can we verify that our reprojection has worked? Have a brainstorm, and discuss with the workshop group.
Back to base