Intensity images and normalization

774 views
Skip to first unread message

Steven F

unread,
Oct 29, 2014, 11:54:55 AM10/29/14
to last...@googlegroups.com
I'm attempting to collect ground control points from lidar intensity images for triangulating aerial photos. So far I've tried a few different settings in lasgrid including the highest or average intensity of either first returns or all returns, but the images are still fairly difficult to visually interpret. 
Are there any parameters that tend to work best for producing a nice looking intensity image?

Also, my lidar data is over a very mountainous area so correcting the intensities for range might improve the appearance of the intensity image, and normalized intensities could yield more informative intensity metrics from lascanopy.
Is lastools capable of normalizing the intensity values if I have trajectory files? 

Martin Isenburg

unread,
Jan 8, 2015, 5:37:52 AM1/8/15
to LAStools - efficient command line tools for LIDAR processing

Hello,

One answer would be to use RIEGL scanner where "normalized reflectivity" can be exported to the LAS file in form of "extra bytes".

Or i could add this as a feature - likely to lastrack because we would require trajectories - but i do have many more feature requests on my plate. How should such an intensity normalization step be implemented (assuming all is flown by the same scanner)? Suggestions?

Steven told me someone that he was contacted in a private email off-list by a service provider who gave me a little advice. They basically said that intensity normalization usually isn't that important and they aren't aware of any free tools for it. However, they and probably other contractors have custom tools and will provide it as a service if requested by a client.

Steven ended up not needing to perform the normalization for my original purpose, which was to create a good looking image that he could use for georeferencing aerial photos. However, he could see normalized intensity statistics being potentially useful as canopy metrics for forestry. To him it seems like very few people attempt to use intensity metrics when estimating forest structure or classifying trees, but he thinks it's possible that these metrics often don't end up being significant in classifiers partly because they aren't normalized.

He would only suggest adding it if I  think it wouldn't be that difficult and if other people in the community would be interested in it.

Regards,

Martin @rapidlasso

Jonah Sullivan

unread,
Jan 8, 2015, 4:24:33 PM1/8/15
to last...@googlegroups.com
I have seen a lot of research where normalised intensity was used along with other attributes for point cloud classification (usually with supervised classification through machine learning: support vector machines or random forests).

I have never seen a point cloud with normalised intensity.

I have trouble believing that it can be implemented well considering the complexity of terrain and above-ground objects. 

As an example: a pulse that passes through vegetation will be partially reflected several times before terminating. Each partial reflection will consume a portion of the initial energy. The last return represent either be the remaining portion of the initial energy, or just another small portion with the remaining energy lost in the forest under story. How would you apportion the energy to each of these returns?

Another example: a laser pulse that strikes the side of a building will have a footprint that is a very long ellipse, while a strike on the top of a building will have a much shorter ellipse, and a strike on the edge of a building will be a portion of an ellipse. How would you handle each of these cases?

The following publication may be of interest:

Höfle, B., Detection and Utilization of the Information Potential of Airborne Laser Scanning Point Cloud and Intensity Data by Developing a Management and Analysis System, in Dissertation, Faculty of Geo- and Atmospheric Sciences 2007, University of Innsbruck: Austria.

Jonah Sullivan 
Geospatial Analyst
National Topography Services  |  National Location Information Group
Environmental Geoscience Division  |  GEOSCIENCE AUSTRALIA
Phone:  +61 2 6249 9516    Fax:  +61 2 6249 9999
Email:  Jonah.S...@ga.gov.au    Web:  www.ga.gov.au
Cnr Jerrabomberra Avenue and Hindmarsh Drive Symonston ACT
GPO Box 378 Canberra ACT 2601 Australia
Applying geoscience to Australia’s most important challenges

Steven F

unread,
Jan 9, 2015, 12:50:36 AM1/9/15
to last...@googlegroups.com
It would probably make the most sense to implement intensity normalization as a simple range correction within lastrack. 
Intensity corrected = Intensity*(Range^2 / Standard Range ^2)
This has been used to good effect in a few papers I've come across.
The dissertation that Jonah mentioned uses this method as a basis for comparison for a somewhat more complex method that takes into account angle of incidence and atmospheric thickness. I think the difference in results between these approaches probably wouldn't warrant the additional complexity in most circumstances. 

Floris Groesz

unread,
Feb 23, 2015, 7:11:10 AM2/23/15
to last...@googlegroups.com
I agree that it would be useful to have a basic calibration option in lastrack that corrects for range.
I am looking at some RIEGL data for forestry and my data set only has amplitude (We have a Q-series instrument, not a V-series). It would be very good to be able to do the range calibration in LAStools.
All other corrections like incidence angle and surface type are so complex that I think that they will have to wait.

Floris

Reginald Argamosa

unread,
Apr 10, 2016, 10:37:12 AM4/10/16
to LAStools - efficient tools for LiDAR processing
Hi Martin,
Is it possible in LAStools to identify which pulse the returns belong to? Also, is it possible to identify the values of intensity per return? I know that lascanopy can compute for the intensity metrics but we want to extract intensity values per return and not in a pixel basis.

see attached image.

Thanks

-Regi
 

Capture.PNG

alecsolpenda

unread,
Apr 10, 2016, 6:22:52 PM4/10/16
to LAStools - efficient tools for LiDAR processing
hello regi,

i got the feeling that i might be using the answers to your questions in the near future so please allow me to write something in your post (as martin might also be still paddling somewhere :-) )
have you tried using last2txt for this? there is already a discussion similar to your query and it makes use of the filter "keep_return" (that's for your second question). there is as well a check box option called "point source ID" (to answer your first question?). please let me know if this works,thanks!

alex

Reginald Argamosa

unread,
Apr 12, 2016, 4:40:59 AM4/12/16
to LAStools - efficient tools for LiDAR processing
Hi Alex,

I tried using las2txt and you are right that it gives the intensity values, gps time, and pt source id. Thank you for that. =) However, i think that the point source id is not the id of the pulse but rather the id of the flight line. What I need is to determine the which pulse the return comes from. 

-Regi

Martin Isenburg

unread,
May 15, 2016, 10:21:30 AM5/15/16
to LAStools - efficient command line tools for LIDAR processing
Hello Regie,

for single beam LiDAR systems it is the GPS time stamp that is supposed to unqiuely identify all of the discrete LiDAR returns that belong to the same laser pulse. In LAStools you can group these returns together by sorting via the GPS time:

lassort -i lidar.laz -gpstime -odix _sorted -olaz

You can additionally sort them such that the returns from the same pulse (and the same GPS time stamp) are ordered 1 of 4, 2 of 4, 3 of 4, 4 of 4 with: 

lassort -i lidar.laz -gpstime -return_number -odix _sorted -olaz

then you will see that they are grouped together by pulse

las2txt -i lidar_sorted.laz -parse trnxyzi -stdout | more
5881.054885 1 1 277997.16 6122447.51 57.80 30
5881.054895 1 1 277997.17 6122448.19 57.71 23
5881.054901 1 2 277997.56 6122448.66 54.14 24
5881.054901 2 2 277997.94 6122448.80 50.65 17
5881.054906 1 2 277997.54 6122448.99 54.29 31
5881.054906 2 2 277997.94 6122449.14 50.67 10
5881.054911 1 2 277997.54 6122449.33 54.31 10
5881.054911 2 2 277997.94 6122449.47 50.66 64
5881.054916 1 1 277997.54 6122449.66 54.33 28
5881.054920 1 1 277997.54 6122450.00 54.31 18
5881.054925 1 3 277997.57 6122450.35 54.05 12
5881.054925 2 3 277997.75 6122450.42 52.33 27
5881.054925 3 3 277997.94 6122450.50 50.64 18
5881.054930 1 1 277997.93 6122450.83 50.65 102
5881.054936 1 1 277997.93 6122451.17 50.65 125

Regards,

Martin @rapidlasso

--
Reply all
Reply to author
Forward
0 new messages