Open-source satellite photogrammetry

Sat-BundleAdjust

RPC Bundle Adjustment for Multi-View and Multi-Date Satellite Imagery

Overview

Sat-BundleAdjust is an open-source pipeline for refining Rational Polynomial Camera (RPC) models from feature correspondences across multiple satellite images.

The pipeline selects image pairs, extracts and matches features, builds multi-view feature tracks, and jointly optimises camera correction parameters through bundle adjustment. Corrected camera models are exported in RPC format for use in downstream tasks such as registration, orthorectification, stereo reconstruction, and change analysis.

Pipeline

01 Images and RPCs Satellite imagery and initial camera models
02 Pair selection Geometric and visual compatibility criteria
03 Feature matching Handcrafted or learned matching pipelines
04 Feature tracks Consistent multi-view tie-point observations
05 Bundle adjustment Joint RPC correction parameter optimisation
06 Corrected RPCs Refined camera models exported in RPC format

Key capabilities

RPC-native workflow

Reads and processes RPC models using rpcm.

Configurable correspondences

Supports configurable pair selection, feature matching, and track construction.

Multi-date imagery

Handles seasonal and acquisition-dependent appearance changes.

RPC-format output

Exports corrected models using rpcfit.

Releases

v2.0.0 — Learned matching and similarity-based pair selection

2026

A major extension of the original pipeline for robust processing of multi-date satellite image collections.

  • Learned detector-based matching pipelines, including combinations such as SuperPoint + LightGlue.
  • Similarity-based pair selection that retains a subset of visually compatible image pairs.
  • Improved robustness to seasonal and other appearance changes.

v1.0.0 — Original IPOL implementation

2021

The original implementation accompanying the 2021 IPOL article.

  • Feature matching based on handcrafted detectors, descriptors, and matching methods.
  • Image-pair selection based on stereo baseline distance and geographical overlap.
  • RPC refinement through bundle adjustment using feature tracks as tie points.

Each release documents a specific version of the pipeline.

Installation and usage

Clone the repository and install the package in editable mode:

git clone https://github.com/centreborelli/sat-bundleadjust.git
cd sat-bundleadjust
pip install -e .

Run the pipeline with a JSON configuration file:

bundle_adjust config.json

See the repository README for configuration parameters, test data, and usage details.

Publications

A Generic Bundle Adjustment Methodology for Indirect RPC Model Refinement of Satellite Imagery

Roger Marí, Carlo de Franchis, Enric Meinhardt-Llopis, Jérémy Anger, and Gabriele Facciolo

Image Processing On Line, vol. 11, pp. 344–373, 2021. Publication page

Robust RPC Bundle Adjustment for Multi-Date Satellite Imagery with Season-Invariant Correspondences

Roger Marí, Elías Masquil, Xavier Bou, Thibaud Ehret, and Gabriele Facciolo

ECCV Workshops 2026. Publication page