Monday, September 21, 2009

Correction of Airborne Laser Scanner Data

In my current job I work closely with a team of engineers who are quite interested in all things related to ice. They want to understand how ice movements in a shallow sea interact with man-made structures such as pipelines, platforms etc.

One of the things that they are interested in measuring is the shape and size of certain ice features (like ice-bergs, grounded ice piles, rubble fields etc). They want this information to estimate volumes and measure the critical angle of ice rubble pile-ups.

We've used various techniques to acquire this type of information; everything from analysis of optical and synthetic aperture radar satellite imagery to terrestrial laser scanning and even laser scanning from helicopters.

During one campaign, laser scanner data was acquired from helicopter but no motion / attitude sensor was available to correct the data for pitch, roll or yaw. A non-survey grade GPS was used to record the position of the helicopter and heading could be interpolated as "course made good" from two position fixes - so really the spatial referencing wasn't very good.

My colleagues wanted to measure the angles of the ice rubble piles from this data - but I warned them that the data would be misleading because of the lack of atitude correction. Extreme angles might be measured that are influenced by a large roll event for example.

After looking at the data I decided that it would be possible to automate the correction of the data even without information from a motion reference unit. This was possible because each scan line in the data also imaged portions of "flat"ice / sea surface and this could be used to determine a "normal"flat surface. If the approximate elevation of the sensor is known then roll correction is possible.

I realised also that to a certain extent a semi-automated correction for yaw could be performed by picking correction points on the laser scanner dataset.

I built a quick tool to perform the automated analysis and correct the dataset. It also allowed the data to be geo-coded using the GPS data. A screen capture is included at the top of this post.