AiTLAS toolbox for EO data.
Project description
The AiTLAS toolbox (Artificial Intelligence Toolbox for Earth Observation) includes state-of-the-art machine learning methods for exploratory and predictive analysis of satellite imagery as well as repository of AI-ready Earth Observation (EO) datasets. It can be easily applied for a variety of Earth Observation tasks, such as land use and cover classification, crop type prediction, localization of specific objects (semantic segmentation), etc. The main goal of AiTLAS is to facilitate better usability and adoption of novel AI methods (and models) by EO experts, while offering easy access and standardized format of EO datasets to AI experts which allows benchmarking of various existing and novel AI methods tailored for EO data.
📢 AiTLAS 2.0 is out! 🚀
What's new
New foundation models & adapters
-
Added comprehensive support for the following foundation models: AnySat, CACo, Copernicus-FM, CROMA, DOFA, Galileo, GASSL, Panopticon, Presto, Prithvi, SatMAE, SatMAE++, Scale-MAE, SeCo, TerraFM, TerraMind
-
A table summarizing input modalities for foundation models:
| Foundation model | RGB | S1 | S2 | L8 | DEM |
|---|---|---|---|---|---|
| AnySat | 🔴 NO | 🟢 YES | 🟢 YES (no B1, B9, B10) | 🟢 YES | 🔴 NO |
| CACo | 🟢 YES | 🔴 NO | 🔴 NO | 🔴 NO | 🔴 NO |
| Copernicus-FM | 🟢 YES | 🔴 NO | 🟢 YES | 🔴 NO | 🔴 NO |
| CROMA | 🔴 NO | 🟢 YES | 🟢 YES (no B10) | 🔴 NO | 🔴 NO |
| DOFA | 🟢 YES | 🔴 NO | 🟢 YES | 🔴 NO | 🔴 NO |
| Galileo | 🔴 NO | 🟢 YES | 🟢 YES (no B1, B9, B10) | 🔴 NO | 🔴 NO |
| GASSL | 🟢 YES | 🔴 NO | 🔴 NO | 🔴 NO | 🔴 NO |
| Panopticon | 🔴 NO | 🟢 YES | 🟢 YES (no B10) | 🟢 YES | 🔴 NO |
| Presto | 🔴 NO | 🟢 YES | 🟢 YES (no B1, B9, B10) | 🔴 NO | 🔴 NO |
| Prithvi | 🔴 NO | 🔴 NO | 🟢 YES (no B1, B5, B6, B7, B8, B9, B10) | 🔴 NO | 🔴 NO |
| SatMAE | 🟢 YES | 🔴 NO | 🟢 YES (no B1, B9, B10) | 🔴 NO | 🔴 NO |
| SatMAE++ | 🟢 YES | 🔴 NO | 🟢 YES (no B1, B9, B10) | 🔴 NO | 🔴 NO |
| Scale-MAE | 🟢 YES | 🔴 NO | 🔴 NO | 🔴 NO | 🔴 NO |
| SeCo | 🟢 YES | 🔴 NO | 🔴 NO | 🔴 NO | 🔴 NO |
| TerraFM | 🔴 NO | 🔴 NO | 🟢 YES (no B10) | 🔴 NO | 🔴 NO |
| TerraMind | 🟢 YES | 🟢 YES | 🟢 YES | 🔴 NO* | 🟢 YES |
* Can be added as a new modality.
New model architectures
- Change detection: Added BIT, CGNet, ChangeFormer V6, ChangeMamba, ChangeVIT, CSSM, HRNet SiamConc, SiamCRNN, STANet, TinyCD, and U-Net SiamConc.
- Object detection: ATSS, CenterNet, DETR, EfficientDet, NanoDet-Plus, and Sparse R-CNN.
- Segmentation: Added FPN, MaNet, PSPNet, SegFormer, UNet++, and UPerNet.
Key improvements & features
- New build system: Complete migration to
uvandpyproject.tomlfor faster, reproducible builds. - Modern infrastructure: Switched to
rufffor ultra-fast linting and formatting. - Foundation model architecture: Implemented
CompositeModel, allowing for dynamic building of backbones, necks, decoders, heads, and data-model adapters. - Training: Added Automatic Mixed Precision (AMP), early stopping on NaN loss, and state preservation (LR scheduler/checkpoints) for restarts.
- Adapters: Implemented specific data-model adapters for foundation models, such as Terramind, AnySat, Galileo, and Panopticon.
- Examples: Added Jupyter notebook examples for new foundation models and downstream tasks (e.g., change detection).
Breaking changes
- Minimum Python version is now 3.12.
- Removed
requirements.txtin favor ofpyproject.tomldependencies. - Namespaced foundation model classes in
aitlas.modelsto resolve implementation collisions.
Getting started
v2.0.0
AiTLAS examples:
- Multiclass classification with Galileo foundation model: https://github.com/biasvariancelabs/aitlas/blob/aitlas-uv-migration/examples/multiclass_classification_example_galileo_brazildam.ipynb
- Multilabel classification with Copernicus-FM foundation model: https://github.com/biasvariancelabs/aitlas/blob/aitlas-uv-migration/examples/multilabel_classification_example_copernicusfm_dlrsd_multilabel.ipynb
- Semantic segmentation with TerraMind foundation model: https://github.com/biasvariancelabs/aitlas/blob/aitlas-uv-migration/examples/semantic_segmentation_example_terramind_dlrsd.ipynb
- Feature extraction with TerraMind foundation model: https://github.com/biasvariancelabs/aitlas/blob/aitlas-uv-migration/examples/feature_extraction_example_terramind_dlrsd.ipynb
- Change detection with U-Net SiamConc: https://github.com/biasvariancelabs/aitlas/blob/aitlas-uv-migration/examples/change_detection_example_california_flood.ipynb
v1.0.0
AiTLAS Introduction https://youtu.be/-3Son1NhdDg
AiTLAS Software Architecture: https://youtu.be/cLfEZFQQiXc
AiTLAS in a nutshell: https://www.youtube.com/watch?v=lhDjiZg7RwU
AiTLAS examples:
- Land use classification with multi-class classification with AiTLAS: https://youtu.be/JcJXrMch0Rc
- Land use classification with multi-label classification: https://youtu.be/yzHkEMbDW7s
- Maya archeological sites segmentation: https://youtu.be/LBFY4pCfzOU
- Visualization of learning performance: https://youtu.be/wjMfstcWBSs
Installation
AiTLAS requires Python 3.12. While you can use standard pip, we highly recommend uv for significantly faster installations. This will automatically handle all dependencies defined in pyproject.toml.
Option 1: Install from PyPI (recommended)
The easiest way to install AiTLAS is directly via PyPI:
uv pip install aitlas
Option 2: Install from the source
- Clone the AiTLAS repository
git clone https://github.com/biasvariancelabs/aitlas.git
-
Go to the folder where you cloned the repo
-
Install using
uv
uv pip install .
- Or, for developers (editable mode)
uv pip install -e .
- Verify the installation
python -c "import aitlas; print(f'AiTLAS version: {aitlas.__version__}')"
- Running AiTLAS
python -m aitlas.run configs/example_config.json
Note: You will have to download the datasets from their respective source. You can find a link for each dataset in the respective dataset class in aitlas/datasets/ or use the AiTLAS Semantic Data Catalog
Citation
For attribution in academic contexts, please cite our work 'AiTLAS: Artificial Intelligence Toolbox for Earth Observation' published in Remote Sensing (2023) link as
@article{aitlas2023,
AUTHOR = {Dimitrovski, Ivica and Kitanovski, Ivan and Panov, Panče and Kostovska, Ana and Simidjievski, Nikola and Kocev, Dragi},
TITLE = {AiTLAS: Artificial Intelligence Toolbox for Earth Observation},
JOURNAL = {Remote Sensing},
VOLUME = {15},
YEAR = {2023},
NUMBER = {9},
ARTICLE-NUMBER = {2343},
ISSN = {2072-4292},
DOI = {10.3390/rs15092343}
}
The AiTLAS Ecosystem
AiTLAS: Benchmark Arena
An open-source benchmark framework for evaluating state-of-the-art deep learning approaches for image classification in Earth Observation (EO). To this end, it presents a comprehensive comparative analysis of more than 500 models derived from ten different state-of-the-art architectures and compare them to a variety of multi-class and multi-label classification tasks from 22 datasets with different sizes and properties. In addition to models trained entirely on these datasets, it employs benchmark models trained in the context of transfer learning, leveraging pre-trained model variants, as it is typically performed in practice. All presented approaches are general and can be easily extended to many other remote sensing image classification tasks.To ensure reproducibility and facilitate better usability and further developments, all of the experimental resources including the trained models, model configurations and processing details of the datasets (with their corresponding splits used for training and evaluating the models) are available on this repository.
repo: https://github.com/biasvariancelabs/aitlas-arena
paper: Current Trends in Deep Learning for Earth Observation: An Open-source Benchmark Arena for Image Classification , ISPRS Journal of Photogrammetry and Remote Sensing, Vol.197, pp 18-35
Semantic Data Catalog of Earth Observation (EO) datasets (beta)
A novel semantic data catalog of numerous EO datasets, pertaining to various different EO and ML tasks. The catalog, that includes properties of different datasets and provides further details for their use, is available here
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aitlas-2.0.0.tar.gz.
File metadata
- Download URL: aitlas-2.0.0.tar.gz
- Upload date:
- Size: 39.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b278ff55b8c3b196d7ad1cfcb3ffaa725246befb5262d68105705f841b5b1c0
|
|
| MD5 |
34d69fcce76be36f69b9c4dd96398d64
|
|
| BLAKE2b-256 |
3816ad0ad895d30d981d62e1718303fc8e01c6c151a56af0621e184a50caddd4
|
File details
Details for the file aitlas-2.0.0-py3-none-any.whl.
File metadata
- Download URL: aitlas-2.0.0-py3-none-any.whl
- Upload date:
- Size: 11.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
185e84d62d8e7a109082ee37844524eb674ae313e1c3421af0bdefdd606f29a3
|
|
| MD5 |
763fb2a3a68ab4e1d143c771154b057c
|
|
| BLAKE2b-256 |
ee5fcd787c88d6d3c027c4cbf15e4dd5c287a46dc02414ed2a9cac392bd836e3
|