How to use NDVI values for vegetation classification

1,405 views
Skip to first unread message

Sonali Sharma

unread,
Feb 29, 2024, 4:17:21 PM2/29/24
to LAStools - efficient tools for LiDAR processing
Hi all, 

I am new to lastools and LiDAR data processing in general too.
I am looking to a way to get all vegetation point clouds based on their respective NDVI values. My las file have RGB values. 
Can someone help me understand this procedure in lastools. I particularly aim to : 1) filter all green pixels (herbs, shrub, trees -all) 2) Assign them as vegetation class and then 3) classify them based on height.


I found some reading from above link, but could not really follow this in lastools.

Here is the link for the sample data:


PS: I have tried lasclassify tool already it gives good results for trees, but the lower vegetation types (shrub/herbs) they remain unassigned or get misclassified to ground.

Any help would be highly appreciated.

Albert Godfrind

unread,
Feb 29, 2024, 4:39:37 PM2/29/24
to last...@googlegroups.com
Computing the NDVI requires the R (red) and NIR (near infrared) channels for each pixel, but you do not have the NIR values, so computing NDVI is not possible. 

Albert
--
Albert Godfrind
+33 6 09 97 27 23
Sent from my iPhone

On 29 Feb 2024, at 22:17, Sonali Sharma <ssona...@gmail.com> wrote:

Hi all, 
--
Download LAStools at
https://rapidlasso.de
Manage your settings at
https://groups.google.com/g/lastools/membership
---
You received this message because you are subscribed to the Google Groups "LAStools - efficient tools for LiDAR processing" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lastools+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/lastools/b56e0d21-263a-45c2-82bc-2a5c8003d486n%40googlegroups.com.

Mark Levitski

unread,
Feb 29, 2024, 4:54:59 PM2/29/24
to last...@googlegroups.com
There is a "visual band vegetation index" that uses RGB values. Not sure how Lastools supports that though. I use it in a couple different ways in another software suite. It doesn't work as well as NDVI, however it would probably accomplish what you want.

Sonali Sharma

unread,
Mar 1, 2024, 2:45:13 AM3/1/24
to LAStools - efficient tools for LiDAR processing
Hi Albert and Mark,

Yes I am looking not exactly for NDVi but something as pointed by Mark as visual band vegetation index. 
Mark in which software did you try that? ArcPro? Python? Rstudio? If any of them then can you detail me.

Best, 
Sonali

Jorge Delgado García

unread,
Mar 1, 2024, 3:08:44 AM3/1/24
to last...@googlegroups.com
There is some options ... 

1) Use a vegetation index based in RGB values, It is clear that it not the same that use RGBI information, but for clasification purposes could be useful.
2) Use intensity as NIR, really the LiDAR usually works in NIR. You need to check the scales between R and intensity. 

The only objective is to help in vegetation clasification. 

Perhaps, LAStools can be some operations but I usually use LAS2txt in order to export the points ... make the calculations using for example Python and finally import the points with the rescale NIR or vegetation index.

Jorge 

Jochen Rapidlasso

unread,
Mar 1, 2024, 3:08:50 AM3/1/24
to LAStools - efficient tools for LiDAR processing
Hi Sonali,
we took a small sample out of your sample:

tmp_rgb.png
and we see buildings, high an low veg.
The classification in your sample is not that nice:
tmp_org.png
so we drop the classification and start from scratch with default parameters:
lasground64 -i o6580_145.laz -o tmp-gnd.laz
lasheight64 -i tmp-gnd.laz -o tmp-height.laz -replace_z
lasclassify -i tmp-height.laz -o tmp-out.laz -height_in_z

tmp_classify.png
This already looks much better - but: lasclassify just do buildings and high vegetation.
From here you have different options.

One thing you could do ist just separate the vegetation by height.
So we classify all veg in the height range 0 - 0.7 meters as low vegetation (class 3) and
all vegetation between 0.7 and 2 meters to med vegetation (class 4).
We ignore classes which are recognized as ground or buildings already.

lasheight -i tmp-out.laz -o tmp-mv.laz -classify_below 0.7 3 -classify_between 0.7 2 4 -ignore_class 2 6

tmp_mv.png
You see now the lower veg classified as low and med.
This is all done using the default parameters for ground, height, classify.
If you play with the arguments and parameters of the arguments you should be able to produce an even better result.

To optimize you can also use the *new* color filters of the lasreader.
This allows you to filter for color values in the HSL or HSV model which maybe is usefull if you do not have a NDVI value and have to keep with RGB input. Combined with height bands/selection this should give you quite good results.
See 
for details how to use.

Best regards & good luck,

Jochen @rapidlasso

Sonali Sharma

unread,
Mar 4, 2024, 10:51:02 AM3/4/24
to LAStools - efficient tools for LiDAR processing
Hi Jorge and Jochen, 

Thank you for your help and suggestions; I am working to combine both solutions. 

Best, 
Sonali 

Reply all
Reply to author
Forward
0 new messages