eval_sat-bundleadjust
September 1, 2026 ยท View on GitHub
Evaluation utilities and notebooks for comparing RPC bundle adjustment pipelines on the DFC2019 Track3 multi-date satellite image collections over the Omaha and Jacksonville areas of interest.
This repository is intended to evaluate:
The evaluation protocol is described in the paper Robust RPC Bundle Adjustment for Multi-Date Satellite Imagery with Season-Invariant Correspondences.
For the detailed evaluation workflow, see eval_utils/README.md.
Repository Structure
eval_utils/contains the scripts used to prepare evaluation inputs, run the fixed-RPC held-out experiments, and compute metrics.notebooks/contains exploratory notebooks, sanity checks, and code used to recreate figures from the paper.tests/contains regression tests for repository dependency boundaries.
Dependency Direction
eval_sat-bundleadjust depends on sat-bundleadjust; sat-bundleadjust must
not depend on this repository.
In other words, code under eval_utils/ and notebooks/ may import
bundle_adjust, but code under sat-bundleadjust/bundle_adjust/ must not import
or path-reference eval_utils/ or notebooks/.
You can check this boundary with:
python -m pytest tests/test_dependency_boundaries.py -q
By default, the test looks for sat-bundleadjust at
/home/roger/sat-bundleadjust. To use a different checkout, set:
SAT_BUNDLEADJUST_REPO=/path/to/sat-bundleadjust \
python -m pytest tests/test_dependency_boundaries.py -q
Requirements
The reference environment runs on Python 3.9.20.
The top-level requirements.txt is the single install recipe
for this repository. It includes the core sat-bundleadjust requirements, the
evaluation and notebook dependencies, and sat-bundleadjust v2 itself. The
sat-bundleadjust v2 requirement is intentionally listed last so it has
priority over older sat-bundleadjust installations.
To create a conda environment from scratch:
conda create -n eval_satba python=3.9.20
conda activate eval_satba
python -m pip install -r requirements.txt
The DINOv3 satellite model is gated on Hugging Face. If you recompute DINOv3
similarities, provide a token through HF_TOKEN, HUGGINGFACE_HUB_TOKEN, or
HUGGING_FACE_HUB_TOKEN.
Configuration
Before running the evaluation, edit eval_utils/set_paths.sh for your local filesystem. In particular, check:
SATBA_REPO: path to thesat-bundleadjustcheckoutEVAL_ROOT: root directory for generated inputs, outputs, and logsIMAGE_ROOT: root directory for the DFC2019 Track3 image crops
Then follow the workflow in eval_utils/README.md.