Exploring the field

Satellite photogrammetry in a nutshell

As its name suggests, satellite photogrammetry works using optical satellite acquisitions to generate a Digital Surface Model (DSM), the 2.5D representation created from observed surface altitude data. We speak of 2.5D because the digital surface model is an array of pixels (raster, 2D) where each pixel (x,y) corresponds to an altitude (z).

../_images/2D5.drawio.png

Fig. 1 2.5D representation

On the left, an example of an array of pixels, and on the right, a volume representation of altitude values.

Like our eyes, altitude (or depth relative to the satellite, to continue the analogy) is determined from the observed pixels displacement. We therefore need at least two images, acquired from two different viewpoints. This difference in viewpoints between two satellites is quantified by the B over H ratio where B is the distance between the two satellites and H is their altitude.

B over H ratio

Two viewpoints

b_over_h

nutimages

Every raster readable by GDAL can be given as CARS input. In addition to images, the photogrammetric process requires geometric models. Rational Polynomial Coefficients (RPCs) provide a compact representation of a ground-to-image geometry giving a relationship between:

  • Image coordinates + altitude and ground coordinates (direct model: image to ground)

  • Ground coordinates + altitude and image coordinates (inverse model: ground to image)

These coefficients are classically contained in the RPC*.XML files.

From Satellite Images to Digital Surface Model

Generate a DSM step by step

Images are first resampled in epipolar geometry: by changing viewpoints, objects pixels move along a line.
This enables a one-dimensional search (computer performance + error limitation).
The pixels shifting along other directions are not taken into account : it corresponds to fast moving objects like vehicles.

Pipeline

Resampling

images_models
resampling_circled
matching
triangulation
rasterization

resampling_image

For each point in one image, the software searches the corresponding point in the other image.
The color of the pixels (grayscale) in the image below corresponds to the shift value. Pixels with no match are displayed as transparent pixels in the image below.
The transparent pixels indicate areas where the matching algorithm couldn’t find a reliable correspondence between the two images, highlighting regions of uncertainty in the matching process. These matching errors can occur due to various reasons such as moving objects, shadows, occlusions, or areas with insufficient texture.

Pipeline

Matching

images_models
resampling
matching_circled
triangulation
rasterization

matching_image

The displacements obtained are transformed into positions in both images.
This allows to deduce lines of sight. The intersection of these lines gives a point in space: longitude, latitude, altitude (see below).
A line of sight is an imaginary straight line from the camera’s perspective through a specific point in the image, extending into 3D space. It represents all possible 3D positions that could have produced that image point.

Pipeline

Triangulation

images_models
resampling
matching
triangulation_circled
rasterization

triangulation_image

To obtain a raster image, the final process projects each point into a 2D grid: altitudes and colors (see below).

Pipeline

Rasterization

images_models
resampling
matching
triangulation
rasterization_circled

rasterization_image

Initial Input Digital Elevation Model

For now, CARS can use an initial input Digital Elevation Model (DEM) which is integrated in the stereo-rectification to minimize the disparity intervals to explore. Any geotiff file can be used.

The parameter is initial_elevation as seen in Configuration.

Altimetric exploration and geometric inaccuracies

To reduce the search interval (i.e. altimetric exploration) in the matching step and thus save computing time, a faster sparse matching step is typically used. This matching step also enables geometric errors to be corrected, thus ensuring that the epipolar geometry (based on these models) is correct.

Matching can be performed with keypoints like SIFT.

Mask and Classification Usage

Photogrammetry is a technique that cannot reproduce altitude on water. This technique also has difficulties for moving elements or in shaded areas.
For this reason, it is possible to mask out areas or apply ad hoc processing to aid the matching stage.

Masks

CARS can use a mask for each image in order to ignore some image regions (for instance water mask). This mask is taken into account during the whole 3D restitution process.
The masks have one band with 1 nbit and the non zeros values will be considered as invalid data and theses areas will not be processed during the computation.
Please, see the section Convert image to binary image to make a binary image.
The masks are resampled in epipolar geometry with the resampling application.
The masked values are not taken into account in the matching process (sparse or dense matching method) to avoid mismatch and useless processing.
Furthermore, the sparse matching estimation of the disparity range can be enhanced with mask using for the water area typicaly.

Classification

The considered classification image are multi-band raster with descriptions name for each band and 1 nbit per band. See optional description option of the Gdal band raster model
Please, see the section Convert image to binary image to make a multiband binary image with 1 bit per band.
All non-zeros values of the classification image will be considered as invalid data.
The classification can be used in each application by band name list selection parameter. See application classification parameter Configuration.

3D products

CARS produces a geotiff file named dsm.tif that contains the Digital Surface Model in the required cartographic projection and the ground sampling distance defined by the user.
If the user provides an additional input image, an ortho-image color.tif is also produced. The latter is stackable to the DSM (See Getting Started).
If the user saves point clouds as laz format, the point clouds are saved in laz compressed format with colors or graylevel image.

These two products can be visualized with QGIS for example.

dsm.tif

color.tif

QGIS Mix

cloudcompare

dsm

color

dsmclr

pc