Professional Documents
Culture Documents
Complete LiDAR Processing Pipeline - From Raw Flightlines To Final Products - Rapidlasso GMBH
Complete LiDAR Processing Pipeline - From Raw Flightlines To Final Products - Rapidlasso GMBH
Search
Ayutthaya_line_2.laz
Ayutthaya_line_3.laz
Ayutthaya_line_4.laz
Quality Checking
-cd ^
-histo z 5 ^
-histo intensity 64 ^
-cores 3
lasvalidate -i Ayutthaya\strips_raw\*.laz ^
-o Ayutthaya\quality\validate.xml
The lasinfo report generated with the command line shown computes
the average density for each flightline and also generates two
histograms, one for the z coordinate with a bin size of 5 meter and
one for the intensity with a bin size of 64. The resulting textual
descriptions are output into the specified quality folder with an
appendix ‘_info’ added to the original file name. Perusing these
reports tells you that there are up to 7 returns per pulse, that the
average pulse density per flightline is between 7.1 to 7.9 shots per
square meter, that the point source IDs of the points are already
populated correctly, that there are isolated points far above and far
below the scanned area, and that the intensity values range from 0
to 1023 with the majority being below 400. The warnings in the lasinfo
and the lasvalidate reports about the presence of return numbers 6
and 7 have to do with the history of the LAS format and can safely be
ignored.
lasoverlap -i Ayutthaya\strips_raw\*.laz ^
-files_are_flightlines ^
This results in two color illustrations. One image shows the flightline
overlap with blue indicating one flightline, turquoise indicating two,
and yellow indicating three flightlines. Note that wet areas (rivers,
lakes, rice paddies, …) without LiDAR returns affect this visualization.
The other image shows how well overlapping flightlines align. Their
vertical difference is color coded with while meaning less than 10 cm
error while saturated red and blue indicate areas with more than 30
cm positive or negative difference.
One pixel wide red and blue along building edges and speckles of red
and blue in vegetated areas are normal. We need to look-out for large
systematic errors where terrain features or flightline outlines become
visible. If you click yourself through this photo album you will
eventually see typical examples (make sure to read the comments
too). One area slightly below the center looks suspicious. We load the
PNG into the GUI to pick this area for closer inspection with lasview.
-keep_last ^
-step 2 -density ^
-false -set_min_max 4 8 ^
The last return density image clearly shows how the density increases
to over 10 pulses per square meter in all areas of flightline overlap.
However, as there are large parts covered by only one flightline their
density is the one that should be considered. We note great variations
in density along the flightlines. Those have to do with aircraft
movement and in particular with the pitch. When the nose of the plane
goes up even slightly, the gigantic “fan of laser pulses” (that can be
thought of as being rigidly attached at the bottom perpendicular to the
aircraft flight direction) is moving faster forward on the ground far
below and therefore covers it with fewer shots per square meter.
Conversely when the nose of the plane goes down the spacing
between scan lines far below the plane are condensed so that the
density increases. Inclement weather and the resulting airplane pitch
turbulence can have a big impact on how regular the laser pulse
spacing is on the ground. Read this article for more on LiDAR pulse
density and spacing.
LiDAR Preparation
When you have airborne LiDAR in flightlines the first step is to tile the
data into square tiles that are typically 1000 by 1000 or – for higher
density surveys – 500 by 500 meters in size. This can be done with
lastile. We also add a buffer of 30 meters to each tile. Why buffers are
important for tile-based processing is explained here. We choose 30
meters as this is larger than any building we expect in this area and
slightly larger than the ‘-step’ size we use later when classifying the
points into ground and non-ground points with lasground.
lastile -i Ayutthaya\strips_raw\*.laz ^
Next we classify isolated points that are far from most other points
with lasnoise into the (default) classification code 7. See the
README file for the meaning of the parameters and play around with
different setting to get a feel for how to make this process more or
less aggressive.
lasnoise -i Ayutthaya\tiles_raw\ayu*.laz ^
-cores 4
lasground -i Ayutthaya\tiles_denoised\ayu*.laz ^
-ignore_class 7 ^
-city -ultra_fine ^
-compute_height ^
-cores 4
laslayers -i Ayutthaya\tiles_ground\ayu_669500_1586500.laz -
-o Ayutthaya\tiles_ground\ayu_669500_1586500_edite
move Ayutthaya\tiles_ground\ayu_669500_1586500_edit.laz ^
Ayutthaya\tiles_ground\ayu_669500_1586500.laz
The next step classifies those points that are neither ground (2) nor
noise (7) into building (or rather roof) points (class 6) and high
vegetation points (class 5). For this we use lasclassify with the default
parameters that only considers points that are at least 2 meters above
the classified ground points (see the README for details on all
available parameters).
lasclassify -i Ayutthaya\tiles_ground\ayu*.laz ^
-ignore_class 7 ^
-cores 4
lastile -i Ayutthaya\tiles_classified\ayu*.laz ^
-remove_buffer ^
-cores 4
Together with the tiling you may want to deliver a tile overview file in
KML format (or in SHP format) that you can easily generate with
lasboundary using this command line:
lasboundary -i Ayutthaya\tiles_final\ayu*.laz ^
-use_bb ^
-overview -labels ^
-o Ayutthaya\tiles_overview.kml
Derivative production
las2dem -i Ayutthaya\tiles_ground\ayu*.laz ^
-keep_class 2 ^
-cores 4
It’s important to add ‘-use_tile_bb’ to the command line which limits
the raster generation to the original tile sizes of 500 by 500 meters in
order not to rasterize the buffers that are extending the tiles 30 meters
in each direction. We used the BIL format so that we inspect the
resulting elevation rasters with lasview:
To create a hillshaded version of the DTM you can use your favorite
raster processing package such as GDAL or GRASS but you could
also use the BLAST extension of LAStools and create a large
seamless image with blast2dem as follows:
-o Ayutthaya\dtm_hillshade.png
Because blast2dem does not parse the PRJ files that accompany the
BIL rasters we have to specify the EPSG code explicitly to also get a
KML file that allows us to visualize the LiDAR in Google Earth.
las2dem -i Ayutthaya\tiles_denoised\ayu*.laz ^
-drop_class 7 ^
-cores 4
We used 1.0 as the freeze value for the spike free algorithm because
this is about three times the average last return spacing reported in
the individual lasinfo reports generated during quality checking. Again
we inspect the resulting rasters with lasview:
las2dem -i Ayutthaya\tiles_denoised\ayu*.laz ^
-drop_class 7 -keep_first ^
-cores 4
-keep_class 6 ^
-o Ayutthaya\buildings.shp
-keep_class 5 ^
-disjoint -concavity 3 ^
-o Ayutthaya\vegetation.shp
We can also produce 1.0 meter contour lines from the ground
classified points. However, for nicer contours it is beneficial to first
generate a subset of the ground points with lasthin using option ‘-
contours 1.0’ as follows:
lasthin -i Ayutthaya\tiles_final\ayu*.laz ^
-keep_class 2 ^
-cores 4
-iso_every 1.0 ^
Share this:
Twitter Facebook
Loading...
Related
This entry was posted in classification, DEM, DSM, DTM, LAS, LASlayers, LAStools, lasview,
LASzip, LAZ, LiDAR, manual editing, tutorials, vegetation. Bookmark the permalink.
Leave a Reply