o3api

O3as (API): Ozone assessment service (API)

https://github.com/eosc-synergy/o3api

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 10 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.3%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

O3as (API): Ozone assessment service (API)

Basic Info
  • Host: GitHub
  • Owner: EOSC-synergy
  • License: gpl-3.0
  • Language: Python
  • Default Branch: master
  • Size: 1.54 MB
Statistics
  • Stars: 2
  • Watchers: 5
  • Forks: 2
  • Open Issues: 1
  • Releases: 4
Created almost 6 years ago · Last pushed over 2 years ago
Metadata Files
Readme Contributing License Code of conduct Citation Codemeta

README.md

REST API for the O3as service

Build Status Documentation Status Contributor Covenant DOI

O3as logo    O3as is a service for Ozone (O3) Assessment, http://o3as.data.kit.edu/

Description

O3as REST API (o3api) provides:

  • Access to O3as (ozone assessment) skimmed data, produced by the o3skim component
  • Information about used Climate Models
  • Ability to produce ozone plots (e.g. tco3zm, tco3return) in either PDF or JSON format

The API leverages Swagger, Flask, and Connexion, and it is based on OpenAPI v3 standards.

Documentation

More details about the O3as service and API can be found in our documentation.

Quick start

O3as API is primarily meant to be run as a container application, e.g. either by using docker, docker-compose, udocker or in Kubernetes.

Skimmed Climate model data

In order to run the application, you need to provide corresponding Climate Model data. A publicly available published dataset can be downloaded from DOI: 10.35097/675.

Docker images

Pre-built Docker images can be found in our Docker Hub repository: https://hub.docker.com/r/o3as/o3api/tags .

N.B.: If you want to rebuild images, the Dockerfile is located in the docker/ directory.

Using docker

To start a container which would provide REST API to process a dataset, use e.g. the following: sh docker run --rm \ -v /path/to/data:/srv/o3api/data:ro \ -p 5005:5005 \ o3as/o3api:{tag} \ where tag = latest (or xx.yy.zz for the particular version). You may need to adjust O3AS_DATA_BASEPATH environment variable to indicate the path to the Skimmed data.

Or see o3as-docker-example.sh example shell script in the docker/ directory.

Using docker-compose

An exampled docker-compose.yaml can be found in the docker/ directory.

  • To start o3api as a daemon: docker-compose -f docker/docker-compose.yaml up -d
  • If you want to build your own image and immediately run: docker-compose -f docker/docker-compose.yaml up -d --build
  • To stop run: docker-compose -f docker/docker-compose.yaml down

Using udocker

In cases where your user cannot get administration rights, the alternative is to use udocker.

How to install udocker

If udocker is not installed, do: sh curl https://raw.githubusercontent.com/indigo-dc/udocker/master/udocker.py > udocker chmod u+rx ./udocker mv udocker $HOME/.local/bin # (or something in your PATH) udocker install

More INFO: https://github.com/indigo-dc/udocker/blob/master/doc/installation_manual.md

Running with udocker

The standard way to work with udocker is:

  1. PULL the provided Docker image and CREATE Container In the computer where to run with udocker, download the image and create a container:
  • udocker pull o3as/o3api:{tag}
    To download the image from the Docker Hub registry.

  • udocker create --name={container-name} o3as/o3api:{tag}
    To create the corresponding container on your system.

NB: creating container may take a few minutes...

udocker setup --execmode=F3 {container-name}
To change execmode, if needed

  1. RUN the container In a similar way it would be done with docker, you can run: sh udocker run \ -v /path/to/data:/srv/o3api/data:ro \ {container-name} Do not forget to indicate the correct path for your data, e.g. you may need to adjust O3AS_DATA_BASEPATH environment variable to indicate the path to Skimmed data.

Deploying in Kubernetes

A set of configuration files to deploy in Kubernetes can be found in another repository: o3k8s

Contributing

Please, see our CONTRIBUTING description and the CODE OF CONDUCT.

License

This code is distributed under the GNU GPLv3 License. Please, see the LICENSE file

Authors and acknowledgment

For citing, please, use: DOI and also check the CITATION.cff

@Authors: Valentin Kozlov, Borja Esteban, Tobias Kerzenmacher (KIT)

Copyright (c) 2020 - 2022 Karlsruhe Institute of Technology - Steinbuch Centre for Computing.

Owner

  • Name: Project EOSC-synergy
  • Login: EOSC-synergy
  • Kind: organization
  • Email: coordinator@eosc-synergy.eu

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Kozlov
    given-names: Valentin
    orcid: https://orcid.org/0000-0002-8770-3619
  - family-names: Esteban Sanchis
    given-names: Borja
    orcid: https://orcid.org/0000-0002-4929-8288
  - family-names: Kerzenmacher
    given-names: Tobias
    orcid: https://orcid.org/0000-0001-8413-0539
title: o3api - REST API for the Ozone assessment service (O3as)
doi: 10.5281/zenodo.7357936
contact:
  - affiliation: "Karlsruhe Institute of Technology (KIT)"
    email: o3as-support@lists.kit.edu

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "license": "https://spdx.org/licenses/GPL-3.0+",
  "codeRepository": "git+https://git.scc.kit.edu/synergy.o3as/o3api.git",
  "dateCreated": "2022-10-10",
  "datePublished": "2022-10-10",
  "dateModified": "2022-10-10",
  "downloadUrl": "https://git.scc.kit.edu/synergy.o3as/o3api/-/archive/master/o3api-master.tar.gz",
  "issueTracker": "https://github.com/EOSC-Synergy/o3api/issues",
  "name": "o3api",
  "description": "REST API for O3as thematic service to create images of ozone time series and ozone return rates",
  "applicationCategory": "Atmosphere",
  "isPartOf": "https://git.scc.kit.edu/synergy.o3as/",
  "keywords": [
    "stratosphere",
    "ozone",
    "assessment",
    "trend",
    "ozone recovery"
  ],
  "programmingLanguage": [
    "python3"
  ],
  "softwareRequirements": [
    "https://git.scc.kit.edu/synergy.o3as/o3api/blob/master/requirements.txt"
  ],
  "author": [
    {
      "@type": "Person",
      "@id": "https://orcid.org/0000-0002-8770-3619",
      "givenName": "Valentin",
      "familyName": "Kozlov",
      "email": "valentin.kozlov@kit.edu",
      "affiliation": {
        "@type": "Organization",
        "name": "Karlsruhe Institute of Technology, SCC"
      }
    }
  ]
}

GitHub Events

Total
Last Year

Dependencies

requirements.txt pypi
  • cftime *
  • connexion *
  • dask *
  • flask <2,>=1.0.4
  • fpdf *
  • gunicorn *
  • itsdangerous ==2.0.1
  • matplotlib ==3.2
  • netcdf4 *
  • numpy *
  • pandas <1.3.0
  • pypdf3 *
  • scipy >=1.4.1
  • statsmodels *
  • werkzeug ==2.0.3
  • xarray >=0.21.0
test-requirements.txt pypi
  • bandit >=1.1.0 test
  • coverage * test
  • flake8 * test
  • mistune ==0.8.4 test
  • pytest * test
  • pytest-cov * test
  • pytest-ordering * test
  • sphinxcontrib-openapi * test
  • stestr >=1.0.0 test
  • testtools >=1.4.0 test
.github/workflows/github-to-gitlab.yml actions
  • actions/checkout v2 composite
  • vykozlov/git-repo-sync v0.1.0 composite
.sqa/docker-compose.yml docker
  • o3as/ci-images u20-py38
  • o3as/o3api ${O3API_DOCKER_TAG}
docker/Dockerfile docker
  • ${base} ${tag} build
setup.py pypi