Skip to main content

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

Software DOI Article DOI License: GPL v3 Docker pulls

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 under actinia API documentation.

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_wgs84 and mapset Sentinel_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

Contributors

Thanks to all contributors ❤ actinia-core contributors

Project details


Download files

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

Source Distribution

actinia_core-7.1.2.tar.gz (207.9 kB view details)

Uploaded Source

Built Distribution

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

actinia_core-7.1.2-py3-none-any.whl (236.9 kB view details)

Uploaded Python 3

File details

Details for the file actinia_core-7.1.2.tar.gz.

File metadata

  • Download URL: actinia_core-7.1.2.tar.gz
  • Upload date:
  • Size: 207.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for actinia_core-7.1.2.tar.gz
Algorithm Hash digest
SHA256 e49e75212f7dd37c082430428f11352dffd4e12cd96c67cd3ab6b4b40866e0cc
MD5 9b2c5b949b96e64ad5e3d6a30cf4bc66
BLAKE2b-256 da0057533496e252c536ed9b6385a7ad3469390bdc3f6822973bba261dc835d9

See more details on using hashes here.

File details

Details for the file actinia_core-7.1.2-py3-none-any.whl.

File metadata

  • Download URL: actinia_core-7.1.2-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.12

File hashes

Hashes for actinia_core-7.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2bdaec407a2159f9cc85680d89c1b629475bddc575c5c59cdf8039a5327c06c7
MD5 a6636a1a198e14a812226f28ba748564
BLAKE2b-256 4fd4cab3f6b3a4323997ef3dacf2e5402c3b30f29a2613a28ca515a47bc29e33

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page