Skip to content

buaa-colalab/AEOSBench

Repository files navigation

Towards Realistic Earth-Observation Constellation Scheduling: Benchmark and Methodology

Luting Wang*,1  Yinghao Xiang*,1  Hongliang Huang1  Dongjun Li1  Chen Gao†,1  Si Liu†,1
1Beihang University 
NeurIPS 2025

AEOS-Bench is a realistic benchmark and methodology for Earth-Observation constellation scheduling, providing high-fidelity orbital simulation, large-scale task sets, and reference implementations of representative baselines.


📢 News

  • [2025-10-30] 🔥 Our paper "Towards Realistic Earth-Observation Constellation Scheduling: Benchmark and Methodology" is released on arXiv. Code and evaluation scripts are open-sourced.

💡 Highlights

  • Realistic Benchmark. We construct a realistic constellation scheduling benchmark with high-fidelity orbital dynamics, diverse satellite configurations, and large-scale observation tasks.
  • Unified Methodology. We provide a unified framework that bridges classical optimization and learning-based approaches, including reference implementations of representative baselines.
  • Strong Performance. Our proposed method achieves State-of-the-Art performance on the proposed benchmark across multiple evaluation splits.

🛠️ Usage

Installation

We recommend using Conda / pipenv for environment management:

sudo apt install ffmpeg libpq-dev
bash setup.sh

setup.sh will create a pipenv environment with Python 3.11.10 and install the required dependencies (PyTorch 2.6.0+cu124, gymnasium, stable-baselines3, etc.).

Data Preparation

If you want to use the full dataset to reproduce our paper:

git clone git@hf.co:datasets/MessianX/AEOS-dataset ./data
find ./data -type f -name '*.tar' -print0 \
    | xargs -0 -n1 -I{} sh -c 'tar -xf "$1" -C "$(dirname "$1")"' _ {}

Or, if you only want to evaluate your own model, you can download the val_seen / val_unseen / test trajectories from our HuggingFace repo and unzip them:

# TODO: urls
# suppose you have downloaded the requested tarballs into ./data
find ./data -type f -name '*.tar' -print0 \
    | xargs -0 -n1 -I{} sh -c 'tar -xf "$1" -C "$(dirname "$1")"' _ {}

After extraction, the file tree should look like:

data/
├── trajectories.1/
│   ├── test/
│   ├── train/
│   │   ├── 00/         # contains pth and json files
│   │   ├── 01/
│   │   └── ...
│   ├── val_seen/
│   └── val_unseen/
├── trajectories.2/
├── trajectories.3/
├── annotations/
│   ├── test.json
│   ├── train.json
│   ├── val_seen.json
│   └── val_unseen.json
├── constellations/
│   ├── test/
│   ├── train/
│   ├── val_seen/
│   └── val_unseen/
├── orbits/
├── satellites/
└── tasksets/

Training

Use the command below to train our model. It will continue until 200,000 iterations.

CUDA_VISIBLE_DEVICES=0 PYTHONPATH=:${PYTHONPATH} \
    auto_torchrun -m constellation.new_transformers.train \
    test constellation/new_transformers/config.py

Evaluation

Use the command below to evaluate a trained model:

CUDA_VISIBLE_DEVICES=0 WORLD_SIZE=1 RANK=0 \
    python -m constellation.rl.eval_all \
    work_dir_name \
    constellation/rl/config_eval.py \
    --load-model-from 'work_dirs/test/checkpoints/iter_100000/model.pth'

📝 Citation

If you find this work useful, please cite our paper using the metadata in CITATION.cff. GitHub will also show citation formats through the Cite this repository button.

📄 License

This project is licensed under the Apache-2.0 License. See LICENSE for more information.

🙏 Acknowledgement

This project builds upon several outstanding open-source projects, including Basilisk. We sincerely thank the authors for their valuable contributions to the community.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

33 stars

Watchers

2 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages