Skip to content

Convert a point cloud into a digital surface (or terrain) model with colors.

License

Notifications You must be signed in to change notification settings

CNES/cars-rasterize

Repository files navigation

Overview

cars-rasterize aims to convert a point cloud into a digital surface (or terrain) model with colors.

It is a part of the photogrammetry tool cars extracting Digital Surface Models from satellite images.

Installation

cars-rasterize is available on Pypi and can be installed by:

pip install cars-rasterize

Quick start

  1. Download subsampled_nimes.laz*:
wget https://raw.githubusercontent.com/CNES/cars-rasterize/master/data/subsampled_nimes.laz
subsampled_nimes.laz

drawing

subsampled_nimes.laz* is from https://geoservices.ign.fr/lidarhd. and has been downsampled (1 point every 50cm) to make the file smaller.

  1. Run las2tif executable:
las2tif subsampled_nimes.laz dsm.tif --clr_out clr.tif
  1. ✅ Done! The executable generates two files:
  • dsm.tif: the elevation of the points (Z dimension) are projected into a regular grid to generate a raster file named Digital Surface Model.
  • clr.tif: the red, the green and the blue dimensions can be also projected producing a color interpretation map superimposable on DSM
dsm.tif clr.tif
drawing drawing

How it works

A LAS file contains a set of points $P = {(x, y, z, r, g, b)_k}$ each having several dimensions:

  • $x$ and $y$ correspond to planimetric information
  • $z$ corresponds to the altitude
  • $r$, $g$ and $b$ correspond to colorimetric information (respectively red, green, blue )

To create a raster digital surface model, we define a regular grid on a region of interest roi of origin $(x_{start}, y_{start})$, size $(x_{size}, y_{size})$ with a constant resolution.

For each cell of center $(c_x, c_y)$, we consider the subset of points contained in the disk $D$ (parameter radius) centered on this cell (see figure below):

Contributing points

drawing

Then, the altitude assigned $z(c_x, c_y)$ to the cell is a Gaussian weighted average (standard deviation sigma $\sigma$) of the distance $d$ to its center :

$$z(c_x, c_y) = \frac{\sum_{p_k \in D} z_k e^{-d_k^2/2\sigma^2}}{\sum_{p_k \in D} e^{-d_k^2/2\sigma^2}}$$

Finally, to have a superimposable color to this dsm, the colors are averaged in the same way.

Contribution

cars-rasterize is a free software: Apache Software License 2.0. See Contribution manual.

About

Convert a point cloud into a digital surface (or terrain) model with colors.

Resources

License

Stars

Watchers

Forks