actinia-core
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 (DOI: https://doi.org/10.5281/zenodo.5879231) | Tutorial: https://actinia-org.github.io/actinia-core/ | Docker: https://hub.docker.com/r/mundialis/actinia-core
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 6 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.4%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
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 (DOI: https://doi.org/10.5281/zenodo.5879231) | Tutorial: https://actinia-org.github.io/actinia-core/ | Docker: https://hub.docker.com/r/mundialis/actinia-core
Basic Info
- Host: GitHub
- Owner: actinia-org
- License: gpl-3.0
- Language: Python
- Default Branch: main
- Homepage: https://actinia.mundialis.de/
- Size: 11 MB
Statistics
- Stars: 91
- Watchers: 12
- Forks: 23
- Open Issues: 64
- Releases: 98
Topics
Metadata Files
README.md
Actinia — The GRASS GIS REST API
Actinia is an open source REST API for scalable, distributed, high performance processing of geographical data that mainly uses GRASS GIS for computational tasks.
It provides a REST API to process satellite images, time series of satellite images, arbitrary raster data with geographical relations and vector data.
The REST interface allows to access, manage and manipulate the GRASS GIS database via HTTP GET, PUT, POST and DELETE requests and to process raster, vector and time series data located in a persistent GRASS GIS database. Actinia allows the processing of cloud-based data, for example all Landsat 4-8 scenes as well as all Sentinel-2 scenes in ephemeral databases. The computational results of ephemeral processing are available via object storage as GeoTIFF files.
API documentation
The full API documentation is available here
actinia command execution - actinia shell
There is also an option to interactively control actinia. For details, see here.
Installation
Required system packages:
- alpine:
apk add python3 py3-pipAs not all python packages are pre-build for alpine, they need to be build during installation. For this some system packages are required:apk add python3 py3-pip python3-dev gcc musl-dev linux-headers build-base gdal gdal-tools gdal-dev proj proj-util proj-dev geos-dev py3-numpy-dev - ubuntu:
apt install -y python3 python3-pip
And then install from pypi:
bash
pip install actinia-core
Installation with Docker
Docker images are available from https://hub.docker.com/r/mundialis/actinia-core
bash
docker pull mundialis/actinia-core
For own deployments or local dev-setup, see the docker/ subfolder.
Actinia is also available on OSGeoLive.
Examples
Data management
- List all projects that are available in the actinia persistent database:
bash
curl -u 'demouser:gu3st!pa55w0rd' -X GET "https://actinia.mundialis.de/api/v3/projects"
- List all mapsets in the project latlong_wgs84:
bash
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 latlongwgs84 and mapset Sentineltimeseries:
bash
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:
bash
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 the NDVI of the top of athmosphere (TOAR) corrected Landsat4 scene LC80440342016259LGN00:
bash
curl -u 'demouser:gu3st!pa55w0rd' -X POST "https://actinia.mundialis.de/api/v3/landsat_process/LC80440342016259LGN00/TOAR/NDVI"
- NDVI computation of Sentinel-2A scene S2AMSIL1C20170212T104141N0204R008T31TGJ20170212T104138:
bash
curl -u 'demouser:gu3st!pa55w0rd' -X POST "https://actinia.mundialis.de/api/v3/sentinel2_process/ndvi/S2A_MSIL1C_20170212T104141_N0204_R008_T31TGJ_20170212T104138"
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; or, to list the available endpoints on command line, run:
```bash
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
Use pre-commit
It is highly recommended to install and use pre-commit before submitting any new or modified code or any other content. The pre-commit Git hooks set checks validity and executes automated formatting for a range of file formats, including Python. Pre-commit installs all necessary tools in a virtual environment upon first use.
If you never used pre-commit before, you must start by installing it on your system. You only do it once:
bash
python -m pip install pre-commit
Pre-commit must then be activated in the code repository. Change the directory
to the root folder and use the install command:
```bash
cd
once per repo
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:
```bash pre-commit run flake8 --all-files pre-commit run black --all-files
pre-commit run yamllint --all-files
pre-commit run markdownlint --all-files
```
Or to target a specific set of files:
bash
pre-commit run --files src/*
The pre-commit hooks set is defined in .pre-commit-config.yaml.
It is possible to temporally disable the pre-commit hooks in the repo, e.g. while working on older branches:
bash
pre-commit uninstall
And to reactivate pre-commit again:
bash
git switch main
pre-commit install
Thanks to all contributors ❤
Owner
- Name: actinia
- Login: actinia-org
- Kind: organization
- Website: https://actinia.mundialis.de
- Repositories: 22
- Profile: https://github.com/actinia-org
The geoprocessing platform actinia analyses large volumes of Earth-observation and geodata in the cloud. Repo overview at https://actinia-org.github.io/
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
cff-version: 1.2.0
title: actinia-core
abstract: Actinia is an open source REST API for scalable, distributed, high performance processing of geographical data.
message: If you use this software, please cite it using the metadata from this file.
type: software
version: 7.0.1
doi: 10.5281/zenodo.7437895
date-released: 2025-07-18
license: GPL-3.0
repository-code: https://github.com/actinia-org/actinia-core
keywords:
- cloud-based processing
- geospatial analysis
- Earth observation
- GIS
- REST API
- Open Source
- GRASS GIS
authors:
- given-names: Carmen
family-names: Tawalika
email: tawalika@mundialis.de
affiliation: mundialis GmbH & Co. KG
- given-names: Anika
family-names: Weinmann
affiliation: mundialis GmbH & Co. KG
email: weinmann@mundialis.de
- given-names: Guido
family-names: Riembauer
email: riembauer@mundialis.de
affiliation: mundialis GmbH & Co. KG
- given-names: Markus
family-names: Metz
email: metz@mundialis.de
affiliation: mundialis GmbH & Co. KG
orcid: https://orcid.org/0000-0002-4038-8754
- given-names: Julia
family-names: Haas
email: haas@mundialis.de
affiliation: mundialis GmbH & Co. KG
orcid: https://orcid.org/0000-0002-6040-0669
- given-names: Marc
family-names: Jansen
email: jansen@mundialis.de
affiliation: mundialis GmbH & Co. KG
- given-names: Jorge A.
family-names: Herrera Maldonado
email: herreram.jahm@gmail.com
- given-names: Sören
family-names: Gebbert
email: soerengebbert@gmail.com
- given-names: Markus
family-names: Neteler
email: neteler@mundialis.de
affiliation: mundialis GmbH & Co. KG
orcid: https://orcid.org/0000-0003-1916-1966
- given-names: Momen
family-names: Mawad
email: mawad@mundialis.de
affiliation: mundialis GmbH & Co. KG
- given-names: Ondrej
family-names: Pesek
email: pesej.ondrek@gmail.com
GitHub Events
Total
- Fork event: 1
- Create event: 66
- Release event: 4
- Issues event: 6
- Watch event: 7
- Delete event: 49
- Member event: 1
- Issue comment event: 23
- Push event: 242
- Gollum event: 6
- Pull request review event: 61
- Pull request review comment event: 49
- Pull request event: 134
Last Year
- Fork event: 1
- Create event: 66
- Release event: 4
- Issues event: 6
- Watch event: 7
- Delete event: 49
- Member event: 1
- Issue comment event: 23
- Push event: 242
- Gollum event: 6
- Pull request review event: 61
- Pull request review comment event: 49
- Pull request event: 134
Committers
Last synced: over 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| Markus Neteler | n****r@g****m | 149 |
| Carmen Tawalika | m****a | 121 |
| Anika Weinmann | 3****n | 83 |
| huhabla | m****d | 60 |
| Carmen | c****a@g****m | 55 |
| Soeren Gebbert | s****t@g****m | 46 |
| Carmen Tawalika | t****a@m****e | 45 |
| AnikaBettge | 3****e | 31 |
| renovate[bot] | 2****] | 31 |
| Marc Jansen | j****n@t****e | 28 |
| Anika Bettge | b****e@m****e | 19 |
| Julia Haas | 8****s | 13 |
| Guido Riembauer | r****r@m****e | 13 |
| Jorge Andres Herrera Maldonado | h****m@g****m | 10 |
| Soeren Gebbert | s****t@g****m | 10 |
| Markus Metz | m****k@g****m | 9 |
| anikaweinmann | a****n@m****e | 9 |
| linakrisztian | 1****n | 9 |
| Guido Riembauer | 6****r | 9 |
| Markus Metz | 3****m | 5 |
| Jorge Andrés Herrera Maldonado | 3****a | 5 |
| Julia Haas | h****s@m****e | 3 |
| Momen | 5****d | 2 |
| Jonas Eberle | j****e@g****e | 1 |
| Momen-Mawad | e****3@g****m | 1 |
| Anika S Halota | a****a@g****m | 1 |
| mundialis developer | 3****v | 1 |
| dependabot[bot] | 4****] | 1 |
| Hinrich Paulsen | p****n | 1 |
| Alexey Shiklomanov | a****v@g****m | 1 |
| and 2 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 37
- Total pull requests: 301
- Average time to close issues: over 1 year
- Average time to close pull requests: 21 days
- Total issue authors: 9
- Total pull request authors: 12
- Average comments per issue: 1.54
- Average comments per pull request: 0.44
- Merged pull requests: 231
- Bot issues: 1
- Bot pull requests: 137
Past Year
- Issues: 5
- Pull requests: 116
- Average time to close issues: 3 months
- Average time to close pull requests: 16 days
- Issue authors: 3
- Pull request authors: 7
- Average comments per issue: 0.6
- Average comments per pull request: 0.1
- Merged pull requests: 71
- Bot issues: 0
- Bot pull requests: 86
Top Authors
Issue Authors
- mmacata (19)
- neteler (8)
- ninsbl (5)
- renovate[bot] (2)
- anikaweinmann (2)
- linakrisztian (1)
- jonas-eberle (1)
- kalxas (1)
- juleshaas (1)
Pull Request Authors
- renovate[bot] (198)
- mmacata (83)
- anikaweinmann (45)
- neteler (25)
- linakrisztian (10)
- marcjansen (5)
- ninsbl (3)
- dependabot[bot] (3)
- Haoyu-Gao (2)
- griembauer (2)
- metzm (1)
- pesekon2 (1)
- juleshaas (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- Flask ==1.1.4
- Flask-Cors >=3.0.3
- Flask-HTTPAuth >=3.2.3
- Flask-RESTful >=0.3.6
- MarkupSafe ==2.0.1
- Sphinx >=1.7.1
- boto3 >=1.6.6
- colorlog >=4.2.1
- docutils ==0.15
- flask-restful-swagger-2 *
- fluent-logger >=0.9.4
- geopandas *
- google-cloud >=0.32.0
- google-cloud-bigquery <=3.0.0
- google-cloud-storage >=1.6.0
- gunicorn >=19.9.0
- joblib ==0.15.1
- matplotlib ==3.3.4
- pandas *
- passlib >=1.7.1
- ply >=3.11
- psutil >=5.7.0
- pystac ==0.5.6
- python-json-logger *
- python-magic >=0.4.15
- rasterio ==1.2.10
- redis >=2.10.6
- requests >=2.20.0
- rq >=0.10.0
- sentinelsat *
- setuptools *
- threadpoolctl ==2.1.0
- tqdm *
- uWSGI >=2.0.17
- wheel *
- Flask >=0.12.3
- Flask-Cors >=3.0.3
- Flask-HTTPAuth >=3.2.3
- Flask-RESTful >=0.3.6
- Shapely *
- Sphinx >=1.7.1
- boto3 >=1.6.6
- colorlog >=4.2.1
- docutils >=0.14
- flask-restful-swagger-2 *
- fluent-logger >=0.9.4
- geopandas ==0.8.1
- google-cloud *
- google-cloud-bigquery *
- google-cloud-storage *
- gunicorn >=19.9.0
- matplotlib *
- numpy >=1.15.4
- pandas *
- passlib >=1.7.1
- ply >=3.11
- psutil >=5.7.0
- pyproj ==2.6.1
- pystac ==0.5.6
- python-json-logger *
- python-magic >=0.4.15
- rasterio ==1.2.10
- redis >=2.10.6
- requests >=2.20.0
- rq >=0.10.0
- scikit-learn *
- six >=1.13.0
- uWSGI >=2.0.17
- wheel *
- docker/build-push-action v2 composite
- docker/login-action v1 composite
- docker/setup-buildx-action v1 composite
- docker/setup-qemu-action v1 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/checkout v2 composite
- github/codeql-action/analyze v1 composite
- github/codeql-action/autobuild v1 composite
- github/codeql-action/init v1 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/checkout v2 composite
- docker/build-push-action v2 composite
- docker/login-action v1 composite
- docker/metadata-action v3 composite
- docker/setup-buildx-action v1 composite
- docker/setup-qemu-action v1 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/checkout v2 composite
- softprops/action-gh-release v1 composite
- actions/checkout v2 composite
- docker/build-push-action v2 composite
- docker/setup-buildx-action v1 composite
- actinia_installation latest build
- build-base latest build
- mundialis/actinia alpine-dependencies-2022-11-18 build
- mundialis/actinia alpine-dependencies-v1 build
- mundialis/grass-py3-pdal releasebranch_8_2-alpine build
- mundialis/actinia-core latest build
- mundialis/actinia-core latest build
- redis 5.0.4-alpine
- mundialis/actinia-core 4.2.1
- redis 5.0.4-alpine