Skip to content

Nandu is a demo for ogcapi-process using pygeoapi (like the Emu for PyWPS).

License

Notifications You must be signed in to change notification settings

bird-house/nandu

Repository files navigation

Nandu

Nandu - the bird This bird looks like an Emu but its not. The name Nandu is mostly used in European countries. Otherwise this bird is called Rhea.

Nandu is an OGC API - Processes implementation using pygeoapi. It provides simple processes like a "Say Hello" greeting process.

Features

  • Hello World Process: Returns a simple greeting message.
  • Echo Process: Returns an echo message after some time.

Quick Guide

Clone the repository:

git clone https://github.com/cehbrecht/nandu.git
cd nandu

Create the Conda environment:

conda env create -f environment.yml
conda activate nandu

You can use make to run the installation:

make install

... and start the service:

make start

Installation

Prerequisites

Install from GitHub

Clone the repository:

git clone https://github.com/cehbrecht/nandu.git
cd nandu

Create the Conda environment:

conda env create -f environment.yml
conda activate nandu

Install the project dependencies using Flit:

flit install

Configuration

Edit pygeoapi config (optional):

vim pygeoapi-config.yml

Export paths to configs:

export PYGEOAPI_CONFIG=pygeoapi-config.yml
export PYGEOAPI_OPENAPI=pygeoapi-openapi.yml 

Update the OpenAPI configuration:

pygeoapi openapi generate $PYGEOAPI_CONFIG --output-file $PYGEOAPI_OPENAPI

Usage

Start the pygeoapi server and expose the processes:

pygeoapi serve

This will start the API on http://localhost:5000.

List all processes:

http://localhost:5000/processes

View process details of "Hello World": http://localhost:5000/processes/hello-world

Execute the process:

curl -X POST http://localhost:5000/processes/hello-world/execution \
     -H "Content-Type: application/json" \
     -d '{
         "inputs": {
             "name": "Alice"
         }
     }'

Development

Run tests:

make test

Check coding style:

make lint

Build docs:

make docs

Release

Please check the developer guide.

Examples

See usage examples for the processes in the notebooks folder.

Docker

You can also use a docker deployment.

Build images:

docker-compose build

Start container:

docker-compose up

License

This project is licensed under the Apache License version 2.