https://github.com/actinia-org/actinia-tiling-plugin

This is the actinia data tiling plugin for faster processing.

https://github.com/actinia-org/actinia-tiling-plugin

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.5%) to scientific vocabulary

Keywords

actinia actinia-plugin geoprocessing geospatial opensource rest-api tiling
Last synced: 5 months ago · JSON representation

Repository

This is the actinia data tiling plugin for faster processing.

Basic Info
  • Host: GitHub
  • Owner: actinia-org
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 229 KB
Statistics
  • Stars: 2
  • Watchers: 5
  • Forks: 1
  • Open Issues: 4
  • Releases: 5
Topics
actinia actinia-plugin geoprocessing geospatial opensource rest-api tiling
Created about 4 years ago · Last pushed 8 months ago
Metadata Files
Readme License

README.md

actinia-tiling-plugin

This is an example plugin for actinia-core which adds a "Hello World" endpoint to actinia-core.

You can run actinia-tiling-plugin as actinia-core plugin.

Installation

Use docker-compose for installation: bash docker-compose -f docker/docker-compose.yml build docker-compose -f docker/docker-compose.yml up -d

Installation hints

  • If you get an error like: ERROR: for docker_kvdb_1 Cannot start service valkey: network xxx not found you can try the following: bash docker-compose -f docker/docker-compose.yml down # remove all custom networks not used by a container docker network prune docker-compose -f docker/docker-compose.yml up -d

DEV setup

For a DEV setup you can use the docker/docker-compose.yml: ```bash docker-compose -f docker/docker-compose.yml build docker-compose -f docker/docker-compose.yml run --rm --service-ports --entrypoint sh actinia

install the plugin

(cd /src/actinia-tiling-plugin && pip3 install .)

start actinia-core with your plugin

gunicorn -b 0.0.0.0:8088 -w 1 --access-logfile=- -k gthread actiniacore.main:flaskapp ```

Hints

  • If you have no .git folder in the plugin folder, you need to set the SETUPTOOLS_SCM_PRETEND_VERSION before installing the plugin: bash export SETUPTOOLS_SCM_PRETEND_VERSION=0.0 Otherwise you will get an error like this LookupError: setuptools-scm was unable to detect version for '/src/actinia-tiling-plugin'..

  • If you make changes in code and nothing changes you can try to uninstall the plugin: bash pip3 uninstall actinia-tiling-plugin.wsgi -y rm -rf /usr/lib/python3.8/site-packages/actinia_tiling_plugin.wsgi-*.egg

Running tests

You can run the tests in the actinia docker: ```bash docker build -f docker/actinia-tiling-plugin-test/Dockerfile -t actinia-tiling-plugin-test .

docker run -it actinia-tiling-plugin-test -i

cd /src/actinia-tiling-plugin/

run all tests

make test ```

For debugging the test this might be helpful when a waitAsyncStatusAssertHTTP fails: python from flask.json import loads as json_loads resp_data = json_loads(rv.data) rv_user_id = resp_data["user_id"] rv_resource_id = resp_data["resource_id"] rv2 = self.server.get(URL_PREFIX + "/resources/%s/%s" % (rv_user_id, rv_resource_id), headers=self.user_auth_header) resp_data2 = json_loads(rv2.data)

Small Example

python actinia_base_url=http://localhost:8088/api/v3 mapset_url=${actinia_base_url}/projects/loc_25832/mapsets/tiling_usermapset auth="actinia-gdi:actinia-gdi"

Grid Tiling Example

```bash

grid tiling

the region should be set correctly

jsonreg=testpostbodies/setregionforepsg25832.json curl -u ${auth} -X POST ${mapseturl}/processingasync -H 'accept: application/json' -H 'Content-Type: application/json' -d @${jsonreg} | jq curl -u ${auth} -X GET ${mapset_url}/info | jq

create tiling grid

curl -u ${auth} -X GET ${mapseturl}/vectorlayers | jq json=testpostbodies/gridtilingpb.json curl -u ${auth} -X POST ${mapseturl}/tilingprocesses/grid -H 'accept: application/json' -H 'Content-Type: application/json' -d @${json} | jq curl -u ${auth} -X GET ${mapseturl}/vector_layers | jq

request tiling_processes

curl -u ${auth} -X GET ${mapseturl}/tilingprocesses | jq curl -u ${auth} -X GET ${mapseturl}/tilingprocesses/grid | jq ```

Processing Example as preparation for the merge

```bash

process - tile 1

json=testpostbodies/grid1calulation.json curl -u ${auth} -X POST ${mapseturl}tmp1/processingasync -H 'accept: application/json' -H 'Content-Type: application/json' -d @${json} | jq curl -u ${auth} -X GET "http://localhost:8088/api/v3/resources/actinia-gdi/resourceid-..." | jq curl -u ${auth} -X GET ${mapseturl}tmp1/vectorlayers | jq curl -u ${auth} -X GET ${mapseturl}tmp1/rasterlayers | jq curl -u ${auth} -X GET ${mapseturl}_tmp1/strds | jq

process - tile 2

json=testpostbodies/grid2calulation.json curl -u ${auth} -X POST ${mapseturl}tmp2/processingasync -H 'accept: application/json' -H 'Content-Type: application/json' -d @${json} | jq curl -u ${auth} -X GET "http://localhost:8088/api/v3/resources/actinia-gdi/resource_id-..." | jq

process - tile 3

json=testpostbodies/grid3calulation.json curl -u ${auth} -X POST ${mapseturl}tmp3/processingasync -H 'accept: application/json' -H 'Content-Type: application/json' -d @${json} | jq curl -u ${auth} -X GET "http://localhost:8088/api/v3/resources/actinia-gdi/resource_id-..." | jq ```

Patch merge Example

```bash json=testpostbodies/patchmergenomapsetdeletion.json json=testpostbodies/patchmerge.json curl -u ${auth} -X POST ${mapseturl}/mergeprocesses/patch -H 'accept: application/json' -H 'Content-Type: application/json' -d @${json} | jq curl -u ${auth} -X GET ${mapseturl}/vectorlayers | jq curl -u ${auth} -X GET ${mapseturl}/rasterlayers | jq curl -u ${auth} -X GET ${mapseturl}/strds | jq

curl -u ${auth} -X GET ${actiniabaseurl}/projects/loc_25832/mapsets | jq ```

TODO

  • Region statt Vector speichern (wie res setzen?)

Owner

  • Name: actinia
  • Login: actinia-org
  • Kind: organization

The geoprocessing platform actinia analyses large volumes of Earth-observation and geodata in the cloud. Repo overview at https://actinia-org.github.io/

GitHub Events

Total
  • Release event: 2
  • Watch event: 1
  • Delete event: 6
  • Push event: 10
  • Pull request review comment event: 2
  • Pull request review event: 5
  • Pull request event: 11
  • Fork event: 1
  • Create event: 5
Last Year
  • Release event: 2
  • Watch event: 1
  • Delete event: 6
  • Push event: 10
  • Pull request review comment event: 2
  • Pull request review event: 5
  • Pull request event: 11
  • Fork event: 1
  • Create event: 5

Dependencies

.github/workflows/flake8.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
.github/workflows/python-publish.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • softprops/action-gh-release v2 composite
.github/workflows/test.yml actions
  • actions/checkout v4 composite
  • docker/build-push-action v5 composite
  • docker/setup-buildx-action v3 composite
docker/Dockerfile docker
  • mundialis/actinia-core latest build
docker/actinia-tiling-plugin-test/Dockerfile docker
  • mundialis/actinia-core latest build
docker/docker-compose.yml docker
  • redis 5.0.4-alpine
setup.py pypi
pyproject.toml pypi
  • colorlog >=4.2.1