Skip to main content

Annotate satellite imagery for training AI models.

Pip Version

SCANEO is a labelling tool for annotating satellite images. Its primary goal is to improve the efficiency of the creation of training datasets for AI models. To that end, SCANEO features an intuitive labelling interface and assisted labelling capabilities. Current capabilities include:

  • Create labelling campaigns from local or remote data
  • Annotate images for classification, detection and segmentation tasks
  • Assisted labelling with AI models
  • Export annotations in GeoJSON format
  • Integration with EOTDL.

Why SCANEO?

The development and deployment of AI models for Earth Observation (EO) applications faces significant challenges due to the scarcity of high-quality, well-annotated training datasets. This data bottleneck stems from several factors: the complex nature of satellite imagery, which requires domain expertise for accurate labeling; the high costs associated with data acquisition and manual annotation; and the technical challenges in preprocessing and standardizing multi-source EO data. These limitations have created a substantial gap between the potential applications of AI in Earth Observation and its current implementation, particularly when compared to more mature AI applications in other domains where training data is more readily available and easier to process.

To address some of these challenges, SCANEO provides a web-based annotation platform that combines artificial intelligence and active learning techniques to accelerate the creation of training datasets from satellite imagery.

Installation

We recommend using uv to install SCANEO.

uv init
uv add scaneo

Is is recommended to upgrade the package regularly, in order to get the latest changes.

uv add scaneo --upgrade

Usage

You can launch scaneo with a single command:

scaneo

This will launch the UI, which will be accessible on your localhost:8000.

To learn more about the CLI and options, run:

scaneo --help

Documentation and tutorials

To view the documentation, launch the UI and go to localhost:8000/docs.

Development

This repository contains the source code for SCANEO.

  • scaneo: includes the CLI and the API.
  • ui: includes the web application UI.
  • inference: includes a simple inference API.

First, clone the repository and install the dependencies:

git clone https://github.com/earthpulse/scaneo.git
cd scaneo
uv sync

Run the API with the CLI:

make dev

Then, run the UI:

cd ui
bun run dev

Remember to create the .env file from .env.example cp .env.example .env

Build

In the UI, create .env.production with an empty PUBLIC_API_URL.

Then, build the Python package:

make build v=0.1.0

The v parameter is the version of the package, change it to the desired version.

Inference

You can run the sample inference API to test the assisted labelling capabilities.

First, get the models and samples from EOTDL:

uv run eotdl models get SCANEO -p eotdl -a -f

Then, move the models and samples to the inference folder:

mv eotdl/SCANEO/models inference/models
mv eotdl/SCANEO/samples inference/samples

Finally, start the inference API:

make inference

You can test the models in the inference notebook.

Notes

Do not add scaneo/ui to gitignore since the build process will fail (missing entry folder).

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scaneo-2025.6.18.post6.tar.gz (19.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scaneo-2025.6.18.post6-py3-none-any.whl (6.7 MB view details)

Uploaded Python 3

File details

Details for the file scaneo-2025.6.18.post6.tar.gz.

File metadata

  • Download URL: scaneo-2025.6.18.post6.tar.gz
  • Upload date:
  • Size: 19.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.6

File hashes

Hashes for scaneo-2025.6.18.post6.tar.gz
Algorithm Hash digest
SHA256 b41c59ab4da09a6f2bc570220b1f31a5d66e359419ee493508f7e56a2dba5a0b
MD5 a86c1dd5d1f17381c10972d1c1169780
BLAKE2b-256 58f82a43bd49e0357ca56c9720e5d5f384e992103eac43d13f6b16967ca2d500

See more details on using hashes here.

File details

Details for the file scaneo-2025.6.18.post6-py3-none-any.whl.

File metadata

File hashes

Hashes for scaneo-2025.6.18.post6-py3-none-any.whl
Algorithm Hash digest
SHA256 5bb5dd4afa2e909924b2dd5bc300ba548283d696fa6544dc29d94c543c327193
MD5 4f5866b666e8657a1a2f32b67bfc2d9d
BLAKE2b-256 e760e775038f2c8586583158126d3c20d75f7553faabb757f1b7ae4d031a1ee7

See more details on using hashes here.

Release history Release notifications | RSS feed

2025.12.10

2 files

2025.6.23

2 files

2025.6.21

2 files

This release

2025.6.18.post6 This release

2 files

2025.6.18

2 files

2024.12.16

2 files

2024.12.12

2 files

2024.12.11

2 files

2024.10.9

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page