Actinia Core is an open source REST API for scalable, distributed, high performance processing of geographical data that uses mainly GRASS GIS for computational tasks
Project description
Actinia — The GRASS GIS REST API
Project Overview
Actinia is an open-source REST API for scalable, distributed, high-performance processing of geographical data that mainly uses GRASS GIS for computational tasks.
Key Features:
- REST API for processing satellite images, raster and vector data, including time-series.
- Access and manipulate GRASS GIS database via HTTP GET, PUT, POST, and DELETE requests.
- Process cloud-based data, including Landsat 4-9 and Sentinel-2 scenes.
- Output raster data results as GeoTIFF files as resources or in object storage.
- Output vector data results as GeoPackage files as resources or in object storage.
Links:
Prerequisites
To use actinia, ensure you have the following installed:
- Alpine Linux:
apk add python3 py3-pip - Ubuntu:
apt install -y python3 python3-pip
Additional system packages required for Alpine:
apk add python3-dev gcc musl-dev linux-headers build-base gdal gdal-tools gdal-dev proj proj-util proj-dev geos-dev py3-numpy-dev
Installation Steps
Option 1: Manual Installation
Install actinia from PyPI:
pip install actinia-core
Option 2: Using Docker
Pull the Docker image:
docker pull mundialis/actinia-core
For custom deployments or local setups, refer to the docker/ subfolder.
Verification
To verify a successful installation, check API accessibility via the provided endpoints or the swagger.json.
API Documentation
The full API documentation is available here.
Examples
Data management
- List all projects that are available in the actinia persistent database:
curl -u 'demouser:gu3st!pa55w0rd' -X GET "https://actinia.mundialis.de/api/v3/projects"
- List all mapsets in the project
latlong_wgs84:
curl -u 'demouser:gu3st!pa55w0rd' -X GET "https://actinia.mundialis.de/api/v3/projects/latlong_wgs84/mapsets"
- List all space-time raster datasets (STRDS) in project
latlong_wgs84and mapsetSentinel_timeseries:
curl -u 'demouser:gu3st!pa55w0rd' -X GET "https://actinia.mundialis.de/api/v3/projects/latlong_wgs84/mapsets/modis_ndvi_global/strds"
- List all raster map layers of the STRDS:
curl -u 'demouser:gu3st!pa55w0rd' -X GET "https://actinia.mundialis.de/api/v3/projects/latlong_wgs84/mapsets/modis_ndvi_global/strds/ndvi_16_5600m/raster_layers"
Landsat and Sentinel-2 NDVI computation
- Compute NDVI for a specific Landsat scene:
curl -u 'demouser:gu3st!pa55w0rd' -X POST "https://actinia.mundialis.de/api/v3/landsat_process/<scene_id>/TOAR/NDVI"
- Compute NDVI for a specific Sentinel-2A scene:
curl -u 'demouser:gu3st!pa55w0rd' -X POST "https://actinia.mundialis.de/api/v3/sentinel2_process/ndvi/<scene_id>"
The results of the asynchronous computations are available as GeoTIFF file in a cloud storage for download.
List of available endpoints
To see a simple list of endpoints (and more), consult the "paths" section in the API JSON.
To list the available endpoints on command line, run
# sudo npm install -g json
curl -u 'demouser:gu3st!pa55w0rd' -X GET https://actinia.mundialis.de/api/v3/swagger.json | json paths | json -ka
Development
Pre-Commit Hooks
Install pre-commit for automated code checks and formatting before submitting any new or modified code. Pre-commit installs all necessary tools in a virtual environment upon first use:
pip install pre-commit
# activate pre-commit in the code repository
cd <actinia-core_source_dir>
pre-commit install
Pre-commit will then be automatically triggered by the git commit command. If
it finds any problem it will abort the commit and try to solve it automatically.
In that case review the changes and run again git add and
git commit.
It is also possible to run pre-commit manually, e.g:
pre-commit run flake8 --all-files
pre-commit run black --all-files
# pre-commit run yamllint --all-files
# pre-commit run markdownlint --all-files
The pre-commit hook set is defined in .pre-commit-config.yaml.
External Documents
- actinia is also available on OSGeoLive
Contributors
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 actinia_core-7.1.0.tar.gz.
File metadata
- Download URL: actinia_core-7.1.0.tar.gz
- Upload date:
- Size: 207.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d78fad080d990fb1f96fda591fffa2971653f2eb345ed1e0bd9db2bc8f4646d5
|
|
| MD5 |
3ded4f4a519b9a7fb735e15a30be0f53
|
|
| BLAKE2b-256 |
ac7063c18e030bc0494b3988041df7f59cc3a2dfe19a76ee8c940282697e66fd
|
File details
Details for the file actinia_core-7.1.0-py3-none-any.whl.
File metadata
- Download URL: actinia_core-7.1.0-py3-none-any.whl
- Upload date:
- Size: 236.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
72d2f6d597be4468119a8ea7bdac68836b5a3914cd655b183f990bbc0a8d2430
|
|
| MD5 |
cd3afcc9bfe299c03733766129a524b3
|
|
| BLAKE2b-256 |
952285b99a2e93136246de1d9b3887a1a2a9c662da3cce7a5a37a16061c45f60
|