.. index:: Colorization, GDAL, Raster, RGB
This exercise uses PDAL to apply color information from a raster onto point data. Point cloud data, especially |LiDAR|, do not often have coincident color information. It is possible to project color information onto the points from an imagery source. This makes it convenient to see data in a larger context.
PDAL provides a :ref:`filter <filters>` to apply color information from raster files onto point cloud data. Think of this operation as a top-down projection of RGB color values on the points.
Because this operation is somewhat complex, we are going to use a pipeline to define it.
.. literalinclude:: ./colorize.json :linenos:
Note
This JSON file is available in your workshop materials in the
./exercises/analysis/colorization/colorize.json
file. Remember to
open this file and replace each occurrence of c:/Users/hobu/PDAL/
with the correct path for your machine.
After our pipeline errata, the first item we define in the pipeline is the point cloud file we're going to read.
"c:/Users/hobu/PDAL/exercises/analysis/colorization/uncompahgre.laz",
The :ref:`filters.colorization` PDAL filter does most of the work for this
operation. We're going to use the default data scaling options. This
filter will create PDAL dimensions Red
, Green
, and Blue
.
{ "type": "filters.colorization", "raster": "c:/Users/hobu/PDAL/exercises/analysis/colorization/casi-2015-04-29-weekly-mosaic.tif" },
A small challenge is the raster will colorize many points with NODATA values.
We are going to use the :ref:`filters.range` to filter keep any points that
have Red >= 1
.
{ "type": "filters.range", "limits": "Red[1:]" },
We could just define the uncompahgre-colored.laz
filename, but we want to
add a few options to have finer control over what is written. These include:
{ "type": "writers.las", "compression": "true", "minor_version": "2", "dataformat_id": "3", "filename":"c:/Users/hobu/PDAL/exercises/colorization/analysis/uncompahgre-colored.laz" }
compression
: |LASzip| data is ~6x smaller than ASPRS LAS.minor_version
: We want to make sure to output LAS 1.2, which will provide the widest compatibility with other softwares that can consume LAS.dataformat_id
: Format 3 supports both time and color information
Note
:ref:`writers.las` provides a number of possible options to control how your LAS files are written.
Invoke the following command, substituting accordingly, in your |Terminal|:
.. literalinclude:: ./colorization-run-command.txt :linenos:
Use one of the point cloud visualization tools you installed to take a look at
your uncompahgre-colored.laz
output. In the example below, we simply
opened the file using the http://plas.io website.
- Applying color information that is not time-coincident with the point cloud data will mean you will see discontinuities.
- GDAL is used to read the image source. Any GDAL-readable data format can be used.
- There are performance considerations to be aware of depending on the raster format and type being used. See :ref:`filters.colorization` for more information.
- These data are of Uncompahgre Basin courtesy of the NASA Airborne Snow Observatory.