Hi Sonali,
we took a small sample out of your sample:
and we see buildings, high an low veg.
The classification in your sample is not that nice:
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
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
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