LiDAR Self-Learn Starter (2 of 2)

The tools I want to write about today is lastools software suite and is my earliest exploration tools I have used when I first learn about LiDAR. The very first tool I have used is las2txt ( because back in the days I didn’t know how a *.las file look like so I turned the file into text for studying. In this post, I will talk about few of the commands that I use most often and include my study notes for you.


Interface for las2txt

Download the tools and double click las2txt.ext, you will be able to input your file (red box 1), and select the attributes (e.g. x, y, z, intensity…) (red box 2) that you want to write to your text file.

command prompt for las2txt

Another way to run las2txt (or any lastools) is to run it in command prompt, like the above figure. The syntax is straight forward, it involves calling the exe (las2txt); the input file (-i); the parameters (-parse); and the output file (-o). The details can be found in the readme file that you have downloaded.


  • This is a tool for bare-earth extraction: it classifies LIDAR points into ground points (class = 2) and non-ground points (class = 1)
  • lasground -i terrain.las -o classified_terrain.las
  • Modify the classification (e.g.)
    • -set_classification 2
    • -change_classification_from_to 2 4
    • -classify_z_below_as -5.0 7
    • -classify_z_above_as 70.0 7
    • -classify_z_between_as 2.0 5.0 4
    • -classify_intensity_above_as 200 9
    • -classify_intensity_below_as 30 11
    • -nature (default step size 5m)
    • -town (step size 10)
    • -city (step size 25m)
    • -metro (step size 35m)
An example of the output file, green = ground, blue = non-ground

More information:


  • This tool flags or removes noise points in LAS/LAZ/BIN/ASCII files
  • ‘-step_xy 2’ and ‘-step_z 0.3’ which would create cells of size 2 by 2 by 0.3 units
  • Noise = class 7
  • lasnoise -i lidar.las -o lidar_no_noise.las
  • lasnoise -i *.laz -step 4 -isolated 5 -olaz -remove_noise
    • The maximal number of few other points in the 3 by 3 by 3 grid still designating a point as isolated is set with ‘-isolated 6’

More information:


  • Computes the height of each LAS point above the ground.
  • Assumes class 2 = ground points and so ground TIN can be constructed
    • Ground points can be in a separate file ‘-ground_points ground.las’ or ‘-ground_points dtm.csv -parse ssxyz’
    • e.g. lasheight -i *.las -ground_points ground.las -replace_z
  • More information:

An example of the output file. lasheight calculates height above ground level (calculated from lasground), red colour points have larger distance above ground and blue /green colour points are closer to ground level


  • This tool classifies buildings and high vegetation (i.e. trees) in LAS/LAZ files. This tool requires lasground and lasheight has been processed
  • Default parameters
    • ‘-planar 0.1’ (= roofs) or ‘-rugged 0.4’ (= trees) regions. Above ground threshold with ‘-ground_offset 5’, default is 2.
    • deviation of up to 0.2 meters that neighboring points can have from the planar region they share. The default is 0.1 meters.
    • e.g. laslasclassify -i in.laz -o out.las -planar 0.15 -ground_offset 1.5
    • “Please note that the unlicensed version will set intensity, gps_time, user data, and point source ID to zero.”

More information:

An example output for lasclassify. Orange = building; Yellow = Vegetation; Blue = Ground; Dark Blue = others

I hope my notes can help you get started with LiDAR data.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s