What's New in Teams Calling, Meetings and Devices March 2024
2016 foss4 g track: grass gis point cloud exploratory data analysis by robert dzur
1. GRASS GIS Point Cloud Exploratory Data Analysis
An Open Source toolkit for point cloud data processing
1. Abstract
The objective of this presentation is to share
information about:
• GRASS GIS software,
• its point cloud data handling capabilities,
and
• demonstrate practical use cases.
GRASS GIS is a powerful open source software
package that provides a full array of raster and
vector processing capability. GRASS GIS offers
flexible capabilities for rapid and effective point
cloud data processing across a wide domain of
collection sources. This paper/presentation
demonstrates LiDAR-specific GRASS GIS
processing functionality. These point cloud
capabilities focus on point cloud data import,
analysis, and visualization. Exploratory analysis
techniques demonstrate data creation methods for
development of derivative point cloud products
such as intensity imagery, point cloud density
statistics and GIS feature extraction. Strategies for
automation of such products is also covered.
Example analysis includes products generated
using data collected from mobile highway corridor
LiDAR, airborne LiDAR and photogrammetric point
cloud data sources.
2. GRASS GIS Software
GRASS GIS, originally
developed by the US Army
Corp of Engineers (USACE)
during the 1980s remains
today a highly capable
open source GIS project. The
software is available across
multiple OS platforms
including Windows, Linux
and Mac OS X. GRASS GIS commands can be1
run through a through a command line interface
(CLI) as well as through a Python-based graphical
user interface (GUI). GRASS GIS is integrated with
the Geospatial Data Abstraction Library (GDAL/
OGR) which allows for import and export of a wide
variety of geospatial data formats. With regard to
point cloud data, GRASS currently depends on the
libLAS library for point cloud import.
3. Exploratory Analysis
Point cloud datasets present data processing
challenges given their size and volume. While
GRASS GIS can import point clouds as points, for
exploratory analysis, it may be advantageous to
work with and represent the point cloud data as a
raster. This is useful for visualizing and rapidly
assessing point cloud data. GRASS uses the
command “r.in.lidar” for direct import of point cloud
data in ASPRS LAS format. This command quickly
bins the point cloud data according to a specific
raster resolution using a user defined method (such
as mean, min, max, count, etc.) to import the points.
Options allow for tailoring and filtering which points
are imported. For example, a user can choose to
import data by return, classification, or by a specific
elevation range. Data exploration by its very nature
implies that the character of the data we are dealing
with may be unknown. Geospatial point clouds
typically represent high volumes of information that
can be challenging to efficiently analyze. Our
understanding of these types of data can be
enhanced and expanded using the raster analytical
processing tools that GRASS GIS offers. This paper
showcases some of these capabilities using
practical exploratory data analysis examples from a
variety of point cloud data sources.
https://grass.osgeo.org1
September 2016 Denver, CO GIS in the Rockies 1
Figure 1. GRASS GIS logo.
2. 4. General Workflow
Independent of the data source in the
demonstrated workflows, the r.in.lidar command is
the primary means of point cloud data import to
GRASS. In some cases, for visualization purposes,
the data are imported using the intensity option—to
provide for a photo like quality of the resulting
raster. Other analytical processing tasks import the
point cloud data as an elevation model or digital
surface model (DSM). With automation, these
import functions can be combined to produce
multiple visualizations from the same point cloud
source. Working in the raster domain, it is2
important to recognize that GRASS uses the
concept of the computational region which confines
analysis to a defined raster window (resolution,
rows, and columns).
5. Examples
1. 1-25, Albuquerque, NM
In this first example r.in.lidar is executed on a
mobile LiDAR point cloud consisting of more than
211 million points captured along a 3 mile segment
of Interstate 25 in Albuquerque, NM. In this
application, the point cloud intensity values are
imported to create an intensity image for
assessment of project horizontal control. After
import the intensity image can be further enhanced
to fill small areas of nodata using GRASS’s r.fillnulls
command.
GRASS supports scripting in Python or Bash.2
September 2016 Denver, CO GIS in the Rockies 2
Map Display
2D / 3D
View
Integrate
Bash / Python
Script
#!
r.out.gdal
v.out.ogr
Export
r.* - Raster
v.* - Vector
i.* - Imagery
g.* - General
db.* - Database
t.* - Time
Analyze
r.in.lidar
v,in.lidar
Import
Figure 2. Generalized overview of GRASS GIS workflow for point cloud data with options for integration, analysis, visualization and export.
Figure 3. View of mobile LiDAR point cloud; south bound I-25,
Albuquerque, NM.
3. 2. Calabacillas Arroyo, Albuquerque, NM
The next example, uses r.in.lidar to import two
different point clouds of varying resolutions and
acquisition times. After import, GRASS’s r.mapcalc
is used to detect and visualize elevation changes
between the two datasets. Changes are detected
and output as both rasters and polygons in KML
format. This process is automated in a bash script
that runs in approximately 1 minute.
3. Santa Fe County, NM
A more traditional LiDAR analysis follows
with analysis of two strips of LiDAR flight line
data, each containing more than 100 million
points. In this case, r.in.lidar is run on only
first return points to analyze spatial regularity
and distribution of the swaths. The “r.stats”
command also calculates the percentage of
data having no points (zero (0)) in the gridded
raster. For visualization, the process also
computes a DSM and an intensity image
which is also processed to a pdf with the
“ps.map” command.
4. Rio Grande, NM
In this example a photogrammetric-
derived historic point cloud developed from
1962 imagery is imported by r.in.lidar as an
intensity image and as a DSM. The intensity
image provides for a panchromatic
orthophoto view of these data which are
subsequently processed with GRASS’s
September 2016 Denver, CO GIS in the Rockies 3
Interstate 25 Intensity Image
Moblie LiDAR (0.3 ft GSD)
0 100
feet
Interstate 25 Intensity Image
Moblie LiDAR (0.3 ft GSD)
0 100
feet
Figure 4. Raw intensity at 0.3 ft. ground sample distance (GSD)
(left) and with bilinear nodata filling (right).
Figure 6. 2014-2010 change—negative (blue) positive (red).
Figure 5. Side-by-side view of 2010 Lidar (left) and 2014
photogrammetric point cloud (right).
Strip 101 Point Per Cell Map
4.66 ft GSD
0 0.5
miles
Strip_101_intensity_466ft
Figure 7. Southern portion of number of points per cell “count”
map for flight line strip 101 (above). Full swath intensity map
for strip 101 in pdf format (right).
4. i.segment command for object based image
analysis. The DSM is processed to slope and
aspect using the r.slope.aspect command. Terrain
roughness is calculated using a contributed GRASS
extension—r.roughness.vector. This example
underscores the open nature of GRASS and the
ability to contribute and use extensions which can
be compiled through the g.extension command.
5. Boca Negra Arroyo, Albuquerque, NM
In the Boca Negra Arroyo case study, r.in.lidar
develops a DSM from 187 million points which is
then analyzed with GRASS’s r.watershed command
to produce a basin map. Associated flow maps are
produced and the basin polygon is vectorized and
generalized to smooth the raster polygon boundary.
These processes are completed for the 16 sq. mile
basin at 6 ft resolution in under 10 minutes.
6. Lubbock, TX
More than
3,700 2016
photogrammetric
point cloud datasets
were processed over
the City of Lubbock to
support targeted building footprint collection.
Under a couple of different data processing
scenarios, r.in.lidar effectively processes these high
volume big data. For improved throughput the
project is split among multiple GRASS GIS
sessions. Decimated point cloud data also
provides an option for the most rapid processing
and visualization scenario completing a 3-foot DSM
mosaic for over 500 square miles in approximately
4-hours of processing time.
Acknowledgement
GRASS Development Team, 2015. Geographic Resources Analysis
Support System (GRASS) Software, Version 7.0. Open Source
Geospatial Foundation. http://grass.osgeo.org
Michael Barton, PhD. - GRASS Macintosh Binaries http://
grassmac.wikidot.com/
More information: Robert S. Dzur, rdzur@bhinc.com
September 2016 Denver, CO GIS in the Rockies 4
0.31962 Object Based Image Analysis (OBIA)
threshold=0.3 (i.segment) random colors
0 1
kilometers
1962 Photography − U.S. Bureau of Reclamation
Point Cloud Orthophoto (0.6 m GSD)
0 1
kilometers
1962 Digital Surface Model (DSM)
Color Shaded Relief (elevation in meters)
0 1
kilometers
1962 Slope Map
Point cloud derived slope (in degrees)
0 1
kilometers
Figure 8. Both image processing and terrain analysis performed
on 1962 point cloud data to explore historic river channel.
Flow Accumulation 0 5
miles
Figure 9. GRASS computed flow and stream network.
Figure 10. 2016 full resolution semi-
global matching point cloud with
140+ million points.
2016 Lubbock Digital Surface Model
Semi−global matching photogrammetric point clouds (3763)
0 10
miles
Figure 11. Color shaded relief DSM mosaic at 3-ft. GSD.