Actinia | API Reference

# Actinia API Reference

================================

# Actinia - The GRASS GIS REST API

Actinia is an open source REST API for scalable, distributed, high performance processing of geographical data that 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 Sentinel2A scenes in an ephemeral databases. The computational results of ephemeral processing are available via object storage as GeoTIFF files.

The full API documentation is available here: https://actinia.mundialis.de/api_docs/

## Examples:

Data management

- List all locations that are available in the actinia persistent database:

        curl -X GET "https://actinia.mundialis.de/api/v3/locations" -H  "authorization: Basic ..."

- List all mapsets in the location latlong_wgs84:

        curl -X GET "https://actinia.mundialis.de/api/v3/locations/latlong_wgs84/mapsets" -H  "authorization: Basic ..."

- List all space-time raster datasets (STRDS) in location latlong_wgs84 and mapset Sentinel_timeseries:

        curl -X GET "https://actinia.mundialis.de/api/v3/locations/latlong_wgs84/mapsets/Sentinel_timeseries/strds" -H  "authorization: Basic ..."

- List all raster map layers of the STRDS:

        curl -X GET "https://actinia.mundialis.de/api/v3/locations/latlong_wgs84/mapsets/Sentinel_timeseries/strds/S2A_B04/raster_layers" -H  "authorization: Basic ..."

Landsat and Sentinel2A NDVI computation

This API call will compute the NDVI of the top of atmosphere (TOAR) corrected Landsat4 scene LC80440342016259LGN00:

    curl -X POST "https://actinia.mundialis.de/api/v3/landsat_process/LC80440342016259LGN00/TOAR/NDVI" -H  "authorization: Basic ..."

NDVI computation of Sentinel2A scene S2A_MSIL1C_20170212T104141_N0204_R008_T31TGJ_20170212T104138:

    curl -X POST "https://actinia.mundialis.de/api/v3/sentinel2_process/ndvi/S2A_MSIL1C_20170212T104141_N0204_R008_T31TGJ_20170212T104138" -H  "authorization: Basic ..."

The results of the asynchronous computations are available as GeoTIFF file in a cloud storage for download.

##### Request Content-Types: application/gml+xml, application/json

##### Schemes: https

##### Version: v1

# Authentication

### basicAuth

type
basic

# Module Viewer

Module Viewer

## Get a list of all actinia modules (process chain templates).

GET /actinia_modules

Get a list of modules. Minimum required user role: user.

tag: string
in path

Filter for categories

category: string
in path

Another filter for categories

200 OK
ModuleList

This response returns a list of module names and the status.

400 Bad Request
SimpleStatusCodeResponseModel

The error message and a detailed log why listing of modules did not succeeded

##### Response Example (200 OK)

    {
      "processes": [
        {
          "id": "v.random",
          "description": "Generates random 2D/3D vector points.",
          "categories": [
            "vector",
            "sampling",
            "statistics",
            "random",
            "point pattern",
            "stratified random sampling",
            "level1"
          ]
        }
      ],
      "status": "success"
    }

##### Response Example (400 Bad Request)

    {
      "status": 200,
      "message": "success"
    }

Module Viewer

## Describe an actinia module (process chain template).

GET /actinia_modules/{actiniamodule}

Get the description of a module. Minimum required user role: user.

actiniamodule: string
in path

The name of a module

200 OK
Module

This response returns a description of a module.

400 Bad Request
SimpleStatusCodeResponseModel

The error message and a detailed log why describing modules did not succeeded

##### Response Example (200 OK)

    {
      "categories": [
        "grass-module",
        "level1",
        "pointpattern",
        "random",
        "sampling",
        "statistics",
        "stratifiedrandomsampling",
        "vector"
      ],
      "description": "Generates random 2D/3D vector points.",
      "id": "v.random",
      "parameters": {
        "a": {
          "description": ". Generate n points for each individual area (requires restrict parameter)",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "b": {
          "description": "Do not build topology. Advantageous when handling a large number of points",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "cats": {
          "description": "Category values. Example: 1,3,7-9,13",
          "required": false,
          "schema": {
            "subtype": "cats",
            "type": "string"
          }
        },
        "column": {
          "description": "Name of column for z values. Writes z values to column",
          "required": false,
          "schema": {
            "subtype": "dbcolumn",
            "type": "string"
          }
        },
        "column_type": {
          "description": ". Type of column for z values",
          "required": false,
          "schema": {
            "default": "double precision",
            "enum": [
              "integer",
              "double precision"
            ],
            "type": "string"
          }
        },
        "help": {
          "description": ". Print usage summary",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "layer": {
          "description": "Layer number or name ('-1' for all layers). A single vector map can be connected to multiple database tables. This number determines which table to use. When used with direct OGR access this is the layer name.",
          "required": false,
          "schema": {
            "default": "-1",
            "subtype": "layer_all",
            "type": "string"
          }
        },
        "npoints": {
          "description": ". Number of points to be created",
          "required": true,
          "schema": {
            "type": "integer"
          }
        },
        "output": {
          "description": ". Name for output vector map",
          "required": true,
          "schema": {
            "subtype": "vector",
            "type": "string"
          }
        },
        "overwrite": {
          "description": ". Allow output files to overwrite existing files",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "quiet": {
          "description": ". Quiet module output",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "restrict": {
          "description": "Name of input vector map. Restrict points to areas in input vector",
          "required": false,
          "schema": {
            "subtype": "vector",
            "type": "string"
          }
        },
        "seed": {
          "description": ". The seed to initialize the random generator. If not set the process ID is used",
          "required": false,
          "schema": {
            "type": "integer"
          }
        },
        "verbose": {
          "description": ". Verbose module output",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "where": {
          "description": "WHERE conditions of SQL statement without 'where' keyword. Example: income < 1000 and population >= 10000",
          "required": false,
          "schema": {
            "subtype": "sql_query",
            "type": "string"
          }
        },
        "z": {
          "description": ". Create 3D output",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "zmax": {
          "description": ". Maximum z height (needs -z flag or column name)",
          "required": false,
          "schema": {
            "default": "0.0",
            "type": "number"
          }
        },
        "zmin": {
          "description": ". Minimum z height (needs -z flag or column name)",
          "required": false,
          "schema": {
            "default": "0.0",
            "type": "number"
          }
        }
      }
    }

##### Response Example (400 Bad Request)

    {
      "status": 200,
      "message": "success"
    }

Module Viewer

## Get a list of all GRASS GIS modules.

GET /grass_modules

Get a list of modules. Minimum required user role: user.

tag: string
in path

Filter for categories

category: string
in path

Another filter for categories

200 OK
ModuleList

This response returns a list of module names and the status.

400 Bad Request
SimpleStatusCodeResponseModel

The error message and a detailed log why listing of modules did not succeeded

##### Response Example (200 OK)

    {
      "processes": [
        {
          "id": "v.random",
          "description": "Generates random 2D/3D vector points.",
          "categories": [
            "vector",
            "sampling",
            "statistics",
            "random",
            "point pattern",
            "stratified random sampling",
            "level1"
          ]
        }
      ],
      "status": "success"
    }

##### Response Example (400 Bad Request)

    {
      "status": 200,
      "message": "success"
    }

Module Viewer

## Describe a GRASS GIS module.

GET /grass_modules/{grassmodule}

Get the description of a module. Minimum required user role: user.

grassmodule: string
in path

The name of a module

200 OK
Module

This response returns a description of a module.

400 Bad Request
SimpleStatusCodeResponseModel

The error message and a detailed log why describing modules did not succeeded

##### Response Example (200 OK)

    {
      "categories": [
        "grass-module",
        "level1",
        "pointpattern",
        "random",
        "sampling",
        "statistics",
        "stratifiedrandomsampling",
        "vector"
      ],
      "description": "Generates random 2D/3D vector points.",
      "id": "v.random",
      "parameters": {
        "a": {
          "description": ". Generate n points for each individual area (requires restrict parameter)",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "b": {
          "description": "Do not build topology. Advantageous when handling a large number of points",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "cats": {
          "description": "Category values. Example: 1,3,7-9,13",
          "required": false,
          "schema": {
            "subtype": "cats",
            "type": "string"
          }
        },
        "column": {
          "description": "Name of column for z values. Writes z values to column",
          "required": false,
          "schema": {
            "subtype": "dbcolumn",
            "type": "string"
          }
        },
        "column_type": {
          "description": ". Type of column for z values",
          "required": false,
          "schema": {
            "default": "double precision",
            "enum": [
              "integer",
              "double precision"
            ],
            "type": "string"
          }
        },
        "help": {
          "description": ". Print usage summary",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "layer": {
          "description": "Layer number or name ('-1' for all layers). A single vector map can be connected to multiple database tables. This number determines which table to use. When used with direct OGR access this is the layer name.",
          "required": false,
          "schema": {
            "default": "-1",
            "subtype": "layer_all",
            "type": "string"
          }
        },
        "npoints": {
          "description": ". Number of points to be created",
          "required": true,
          "schema": {
            "type": "integer"
          }
        },
        "output": {
          "description": ". Name for output vector map",
          "required": true,
          "schema": {
            "subtype": "vector",
            "type": "string"
          }
        },
        "overwrite": {
          "description": ". Allow output files to overwrite existing files",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "quiet": {
          "description": ". Quiet module output",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "restrict": {
          "description": "Name of input vector map. Restrict points to areas in input vector",
          "required": false,
          "schema": {
            "subtype": "vector",
            "type": "string"
          }
        },
        "seed": {
          "description": ". The seed to initialize the random generator. If not set the process ID is used",
          "required": false,
          "schema": {
            "type": "integer"
          }
        },
        "verbose": {
          "description": ". Verbose module output",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "where": {
          "description": "WHERE conditions of SQL statement without 'where' keyword. Example: income < 1000 and population >= 10000",
          "required": false,
          "schema": {
            "subtype": "sql_query",
            "type": "string"
          }
        },
        "z": {
          "description": ". Create 3D output",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "zmax": {
          "description": ". Maximum z height (needs -z flag or column name)",
          "required": false,
          "schema": {
            "default": "0.0",
            "type": "number"
          }
        },
        "zmin": {
          "description": ". Minimum z height (needs -z flag or column name)",
          "required": false,
          "schema": {
            "default": "0.0",
            "type": "number"
          }
        }
      }
    }

##### Response Example (400 Bad Request)

    {
      "status": 200,
      "message": "success"
    }

Module Viewer

## Get a list of all modules.

GET /modules

Get a list of modules. Minimum required user role: user.

tag: string
in path

Filter for categories

category: string
in path

Another filter for categories

200 OK
ModuleList

This response returns a list of module names and the status.

400 Bad Request
SimpleStatusCodeResponseModel

The error message and a detailed log why listing of modules did not succeeded

##### Response Example (200 OK)

    {
      "processes": [
        {
          "id": "v.random",
          "description": "Generates random 2D/3D vector points.",
          "categories": [
            "vector",
            "sampling",
            "statistics",
            "random",
            "point pattern",
            "stratified random sampling",
            "level1"
          ]
        }
      ],
      "status": "success"
    }

##### Response Example (400 Bad Request)

    {
      "status": 200,
      "message": "success"
    }

Module Viewer

## Describe a module.

GET /modules/{module}

Get the description of a module. Minimum required user role: user.

module: string
in path

The name of a module

200 OK
Module

This response returns a description of a module.

400 Bad Request
SimpleStatusCodeResponseModel

The error message and a detailed log why describing modules did not succeeded

##### Response Example (200 OK)

    {
      "categories": [
        "grass-module",
        "level1",
        "pointpattern",
        "random",
        "sampling",
        "statistics",
        "stratifiedrandomsampling",
        "vector"
      ],
      "description": "Generates random 2D/3D vector points.",
      "id": "v.random",
      "parameters": {
        "a": {
          "description": ". Generate n points for each individual area (requires restrict parameter)",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "b": {
          "description": "Do not build topology. Advantageous when handling a large number of points",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "cats": {
          "description": "Category values. Example: 1,3,7-9,13",
          "required": false,
          "schema": {
            "subtype": "cats",
            "type": "string"
          }
        },
        "column": {
          "description": "Name of column for z values. Writes z values to column",
          "required": false,
          "schema": {
            "subtype": "dbcolumn",
            "type": "string"
          }
        },
        "column_type": {
          "description": ". Type of column for z values",
          "required": false,
          "schema": {
            "default": "double precision",
            "enum": [
              "integer",
              "double precision"
            ],
            "type": "string"
          }
        },
        "help": {
          "description": ". Print usage summary",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "layer": {
          "description": "Layer number or name ('-1' for all layers). A single vector map can be connected to multiple database tables. This number determines which table to use. When used with direct OGR access this is the layer name.",
          "required": false,
          "schema": {
            "default": "-1",
            "subtype": "layer_all",
            "type": "string"
          }
        },
        "npoints": {
          "description": ". Number of points to be created",
          "required": true,
          "schema": {
            "type": "integer"
          }
        },
        "output": {
          "description": ". Name for output vector map",
          "required": true,
          "schema": {
            "subtype": "vector",
            "type": "string"
          }
        },
        "overwrite": {
          "description": ". Allow output files to overwrite existing files",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "quiet": {
          "description": ". Quiet module output",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "restrict": {
          "description": "Name of input vector map. Restrict points to areas in input vector",
          "required": false,
          "schema": {
            "subtype": "vector",
            "type": "string"
          }
        },
        "seed": {
          "description": ". The seed to initialize the random generator. If not set the process ID is used",
          "required": false,
          "schema": {
            "type": "integer"
          }
        },
        "verbose": {
          "description": ". Verbose module output",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "where": {
          "description": "WHERE conditions of SQL statement without 'where' keyword. Example: income < 1000 and population >= 10000",
          "required": false,
          "schema": {
            "subtype": "sql_query",
            "type": "string"
          }
        },
        "z": {
          "description": ". Create 3D output",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "zmax": {
          "description": ". Maximum z height (needs -z flag or column name)",
          "required": false,
          "schema": {
            "default": "0.0",
            "type": "number"
          }
        },
        "zmin": {
          "description": ". Minimum z height (needs -z flag or column name)",
          "required": false,
          "schema": {
            "default": "0.0",
            "type": "number"
          }
        }
      }
    }

##### Response Example (400 Bad Request)

    {
      "status": 200,
      "message": "success"
    }

# Process Chain Template Management

Process Chain Template Management

## Create an actinia template (process chain template).

POST /actinia_templates

Create a process chain template. Minimum required user role: user.

ProcessChainTemplate

The process chain template

##### Request Example

    {
      "id": "user_default_value",
      "description": "test default value in actinia-module-plugin",
      "template": {
        "version": "1",
        "list": [
          {
            "module": "r.mapcalc",
            "id": "r.mapcalc_test",
            "inputs": [
              {
                "param": "expression",
                "comment": "output = r.mapcalc result, string; value = raster value (default=0.428), float",
                "value": "{{ output }} = {{ value|default(0.428) }}"
              }
            ]
          },
          {
            "id": "r_info",
            "module": "r.info",
            "inputs": [
              {
                "param": "map",
                "value": "{{ output }}"
              }
            ]
          }
        ]
      }
    }

201 Created

This response returns True if creation was successfull.

400 Bad Request
SimpleStatusCodeResponseModel

The error message and a detailed log why creation did not succeeded

##### Response Example (400 Bad Request)

    {
      "status": 200,
      "message": "success"
    }

Process Chain Template Management

## Get a list of all actinia templates (process chain templates).

GET /actinia_templates

Get a list of process chain templates. Minimum required user role: user.

200 OK

This response returns a list of module names

400 Bad Request
SimpleStatusCodeResponseModel

The error message and a detailed log why listing of process chain templates did not succeeded

##### Response Example (400 Bad Request)

    {
      "status": 200,
      "message": "success"
    }

Process Chain Template Management

## Delete an actinia template (process chain template).

DELETE /actinia_templates/{template_id}

Delete a process chain template. Minimum required user role: user.

template_id: string
in path

The name of a process chain template

200 OK

This response returns True if deletion was successfull.

400 Bad Request
SimpleStatusCodeResponseModel

The error message and a detailed log why deletion did not succeeded

##### Response Example (400 Bad Request)

    {
      "status": 200,
      "message": "success"
    }

Process Chain Template Management

## Update an actinia template (process chain template).

PUT /actinia_templates/{template_id}

Update a process chain template. Minimum required user role: user.

template_id: string
in path

The name of a process chain template

201 Created

This response returns True if update was successfull.

400 Bad Request
SimpleStatusCodeResponseModel

The error message and a detailed log why update did not succeeded

##### Response Example (400 Bad Request)

    {
      "status": 200,
      "message": "success"
    }

Process Chain Template Management

## Read an actinia template (process chain template).

GET /actinia_templates/{template_id}

Read a process chain template. Minimum required user role: user.

template_id: string
in path

The name of a process chain template

200 OK
ProcessChainTemplate

This response returns a process chain template.

400 Bad Request
SimpleStatusCodeResponseModel

The error message and a detailed log why describing did not succeeded

##### Response Example (200 OK)

    {
      "id": "user_default_value",
      "description": "test default value in actinia-module-plugin",
      "template": {
        "version": "1",
        "list": [
          {
            "module": "r.mapcalc",
            "id": "r.mapcalc_test",
            "inputs": [
              {
                "param": "expression",
                "comment": "output = r.mapcalc result, string; value = raster value (default=0.428), float",
                "value": "{{ output }} = {{ value|default(0.428) }}"
              }
            ]
          },
          {
            "id": "r_info",
            "module": "r.info",
            "inputs": [
              {
                "param": "map",
                "value": "{{ output }}"
              }
            ]
          }
        ]
      }
    }

##### Response Example (400 Bad Request)

    {
      "status": 200,
      "message": "success"
    }

# Authentication Management

Authentication Management

## Create an API key for permanent authentication.

GET /api_key

Create an API key for permanent authentication. API keys have no expiration time. Minimum required user role: admin.

200 OK
TokenResponseModel

The API key generation response

400 Bad Request
TokenResponseModel

The error message in case of failure

##### Response Example (200 OK)

    {
      "status": "string",
      "token": "string",
      "message": "string"
    }

##### Response Example (400 Bad Request)

    {
      "status": "string",
      "token": "string",
      "message": "string"
    }

Authentication Management

## Create an authentication token.

GET /token

Create an authentication token. Tokens have an expiration time. The default expiration time is one day (86400s). maximum length is 365 days. Minimum required user role: user.

expiration_time: integer 86400
in query

The expiration time in seconds for the generated token

200 OK
TokenResponseModel

The token generation response

400 Bad Request
TokenResponseModel

The error message in case of failure

##### Response Example (200 OK)

    {
      "status": "string",
      "token": "string",
      "message": "string"
    }

##### Response Example (400 Bad Request)

    {
      "status": "string",
      "token": "string",
      "message": "string"
    }

# API Log

API Log

## Get a list of all API calls that have been called by the provided user.

GET /api_log/{user_id}

Get a list of all API calls that have been called by the provided user. Admin and superadmin roles can list API calls from any user. A user role can only list API calls from itself. Minimum required user role: user.

user_id: string
in path

The unique user name/id

200 OK
ApiLogListModel

Returned a list of all API calls that have been called by the provided user.

400 Bad Request
SimpleResponseModel

The error message why API log gathering did not succeeded

##### Response Example (200 OK)

    {
      "api_log_list": [
        {
          "time_stamp": "string",
          "node": "string",
          "endpoint": "string",
          "method": "string",
          "path": "string",
          "url": "string",
          "request_str": "string"
        }
      ]
    }

##### Response Example (400 Bad Request)

    {
      "status": "string",
      "message": "string"
    }

# Cache Management

Cache Management

## Clean the download cache and remove all cached data

DELETE /download_cache

Clean the download cache and remove all cached data. Minimum required user role: admin.

200 OK
StorageResponseModel

Processing status of cache deletion

400 Bad Request
ProcessingResponseModel

The error message why cache cleaning did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-02 10:51:27.988969",
      "accept_timestamp": 1525258287.9889677,
      "api_info": {
        "endpoint": "syncresourcestorageresource",
        "method": "GET",
        "path": "/resource_storage",
        "request_url": "http://localhost:8080/resource_storage"
      },
      "datetime": "2018-05-02 10:51:28.100659",
      "http_code": 200,
      "message": "Resource storage size successfully computed",
      "process_chain_list": [],
      "process_log": [
        {
          "executable": "/usr/bin/du",
          "parameter": [
            "-sb",
            "/actinia/resources/superadmin"
          ],
          "return_code": 0,
          "run_time": 0.05042886734008789,
          "stderr": [
            ""
          ],
          "stdout": "4096\t/actinia/resources/superadmin\n"
        }
      ],
      "process_results": {
        "free": 107374178304,
        "free_percent": 99,
        "quota": 107374182400,
        "used": 4096
      },
      "progress": {
        "num_of_steps": 0,
        "step": 1
      },
      "resource_id": "resource_id-f9463d91-04a6-497c-b107-37c4ee013530",
      "status": "finished",
      "time_delta": 0.11174893379211426,
      "timestamp": 1525258288.1006439,
      "urls": {
        "resources": [],
        "status": "http://localhost:8080/resources/superadmin/resource_id-f9463d91-04a6-497c-b107-37c4ee013530"
      },
      "user_id": "superadmin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

Cache Management

## Get the current size of the download cache

GET /download_cache

Get the current size of the download cache. Minimum required user role: admin.

200 OK
StorageResponseModel

The current state of the download cache

400 Bad Request
ProcessingResponseModel

The error message why cache information gathering did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-02 10:51:27.988969",
      "accept_timestamp": 1525258287.9889677,
      "api_info": {
        "endpoint": "syncresourcestorageresource",
        "method": "GET",
        "path": "/resource_storage",
        "request_url": "http://localhost:8080/resource_storage"
      },
      "datetime": "2018-05-02 10:51:28.100659",
      "http_code": 200,
      "message": "Resource storage size successfully computed",
      "process_chain_list": [],
      "process_log": [
        {
          "executable": "/usr/bin/du",
          "parameter": [
            "-sb",
            "/actinia/resources/superadmin"
          ],
          "return_code": 0,
          "run_time": 0.05042886734008789,
          "stderr": [
            ""
          ],
          "stdout": "4096\t/actinia/resources/superadmin\n"
        }
      ],
      "process_results": {
        "free": 107374178304,
        "free_percent": 99,
        "quota": 107374182400,
        "used": 4096
      },
      "progress": {
        "num_of_steps": 0,
        "step": 1
      },
      "resource_id": "resource_id-f9463d91-04a6-497c-b107-37c4ee013530",
      "status": "finished",
      "time_delta": 0.11174893379211426,
      "timestamp": 1525258288.1006439,
      "urls": {
        "resources": [],
        "status": "http://localhost:8080/resources/superadmin/resource_id-f9463d91-04a6-497c-b107-37c4ee013530"
      },
      "user_id": "superadmin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

# File Management

File Management

## Upload file.

POST /files

File can be uploaded, best used with https://bmvimetadaten.mundialis.de.

200 OK
SimpleStatusCodeResponseModel

Success or failure of connection

##### Response Example (200 OK)

    {
      "status": 200,
      "message": "success"
    }

# Satellite Image Algorithms

Satellite Image Algorithms

## Vegetation index computation from an atmospherically corrected Landsat scene.

POST /landsat_process/{landsat_id}/{atcor_method}/{processing_method}

Vegetation index computation from an atmospherically corrected Landsat scene. The Landsat scene is located in the google cloud storage. The processing is as follows: A user specific Landsat scene (LT4, LT5, LE7 and LC8) will be download and imported into an ephemeral database. Then atmospheric correction will be performed, with either TOAR or DOS4, depending on the users choice. The user specific vegetation index will be computed based on the TOAR or DOS4 data. The result of the computation is available as gzipped Geotiff file. In addition, the univariate statistic will be computed as well as a preview image including a legend. Minimum required user role: user.

landsat_id: string LT41970251990147XXX03
in path

The id of a Landsat scene only with sensors: LT04, LT05, LE07, LC08

atcor_method: string TOAR, DOS1, DOS4 DOS4
in path

The method for atmospheric correction

processing_method: string NDVI, ARVI, DVI, EVI, EVI2, GVI, GARI, GEMI, IPVI, PVI, SR, VARI, WDVI NDVI
in path

The method that should be used to compute the vegetation index

200 OK
LandsatNDVIResponseModel

This response includes all created resources as URL as well as the processing log and other metadata.

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why NDVI processing of a Landsat scene did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-30 11:16:03.033305",
      "accept_timestamp": 1527678963.033304,
      "api_info": {
        "endpoint": "asyncephemerallandsatprocessingresource",
        "method": "POST",
        "path": "/api/v3/landsat_process/LC80440342016259LGN00/TOAR/NDVI",
        "request_url": "http://localhost:5000/api/v3/landsat_process/LC80440342016259LGN00/TOAR/NDVI"
      },
      "datetime": "2018-05-30 11:22:58.315162",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "flags": "g",
            "inputs": {
              "map": "LC80440342016259LGN00_TOAR_NDVI"
            },
            "module": "r.univar",
            "outputs": {
              "output": {
                "name": "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/tmpkiv0uv6z.univar"
              }
            }
          }
        },
        {
          "1": {
            "flags": "n",
            "inputs": {
              "map": "LC80440342016259LGN00_TOAR_NDVI"
            },
            "module": "d.rast"
          },
          "2": {
            "flags": "n",
            "inputs": {
              "at": "8,92,0,7",
              "raster": "LC80440342016259LGN00_TOAR_NDVI"
            },
            "module": "d.legend"
          }
        }
      ],
      "process_log": [
        {
          "executable": "/usr/bin/wget",
          "parameter": [
            "-t5",
            "-c",
            "-q",
            "-O",
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B6.TIF",
            "https://storage.googleapis.com/gcp-public-data-landsat/LC08/PRE/044/034/LC80440342016259LGN00/LC80440342016259LGN00_B6.TIF"
          ],
          "return_code": 0,
          "run_time": 23.63347291946411,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B6.TIF",
            "/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B6.TIF"
          ],
          "return_code": 0,
          "run_time": 0.05022144317626953,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/wget",
          "parameter": [
            "-t5",
            "-c",
            "-q",
            "-O",
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B7.TIF",
            "https://storage.googleapis.com/gcp-public-data-landsat/LC08/PRE/044/034/LC80440342016259LGN00/LC80440342016259LGN00_B7.TIF"
          ],
          "return_code": 0,
          "run_time": 22.89448094367981,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B7.TIF",
            "/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B7.TIF"
          ],
          "return_code": 0,
          "run_time": 0.051961421966552734,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/wget",
          "parameter": [
            "-t5",
            "-c",
            "-q",
            "-O",
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B8.TIF",
            "https://storage.googleapis.com/gcp-public-data-landsat/LC08/PRE/044/034/LC80440342016259LGN00/LC80440342016259LGN00_B8.TIF"
          ],
          "return_code": 0,
          "run_time": 83.04966020584106,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B8.TIF",
            "/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B8.TIF"
          ],
          "return_code": 0,
          "run_time": 0.05012321472167969,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/wget",
          "parameter": [
            "-t5",
            "-c",
            "-q",
            "-O",
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B9.TIF",
            "https://storage.googleapis.com/gcp-public-data-landsat/LC08/PRE/044/034/LC80440342016259LGN00/LC80440342016259LGN00_B9.TIF"
          ],
          "return_code": 0,
          "run_time": 11.948487043380737,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B9.TIF",
            "/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B9.TIF"
          ],
          "return_code": 0,
          "run_time": 0.05081939697265625,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/wget",
          "parameter": [
            "-t5",
            "-c",
            "-q",
            "-O",
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B10.TIF",
            "https://storage.googleapis.com/gcp-public-data-landsat/LC08/PRE/044/034/LC80440342016259LGN00/LC80440342016259LGN00_B10.TIF"
          ],
          "return_code": 0,
          "run_time": 15.688527345657349,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B10.TIF",
            "/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B10.TIF"
          ],
          "return_code": 0,
          "run_time": 0.05163097381591797,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/wget",
          "parameter": [
            "-t5",
            "-c",
            "-q",
            "-O",
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B11.TIF",
            "https://storage.googleapis.com/gcp-public-data-landsat/LC08/PRE/044/034/LC80440342016259LGN00/LC80440342016259LGN00_B11.TIF"
          ],
          "return_code": 0,
          "run_time": 15.100370645523071,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B11.TIF",
            "/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B11.TIF"
          ],
          "return_code": 0,
          "run_time": 0.05057358741760254,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/wget",
          "parameter": [
            "-t5",
            "-c",
            "-q",
            "-O",
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_MTL.txt",
            "https://storage.googleapis.com/gcp-public-data-landsat/LC08/PRE/044/034/LC80440342016259LGN00/LC80440342016259LGN00_MTL.txt"
          ],
          "return_code": 0,
          "run_time": 0.25395917892456055,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_MTL.txt",
            "/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_MTL.txt"
          ],
          "return_code": 0,
          "run_time": 0.05015206336975098,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "python3",
          "parameter": [
            "/usr/local/bin/grass",
            "-e",
            "-c",
            "/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B1.TIF",
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/Landsat"
          ],
          "return_code": 0,
          "run_time": 0.15161657333374023,
          "stderr": [
            "Default locale settings are missing. GRASS running with C locale.WARNING: Searched for a web browser, but none found",
            "Creating new GRASS GIS location/mapset...",
            "Cleaning up temporary files...",
            ""
          ],
          "stdout": "Default locale not found, using UTF-8\n"
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B1.TIF",
            "output=LC80440342016259LGN00.1",
            "--q"
          ],
          "return_code": 0,
          "run_time": 3.093010902404785,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B2.TIF",
            "output=LC80440342016259LGN00.2",
            "--q"
          ],
          "return_code": 0,
          "run_time": 3.020535707473755,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B3.TIF",
            "output=LC80440342016259LGN00.3",
            "--q"
          ],
          "return_code": 0,
          "run_time": 2.9988090991973877,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B4.TIF",
            "output=LC80440342016259LGN00.4",
            "--q"
          ],
          "return_code": 0,
          "run_time": 3.0504379272460938,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B5.TIF",
            "output=LC80440342016259LGN00.5",
            "--q"
          ],
          "return_code": 0,
          "run_time": 3.0378293991088867,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B6.TIF",
            "output=LC80440342016259LGN00.6",
            "--q"
          ],
          "return_code": 0,
          "run_time": 3.1231300830841064,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B7.TIF",
            "output=LC80440342016259LGN00.7",
            "--q"
          ],
          "return_code": 0,
          "run_time": 3.0385892391204834,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B8.TIF",
            "output=LC80440342016259LGN00.8",
            "--q"
          ],
          "return_code": 0,
          "run_time": 11.727607488632202,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B9.TIF",
            "output=LC80440342016259LGN00.9",
            "--q"
          ],
          "return_code": 0,
          "run_time": 3.531238317489624,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B10.TIF",
            "output=LC80440342016259LGN00.10",
            "--q"
          ],
          "return_code": 0,
          "run_time": 3.1895594596862793,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B11.TIF",
            "output=LC80440342016259LGN00.11",
            "--q"
          ],
          "return_code": 0,
          "run_time": 3.1583566665649414,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "i.landsat.toar",
          "parameter": [
            "input=LC80440342016259LGN00.",
            "metfile=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_MTL.txt",
            "method=uncorrected",
            "output=LC80440342016259LGN00_TOAR.",
            "--q"
          ],
          "return_code": 0,
          "run_time": 101.34896063804626,
          "stderr": [
            "WARNING: ESUN evaluated from REFLECTANCE_MAXIMUM_BAND",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "i.vi",
          "parameter": [
            "red=LC80440342016259LGN00_TOAR.4",
            "nir=LC80440342016259LGN00_TOAR.5",
            "green=LC80440342016259LGN00_TOAR.3",
            "blue=LC80440342016259LGN00_TOAR.2",
            "band5=LC80440342016259LGN00_TOAR.7",
            "band7=LC80440342016259LGN00_TOAR.8",
            "viname=ndvi",
            "output=LC80440342016259LGN00_TOAR_NDVI"
          ],
          "return_code": 0,
          "run_time": 45.43833112716675,
          "stderr": [
            "0..3..6..9..12..15..18..21..24..27..30..33..36..39..42..45..48..51..54..57..60..63..66..69..72..75..78..81..84..87..90..93..96..99..100",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.colors",
          "parameter": [
            "map=LC80440342016259LGN00_TOAR_NDVI",
            "color=ndvi"
          ],
          "return_code": 0,
          "run_time": 0.050219058990478516,
          "stderr": [
            "Color table for raster map <LC80440342016259LGN00_TOAR_NDVI> set to 'ndvi'",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.univar",
          "parameter": [
            "map=LC80440342016259LGN00_TOAR_NDVI",
            "output=/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/tmpkiv0uv6z.univar",
            "-g"
          ],
          "return_code": 0,
          "run_time": 2.5560226440429688,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "d.rast",
          "parameter": [
            "map=LC80440342016259LGN00_TOAR_NDVI",
            "-n"
          ],
          "return_code": 0,
          "run_time": 1.2287390232086182,
          "stderr": [
            "0..3..6..9..12..15..18..21..24..27..30..33..36..39..42..45..48..51..54..57..60..63..66..69..72..75..78..81..84..87..90..93..96..99..100",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "d.legend",
          "parameter": [
            "raster=LC80440342016259LGN00_TOAR_NDVI",
            "at=8,92,0,7",
            "-n"
          ],
          "return_code": 0,
          "run_time": 0.37291598320007324,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "raster=LC80440342016259LGN00_TOAR_NDVI",
            "-g"
          ],
          "return_code": 0,
          "run_time": 0.051508188247680664,
          "stderr": [
            ""
          ],
          "stdout": "projection=1\nzone=10\nn=4264515\ns=4030185\nw=464385\ne=694515\nnsres=30\newres=30\nrows=7811\ncols=7671\ncells=59918181\n"
        },
        {
          "executable": "r.out.gdal",
          "parameter": [
            "-fm",
            "input=LC80440342016259LGN00_TOAR_NDVI",
            "format=GTiff",
            "createopt=COMPRESS=LZW",
            "output=/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_TOAR_NDVI.tiff"
          ],
          "return_code": 0,
          "run_time": 8.784564018249512,
          "stderr": [
            "Checking GDAL data type and nodata value...",
            "2..5..8..11..14..17..20..23..26..29..32..35..38..41..44..47..50..53..56..59..62..65..68..71..74..77..80..83..86..89..92..95..98..100",
            "Using GDAL data type <Float64>",
            "Input raster map contains cells with NULL-value (no-data). The value -nan will be used to represent no-data values in the input map. You can specify a nodata value with the nodata option.",
            "Exporting raster data to GTiff format...",
            "ERROR 6: SetColorTable() only supported for Byte or UInt16 bands in TIFF format.",
            "2..5..8..11..14..17..20..23..26..29..32..35..38..41..44..47..50..53..56..59..62..65..68..71..74..77..80..83..86..89..92..95..98..100",
            "r.out.gdal complete. File </actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_TOAR_NDVI.tiff> created.",
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        {
          "cells": 59918181,
          "coeff_var": 125.4796560716,
          "max": 1.31488464218245,
          "mean": 0.215349514428788,
          "mean_of_abs": 0.272685223860196,
          "min": -1.35084534300324,
          "n": 41612094,
          "name": "LC80440342016259LGN00_TOAR_NDVI",
          "null_cells": 18306087,
          "range": 2.6657299851857,
          "stddev": 0.270219830057103,
          "sum": 8961144.23726506,
          "variance": 0.0730187565560894
        }
      ],
      "progress": {
        "num_of_steps": 35,
        "step": 34
      },
      "resource_id": "resource_id-6282c634-42e1-417c-a092-c9b21c3283cc",
      "status": "finished",
      "time_delta": 415.2818741798401,
      "timestamp": 1527679378.31516,
      "urls": {
        "resources": [
          "http://localhost:5000/api/v3/resource/superadmin/resource_id-6282c634-42e1-417c-a092-c9b21c3283cc/tmp80apvh0h.png",
          "http://localhost:5000/api/v3/resource/superadmin/resource_id-6282c634-42e1-417c-a092-c9b21c3283cc/LC80440342016259LGN00_TOAR_NDVI.tiff"
        ],
        "status": "http://localhost:5000/api/v3/resources/superadmin/resource_id-6282c634-42e1-417c-a092-c9b21c3283cc"
      },
      "user_id": "superadmin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Satellite Image Algorithms

## Query the Google Landsat archives using time interval, lat/lon coordinates, scene id, spacecraft id and cloud cover.

GET /landsat_query

Query the Google Landsat archives using time interval, lat/lon coordinates, scene id, spacecraft id and cloud cover. All scenes that are located within the time interval and that intersect the given latitude/longitude coordinates are returned as a list of scene names with associated time stamps. Minimum required user role: user.

scene_id: string
in query

The scene id of the landsat scenes that should be searched

spacecraft_id: string LANDSAT_4, LANDSAT_5, LANDSAT_7, LANDSAT_8
in query

The spacecraft id of the landsat scenes that should be searched

start_time: string (dateTime)
in query

The start time of the search interval

end_time: string (dateTime)
in query

The end time of the search interval

lon: number (double)
in query

The longitude coordinate with which the scenes should intersect

lat: number (double)
in query

The latitude coordinate with which the scenes should intersect

cloud_covert: number (double)
in query

Cloud cover between 0 - 100

200 OK
SatelliteSceneList

A list of satellite scenes that fit the search

400 Bad Request
SimpleResponseModel

The error message if the search did not succeeded

##### Response Example (200 OK)

    [
      {
        "cloud_cover": "100.0",
        "east_lon": 117.334772,
        "north_lat": -73.8673822679,
        "scene_id": "S2A_MSIL1C_20170101T003802_N0204_R116_T50CMC_20170101T003759",
        "sensing_time": "2017-01-01T00:37:59.459000Z",
        "south_lat": -74.8755595194,
        "total_size": 608562784,
        "west_lon": 113.568673296
      },
      {
        "cloud_cover": "100.0",
        "east_lon": 117.355376908,
        "north_lat": -74.7623823271,
        "scene_id": "S2A_MSIL1C_20170101T003802_N0204_R116_T50CMB_20170101T003759",
        "sensing_time": "2017-01-01T00:37:59.459000Z",
        "south_lat": -75.7719656592,
        "total_size": 604326630,
        "west_lon": 113.35802037
      }
    ]

##### Response Example (400 Bad Request)

    {
      "status": "string",
      "message": "string"
    }

Satellite Image Algorithms

## Download and import Landsat scenes into a new mapset and create a space time dataset for each imported band.

POST /locations/{location_name}/mapsets/{mapset_name}/landsat_import

Download and import Landsat scenes into a new mapset and create a space-time raster dataset for each imported band. The resulting data will be located in a persistent user database. The location name is part of the path and must exist. The mapset will be created while importing and should not already exist in the location. The names of theLandsat scenes that should be downloaded must be specified in the HTTP body as application/json content. In addition, the basename of the STRDS that should manage the Landsat scenes must be provided in the application/json content. For each band a separate strds will be cerated and the STRDS base name will be extended with the band number.This call is performed asynchronously. The provided resource URL must be pulled to receive the status of the import. The data is available in the provided location/mapset, after the download and import finished. Minimum required user role: user.

LandsatSceneListModel

The list of Landsat scenes, the band names and the target STRDS names

location_name: string
in path

The location name to import the Landsat scenes in

mapset_name: string
in path

The name of the mapset to import the Landsat scenes in

##### Request Content-Types: application/json

##### Request Example

    {
      "strds": "Landsat_4",
      "atcor_method": "TOAR",
      "scene_ids": [
        "LT41970251990147XXX00",
        "LT41970251990147XXX01",
        "LT41970251990147XXX02",
        "LT41970251990147XXX03"
      ]
    }

200 OK
ProcessingResponseModel

The result of the Landsat time series import

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why Landsat time series import did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Satellite Image Algorithms

## Download and import Sentinel2A scenes into a new mapset and create a space-time raster dataset for each imported band.

POST /locations/{location_name}/mapsets/{mapset_name}/sentinel2_import

Download and import Sentinel2A scenes into a new mapset and create a space-time raster dataset for each imported band. The resulting data will be located in a persistent user database. The location name is part of the path and must exist. The mapset will be created while importing and should not already exist in the location. The names of theSentinel-2 scenes and the band names that should be downloaded must be specified in the HTTP body as application/json content. In addition, the names of the STRDS that should manage the sentinel scenes must be provided in the application/json content. For each band a separate STRDS name must be provided.This call is performed asynchronously. The provided resource URL must be pulled to receive the status of the import. The data is available in the provided location/mapset, after the download and import finished. Minimum required user role: user.

Sentinel2ASceneListModel

The list of Sentinel-2 scenes, the band names and the target STRDS names

location_name: string
in path

The location name to import the Sentinel2A scenes in

mapset_name: string
in path

The name of the mapset to import the Sentinel2A scenes in

##### Request Content-Types: application/json

##### Request Example

    {
      "bands": [
        "B04",
        "B08"
      ],
      "product_ids": [
        "S2A_MSIL1C_20170212T104141_N0204_R008_T31TGJ_20170212T104138",
        "S2A_MSIL1C_20170227T095021_N0204_R079_T34TBM_20170227T095613",
        "S2A_MSIL1C_20170202T104241_N0204_R008_T32UNE_20170202T104236"
      ]
    }

200 OK
ProcessingResponseModel

The result of the Sentinel-2 time series import

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why Sentinel 2A time series import did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Satellite Image Algorithms

## NDVI computation of an arbitrary Sentinel-2 scene.

POST /sentinel2_process/ndvi/{product_id}

NDVI computation of an arbitrary Sentinel-2 scene.The processing is as follows: A user specific Sentinel-2 scene (Bands 04 and 08)will be download and imported into an ephemeral database.. The NDVI will be computed via r.mapcalc. The result of the computation is available as gzipped geotiff file. In addition, the univariate statistic will be computed as well as a preview image including a legend and scale. Minimum required user role: user.

product_id: string S2A_MSIL1C_20170212T104141_N0204_R008_T31TGJ_20170212T104138
in path

The product id of a sentinel scene

200 OK
SentinelNDVIResponseModel

This response includes all created resources as URL as well as the processing log and other metadata.

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why NDVI processing of a sentinel2 scene did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-30 12:25:43.987713",
      "accept_timestamp": 1527683143.9877105,
      "api_info": {
        "endpoint": "asyncephemeralsentinel2processingresource",
        "method": "POST",
        "path": "/api/v3/sentinel2_process/ndvi/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749",
        "request_url": "http://localhost:8080/api/v3/sentinel2_process/ndvi/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749"
      },
      "datetime": "2018-05-30 12:29:11.800608",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "flags": "g",
            "inputs": {
              "map": "ndvi"
            },
            "module": "r.univar",
            "outputs": {
              "output": {
                "name": "/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/tmp7il3n0jk.univar"
              }
            }
          }
        },
        {
          "1": {
            "inputs": {
              "map": "ndvi"
            },
            "module": "d.rast"
          },
          "2": {
            "flags": "n",
            "inputs": {
              "at": "8,92,0,7",
              "raster": "ndvi"
            },
            "module": "d.legend"
          },
          "3": {
            "inputs": {
              "at": "20,4",
              "style": "line"
            },
            "module": "d.barscale"
          }
        }
      ],
      "process_log": [
        {
          "executable": "/usr/bin/wget",
          "parameter": [
            "-t5",
            "-c",
            "-q",
            "https://storage.googleapis.com/gcp-public-data-sentinel-2/tiles/50/R/KR/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749.SAFE/GRANULE/L1C_T50RKR_A007608_20161206T030749/IMG_DATA/T50RKR_20161206T030112_B08.jp2"
          ],
          "return_code": 0,
          "run_time": 49.85953092575073,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/wget",
          "parameter": [
            "-t5",
            "-c",
            "-q",
            "https://storage.googleapis.com/gcp-public-data-sentinel-2/tiles/50/R/KR/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749.SAFE/GRANULE/L1C_T50RKR_A007608_20161206T030749/IMG_DATA/T50RKR_20161206T030112_B04.jp2"
          ],
          "return_code": 0,
          "run_time": 38.676433801651,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749.gml",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749.gml"
          ],
          "return_code": 0,
          "run_time": 0.05118393898010254,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/T50RKR_20161206T030112_B08.jp2",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08"
          ],
          "return_code": 0,
          "run_time": 0.35857558250427246,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/T50RKR_20161206T030112_B04.jp2",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04"
          ],
          "return_code": 0,
          "run_time": 0.15271401405334473,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "python3",
          "parameter": [
            "/usr/local/bin/grass",
            "-e",
            "-c",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08",
            "/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/sentinel2"
          ],
          "return_code": 0,
          "run_time": 0.36118006706237793,
          "stderr": [
            "Default locale settings are missing. GRASS running with C locale.WARNING: Searched for a web browser, but none found",
            "Creating new GRASS GIS location/mapset...",
            "Cleaning up temporary files...",
            ""
          ],
          "stdout": "Default locale not found, using UTF-8\n"
        },
        {
          "executable": "v.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749.gml",
            "output=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749",
            "--q"
          ],
          "return_code": 0,
          "run_time": 0.3551313877105713,
          "stderr": [
            "WARNING: Projection of dataset does not appear to match current location.",
            "",
            "Location PROJ_INFO is:",
            "name: WGS 84 / UTM zone 50N",
            "datum: wgs84",
            "ellps: wgs84",
            "proj: utm",
            "zone: 50",
            "no_defs: defined",
            "",
            "Dataset PROJ_INFO is:",
            "name: WGS 84",
            "datum: wgs84",
            "ellps: wgs84",
            "proj: ll",
            "no_defs: defined",
            "",
            "ERROR: proj",
            "",
            "WARNING: Width for column fid set to 255 (was not specified by OGR), some strings may be truncated!",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "v.timestamp",
          "parameter": [
            "map=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749",
            "date=06 dec 2016 03:07:49"
          ],
          "return_code": 0,
          "run_time": 0.050455570220947266,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/gdal_translate",
          "parameter": [
            "-projwin",
            "113.949663",
            "28.011816",
            "115.082607",
            "27.001706",
            "-of",
            "vrt",
            "-projwin_srs",
            "EPSG:4326",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08.vrt"
          ],
          "return_code": 0,
          "run_time": 0.05114293098449707,
          "stderr": [
            "Warning 1: Computed -srcwin 5 -225 10971 11419 falls partially outside raster extent. Going on however.",
            ""
          ],
          "stdout": "Input file size is 10980, 10980\n"
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08.vrt",
            "output=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08_uncropped",
            "--q"
          ],
          "return_code": 0,
          "run_time": 16.326167583465576,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "align=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08_uncropped",
            "vector=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749",
            "-g"
          ],
          "return_code": 0,
          "run_time": 0.10460591316223145,
          "stderr": [
            ""
          ],
          "stdout": "projection=1\nzone=50\nn=3100030\ns=2990100\nw=199960\ne=309790\nnsres=10\newres=10\nrows=10993\ncols=10983\ncells=120736119\n"
        },
        {
          "executable": "r.mask",
          "parameter": [
            "vector=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749"
          ],
          "return_code": 0,
          "run_time": 7.36047887802124,
          "stderr": [
            "Reading areas...",
            "0..100",
            "Writing raster map...",
            "0..3..6..9..12..15..18..21..24..27..30..33..36..39..42..45..48..51..54..57..60..63..66..69..72..75..78..81..84..87..90..93..96..99..100",
            "Reading areas...",
            "0..100",
            "Writing raster map...",
            "0..3..6..9..12..15..18..21..24..27..30..33..36..39..42..45..48..51..54..57..60..63..66..69..72..75..78..81..84..87..90..93..96..99..100",
            "All subsequent raster operations will be limited to the MASK area. Removing or renaming raster map named 'MASK' will restore raster operations to normal.",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.mapcalc",
          "parameter": [
            "expression=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08 = float(S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08_uncropped)"
          ],
          "return_code": 0,
          "run_time": 10.695591926574707,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.timestamp",
          "parameter": [
            "map=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08",
            "date=06 dec 2016 03:07:49"
          ],
          "return_code": 0,
          "run_time": 0.053069353103637695,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.remove",
          "parameter": [
            "type=raster",
            "name=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08_uncropped",
            "-f"
          ],
          "return_code": 0,
          "run_time": 0.050362348556518555,
          "stderr": [
            "Removing raster <S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08_uncropped>",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.mask",
          "parameter": [
            "-r"
          ],
          "return_code": 0,
          "run_time": 0.10059237480163574,
          "stderr": [
            "Raster MASK removed",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/gdal_translate",
          "parameter": [
            "-projwin",
            "113.949663",
            "28.011816",
            "115.082607",
            "27.001706",
            "-of",
            "vrt",
            "-projwin_srs",
            "EPSG:4326",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04.vrt"
          ],
          "return_code": 0,
          "run_time": 0.05096769332885742,
          "stderr": [
            "Warning 1: Computed -srcwin 5 -225 10971 11419 falls partially outside raster extent. Going on however.",
            ""
          ],
          "stdout": "Input file size is 10980, 10980\n"
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04.vrt",
            "output=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04_uncropped",
            "--q"
          ],
          "return_code": 0,
          "run_time": 16.76022958755493,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "align=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04_uncropped",
            "vector=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749",
            "-g"
          ],
          "return_code": 0,
          "run_time": 0.0505826473236084,
          "stderr": [
            ""
          ],
          "stdout": "projection=1\nzone=50\nn=3100030\ns=2990100\nw=199960\ne=309790\nnsres=10\newres=10\nrows=10993\ncols=10983\ncells=120736119\n"
        },
        {
          "executable": "r.mask",
          "parameter": [
            "vector=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749"
          ],
          "return_code": 0,
          "run_time": 6.779608249664307,
          "stderr": [
            "Reading areas...",
            "0..100",
            "Writing raster map...",
            "0..3..6..9..12..15..18..21..24..27..30..33..36..39..42..45..48..51..54..57..60..63..66..69..72..75..78..81..84..87..90..93..96..99..100",
            "Reading areas...",
            "0..100",
            "Writing raster map...",
            "0..3..6..9..12..15..18..21..24..27..30..33..36..39..42..45..48..51..54..57..60..63..66..69..72..75..78..81..84..87..90..93..96..99..100",
            "All subsequent raster operations will be limited to the MASK area. Removing or renaming raster map named 'MASK' will restore raster operations to normal.",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.mapcalc",
          "parameter": [
            "expression=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04 = float(S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04_uncropped)"
          ],
          "return_code": 0,
          "run_time": 10.141529321670532,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.timestamp",
          "parameter": [
            "map=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04",
            "date=06 dec 2016 03:07:49"
          ],
          "return_code": 0,
          "run_time": 0.05050253868103027,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.remove",
          "parameter": [
            "type=raster",
            "name=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04_uncropped",
            "-f"
          ],
          "return_code": 0,
          "run_time": 0.05098080635070801,
          "stderr": [
            "Removing raster <S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04_uncropped>",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.mask",
          "parameter": [
            "-r"
          ],
          "return_code": 0,
          "run_time": 0.10424232482910156,
          "stderr": [
            "Raster MASK removed",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.mapcalc",
          "parameter": [
            "expression=ndvi = (float(S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08) - float(S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04))/(float(S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08) + float(S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04))"
          ],
          "return_code": 0,
          "run_time": 20.28681755065918,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.colors",
          "parameter": [
            "color=ndvi",
            "map=ndvi"
          ],
          "return_code": 0,
          "run_time": 0.05031251907348633,
          "stderr": [
            "Color table for raster map <ndvi> set to 'ndvi'",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.univar",
          "parameter": [
            "map=ndvi",
            "output=/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/tmp7il3n0jk.univar",
            "-g"
          ],
          "return_code": 0,
          "run_time": 4.54892897605896,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "d.rast",
          "parameter": [
            "map=ndvi"
          ],
          "return_code": 0,
          "run_time": 2.0198700428009033,
          "stderr": [
            "0..3..6..9..12..15..18..21..24..27..30..33..36..39..42..45..48..51..54..57..60..63..66..69..72..75..78..81..84..87..90..93..96..99..100",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "d.legend",
          "parameter": [
            "raster=ndvi",
            "at=8,92,0,7",
            "-n"
          ],
          "return_code": 0,
          "run_time": 0.4614551067352295,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "d.barscale",
          "parameter": [
            "style=line",
            "at=20,4"
          ],
          "return_code": 0,
          "run_time": 0.416748046875,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "raster=ndvi",
            "-g"
          ],
          "return_code": 0,
          "run_time": 0.051720619201660156,
          "stderr": [
            ""
          ],
          "stdout": "projection=1\nzone=50\nn=3100030\ns=2990100\nw=199960\ne=309790\nnsres=10\newres=10\nrows=10993\ncols=10983\ncells=120736119\n"
        },
        {
          "executable": "r.out.gdal",
          "parameter": [
            "-fm",
            "input=ndvi",
            "format=GTiff",
            "createopt=COMPRESS=LZW",
            "output=/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/ndvi.tiff"
          ],
          "return_code": 0,
          "run_time": 12.550397157669067,
          "stderr": [
            "Checking GDAL data type and nodata value...",
            "2..5..8..11..14..17..20..23..26..29..32..35..38..41..44..47..50..53..56..59..62..65..68..71..74..77..80..83..86..89..92..95..98..100",
            "Using GDAL data type <Float32>",
            "Input raster map contains cells with NULL-value (no-data). The value -nan will be used to represent no-data values in the input map. You can specify a nodata value with the nodata option.",
            "Exporting raster data to GTiff format...",
            "ERROR 6: SetColorTable() only supported for Byte or UInt16 bands in TIFF format.",
            "2..5..8..11..14..17..20..23..26..29..32..35..38..41..44..47..50..53..56..59..62..65..68..71..74..77..80..83..86..89..92..95..98..100",
            "r.out.gdal complete. File </actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/ndvi.tiff> created.",
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        {
          "cells": 120736119,
          "coeff_var": 39.2111992829072,
          "max": 0.80298912525177,
          "mean": 0.345280366103636,
          "mean_of_abs": 0.347984182813063,
          "min": -0.96863466501236,
          "n": 120371030,
          "name": "ndvi",
          "null_cells": 365089,
          "range": 1.77162379026413,
          "stddev": 0.135388572437648,
          "sum": 41561753.3066718,
          "variance": 0.0183300655467043
        }
      ],
      "progress": {
        "num_of_steps": 33,
        "step": 32
      },
      "resource_id": "resource_id-6b849585-576f-40b5-a514-34a7cf1f97ce",
      "status": "finished",
      "time_delta": 207.813636302948,
      "timestamp": 1527683351.8002071,
      "urls": {
        "resources": [
          "http://localhost:8080/api/v3/resource/superadmin/resource_id-6b849585-576f-40b5-a514-34a7cf1f97ce/tmpsaeegg0q.png",
          "http://localhost:8080/api/v3/resource/superadmin/resource_id-6b849585-576f-40b5-a514-34a7cf1f97ce/ndvi.tiff"
        ],
        "status": "http://localhost:8080/api/v3/resources/superadmin/resource_id-6b849585-576f-40b5-a514-34a7cf1f97ce"
      },
      "user_id": "superadmin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Satellite Image Algorithms

## NDVI computation of an arbitrary Sentinel-2 scene. The results are stored in the Google Cloud Storage.

POST /sentinel2_process_gcs/ndvi/{product_id}

NDVI computation of an arbitrary Sentinel-2 scene.The processing is as follows: A user specific Sentinel-2 scene (Bands 04 and 08)will be download and imported into an ephemeral database.. The NDVI will be computed via r.mapcalc. The result of the computation is available as gzipped geotiff file. In addition, the univariate statistic will be computed as well as a preview image including a legend and scale. Minimum required user role: user.

product_id: string S2A_MSIL1C_20170212T104141_N0204_R008_T31TGJ_20170212T104138
in path

The product id of a sentinel scene

200 OK
SentinelNDVIResponseModel

This response includes all created resources as URL as well as the processing log and other metadata.

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why NDVI processing of a sentinel2 scene did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-30 12:25:43.987713",
      "accept_timestamp": 1527683143.9877105,
      "api_info": {
        "endpoint": "asyncephemeralsentinel2processingresource",
        "method": "POST",
        "path": "/api/v3/sentinel2_process/ndvi/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749",
        "request_url": "http://localhost:8080/api/v3/sentinel2_process/ndvi/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749"
      },
      "datetime": "2018-05-30 12:29:11.800608",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "flags": "g",
            "inputs": {
              "map": "ndvi"
            },
            "module": "r.univar",
            "outputs": {
              "output": {
                "name": "/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/tmp7il3n0jk.univar"
              }
            }
          }
        },
        {
          "1": {
            "inputs": {
              "map": "ndvi"
            },
            "module": "d.rast"
          },
          "2": {
            "flags": "n",
            "inputs": {
              "at": "8,92,0,7",
              "raster": "ndvi"
            },
            "module": "d.legend"
          },
          "3": {
            "inputs": {
              "at": "20,4",
              "style": "line"
            },
            "module": "d.barscale"
          }
        }
      ],
      "process_log": [
        {
          "executable": "/usr/bin/wget",
          "parameter": [
            "-t5",
            "-c",
            "-q",
            "https://storage.googleapis.com/gcp-public-data-sentinel-2/tiles/50/R/KR/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749.SAFE/GRANULE/L1C_T50RKR_A007608_20161206T030749/IMG_DATA/T50RKR_20161206T030112_B08.jp2"
          ],
          "return_code": 0,
          "run_time": 49.85953092575073,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/wget",
          "parameter": [
            "-t5",
            "-c",
            "-q",
            "https://storage.googleapis.com/gcp-public-data-sentinel-2/tiles/50/R/KR/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749.SAFE/GRANULE/L1C_T50RKR_A007608_20161206T030749/IMG_DATA/T50RKR_20161206T030112_B04.jp2"
          ],
          "return_code": 0,
          "run_time": 38.676433801651,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749.gml",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749.gml"
          ],
          "return_code": 0,
          "run_time": 0.05118393898010254,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/T50RKR_20161206T030112_B08.jp2",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08"
          ],
          "return_code": 0,
          "run_time": 0.35857558250427246,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/T50RKR_20161206T030112_B04.jp2",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04"
          ],
          "return_code": 0,
          "run_time": 0.15271401405334473,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "python3",
          "parameter": [
            "/usr/local/bin/grass",
            "-e",
            "-c",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08",
            "/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/sentinel2"
          ],
          "return_code": 0,
          "run_time": 0.36118006706237793,
          "stderr": [
            "Default locale settings are missing. GRASS running with C locale.WARNING: Searched for a web browser, but none found",
            "Creating new GRASS GIS location/mapset...",
            "Cleaning up temporary files...",
            ""
          ],
          "stdout": "Default locale not found, using UTF-8\n"
        },
        {
          "executable": "v.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749.gml",
            "output=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749",
            "--q"
          ],
          "return_code": 0,
          "run_time": 0.3551313877105713,
          "stderr": [
            "WARNING: Projection of dataset does not appear to match current location.",
            "",
            "Location PROJ_INFO is:",
            "name: WGS 84 / UTM zone 50N",
            "datum: wgs84",
            "ellps: wgs84",
            "proj: utm",
            "zone: 50",
            "no_defs: defined",
            "",
            "Dataset PROJ_INFO is:",
            "name: WGS 84",
            "datum: wgs84",
            "ellps: wgs84",
            "proj: ll",
            "no_defs: defined",
            "",
            "ERROR: proj",
            "",
            "WARNING: Width for column fid set to 255 (was not specified by OGR), some strings may be truncated!",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "v.timestamp",
          "parameter": [
            "map=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749",
            "date=06 dec 2016 03:07:49"
          ],
          "return_code": 0,
          "run_time": 0.050455570220947266,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/gdal_translate",
          "parameter": [
            "-projwin",
            "113.949663",
            "28.011816",
            "115.082607",
            "27.001706",
            "-of",
            "vrt",
            "-projwin_srs",
            "EPSG:4326",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08.vrt"
          ],
          "return_code": 0,
          "run_time": 0.05114293098449707,
          "stderr": [
            "Warning 1: Computed -srcwin 5 -225 10971 11419 falls partially outside raster extent. Going on however.",
            ""
          ],
          "stdout": "Input file size is 10980, 10980\n"
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08.vrt",
            "output=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08_uncropped",
            "--q"
          ],
          "return_code": 0,
          "run_time": 16.326167583465576,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "align=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08_uncropped",
            "vector=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749",
            "-g"
          ],
          "return_code": 0,
          "run_time": 0.10460591316223145,
          "stderr": [
            ""
          ],
          "stdout": "projection=1\nzone=50\nn=3100030\ns=2990100\nw=199960\ne=309790\nnsres=10\newres=10\nrows=10993\ncols=10983\ncells=120736119\n"
        },
        {
          "executable": "r.mask",
          "parameter": [
            "vector=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749"
          ],
          "return_code": 0,
          "run_time": 7.36047887802124,
          "stderr": [
            "Reading areas...",
            "0..100",
            "Writing raster map...",
            "0..3..6..9..12..15..18..21..24..27..30..33..36..39..42..45..48..51..54..57..60..63..66..69..72..75..78..81..84..87..90..93..96..99..100",
            "Reading areas...",
            "0..100",
            "Writing raster map...",
            "0..3..6..9..12..15..18..21..24..27..30..33..36..39..42..45..48..51..54..57..60..63..66..69..72..75..78..81..84..87..90..93..96..99..100",
            "All subsequent raster operations will be limited to the MASK area. Removing or renaming raster map named 'MASK' will restore raster operations to normal.",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.mapcalc",
          "parameter": [
            "expression=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08 = float(S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08_uncropped)"
          ],
          "return_code": 0,
          "run_time": 10.695591926574707,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.timestamp",
          "parameter": [
            "map=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08",
            "date=06 dec 2016 03:07:49"
          ],
          "return_code": 0,
          "run_time": 0.053069353103637695,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.remove",
          "parameter": [
            "type=raster",
            "name=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08_uncropped",
            "-f"
          ],
          "return_code": 0,
          "run_time": 0.050362348556518555,
          "stderr": [
            "Removing raster <S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08_uncropped>",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.mask",
          "parameter": [
            "-r"
          ],
          "return_code": 0,
          "run_time": 0.10059237480163574,
          "stderr": [
            "Raster MASK removed",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/gdal_translate",
          "parameter": [
            "-projwin",
            "113.949663",
            "28.011816",
            "115.082607",
            "27.001706",
            "-of",
            "vrt",
            "-projwin_srs",
            "EPSG:4326",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04.vrt"
          ],
          "return_code": 0,
          "run_time": 0.05096769332885742,
          "stderr": [
            "Warning 1: Computed -srcwin 5 -225 10971 11419 falls partially outside raster extent. Going on however.",
            ""
          ],
          "stdout": "Input file size is 10980, 10980\n"
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04.vrt",
            "output=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04_uncropped",
            "--q"
          ],
          "return_code": 0,
          "run_time": 16.76022958755493,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "align=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04_uncropped",
            "vector=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749",
            "-g"
          ],
          "return_code": 0,
          "run_time": 0.0505826473236084,
          "stderr": [
            ""
          ],
          "stdout": "projection=1\nzone=50\nn=3100030\ns=2990100\nw=199960\ne=309790\nnsres=10\newres=10\nrows=10993\ncols=10983\ncells=120736119\n"
        },
        {
          "executable": "r.mask",
          "parameter": [
            "vector=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749"
          ],
          "return_code": 0,
          "run_time": 6.779608249664307,
          "stderr": [
            "Reading areas...",
            "0..100",
            "Writing raster map...",
            "0..3..6..9..12..15..18..21..24..27..30..33..36..39..42..45..48..51..54..57..60..63..66..69..72..75..78..81..84..87..90..93..96..99..100",
            "Reading areas...",
            "0..100",
            "Writing raster map...",
            "0..3..6..9..12..15..18..21..24..27..30..33..36..39..42..45..48..51..54..57..60..63..66..69..72..75..78..81..84..87..90..93..96..99..100",
            "All subsequent raster operations will be limited to the MASK area. Removing or renaming raster map named 'MASK' will restore raster operations to normal.",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.mapcalc",
          "parameter": [
            "expression=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04 = float(S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04_uncropped)"
          ],
          "return_code": 0,
          "run_time": 10.141529321670532,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.timestamp",
          "parameter": [
            "map=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04",
            "date=06 dec 2016 03:07:49"
          ],
          "return_code": 0,
          "run_time": 0.05050253868103027,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.remove",
          "parameter": [
            "type=raster",
            "name=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04_uncropped",
            "-f"
          ],
          "return_code": 0,
          "run_time": 0.05098080635070801,
          "stderr": [
            "Removing raster <S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04_uncropped>",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.mask",
          "parameter": [
            "-r"
          ],
          "return_code": 0,
          "run_time": 0.10424232482910156,
          "stderr": [
            "Raster MASK removed",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.mapcalc",
          "parameter": [
            "expression=ndvi = (float(S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08) - float(S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04))/(float(S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08) + float(S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04))"
          ],
          "return_code": 0,
          "run_time": 20.28681755065918,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.colors",
          "parameter": [
            "color=ndvi",
            "map=ndvi"
          ],
          "return_code": 0,
          "run_time": 0.05031251907348633,
          "stderr": [
            "Color table for raster map <ndvi> set to 'ndvi'",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.univar",
          "parameter": [
            "map=ndvi",
            "output=/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/tmp7il3n0jk.univar",
            "-g"
          ],
          "return_code": 0,
          "run_time": 4.54892897605896,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "d.rast",
          "parameter": [
            "map=ndvi"
          ],
          "return_code": 0,
          "run_time": 2.0198700428009033,
          "stderr": [
            "0..3..6..9..12..15..18..21..24..27..30..33..36..39..42..45..48..51..54..57..60..63..66..69..72..75..78..81..84..87..90..93..96..99..100",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "d.legend",
          "parameter": [
            "raster=ndvi",
            "at=8,92,0,7",
            "-n"
          ],
          "return_code": 0,
          "run_time": 0.4614551067352295,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "d.barscale",
          "parameter": [
            "style=line",
            "at=20,4"
          ],
          "return_code": 0,
          "run_time": 0.416748046875,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "raster=ndvi",
            "-g"
          ],
          "return_code": 0,
          "run_time": 0.051720619201660156,
          "stderr": [
            ""
          ],
          "stdout": "projection=1\nzone=50\nn=3100030\ns=2990100\nw=199960\ne=309790\nnsres=10\newres=10\nrows=10993\ncols=10983\ncells=120736119\n"
        },
        {
          "executable": "r.out.gdal",
          "parameter": [
            "-fm",
            "input=ndvi",
            "format=GTiff",
            "createopt=COMPRESS=LZW",
            "output=/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/ndvi.tiff"
          ],
          "return_code": 0,
          "run_time": 12.550397157669067,
          "stderr": [
            "Checking GDAL data type and nodata value...",
            "2..5..8..11..14..17..20..23..26..29..32..35..38..41..44..47..50..53..56..59..62..65..68..71..74..77..80..83..86..89..92..95..98..100",
            "Using GDAL data type <Float32>",
            "Input raster map contains cells with NULL-value (no-data). The value -nan will be used to represent no-data values in the input map. You can specify a nodata value with the nodata option.",
            "Exporting raster data to GTiff format...",
            "ERROR 6: SetColorTable() only supported for Byte or UInt16 bands in TIFF format.",
            "2..5..8..11..14..17..20..23..26..29..32..35..38..41..44..47..50..53..56..59..62..65..68..71..74..77..80..83..86..89..92..95..98..100",
            "r.out.gdal complete. File </actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/ndvi.tiff> created.",
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        {
          "cells": 120736119,
          "coeff_var": 39.2111992829072,
          "max": 0.80298912525177,
          "mean": 0.345280366103636,
          "mean_of_abs": 0.347984182813063,
          "min": -0.96863466501236,
          "n": 120371030,
          "name": "ndvi",
          "null_cells": 365089,
          "range": 1.77162379026413,
          "stddev": 0.135388572437648,
          "sum": 41561753.3066718,
          "variance": 0.0183300655467043
        }
      ],
      "progress": {
        "num_of_steps": 33,
        "step": 32
      },
      "resource_id": "resource_id-6b849585-576f-40b5-a514-34a7cf1f97ce",
      "status": "finished",
      "time_delta": 207.813636302948,
      "timestamp": 1527683351.8002071,
      "urls": {
        "resources": [
          "http://localhost:8080/api/v3/resource/superadmin/resource_id-6b849585-576f-40b5-a514-34a7cf1f97ce/tmpsaeegg0q.png",
          "http://localhost:8080/api/v3/resource/superadmin/resource_id-6b849585-576f-40b5-a514-34a7cf1f97ce/ndvi.tiff"
        ],
        "status": "http://localhost:8080/api/v3/resources/superadmin/resource_id-6b849585-576f-40b5-a514-34a7cf1f97ce"
      },
      "user_id": "superadmin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Satellite Image Algorithms

## Query the Google Sentinel2 archives using time interval, lat/lon coordinates, scene id and cloud cover.

GET /sentinel2_query

Query the Google Sentinel2 archives using time interval, lat/lon coordinates, scene id and cloud cover. All scenes that are located within the time interval and that intersect the given latitude/longitude coordinates are returned as a list of scene names with associated time stamps. Minimum required user role: user.

scene_id: string
in query

The scene id also named product id of the Sentinel2A scenes that should be searched

start_time: string (dateTime)
in query

The start time of the search interval

end_time: string (dateTime)
in query

The end time of the search interval

lon: number (double)
in query

The longitude coordinate with which the scenes should intersect

lat: number (double)
in query

The latitude coordinate with which the scenes should intersect

cloud_covert: number (double)
in query

Cloud cover between 0 - 100

200 OK
SatelliteSceneList

A list of satellite scenes that fit the search

400 Bad Request
SimpleResponseModel

The error message if the search did not succeeded

##### Response Example (200 OK)

    [
      {
        "cloud_cover": "100.0",
        "east_lon": 117.334772,
        "north_lat": -73.8673822679,
        "scene_id": "S2A_MSIL1C_20170101T003802_N0204_R116_T50CMC_20170101T003759",
        "sensing_time": "2017-01-01T00:37:59.459000Z",
        "south_lat": -74.8755595194,
        "total_size": 608562784,
        "west_lon": 113.568673296
      },
      {
        "cloud_cover": "100.0",
        "east_lon": 117.355376908,
        "north_lat": -74.7623823271,
        "scene_id": "S2A_MSIL1C_20170101T003802_N0204_R116_T50CMB_20170101T003759",
        "sensing_time": "2017-01-01T00:37:59.459000Z",
        "south_lat": -75.7719656592,
        "total_size": 604326630,
        "west_lon": 113.35802037
      }
    ]

##### Response Example (400 Bad Request)

    {
      "status": "string",
      "message": "string"
    }

Satellite Image Algorithms

## Generate the download urls for a list of sentinel2A scenes and band numbers.

POST /sentinel2a_aws_query

Generate the download urls for a list of sentinel2A scenes and band numbers. Minimum required user role: user.

Sentinel2ASceneListModel

The list of Sentinel-2 scenes and the band names

##### Request Content-Types: application/json

##### Request Example

    {
      "bands": [
        "B04",
        "B08"
      ],
      "product_ids": [
        "S2A_MSIL1C_20170212T104141_N0204_R008_T31TGJ_20170212T104138",
        "S2A_MSIL1C_20170227T095021_N0204_R079_T34TBM_20170227T095613",
        "S2A_MSIL1C_20170202T104241_N0204_R008_T32UNE_20170202T104236"
      ]
    }

200 OK
Sentinel2ASceneList

The result of the Sentinel-2 time series import

400 Bad Request
SimpleResponseModel

The error message and a detailed log why Sentinel 2A scene download url creation did not succeeded

##### Response Example (200 OK)

    [
      {
        "product_id": "S2A_MSIL1C_20170202T090201_N0204_R007_T36TVT_20170202T090155",
        "tiles": [
          {
            "B04": {
              "file_name": "S2A_OPER_PRD_MSIL1C_PDMC_20151207T031157_R102_V20151207T003302_20151207T003302_tile_14_band_B04.jp2",
              "map_name": "S2A_OPER_PRD_MSIL1C_PDMC_20151207T031157_R102_V20151207T003302_20151207T003302_tile_14_band_B04",
              "public_url": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/57/V/XE/2015/12/7/0/B04.jp2"
            },
            "B08": {
              "file_name": "S2A_OPER_PRD_MSIL1C_PDMC_20151207T031157_R102_V20151207T003302_20151207T003302_tile_14_band_B08.jp2",
              "map_name": "S2A_OPER_PRD_MSIL1C_PDMC_20151207T031157_R102_V20151207T003302_20151207T003302_tile_14_band_B08",
              "public_url": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/57/V/XE/2015/12/7/0/B08.jp2"
            },
            "info": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/57/V/XE/2015/12/7/0/tileInfo.json",
            "metadata": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/57/V/XE/2015/12/7/0/metadata.xml",
            "preview": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/57/V/XE/2015/12/7/0/preview.jpg",
            "timestamp": "2015-12-07T00:33:02.634Z",
            "url": "http://sentinel-s2-l1c.s3-website.eu-central-1.amazonaws.com/#tiles/57/V/XE/2015/12/7/0/"
          }
        ]
      }
    ]

##### Response Example (400 Bad Request)

    {
      "status": "string",
      "message": "string"
    }

# Location Management

Location Management

## Get a list of all available locations

GET /locations

Get a list of all available locations that are located in the GRASS database and the user has access to. Minimum required user role: user.

200 OK
LocationListResponseModel

This response returns a list of location names

400 Bad Request
SimpleResponseModel

The error message

##### Response Example (200 OK)

    {
      "locations": [
        "nc_spm_08",
        "latlong_wgs84",
        "ECAD"
      ],
      "status": "success"
    }

##### Response Example (400 Bad Request)

    {
      "status": "string",
      "message": "string"
    }

Location Management

## Delete an existing location and everything inside from the user database.

DELETE /locations/{location_name}

Delete an existing location and everything inside from the user database. Minimum required user role: admin.

location_name: string
in path

The name of the location to be deleted

200 OK
SimpleResponseModel

Success message for location deletion

400 Bad Request
SimpleResponseModel

The error message

##### Response Example (200 OK)

    {
      "status": "string",
      "message": "string"
    }

##### Response Example (400 Bad Request)

    {
      "status": "string",
      "message": "string"
    }

Location Management

## Create a new location based on EPSG code in the user database.

POST /locations/{location_name}

Create a new location based on EPSG code in the user database. Minimum required user role: admin.

ProjectionInfoModel

The EPSG code

location_name: string
in path

The name of the location to be created

##### Request Content-Types: application/json

##### Request Example

    {
      "epsg": "4326"
    }

200 OK
ProcessingResponseModel

Create a new location based on EPSG code

400 Bad Request
ProcessingResponseModel

The error message

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

Location Management

## Get the location projection and current computational region of the PERMANENT mapset

GET /locations/{location_name}/info

Get the location projection and current computational region of the PERMANENT mapset. Minimum required user role: user.

location_name: string nc_spm_08
in path

The name of the location

200 OK
MapsetInfoResponseModel

The location projection and current computational region of the PERMANENT mapset

400 Bad Request
ProcessingResponseModel

The error message

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-02 10:53:20.254387",
      "accept_timestamp": 1525258400.2543857,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/api/v3/locations/ECAD/mapsets/PERMANENT/info",
        "request_url": "http://localhost/api/v3/locations/ECAD/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-02 10:53:20.392509",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 0,
          "run_time": 0.05018115043640137,
          "stderr": [
            ""
          ],
          "stdout": "..."
        },
        {
          "executable": "g.proj",
          "parameter": [
            "-fw"
          ],
          "return_code": 0,
          "run_time": 0.05016374588012695,
          "stderr": [
            ""
          ],
          "stdout": "..."
        }
      ],
      "process_results": {
        "projection": "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]\n",
        "region": {
          "b": 0,
          "cells": 1,
          "cells3": 1,
          "cols": 1,
          "cols3": 1,
          "depths": 1,
          "e": 1,
          "ewres": 1,
          "ewres3": 1,
          "n": 1,
          "nsres": 1,
          "nsres3": 1,
          "projection": 3,
          "rows": 1,
          "rows3": 1,
          "s": 0,
          "t": 1,
          "tbres": 1,
          "w": 0,
          "zone": 0
        }
      },
      "progress": {
        "num_of_steps": 2,
        "step": 2
      },
      "resource_id": "resource_id-2222cdb7-06f5-460d-a38f-5745a3c3b518",
      "status": "finished",
      "time_delta": 0.13819408416748047,
      "timestamp": 1525258400.392495,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-2222cdb7-06f5-460d-a38f-5745a3c3b518"
      },
      "user_id": "user"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

# Mapset Management

Mapset Management

## Get a list of all mapsets that are located in a specific location.

GET /locations/{location_name}/mapsets

Get a list of all mapsets that are located in a specific location. Minimum required user role: user.

location_name: string nc_spm_08
in path

The name of the location

200 OK
StringListProcessingResultResponseModel

This response returns a list of mapset names and the log of the process chain that was used to create the response.

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why listing of mapsets did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-02 12:02:20.746845",
      "accept_timestamp": 1525255340.746844,
      "api_info": {
        "endpoint": "listmapsetsresource",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets",
        "request_url": "http://localhost:5000/locations/nc_spm_08/mapsets"
      },
      "datetime": "2018-05-02 12:02:20.861017",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "flags": "l",
            "inputs": {
              "separator": "newline"
            },
            "module": "g.mapsets"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.mapsets",
          "parameter": [
            "separator=newline",
            "-l"
          ],
          "return_code": 0,
          "run_time": 0.0501406192779541,
          "stderr": [
            "Available mapsets:",
            ""
          ],
          "stdout": "PERMANENT\nSource_A\nSource_B\nTarget\nlandsat\nraster_test_mapset\nuser1\n"
        }
      ],
      "process_results": [
        "PERMANENT",
        "Source_A",
        "Source_B",
        "Target",
        "landsat",
        "raster_test_mapset",
        "user1"
      ],
      "progress": {
        "num_of_steps": 1,
        "step": 1
      },
      "resource_id": "resource_id-715530fe-53e2-4b2b-87b2-3777c90fec7c",
      "status": "finished",
      "time_delta": 0.11421895027160645,
      "timestamp": 1525255340.8610027,
      "urls": {
        "resources": [],
        "status": "http://localhost:5000/resources/user/resource_id-715530fe-53e2-4b2b-87b2-3777c90fec7c"
      },
      "user_id": "user"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Mapset Management

## Delete an existing mapset.

DELETE /locations/{location_name}/mapsets/{mapset_name}

Delete an existing mapset. Minimum required user role: admin.

location_name: string
in path

The name of the location

mapset_name: string
in path

The name of the mapset

200 OK
ProcessingResponseModel

Success message for mapset deletion

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed error log

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Mapset Management

## Create a new mapset in an existing location.

POST /locations/{location_name}/mapsets/{mapset_name}

Create a new mapset in an existing location. Minimum required user role: admin.

location_name: string
in path

The name of the location

mapset_name: string
in path

The name of the mapset

200 OK
ProcessingResponseModel

Success message for mapset creation

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed error log

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Mapset Management

## Get the current computational region of the mapset and the projection

GET /locations/{location_name}/mapsets/{mapset_name}/info

Get the current computational region of the mapset and the projection of the location as WKT string. Minimum required user role: user.

location_name: string nc_spm_08
in path

The name of the location

mapset_name: string PERMANENT
in path

The name of the mapset

200 OK
MapsetInfoResponseModel

The current computational region of the mapset and the projection of the location

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed error log

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-02 10:53:20.254387",
      "accept_timestamp": 1525258400.2543857,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/api/v3/locations/ECAD/mapsets/PERMANENT/info",
        "request_url": "http://localhost/api/v3/locations/ECAD/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-02 10:53:20.392509",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 0,
          "run_time": 0.05018115043640137,
          "stderr": [
            ""
          ],
          "stdout": "..."
        },
        {
          "executable": "g.proj",
          "parameter": [
            "-fw"
          ],
          "return_code": 0,
          "run_time": 0.05016374588012695,
          "stderr": [
            ""
          ],
          "stdout": "..."
        }
      ],
      "process_results": {
        "projection": "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]\n",
        "region": {
          "b": 0,
          "cells": 1,
          "cells3": 1,
          "cols": 1,
          "cols3": 1,
          "depths": 1,
          "e": 1,
          "ewres": 1,
          "ewres3": 1,
          "n": 1,
          "nsres": 1,
          "nsres3": 1,
          "projection": 3,
          "rows": 1,
          "rows3": 1,
          "s": 0,
          "t": 1,
          "tbres": 1,
          "w": 0,
          "zone": 0
        }
      },
      "progress": {
        "num_of_steps": 2,
        "step": 2
      },
      "resource_id": "resource_id-2222cdb7-06f5-460d-a38f-5745a3c3b518",
      "status": "finished",
      "time_delta": 0.13819408416748047,
      "timestamp": 1525258400.392495,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-2222cdb7-06f5-460d-a38f-5745a3c3b518"
      },
      "user_id": "user"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Mapset Management

## Delete a location/mapset lock.

DELETE /locations/{location_name}/mapsets/{mapset_name}/lock

Delete a location/mapset lock. A location/mapset lock can be deleted so that operation can be performed on it until it is locked. Minimum required user role: admin.

location_name: string nc_spm_08
in path

The name of the location

mapset_name: string PERMANENT
in path

The name of the mapset

200 OK
ProcessingResponseModel

Success message if the location/mapset was unlocked successfully

400 Bad Request
ProcessingResponseModel

The error message and a detailed error log

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

Mapset Management

## Create a location/mapset lock.

POST /locations/{location_name}/mapsets/{mapset_name}/lock

Create a location/mapset lock. A location/mapset lock can be created so that no operation can be performed on it until it is unlocked. Minimum required user role: admin.

location_name: string nc_spm_08
in path

The name of the location

mapset_name: string PERMANENT
in path

The name of the mapset

200 OK
ProcessingResponseModel

Success message if the location/mapset was locked successfully

400 Bad Request
ProcessingResponseModel

The error message and a detailed error log

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

Mapset Management

## Get the location/mapset lock status.

GET /locations/{location_name}/mapsets/{mapset_name}/lock

Get the location/mapset lock status. Minimum required user role: admin.

location_name: string nc_spm_08
in path

The name of the location

mapset_name: string PERMANENT
in path

The name of the mapset

200 OK
MapsetLockManagementResponseModel

Get the location/mapset lock status, either "True" or "None"

400 Bad Request
ProcessingResponseModel

The error message and a detailed error log

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-02 11:03:26.529673",
      "accept_timestamp": 1525259006.5296717,
      "api_info": {
        "endpoint": "mapsetlockmanagementresource",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANENT/lock",
        "request_url": "http://localhost:8080/locations/nc_spm_08/mapsets/PERMANENT/lock"
      },
      "datetime": "2018-05-02 11:03:26.586348",
      "http_code": 200,
      "message": "Mapset lock state: False",
      "process_chain_list": [],
      "process_log": [],
      "process_results": false,
      "progress": {
        "num_of_steps": 0,
        "step": 0
      },
      "resource_id": "resource_id-162101d9-2abc-417e-83ef-dc6f52ed7aaf",
      "status": "finished",
      "time_delta": 0.056743621826171875,
      "timestamp": 1525259006.5863316,
      "urls": {
        "resources": [],
        "status": "http://localhost:8080/resources/admin/resource_id-162101d9-2abc-417e-83ef-dc6f52ed7aaf"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

# Processing

Processing

## Execute a user defined process chain that creates a new mapset or

POST /locations/{location_name}/mapsets/{mapset_name}/processing

Execute a user defined process chain in an existing mapset of the persistent user database or in a new mapset that will be created by this request in the persistent user database.

The process chain is executed asynchronously. The provided status URL in the response must be polled to gain information about the processing progress and finishing status.

Note

    Space-time dataset processing can only be performed in a new mapset
    that is created by this resource call, since merging of temporal databases
    of different mapsets is not supported yet.

The mapset that is used for processing will be locked until the process chain execution finished (successfully or not), even if the mapset is be created by the request. Other requests on the locked mapset will abort with a mapset lock error.

The persistent user database will not be modified if the process chain does not run successfully. The processing is performed in an ephemeral database and then merged or copied into the persistent user database.

Note

    Make sure that the process chain definition identifies all raster, vector or
                      space time datasets correctly with name and mapset: name@mapset.

                      All required mapsets will be identified by analysing the input parameter
                      of all module descriptions in the provided process chain
                      and mounted into the ephemeral database that is used for processing.

ProcessChainModel

The process chain that should be executed

location_name: string nc_spm_08
in path

The location name

mapset_name: string
in path

The name of an existing mapset or a new mapset that should be created

##### Request Content-Types: application/json

##### Request Example

    {
      "list": [
        {
          "module": "g.region",
          "id": "g_region_1",
          "inputs": [
            {
              "import_descr": {
                "source": "https://storage.googleapis.com/graas-geodata/elev_ned_30m.tif",
                "type": "raster"
              },
              "param": "raster",
              "value": "elev_ned_30m_new"
            }
          ],
          "flags": "p"
        },
        {
          "module": "r.slope.aspect",
          "id": "r_slope_aspect_1",
          "inputs": [
            {
              "param": "elevation",
              "value": "elev_ned_30m_new"
            }
          ],
          "outputs": [
            {
              "export": {
                "format": "GTiff",
                "type": "raster"
              },
              "param": "slope",
              "value": "elev_ned_30m_new_slope"
            }
          ],
          "flags": "a"
        },
        {
          "module": "r.univar",
          "id": "r_univar_1",
          "inputs": [
            {
              "import_descr": {
                "source": "LT52170762005240COA00",
                "type": "landsat",
                "landsat_atcor": "dos1"
              },
              "param": "map",
              "value": "LT52170762005240COA00_dos1.1"
            }
          ],
          "stdout": {
            "id": "stats",
            "format": "kv",
            "delimiter": "="
          },
          "flags": "a"
        },
        {
          "module": "exporter",
          "id": "exporter_1",
          "outputs": [
            {
              "export": {
                "format": "GTiff",
                "type": "raster"
              },
              "param": "map",
              "value": "LT52170762005240COA00_dos1.1"
            }
          ]
        },
        {
          "id": "ascii_out",
          "module": "r.out.ascii",
          "inputs": [
            {
              "param": "input",
              "value": "elevation@PERMANENT"
            },
            {
              "param": "precision",
              "value": "0"
            }
          ],
          "stdout": {
            "id": "elev_1",
            "format": "table",
            "delimiter": " "
          },
          "flags": "h"
        },
        {
          "id": "ascii_export",
          "module": "r.out.ascii",
          "inputs": [
            {
              "param": "input",
              "value": "elevation@PERMANENT"
            }
          ],
          "outputs": [
            {
              "export": {
                "type": "file",
                "format": "TXT"
              },
              "param": "output",
              "value": "$file::out1"
            }
          ]
        },
        {
          "id": "raster_list",
          "module": "g.list",
          "inputs": [
            {
              "param": "type",
              "value": "raster"
            }
          ],
          "stdout": {
            "id": "raster",
            "format": "list",
            "delimiter": "\n"
          }
        },
        {
          "module": "r.what",
          "id": "r_what_1",
          "verbose": true,
          "flags": "nfic",
          "inputs": [
            {
              "param": "map",
              "value": "landuse96_28m@PERMANENT"
            },
            {
              "param": "coordinates",
              "value": "633614.08,224125.12,632972.36,225382.87"
            },
            {
              "param": "null_value",
              "value": "null"
            },
            {
              "param": "separator",
              "value": "pipe"
            }
          ],
          "stdout": {
            "id": "sample",
            "format": "table",
            "delimiter": "|"
          }
        }
      ],
      "webhooks": {
        "update": "http://business-logic.company.com/api/v3/actinia-update-webhook",
        "finished": "http://business-logic.company.com/api/v3/actinia-finished-webhook"
      },
      "version": "1"
    }

200 OK
ProcessingResponseModel

The result of the process chain execution

400 Bad Request
ProcessingResponseModel

The error message and a detailed log why process chain execution did not succeed

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

Processing

## Execute a user defined process chain that creates a new mapset or

POST /locations/{location_name}/mapsets/{mapset_name}/processing_async

Execute a user defined process chain in an existing mapset of the persistent user database or in a new mapset that will be created by this request in the persistent user database.

The process chain is executed asynchronously. The provided status URL in the response must be polled to gain information about the processing progress and finishing status.

Note

    Space-time dataset processing can only be performed in a new mapset
    that is created by this resource call, since merging of temporal databases
    of different mapsets is not supported yet.

The mapset that is used for processing will be locked until the process chain execution finished (successfully or not), even if the mapset is be created by the request. Other requests on the locked mapset will abort with a mapset lock error.

The persistent user database will not be modified if the process chain does not run successfully. The processing is performed in an ephemeral database and then merged or copied into the persistent user database.

Note

    Make sure that the process chain definition identifies all raster, vector or
                      space time datasets correctly with name and mapset: name@mapset.

                      All required mapsets will be identified by analysing the input parameter
                      of all module descriptions in the provided process chain
                      and mounted into the ephemeral database that is used for processing.

ProcessChainModel

The process chain that should be executed

location_name: string nc_spm_08
in path

The location name

mapset_name: string
in path

The name of an existing mapset or a new mapset that should be created

##### Request Content-Types: application/json

##### Request Example

    {
      "list": [
        {
          "module": "g.region",
          "id": "g_region_1",
          "inputs": [
            {
              "import_descr": {
                "source": "https://storage.googleapis.com/graas-geodata/elev_ned_30m.tif",
                "type": "raster"
              },
              "param": "raster",
              "value": "elev_ned_30m_new"
            }
          ],
          "flags": "p"
        },
        {
          "module": "r.slope.aspect",
          "id": "r_slope_aspect_1",
          "inputs": [
            {
              "param": "elevation",
              "value": "elev_ned_30m_new"
            }
          ],
          "outputs": [
            {
              "export": {
                "format": "GTiff",
                "type": "raster"
              },
              "param": "slope",
              "value": "elev_ned_30m_new_slope"
            }
          ],
          "flags": "a"
        },
        {
          "module": "r.univar",
          "id": "r_univar_1",
          "inputs": [
            {
              "import_descr": {
                "source": "LT52170762005240COA00",
                "type": "landsat",
                "landsat_atcor": "dos1"
              },
              "param": "map",
              "value": "LT52170762005240COA00_dos1.1"
            }
          ],
          "stdout": {
            "id": "stats",
            "format": "kv",
            "delimiter": "="
          },
          "flags": "a"
        },
        {
          "module": "exporter",
          "id": "exporter_1",
          "outputs": [
            {
              "export": {
                "format": "GTiff",
                "type": "raster"
              },
              "param": "map",
              "value": "LT52170762005240COA00_dos1.1"
            }
          ]
        },
        {
          "id": "ascii_out",
          "module": "r.out.ascii",
          "inputs": [
            {
              "param": "input",
              "value": "elevation@PERMANENT"
            },
            {
              "param": "precision",
              "value": "0"
            }
          ],
          "stdout": {
            "id": "elev_1",
            "format": "table",
            "delimiter": " "
          },
          "flags": "h"
        },
        {
          "id": "ascii_export",
          "module": "r.out.ascii",
          "inputs": [
            {
              "param": "input",
              "value": "elevation@PERMANENT"
            }
          ],
          "outputs": [
            {
              "export": {
                "type": "file",
                "format": "TXT"
              },
              "param": "output",
              "value": "$file::out1"
            }
          ]
        },
        {
          "id": "raster_list",
          "module": "g.list",
          "inputs": [
            {
              "param": "type",
              "value": "raster"
            }
          ],
          "stdout": {
            "id": "raster",
            "format": "list",
            "delimiter": "\n"
          }
        },
        {
          "module": "r.what",
          "id": "r_what_1",
          "verbose": true,
          "flags": "nfic",
          "inputs": [
            {
              "param": "map",
              "value": "landuse96_28m@PERMANENT"
            },
            {
              "param": "coordinates",
              "value": "633614.08,224125.12,632972.36,225382.87"
            },
            {
              "param": "null_value",
              "value": "null"
            },
            {
              "param": "separator",
              "value": "pipe"
            }
          ],
          "stdout": {
            "id": "sample",
            "format": "table",
            "delimiter": "|"
          }
        }
      ],
      "webhooks": {
        "update": "http://business-logic.company.com/api/v3/actinia-update-webhook",
        "finished": "http://business-logic.company.com/api/v3/actinia-finished-webhook"
      },
      "version": "1"
    }

200 OK
ProcessingResponseModel

The result of the process chain execution

400 Bad Request
ProcessingResponseModel

The error message and a detailed log why process chain execution did not succeed

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

Processing

## Validate a process chain asynchronously, check the provided sources

POST /locations/{location_name}/process_chain_validation_async

Validate a process chain, check the provided sources (links) and the mapsets. The list of processes that were checked by Actinia are returned in the JSON response.

ProcessChainModel

The process chain that should be validated

location_name: string nc_spm_08
in path

The location name that contains the data that should be used in the process chain

##### Request Content-Types: application/json

##### Request Example

    {
      "list": [
        {
          "module": "g.region",
          "id": "g_region_1",
          "inputs": [
            {
              "import_descr": {
                "source": "https://storage.googleapis.com/graas-geodata/elev_ned_30m.tif",
                "type": "raster"
              },
              "param": "raster",
              "value": "elev_ned_30m_new"
            }
          ],
          "flags": "p"
        },
        {
          "module": "r.slope.aspect",
          "id": "r_slope_aspect_1",
          "inputs": [
            {
              "param": "elevation",
              "value": "elev_ned_30m_new"
            }
          ],
          "outputs": [
            {
              "export": {
                "format": "GTiff",
                "type": "raster"
              },
              "param": "slope",
              "value": "elev_ned_30m_new_slope"
            }
          ],
          "flags": "a"
        },
        {
          "module": "r.univar",
          "id": "r_univar_1",
          "inputs": [
            {
              "import_descr": {
                "source": "LT52170762005240COA00",
                "type": "landsat",
                "landsat_atcor": "dos1"
              },
              "param": "map",
              "value": "LT52170762005240COA00_dos1.1"
            }
          ],
          "stdout": {
            "id": "stats",
            "format": "kv",
            "delimiter": "="
          },
          "flags": "a"
        },
        {
          "module": "exporter",
          "id": "exporter_1",
          "outputs": [
            {
              "export": {
                "format": "GTiff",
                "type": "raster"
              },
              "param": "map",
              "value": "LT52170762005240COA00_dos1.1"
            }
          ]
        },
        {
          "id": "ascii_out",
          "module": "r.out.ascii",
          "inputs": [
            {
              "param": "input",
              "value": "elevation@PERMANENT"
            },
            {
              "param": "precision",
              "value": "0"
            }
          ],
          "stdout": {
            "id": "elev_1",
            "format": "table",
            "delimiter": " "
          },
          "flags": "h"
        },
        {
          "id": "ascii_export",
          "module": "r.out.ascii",
          "inputs": [
            {
              "param": "input",
              "value": "elevation@PERMANENT"
            }
          ],
          "outputs": [
            {
              "export": {
                "type": "file",
                "format": "TXT"
              },
              "param": "output",
              "value": "$file::out1"
            }
          ]
        },
        {
          "id": "raster_list",
          "module": "g.list",
          "inputs": [
            {
              "param": "type",
              "value": "raster"
            }
          ],
          "stdout": {
            "id": "raster",
            "format": "list",
            "delimiter": "\n"
          }
        },
        {
          "module": "r.what",
          "id": "r_what_1",
          "verbose": true,
          "flags": "nfic",
          "inputs": [
            {
              "param": "map",
              "value": "landuse96_28m@PERMANENT"
            },
            {
              "param": "coordinates",
              "value": "633614.08,224125.12,632972.36,225382.87"
            },
            {
              "param": "null_value",
              "value": "null"
            },
            {
              "param": "separator",
              "value": "pipe"
            }
          ],
          "stdout": {
            "id": "sample",
            "format": "table",
            "delimiter": "|"
          }
        }
      ],
      "webhooks": {
        "update": "http://business-logic.company.com/api/v3/actinia-update-webhook",
        "finished": "http://business-logic.company.com/api/v3/actinia-finished-webhook"
      },
      "version": "1"
    }

200 OK
ProcessingResponseModel

The result of the process chain validation. A list of processes that will be executed by Actinia Core

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why process chain validation did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Processing

## Validate a process chain synchronously, check the provided sources

POST /locations/{location_name}/process_chain_validation_sync

Validate a process chain, check the provided sources (links) and the mapsets. The list of processes that were checked by Actinia are returned in the JSON response.

ProcessChainModel

The process chain that should be validated

location_name: string nc_spm_08
in path

The location name that contains the data that should be used in the process chain

##### Request Content-Types: application/json

##### Request Example

    {
      "list": [
        {
          "module": "g.region",
          "id": "g_region_1",
          "inputs": [
            {
              "import_descr": {
                "source": "https://storage.googleapis.com/graas-geodata/elev_ned_30m.tif",
                "type": "raster"
              },
              "param": "raster",
              "value": "elev_ned_30m_new"
            }
          ],
          "flags": "p"
        },
        {
          "module": "r.slope.aspect",
          "id": "r_slope_aspect_1",
          "inputs": [
            {
              "param": "elevation",
              "value": "elev_ned_30m_new"
            }
          ],
          "outputs": [
            {
              "export": {
                "format": "GTiff",
                "type": "raster"
              },
              "param": "slope",
              "value": "elev_ned_30m_new_slope"
            }
          ],
          "flags": "a"
        },
        {
          "module": "r.univar",
          "id": "r_univar_1",
          "inputs": [
            {
              "import_descr": {
                "source": "LT52170762005240COA00",
                "type": "landsat",
                "landsat_atcor": "dos1"
              },
              "param": "map",
              "value": "LT52170762005240COA00_dos1.1"
            }
          ],
          "stdout": {
            "id": "stats",
            "format": "kv",
            "delimiter": "="
          },
          "flags": "a"
        },
        {
          "module": "exporter",
          "id": "exporter_1",
          "outputs": [
            {
              "export": {
                "format": "GTiff",
                "type": "raster"
              },
              "param": "map",
              "value": "LT52170762005240COA00_dos1.1"
            }
          ]
        },
        {
          "id": "ascii_out",
          "module": "r.out.ascii",
          "inputs": [
            {
              "param": "input",
              "value": "elevation@PERMANENT"
            },
            {
              "param": "precision",
              "value": "0"
            }
          ],
          "stdout": {
            "id": "elev_1",
            "format": "table",
            "delimiter": " "
          },
          "flags": "h"
        },
        {
          "id": "ascii_export",
          "module": "r.out.ascii",
          "inputs": [
            {
              "param": "input",
              "value": "elevation@PERMANENT"
            }
          ],
          "outputs": [
            {
              "export": {
                "type": "file",
                "format": "TXT"
              },
              "param": "output",
              "value": "$file::out1"
            }
          ]
        },
        {
          "id": "raster_list",
          "module": "g.list",
          "inputs": [
            {
              "param": "type",
              "value": "raster"
            }
          ],
          "stdout": {
            "id": "raster",
            "format": "list",
            "delimiter": "\n"
          }
        },
        {
          "module": "r.what",
          "id": "r_what_1",
          "verbose": true,
          "flags": "nfic",
          "inputs": [
            {
              "param": "map",
              "value": "landuse96_28m@PERMANENT"
            },
            {
              "param": "coordinates",
              "value": "633614.08,224125.12,632972.36,225382.87"
            },
            {
              "param": "null_value",
              "value": "null"
            },
            {
              "param": "separator",
              "value": "pipe"
            }
          ],
          "stdout": {
            "id": "sample",
            "format": "table",
            "delimiter": "|"
          }
        }
      ],
      "webhooks": {
        "update": "http://business-logic.company.com/api/v3/actinia-update-webhook",
        "finished": "http://business-logic.company.com/api/v3/actinia-finished-webhook"
      },
      "version": "1"
    }

200 OK
ProcessingResponseModel

The result of the process chain validation. A list of processes that will be executed by Actinia Core

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why process chain validation did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Processing

## Execute a user defined process chain in an ephemeral location/mapset

POST /locations/{location_name}/processing_async_export

Execute a user defined process chain in an ephemeral database and provide the generated resources as downloadable files via URL's. Minimum required user role: user.

The process chain is executed asynchronously. The provided status URL in the response must be polled to gain information about the processing progress and finishing status.

Note

    Make sure that the process chain definition identifies all raster, vector or
                      space-time datasets correctly with name and mapset: name@mapset if you use
                      data from other mapsets in the specified location.

                      All required mapsets will be identified by analysing the input parameter
                      of all module descriptions in the provided process chain
                      and mounted read-only into the ephemeral database that is used for processing.

The persistent database will not be modified. The ephemeral database will be removed after processing. Use the URL's provided in the finished response to download the resource that were specified in the process chain for export.

ProcessChainModel

The process chain that should be executed

location_name: string nc_spm_08
in path

The location name that contains the data that should be processed

##### Request Content-Types: application/json

##### Request Example

    {
      "list": [
        {
          "module": "g.region",
          "id": "g_region_1",
          "inputs": [
            {
              "import_descr": {
                "source": "https://storage.googleapis.com/graas-geodata/elev_ned_30m.tif",
                "type": "raster"
              },
              "param": "raster",
              "value": "elev_ned_30m_new"
            }
          ],
          "flags": "p"
        },
        {
          "module": "r.slope.aspect",
          "id": "r_slope_aspect_1",
          "inputs": [
            {
              "param": "elevation",
              "value": "elev_ned_30m_new"
            }
          ],
          "outputs": [
            {
              "export": {
                "format": "GTiff",
                "type": "raster"
              },
              "param": "slope",
              "value": "elev_ned_30m_new_slope"
            }
          ],
          "flags": "a"
        },
        {
          "module": "r.univar",
          "id": "r_univar_1",
          "inputs": [
            {
              "import_descr": {
                "source": "LT52170762005240COA00",
                "type": "landsat",
                "landsat_atcor": "dos1"
              },
              "param": "map",
              "value": "LT52170762005240COA00_dos1.1"
            }
          ],
          "stdout": {
            "id": "stats",
            "format": "kv",
            "delimiter": "="
          },
          "flags": "a"
        },
        {
          "module": "exporter",
          "id": "exporter_1",
          "outputs": [
            {
              "export": {
                "format": "GTiff",
                "type": "raster"
              },
              "param": "map",
              "value": "LT52170762005240COA00_dos1.1"
            }
          ]
        },
        {
          "id": "ascii_out",
          "module": "r.out.ascii",
          "inputs": [
            {
              "param": "input",
              "value": "elevation@PERMANENT"
            },
            {
              "param": "precision",
              "value": "0"
            }
          ],
          "stdout": {
            "id": "elev_1",
            "format": "table",
            "delimiter": " "
          },
          "flags": "h"
        },
        {
          "id": "ascii_export",
          "module": "r.out.ascii",
          "inputs": [
            {
              "param": "input",
              "value": "elevation@PERMANENT"
            }
          ],
          "outputs": [
            {
              "export": {
                "type": "file",
                "format": "TXT"
              },
              "param": "output",
              "value": "$file::out1"
            }
          ]
        },
        {
          "id": "raster_list",
          "module": "g.list",
          "inputs": [
            {
              "param": "type",
              "value": "raster"
            }
          ],
          "stdout": {
            "id": "raster",
            "format": "list",
            "delimiter": "\n"
          }
        },
        {
          "module": "r.what",
          "id": "r_what_1",
          "verbose": true,
          "flags": "nfic",
          "inputs": [
            {
              "param": "map",
              "value": "landuse96_28m@PERMANENT"
            },
            {
              "param": "coordinates",
              "value": "633614.08,224125.12,632972.36,225382.87"
            },
            {
              "param": "null_value",
              "value": "null"
            },
            {
              "param": "separator",
              "value": "pipe"
            }
          ],
          "stdout": {
            "id": "sample",
            "format": "table",
            "delimiter": "|"
          }
        }
      ],
      "webhooks": {
        "update": "http://business-logic.company.com/api/v3/actinia-update-webhook",
        "finished": "http://business-logic.company.com/api/v3/actinia-finished-webhook"
      },
      "version": "1"
    }

200 OK
ProcessingResponseModel

The result of the process chain execution

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why process chain execution did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Processing

## Execute a user defined process chain in an ephemeral location/mapset

POST /locations/{location_name}/processing_async_export_gcs

Execute a user defined process chain in an ephemeral database and provide the generated resources as downloadable files via URL's. Minimum required user role: user.

The process chain is executed asynchronously. The provided status URL in the response must be polled to gain information about the processing progress and finishing status.

Note

    Make sure that the process chain definition identifies all raster, vector or
                      space-time datasets correctly with name and mapset: name@mapset if you use
                      data from other mapsets in the specified location.

                      All required mapsets will be identified by analysing the input parameter
                      of all module descriptions in the provided process chain
                      and mounted read-only into the ephemeral database that is used for processing.

The persistent database will not be modified. The ephemeral database will be removed after processing. Use the URL's provided in the finished response to download the resource that were specified in the process chain for export.

ProcessChainModel

The process chain that should be executed

location_name: string nc_spm_08
in path

The location name that contains the data that should be processed

##### Request Content-Types: application/json

##### Request Example

    {
      "list": [
        {
          "module": "g.region",
          "id": "g_region_1",
          "inputs": [
            {
              "import_descr": {
                "source": "https://storage.googleapis.com/graas-geodata/elev_ned_30m.tif",
                "type": "raster"
              },
              "param": "raster",
              "value": "elev_ned_30m_new"
            }
          ],
          "flags": "p"
        },
        {
          "module": "r.slope.aspect",
          "id": "r_slope_aspect_1",
          "inputs": [
            {
              "param": "elevation",
              "value": "elev_ned_30m_new"
            }
          ],
          "outputs": [
            {
              "export": {
                "format": "GTiff",
                "type": "raster"
              },
              "param": "slope",
              "value": "elev_ned_30m_new_slope"
            }
          ],
          "flags": "a"
        },
        {
          "module": "r.univar",
          "id": "r_univar_1",
          "inputs": [
            {
              "import_descr": {
                "source": "LT52170762005240COA00",
                "type": "landsat",
                "landsat_atcor": "dos1"
              },
              "param": "map",
              "value": "LT52170762005240COA00_dos1.1"
            }
          ],
          "stdout": {
            "id": "stats",
            "format": "kv",
            "delimiter": "="
          },
          "flags": "a"
        },
        {
          "module": "exporter",
          "id": "exporter_1",
          "outputs": [
            {
              "export": {
                "format": "GTiff",
                "type": "raster"
              },
              "param": "map",
              "value": "LT52170762005240COA00_dos1.1"
            }
          ]
        },
        {
          "id": "ascii_out",
          "module": "r.out.ascii",
          "inputs": [
            {
              "param": "input",
              "value": "elevation@PERMANENT"
            },
            {
              "param": "precision",
              "value": "0"
            }
          ],
          "stdout": {
            "id": "elev_1",
            "format": "table",
            "delimiter": " "
          },
          "flags": "h"
        },
        {
          "id": "ascii_export",
          "module": "r.out.ascii",
          "inputs": [
            {
              "param": "input",
              "value": "elevation@PERMANENT"
            }
          ],
          "outputs": [
            {
              "export": {
                "type": "file",
                "format": "TXT"
              },
              "param": "output",
              "value": "$file::out1"
            }
          ]
        },
        {
          "id": "raster_list",
          "module": "g.list",
          "inputs": [
            {
              "param": "type",
              "value": "raster"
            }
          ],
          "stdout": {
            "id": "raster",
            "format": "list",
            "delimiter": "\n"
          }
        },
        {
          "module": "r.what",
          "id": "r_what_1",
          "verbose": true,
          "flags": "nfic",
          "inputs": [
            {
              "param": "map",
              "value": "landuse96_28m@PERMANENT"
            },
            {
              "param": "coordinates",
              "value": "633614.08,224125.12,632972.36,225382.87"
            },
            {
              "param": "null_value",
              "value": "null"
            },
            {
              "param": "separator",
              "value": "pipe"
            }
          ],
          "stdout": {
            "id": "sample",
            "format": "table",
            "delimiter": "|"
          }
        }
      ],
      "webhooks": {
        "update": "http://business-logic.company.com/api/v3/actinia-update-webhook",
        "finished": "http://business-logic.company.com/api/v3/actinia-finished-webhook"
      },
      "version": "1"
    }

200 OK
ProcessingResponseModel

The result of the process chain execution

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why process chain execution did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Processing

## Execute a user defined process chain in an ephemeral location/mapset and

POST /locations/{location_name}/processing_async_export_s3

Execute a user defined process chain in an ephemeral database and provide the generated resources as downloadable files via URL's. Minimum required user role: user.

The process chain is executed asynchronously. The provided status URL in the response must be polled to gain information about the processing progress and finishing status.

Note

    Make sure that the process chain definition identifies all raster, vector or
                      space-time datasets correctly with name and mapset: name@mapset if you use
                      data from other mapsets in the specified location.

                      All required mapsets will be identified by analysing the input parameter
                      of all module descriptions in the provided process chain
                      and mounted read-only into the ephemeral database that is used for processing.

The persistent database will not be modified. The ephemeral database will be removed after processing. Use the URL's provided in the finished response to download the resource that were specified in the process chain for export.

ProcessChainModel

The process chain that should be executed

location_name: string nc_spm_08
in path

The location name that contains the data that should be processed

##### Request Content-Types: application/json

##### Request Example

    {
      "list": [
        {
          "module": "g.region",
          "id": "g_region_1",
          "inputs": [
            {
              "import_descr": {
                "source": "https://storage.googleapis.com/graas-geodata/elev_ned_30m.tif",
                "type": "raster"
              },
              "param": "raster",
              "value": "elev_ned_30m_new"
            }
          ],
          "flags": "p"
        },
        {
          "module": "r.slope.aspect",
          "id": "r_slope_aspect_1",
          "inputs": [
            {
              "param": "elevation",
              "value": "elev_ned_30m_new"
            }
          ],
          "outputs": [
            {
              "export": {
                "format": "GTiff",
                "type": "raster"
              },
              "param": "slope",
              "value": "elev_ned_30m_new_slope"
            }
          ],
          "flags": "a"
        },
        {
          "module": "r.univar",
          "id": "r_univar_1",
          "inputs": [
            {
              "import_descr": {
                "source": "LT52170762005240COA00",
                "type": "landsat",
                "landsat_atcor": "dos1"
              },
              "param": "map",
              "value": "LT52170762005240COA00_dos1.1"
            }
          ],
          "stdout": {
            "id": "stats",
            "format": "kv",
            "delimiter": "="
          },
          "flags": "a"
        },
        {
          "module": "exporter",
          "id": "exporter_1",
          "outputs": [
            {
              "export": {
                "format": "GTiff",
                "type": "raster"
              },
              "param": "map",
              "value": "LT52170762005240COA00_dos1.1"
            }
          ]
        },
        {
          "id": "ascii_out",
          "module": "r.out.ascii",
          "inputs": [
            {
              "param": "input",
              "value": "elevation@PERMANENT"
            },
            {
              "param": "precision",
              "value": "0"
            }
          ],
          "stdout": {
            "id": "elev_1",
            "format": "table",
            "delimiter": " "
          },
          "flags": "h"
        },
        {
          "id": "ascii_export",
          "module": "r.out.ascii",
          "inputs": [
            {
              "param": "input",
              "value": "elevation@PERMANENT"
            }
          ],
          "outputs": [
            {
              "export": {
                "type": "file",
                "format": "TXT"
              },
              "param": "output",
              "value": "$file::out1"
            }
          ]
        },
        {
          "id": "raster_list",
          "module": "g.list",
          "inputs": [
            {
              "param": "type",
              "value": "raster"
            }
          ],
          "stdout": {
            "id": "raster",
            "format": "list",
            "delimiter": "\n"
          }
        },
        {
          "module": "r.what",
          "id": "r_what_1",
          "verbose": true,
          "flags": "nfic",
          "inputs": [
            {
              "param": "map",
              "value": "landuse96_28m@PERMANENT"
            },
            {
              "param": "coordinates",
              "value": "633614.08,224125.12,632972.36,225382.87"
            },
            {
              "param": "null_value",
              "value": "null"
            },
            {
              "param": "separator",
              "value": "pipe"
            }
          ],
          "stdout": {
            "id": "sample",
            "format": "table",
            "delimiter": "|"
          }
        }
      ],
      "webhooks": {
        "update": "http://business-logic.company.com/api/v3/actinia-update-webhook",
        "finished": "http://business-logic.company.com/api/v3/actinia-finished-webhook"
      },
      "version": "1"
    }

200 OK
ProcessingResponseModel

The result of the process chain execution

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why process chain execution did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Processing

## Execute a user defined process chain in an ephemeral location/mapset

POST /locations/{location_name}/processing_export

Execute a user defined process chain in an ephemeral database and provide the generated resources as downloadable files via URL's. Minimum required user role: user.

The process chain is executed asynchronously. The provided status URL in the response must be polled to gain information about the processing progress and finishing status.

Note

    Make sure that the process chain definition identifies all raster, vector or
                      space-time datasets correctly with name and mapset: name@mapset if you use
                      data from other mapsets in the specified location.

                      All required mapsets will be identified by analysing the input parameter
                      of all module descriptions in the provided process chain
                      and mounted read-only into the ephemeral database that is used for processing.

The persistent database will not be modified. The ephemeral database will be removed after processing. Use the URL's provided in the finished response to download the resource that were specified in the process chain for export.

ProcessChainModel

The process chain that should be executed

location_name: string nc_spm_08
in path

The location name that contains the data that should be processed

##### Request Content-Types: application/json

##### Request Example

    {
      "list": [
        {
          "module": "g.region",
          "id": "g_region_1",
          "inputs": [
            {
              "import_descr": {
                "source": "https://storage.googleapis.com/graas-geodata/elev_ned_30m.tif",
                "type": "raster"
              },
              "param": "raster",
              "value": "elev_ned_30m_new"
            }
          ],
          "flags": "p"
        },
        {
          "module": "r.slope.aspect",
          "id": "r_slope_aspect_1",
          "inputs": [
            {
              "param": "elevation",
              "value": "elev_ned_30m_new"
            }
          ],
          "outputs": [
            {
              "export": {
                "format": "GTiff",
                "type": "raster"
              },
              "param": "slope",
              "value": "elev_ned_30m_new_slope"
            }
          ],
          "flags": "a"
        },
        {
          "module": "r.univar",
          "id": "r_univar_1",
          "inputs": [
            {
              "import_descr": {
                "source": "LT52170762005240COA00",
                "type": "landsat",
                "landsat_atcor": "dos1"
              },
              "param": "map",
              "value": "LT52170762005240COA00_dos1.1"
            }
          ],
          "stdout": {
            "id": "stats",
            "format": "kv",
            "delimiter": "="
          },
          "flags": "a"
        },
        {
          "module": "exporter",
          "id": "exporter_1",
          "outputs": [
            {
              "export": {
                "format": "GTiff",
                "type": "raster"
              },
              "param": "map",
              "value": "LT52170762005240COA00_dos1.1"
            }
          ]
        },
        {
          "id": "ascii_out",
          "module": "r.out.ascii",
          "inputs": [
            {
              "param": "input",
              "value": "elevation@PERMANENT"
            },
            {
              "param": "precision",
              "value": "0"
            }
          ],
          "stdout": {
            "id": "elev_1",
            "format": "table",
            "delimiter": " "
          },
          "flags": "h"
        },
        {
          "id": "ascii_export",
          "module": "r.out.ascii",
          "inputs": [
            {
              "param": "input",
              "value": "elevation@PERMANENT"
            }
          ],
          "outputs": [
            {
              "export": {
                "type": "file",
                "format": "TXT"
              },
              "param": "output",
              "value": "$file::out1"
            }
          ]
        },
        {
          "id": "raster_list",
          "module": "g.list",
          "inputs": [
            {
              "param": "type",
              "value": "raster"
            }
          ],
          "stdout": {
            "id": "raster",
            "format": "list",
            "delimiter": "\n"
          }
        },
        {
          "module": "r.what",
          "id": "r_what_1",
          "verbose": true,
          "flags": "nfic",
          "inputs": [
            {
              "param": "map",
              "value": "landuse96_28m@PERMANENT"
            },
            {
              "param": "coordinates",
              "value": "633614.08,224125.12,632972.36,225382.87"
            },
            {
              "param": "null_value",
              "value": "null"
            },
            {
              "param": "separator",
              "value": "pipe"
            }
          ],
          "stdout": {
            "id": "sample",
            "format": "table",
            "delimiter": "|"
          }
        }
      ],
      "webhooks": {
        "update": "http://business-logic.company.com/api/v3/actinia-update-webhook",
        "finished": "http://business-logic.company.com/api/v3/actinia-finished-webhook"
      },
      "version": "1"
    }

200 OK
ProcessingResponseModel

The result of the process chain execution

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why process chain execution did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

# Raster Management

Raster Management

## Delete a single raster map layer or a list of raster map layer names

DELETE /locations/{location_name}/mapsets/{mapset_name}/raster_layers

Delete a single raster map layer or a list of raster map layer names that are located in a specific location/mapset. Minimum required user role: user.

location_name: string
in path

The name of the location that should be accessed

mapset_name: string
in path

The name of the mapset from which the raster map layers should be deleted

pattern: string
in query

A parameter passed for g.remove to remove a list of raster map layers, to remove all eg.: http:// ?pattern="*"

200 OK
ProcessingResponseModel

This response returns the log of the process chain that was used to create the response.

400 Bad Request
ProcessingResponseModel

The error message and a detailed log why deletion of raster map layers did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

Raster Management

## Rename a single raster map layer or a list of raster map layers that

PUT /locations/{location_name}/mapsets/{mapset_name}/raster_layers

Rename a single raster map layer or a list of raster map layers that are located in a specific location/mapset. Minimum required user role: user.

A list of raster name tuples [(a, a_new),(b, b_new),(c, c_new), ...]

location_name: string
in path

The name of the location that should be accessed

mapset_name: string
in path

The name of the mapset from which the raster map layers should be renamed

##### Request Example

    "string"

200 OK
ProcessingResponseModel

This response returns the log of the process chain that was used to create the response.

400 Bad Request
ProcessingResponseModel

The error message and a detailed log why listing of raster map layers did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

Raster Management

## Get a list of raster map layer names that are located in a specific

GET /locations/{location_name}/mapsets/{mapset_name}/raster_layers

Get a list of raster map layer names that are located in a specific location/mapset. Minimum required user role: user.

location_name: string nc_spm_08
in path

The name of the location that should be accessed

mapset_name: string PERMANENT
in path

The name of the mapset from which the raster map layers should be listed

pattern: string
in query

A parameter passed to g.list for raster map layer selection, eg.: http:// ?pattern="*"

200 OK
StringListProcessingResultResponseModel

This response returns a list of raster map layers and the log of the process chain that was used to create the response.

400 Bad Request
ProcessingResponseModel

The error message and a detailed log why listing of raster map layers did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-02 12:02:20.746845",
      "accept_timestamp": 1525255340.746844,
      "api_info": {
        "endpoint": "listmapsetsresource",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets",
        "request_url": "http://localhost:5000/locations/nc_spm_08/mapsets"
      },
      "datetime": "2018-05-02 12:02:20.861017",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "flags": "l",
            "inputs": {
              "separator": "newline"
            },
            "module": "g.mapsets"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.mapsets",
          "parameter": [
            "separator=newline",
            "-l"
          ],
          "return_code": 0,
          "run_time": 0.0501406192779541,
          "stderr": [
            "Available mapsets:",
            ""
          ],
          "stdout": "PERMANENT\nSource_A\nSource_B\nTarget\nlandsat\nraster_test_mapset\nuser1\n"
        }
      ],
      "process_results": [
        "PERMANENT",
        "Source_A",
        "Source_B",
        "Target",
        "landsat",
        "raster_test_mapset",
        "user1"
      ],
      "progress": {
        "num_of_steps": 1,
        "step": 1
      },
      "resource_id": "resource_id-715530fe-53e2-4b2b-87b2-3777c90fec7c",
      "status": "finished",
      "time_delta": 0.11421895027160645,
      "timestamp": 1525255340.8610027,
      "urls": {
        "resources": [],
        "status": "http://localhost:5000/resources/user/resource_id-715530fe-53e2-4b2b-87b2-3777c90fec7c"
      },
      "user_id": "user"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

Raster Management

## Delete an existing raster map layer.

DELETE /locations/{location_name}/mapsets/{mapset_name}/raster_layers/{raster_name}

Delete an existing raster map layer. Minimum required user role: user.

location_name: string
in path

The location name

mapset_name: string
in path

The name of the mapset that contains the required raster map layer

raster_name: string
in path

The name of the raster map layer to be deleted

200 OK
ProcessingResponseModel

Successfuly delete a raster map layer

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why raster map layer deletion did not succeeded

##### Response Content-Types: application/json

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Raster Management

## Create a new raster layer using r.mapcalc expression in a specific

POST /locations/{location_name}/mapsets/{mapset_name}/raster_layers/{raster_name}

Create a new raster map layer based on a r.mapcalc expression in a user specific region. This method will fail if the map already exists. Minimum required user role: user.

RasterRegionCreationModel

Parameters to create raster map layer using r.mapcalc in a specific region.

location_name: string
in path

The location name

mapset_name: string
in path

The name of the mapset in which the raster map layer should be created

raster_name: string
in path

The name of the new raster map layer to be created

##### Request Content-Types: application/json

##### Request Example

    {
      "region": {
        "region": "string",
        "raster": "string",
        "align": "string",
        "zoom": "string",
        "vector": "string",
        "n": "number (double)",
        "s": "number (double)",
        "w": "number (double)",
        "e": "number (double)",
        "t": "number (double)",
        "b": "number (double)",
        "nsres": "number (double)",
        "res": "number (double)",
        "ewres": "number (double)",
        "res3": "number (double)",
        "tbres": "number (double)"
      },
      "expression": "string"
    }

200 OK
ProcessingResponseModel

Raster map layer creation information

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why raster map layer creation did not succeeded

##### Response Content-Types: application/json

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Raster Management

## Get information about an existing raster map layer.

GET /locations/{location_name}/mapsets/{mapset_name}/raster_layers/{raster_name}

Get information about an existing raster map layer. Minimum required user role: user.

location_name: string nc_spm_08
in path

The location name

mapset_name: string PERMANENT
in path

The name of the mapset that contains the required raster map layer

raster_name: string elevation
in path

The name of the raster map layer to get information about

200 OK
RasterInfoResponseModel

The raster map layer information

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why gathering raster map layer information did not succeeded

##### Response Content-Types: application/json

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-02 10:44:11.764375",
      "accept_timestamp": 1525257851.7643716,
      "api_info": {
        "endpoint": "rasterlayerresource",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/elevation",
        "request_url": "http://localhost:8080/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/elevation"
      },
      "datetime": "2018-05-02 10:44:11.897704",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "flags": "gre",
            "inputs": {
              "map": "elevation@PERMANENT"
            },
            "module": "r.info"
          }
        }
      ],
      "process_log": [
        {
          "executable": "r.info",
          "parameter": [
            "map=elevation@PERMANENT",
            "-gre"
          ],
          "return_code": 0,
          "run_time": 0.050168514251708984,
          "stderr": [
            ""
          ],
          "stdout": "..."
        }
      ],
      "process_results": {
        "cells": "2025000",
        "cols": "1500",
        "comments": "\"r.proj input=\"ned03arcsec\" location=\"northcarolina_latlong\" mapset=\"\\helena\" output=\"elev_ned10m\" method=\"cubic\" resolution=10\"",
        "creator": "\"helena\"",
        "database": "/actinia/workspace/temp_db/gisdbase_5f1a5262c8bf4d4789348ffa2406ec3e",
        "datatype": "FCELL",
        "date": "\"Tue Nov  7 01:09:51 2006\"",
        "description": "\"generated by r.proj\"",
        "east": "645000",
        "ewres": "10",
        "location": "nc_spm_08",
        "map": "elevation",
        "mapset": "PERMANENT",
        "max": "156.3299",
        "min": "55.57879",
        "ncats": "255",
        "north": "228500",
        "nsres": "10",
        "rows": "1350",
        "source1": "\"\"",
        "source2": "\"\"",
        "south": "215000",
        "timestamp": "\"none\"",
        "title": "\"South-West Wake county: Elevation NED 10m\"",
        "units": "\"none\"",
        "vdatum": "\"none\"",
        "west": "630000"
      },
      "progress": {
        "num_of_steps": 1,
        "step": 1
      },
      "resource_id": "resource_id-0a3d6b2b-0962-4d01-8993-7997f15d1595",
      "status": "finished",
      "time_delta": 0.13338971138000488,
      "timestamp": 1525257851.8976946,
      "urls": {
        "resources": [],
        "status": "http://localhost:8080/resources/user/resource_id-0a3d6b2b-0962-4d01-8993-7997f15d1595"
      },
      "user_id": "user"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Raster Management

## Set the color definition for an existing raster map layer.

POST /locations/{location_name}/mapsets/{mapset_name}/raster_layers/{raster_name}/colors

Set the color definition for an existing raster map layer. Minimum required user role: user.

RasterColorModel

The color definition.

location_name: string
in path

The location name

mapset_name: string
in path

The name of the mapset that contains the required raster map layer

raster_name: string
in path

The name of the raster map layer to set the color table

##### Request Content-Types: application/json

##### Request Example

    {
      "rules": [
        "1 0:0:0",
        "default 255:255:255"
      ],
      "color": "ndvi",
      "raster": "elevation@PERMANENT"
    }

200 OK
ProcessingResponseModel

Successfuly set the color table for a raster map layer

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed error log

##### Response Content-Types: application/json

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Raster Management

## Get the color definition of an existing raster map layer.

GET /locations/{location_name}/mapsets/{mapset_name}/raster_layers/{raster_name}/colors

Get the color definition of an existing raster map layer. Minimum required user role: user.

location_name: string
in path

The location name

mapset_name: string
in path

The name of the mapset that contains the required raster map layer

raster_name: string
in path

The name of the raster map layer to get the color table from

200 OK
StringListProcessingResultResponseModel

A list of color rules

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed error log

##### Response Content-Types: application/json

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-02 12:02:20.746845",
      "accept_timestamp": 1525255340.746844,
      "api_info": {
        "endpoint": "listmapsetsresource",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets",
        "request_url": "http://localhost:5000/locations/nc_spm_08/mapsets"
      },
      "datetime": "2018-05-02 12:02:20.861017",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "flags": "l",
            "inputs": {
              "separator": "newline"
            },
            "module": "g.mapsets"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.mapsets",
          "parameter": [
            "separator=newline",
            "-l"
          ],
          "return_code": 0,
          "run_time": 0.0501406192779541,
          "stderr": [
            "Available mapsets:",
            ""
          ],
          "stdout": "PERMANENT\nSource_A\nSource_B\nTarget\nlandsat\nraster_test_mapset\nuser1\n"
        }
      ],
      "process_results": [
        "PERMANENT",
        "Source_A",
        "Source_B",
        "Target",
        "landsat",
        "raster_test_mapset",
        "user1"
      ],
      "progress": {
        "num_of_steps": 1,
        "step": 1
      },
      "resource_id": "resource_id-715530fe-53e2-4b2b-87b2-3777c90fec7c",
      "status": "finished",
      "time_delta": 0.11421895027160645,
      "timestamp": 1525255340.8610027,
      "urls": {
        "resources": [],
        "status": "http://localhost:5000/resources/user/resource_id-715530fe-53e2-4b2b-87b2-3777c90fec7c"
      },
      "user_id": "user"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Raster Management

## Export an existing raster map layer as GeoTiff.

POST /locations/{location_name}/mapsets/{mapset_name}/raster_layers/{raster_name}/geotiff_async

Export an existing raster map layer as GTiff or COG (if COG driver available). The link to the exported raster map layer is located in the JSON response.The current region settings of the mapset are used to export the raster layer. Minimum required user role: user.

location_name: string nc_spm_08
in path

The location name

mapset_name: string PERMANENT
in path

The name of the mapset that contains the required raster map layer

raster_name: string elevation
in path

The name of the raster map layer to export

200 OK
ProcessingResponseModel

The response including the URL to the raster map layer GeoTiff file

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why gathering raster map layer information did not succeeded

##### Response Content-Types: application/json

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Raster Management

## Export an existing raster map layer as GeoTiff using the raster

POST /locations/{location_name}/mapsets/{mapset_name}/raster_layers/{raster_name}/geotiff_async_orig

Export an existing raster map layer as GTiff or COG (if COG driver available). The link to the exported raster map layer is located in the JSON response. Minimum required user role: user.

location_name: string nc_spm_08
in path

The location name

mapset_name: string PERMANENT
in path

The name of the mapset that contains the required raster map layer

raster_name: string elevation
in path

The name of the raster map layer to export

200 OK
ProcessingResponseModel

The response including the URL to the raster map layer GeoTiff file

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why gathering raster map layer information did not succeeded

##### Response Content-Types: application/json

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Raster Management

## Render the legend of a raster map layer as a PNG image.

GET /locations/{location_name}/mapsets/{mapset_name}/raster_layers/{raster_name}/legend

Render the legend of a raster map layer as a PNG image. Minimum required user role: user.

location_name: string nc_spm_08
in path

The location name

mapset_name: string PERMANENT
in path

The name of the mapset that contains the required raster map layer

raster_name: string elevation
in path

The name of the raster map layer of which the legend should be rendered

200 OK

The PNG image

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why legend rendering did not succeeded

##### Response Content-Types: image/png

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Raster Management

## Render a raster map layer as a PNG image.

GET /locations/{location_name}/mapsets/{mapset_name}/raster_layers/{raster_name}/render

Render a raster map layer as a PNG image. Minimum required user role: user.

location_name: string nc_spm_08
in path

The location name

mapset_name: string PERMANENT
in path

The name of the mapset that contains the required raster map layer

raster_name: string elevation
in path

The name of the raster map layer to render

n: number (double)
in query

Northern border

s: number (double)
in query

Southern border

e: number (double)
in query

Eastern border

w: number (double)
in query

Western border

width: number (integer) 800
in query

Image width in pixel, default is 800

height: number (integer) 600
in query

Image height in pixel, default is 600

200 OK

The PNG image

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why rendering did not succeeded

##### Response Content-Types: image/png

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Raster Management

## Render three raster map layer as composed RGB PNG image.

GET /locations/{location_name}/mapsets/{mapset_name}/render_rgb

Render three raster map layer as composed RGB PNG image. Minimum required user role: user.

location_name: string nc_spm_08
in path

The location name

mapset_name: string landsat
in path

The name of the mapset that contains the required raster map layer

red: string lsat5_1987_30
in query

The name of the raster map layer to render as color red

green: string lsat5_1987_20
in query

The name of the raster map layer to render as color green

blue: string lsat5_1987_10
in query

The name of the raster map layer to render as color blue

n: number (double)
in query

Northern border

s: number (double)
in query

Southern border

e: number (double)
in query

Eastern border

w: number (double)
in query

Western border

width: number (integer) 800
in query

Image width in pixel, default is 800

height: number (integer) 600
in query

Image height in pixel, default is 600

200 OK

The RGB composition PNG image

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why rendering did not succeeded

##### Response Content-Types: image/png

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Raster Management

## Render two raster layers as a composed shade PNG image

GET /locations/{location_name}/mapsets/{mapset_name}/render_shade

Render two raster layers as a composed shade PNG image. Minimum required user role: user.

location_name: string nc_spm_08
in path

The location name

mapset_name: string PERMANENT
in path

The name of the mapset that contains the required raster map layer

shade: string aspect
in query

The name of the raster map layer to be used for shading

color: string elevation
in query

The name of the raster map layer to be used for coloring

n: number (double)
in query

Northern border

s: number (double)
in query

Southern border

e: number (double)
in query

Eastern border

w: number (double)
in query

Western border

width: number (integer) 800
in query

Image width in pixel, default is 800

height: number (integer) 600
in query

Image height in pixel, default is 600

200 OK

The shade/color composition PNG image

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why rendering did not succeeded

##### Response Content-Types: image/png

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

# Raster Statistics

Raster Statistics

## Compute areal categorical statistics on a raster map layer based on an input polygon asynchronously

POST /locations/{location_name}/mapsets/{mapset_name}/raster_layers/{raster_name}/area_stats_async

Compute areal categorical statistics on a raster map layer based on an input polygon. The input polygon must be provided as GeoJSON content in the request body. A correct coordinate reference system must be present in the GeoJSON definition. For each category the size of the occupied area, the number of pixel of the area and the percentage of the area size in relation to all other categories inclusive NULL data are computed. Minimum required user role: user.

GeoJSON definition of the polygon to compute the statistics for.

location_name: string
in path

The location name

mapset_name: string
in path

The name of the mapset that contains the required raster map layer

raster_name: string
in path

The name of the raster map layer to compute the statistics from

##### Request Content-Types: application/json

##### Request Example

    "string"

200 OK
RasterAreaStatsResponseModel

The result of the areal raster statistical computation

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why raster statistic did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-04 22:02:42.503999",
      "accept_timestamp": 1525464162.5039973,
      "api_info": {
        "endpoint": "syncephemeralrasterareastatsresource",
        "method": "POST",
        "path": "/api/v3/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/landuse96_28m/area_stats_sync",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/landuse96_28m/area_stats_sync"
      },
      "datetime": "2018-05-04 22:02:43.014544",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "inputs": {
              "input": "/tmp/gisdbase_c9071ae8c7844743a40fc2f864911a69/.tmp/tmpfgs_4jur"
            },
            "module": "v.import",
            "outputs": {
              "output": {
                "name": "polygon"
              }
            },
            "superquiet": true
          }
        },
        {
          "2": {
            "flags": "p",
            "inputs": {
              "align": "landuse96_28m@PERMANENT",
              "vector": "polygon"
            },
            "module": "g.region"
          },
          "3": {
            "inputs": {
              "vector": "polygon"
            },
            "module": "r.mask",
            "superquiet": true
          },
          "4": {
            "flags": "acpl",
            "inputs": {
              "input": "landuse96_28m@PERMANENT",
              "separator": "|"
            },
            "module": "r.stats",
            "outputs": {
              "output": {
                "name": "/tmp/gisdbase_c9071ae8c7844743a40fc2f864911a69/.tmp/tmp00trsfwh"
              }
            },
            "superquiet": true
          }
        }
      ],
      "process_log": [
        {
          "executable": "v.import",
          "parameter": [
            "input=/tmp/gisdbase_c9071ae8c7844743a40fc2f864911a69/.tmp/tmpfgs_4jur",
            "output=polygon",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 0.15042471885681152,
          "stderr": [
            "WARNING: Width for column fid set to 255 (was not specified by OGR), some strings may be truncated!",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "vector=polygon",
            "align=landuse96_28m@PERMANENT",
            "-p"
          ],
          "return_code": 0,
          "run_time": 0.050189971923828125,
          "stderr": [
            ""
          ],
          "stdout": "projection: 99 (Lambert Conformal Conic)\nzone:       0\ndatum:      nad83\nellipsoid:  a=6378137 es=0.006694380022900787\nnorth:      228527.25\nsouth:      214989.75\nwest:       629980\neast:       645028\nnsres:      28.5\newres:      28.5\nrows:       475\ncols:       528\ncells:      250800\n"
        },
        {
          "executable": "r.mask",
          "parameter": [
            "vector=polygon",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 0.1504218578338623,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.stats",
          "parameter": [
            "separator=|",
            "input=landuse96_28m@PERMANENT",
            "output=/tmp/gisdbase_c9071ae8c7844743a40fc2f864911a69/.tmp/tmp00trsfwh",
            "-acpl",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 0.050148725509643555,
          "stderr": [
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        {
          "area": 812.25,
          "cat": "0",
          "cell_count": 1,
          "name": "not classified",
          "percent": 0
        },
        {
          "area": 28297165.5,
          "cat": "1",
          "cell_count": 34838,
          "name": "High Intensity Developed",
          "percent": 13.89
        },
        {
          "area": 30871185.75,
          "cat": "2",
          "cell_count": 38007,
          "name": "Low Intensity Developed",
          "percent": 15.16
        },
        {
          "area": 1727655.75,
          "cat": "3",
          "cell_count": 2127,
          "name": "Cultivated",
          "percent": 0.85
        },
        {
          "area": 20610843.75,
          "cat": "4",
          "cell_count": 25375,
          "name": "Managed Herbaceous Cover",
          "percent": 10.12
        },
        {
          "area": 24367.5,
          "cat": "6",
          "cell_count": 30,
          "name": "Riverine/Estuarine Herbaceous",
          "percent": 0.01
        },
        {
          "area": 13308716.25,
          "cat": "7",
          "cell_count": 16385,
          "name": "Evergreen Shrubland",
          "percent": 6.53
        },
        {
          "area": 256671,
          "cat": "8",
          "cell_count": 316,
          "name": "Deciduous Shrubland",
          "percent": 0.13
        },
        {
          "area": 36551.25,
          "cat": "9",
          "cell_count": 45,
          "name": "Mixed Shrubland",
          "percent": 0.02
        },
        {
          "area": 6394032,
          "cat": "10",
          "cell_count": 7872,
          "name": "Mixed Hardwoods",
          "percent": 3.14
        },
        {
          "area": 15972896.25,
          "cat": "11",
          "cell_count": 19665,
          "name": "Bottomland Hardwoods/Hardwood Swamps",
          "percent": 7.84
        },
        {
          "area": 52401496.5,
          "cat": "15",
          "cell_count": 64514,
          "name": "Southern Yellow Pine",
          "percent": 25.72
        },
        {
          "area": 27352518.75,
          "cat": "18",
          "cell_count": 33675,
          "name": "Mixed Hardwoods/Conifers",
          "percent": 13.43
        },
        {
          "area": 4289492.25,
          "cat": "20",
          "cell_count": 5281,
          "name": "Water Bodies",
          "percent": 2.11
        },
        {
          "area": 157576.5,
          "cat": "21",
          "cell_count": 194,
          "name": "Unconsolidated Sediment",
          "percent": 0.08
        },
        {
          "area": 2010318.75,
          "cat": "*",
          "cell_count": 2475,
          "name": "no data",
          "percent": 0.99
        }
      ],
      "progress": {
        "num_of_steps": 4,
        "step": 4
      },
      "resource_id": "resource_id-9757d66b-4986-4bc7-9b7d-7f985900fb20",
      "status": "finished",
      "time_delta": 0.5105781555175781,
      "timestamp": 1525464163.0145323,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-9757d66b-4986-4bc7-9b7d-7f985900fb20"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Raster Statistics

## Compute areal categorical statistics on a raster map layer based on an input polygon synchronously

POST /locations/{location_name}/mapsets/{mapset_name}/raster_layers/{raster_name}/area_stats_sync

Compute areal categorical statistics on a raster map layer based on an input polygon. The input polygon must be provided as GeoJSON content in the request body. A correct coordinate reference system must be present in the GeoJSON definition. For each category the size of the occupied area, the number of pixel of the area and the percentage of the area size in relation to all other categories inclusive NULL data are computed. Minimum required user role: user.

GeoJSON definition of the polygon to compute the statistics for.

location_name: string
in path

The location name

mapset_name: string
in path

The name of the mapset that contains the required raster map layer

raster_name: string
in path

The name of the raster map layer to compute the statistics from

##### Request Content-Types: application/json

##### Request Example

    "string"

200 OK
RasterAreaStatsResponseModel

The result of the areal raster statistical computation

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why raster statistic did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-04 22:02:42.503999",
      "accept_timestamp": 1525464162.5039973,
      "api_info": {
        "endpoint": "syncephemeralrasterareastatsresource",
        "method": "POST",
        "path": "/api/v3/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/landuse96_28m/area_stats_sync",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/landuse96_28m/area_stats_sync"
      },
      "datetime": "2018-05-04 22:02:43.014544",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "inputs": {
              "input": "/tmp/gisdbase_c9071ae8c7844743a40fc2f864911a69/.tmp/tmpfgs_4jur"
            },
            "module": "v.import",
            "outputs": {
              "output": {
                "name": "polygon"
              }
            },
            "superquiet": true
          }
        },
        {
          "2": {
            "flags": "p",
            "inputs": {
              "align": "landuse96_28m@PERMANENT",
              "vector": "polygon"
            },
            "module": "g.region"
          },
          "3": {
            "inputs": {
              "vector": "polygon"
            },
            "module": "r.mask",
            "superquiet": true
          },
          "4": {
            "flags": "acpl",
            "inputs": {
              "input": "landuse96_28m@PERMANENT",
              "separator": "|"
            },
            "module": "r.stats",
            "outputs": {
              "output": {
                "name": "/tmp/gisdbase_c9071ae8c7844743a40fc2f864911a69/.tmp/tmp00trsfwh"
              }
            },
            "superquiet": true
          }
        }
      ],
      "process_log": [
        {
          "executable": "v.import",
          "parameter": [
            "input=/tmp/gisdbase_c9071ae8c7844743a40fc2f864911a69/.tmp/tmpfgs_4jur",
            "output=polygon",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 0.15042471885681152,
          "stderr": [
            "WARNING: Width for column fid set to 255 (was not specified by OGR), some strings may be truncated!",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "vector=polygon",
            "align=landuse96_28m@PERMANENT",
            "-p"
          ],
          "return_code": 0,
          "run_time": 0.050189971923828125,
          "stderr": [
            ""
          ],
          "stdout": "projection: 99 (Lambert Conformal Conic)\nzone:       0\ndatum:      nad83\nellipsoid:  a=6378137 es=0.006694380022900787\nnorth:      228527.25\nsouth:      214989.75\nwest:       629980\neast:       645028\nnsres:      28.5\newres:      28.5\nrows:       475\ncols:       528\ncells:      250800\n"
        },
        {
          "executable": "r.mask",
          "parameter": [
            "vector=polygon",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 0.1504218578338623,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.stats",
          "parameter": [
            "separator=|",
            "input=landuse96_28m@PERMANENT",
            "output=/tmp/gisdbase_c9071ae8c7844743a40fc2f864911a69/.tmp/tmp00trsfwh",
            "-acpl",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 0.050148725509643555,
          "stderr": [
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        {
          "area": 812.25,
          "cat": "0",
          "cell_count": 1,
          "name": "not classified",
          "percent": 0
        },
        {
          "area": 28297165.5,
          "cat": "1",
          "cell_count": 34838,
          "name": "High Intensity Developed",
          "percent": 13.89
        },
        {
          "area": 30871185.75,
          "cat": "2",
          "cell_count": 38007,
          "name": "Low Intensity Developed",
          "percent": 15.16
        },
        {
          "area": 1727655.75,
          "cat": "3",
          "cell_count": 2127,
          "name": "Cultivated",
          "percent": 0.85
        },
        {
          "area": 20610843.75,
          "cat": "4",
          "cell_count": 25375,
          "name": "Managed Herbaceous Cover",
          "percent": 10.12
        },
        {
          "area": 24367.5,
          "cat": "6",
          "cell_count": 30,
          "name": "Riverine/Estuarine Herbaceous",
          "percent": 0.01
        },
        {
          "area": 13308716.25,
          "cat": "7",
          "cell_count": 16385,
          "name": "Evergreen Shrubland",
          "percent": 6.53
        },
        {
          "area": 256671,
          "cat": "8",
          "cell_count": 316,
          "name": "Deciduous Shrubland",
          "percent": 0.13
        },
        {
          "area": 36551.25,
          "cat": "9",
          "cell_count": 45,
          "name": "Mixed Shrubland",
          "percent": 0.02
        },
        {
          "area": 6394032,
          "cat": "10",
          "cell_count": 7872,
          "name": "Mixed Hardwoods",
          "percent": 3.14
        },
        {
          "area": 15972896.25,
          "cat": "11",
          "cell_count": 19665,
          "name": "Bottomland Hardwoods/Hardwood Swamps",
          "percent": 7.84
        },
        {
          "area": 52401496.5,
          "cat": "15",
          "cell_count": 64514,
          "name": "Southern Yellow Pine",
          "percent": 25.72
        },
        {
          "area": 27352518.75,
          "cat": "18",
          "cell_count": 33675,
          "name": "Mixed Hardwoods/Conifers",
          "percent": 13.43
        },
        {
          "area": 4289492.25,
          "cat": "20",
          "cell_count": 5281,
          "name": "Water Bodies",
          "percent": 2.11
        },
        {
          "area": 157576.5,
          "cat": "21",
          "cell_count": 194,
          "name": "Unconsolidated Sediment",
          "percent": 0.08
        },
        {
          "area": 2010318.75,
          "cat": "*",
          "cell_count": 2475,
          "name": "no data",
          "percent": 0.99
        }
      ],
      "progress": {
        "num_of_steps": 4,
        "step": 4
      },
      "resource_id": "resource_id-9757d66b-4986-4bc7-9b7d-7f985900fb20",
      "status": "finished",
      "time_delta": 0.5105781555175781,
      "timestamp": 1525464163.0145323,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-9757d66b-4986-4bc7-9b7d-7f985900fb20"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Raster Statistics

## Compute areal univariate statistics on a raster map layer based on an input polygon asynchronously.

POST /locations/{location_name}/mapsets/{mapset_name}/raster_layers/{raster_name}/area_stats_univar_async

Compute areal univariate statistics on a raster map layer based on an input polygon. The input polygon must be provided as GeoJSON content in the request body. A correct coordinate reference system must be present in the GeoJSON definition. Minimum required user role: user.

GeoJSON definition of the polygon to compute the statistics for.

location_name: string
in path

The location name

mapset_name: string
in path

The name of the mapset that contains the required raster map layer

raster_name: string
in path

The name of the raster map layer to compute the statistics from

##### Request Content-Types: application/json

##### Request Example

    "string"

200 OK
RasterAreaUnivarStatsResponseModel

The result of the areal raster statistical computation

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why raster statistic did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-04 22:07:14.108967",
      "accept_timestamp": 1525464434.1089664,
      "api_info": {
        "endpoint": "syncephemeralrasterareastatsunivarresource",
        "method": "POST",
        "path": "/api/v3/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/towns/area_stats_univar_sync",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/towns/area_stats_univar_sync"
      },
      "datetime": "2018-05-04 22:07:15.793146",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "inputs": {
              "input": "/tmp/gisdbase_d36dd6841e7446f3b8d3b1bf5adcf527/.tmp/tmpdqtuzub4"
            },
            "module": "v.import",
            "outputs": {
              "output": {
                "name": "polygon"
              }
            },
            "superquiet": true
          }
        },
        {
          "2": {
            "flags": "p",
            "inputs": {
              "vector": "polygon"
            },
            "module": "g.region"
          },
          "3": {
            "inputs": {
              "column_prefix": "raster",
              "map": "polygon",
              "method": "number,minimum,maximum,range,average,median,stddev,sum,variance,coeff_var",
              "raster": "towns@PERMANENT"
            },
            "module": "v.rast.stats",
            "superquiet": true
          },
          "4": {
            "inputs": {
              "map": "polygon"
            },
            "module": "v.db.select",
            "outputs": {
              "file": {
                "name": "/tmp/gisdbase_d36dd6841e7446f3b8d3b1bf5adcf527/.tmp/tmpztw47z19"
              }
            }
          }
        }
      ],
      "process_log": [
        {
          "executable": "v.import",
          "parameter": [
            "input=/tmp/gisdbase_d36dd6841e7446f3b8d3b1bf5adcf527/.tmp/tmpdqtuzub4",
            "output=polygon",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 0.1504511833190918,
          "stderr": [
            "WARNING: Width for column fid set to 255 (was not specified by OGR), some strings may be truncated!",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "vector=polygon",
            "-p"
          ],
          "return_code": 0,
          "run_time": 0.050218820571899414,
          "stderr": [
            ""
          ],
          "stdout": "projection: 99 (Lambert Conformal Conic)\nzone:       0\ndatum:      nad83\nellipsoid:  a=6378137 es=0.006694380022900787\nnorth:      228500\nsouth:      215000\nwest:       630000\neast:       645000\nnsres:      500\newres:      500\nrows:       27\ncols:       30\ncells:      810\n"
        },
        {
          "executable": "v.rast.stats",
          "parameter": [
            "raster=towns@PERMANENT",
            "map=polygon",
            "column_prefix=raster",
            "method=number,minimum,maximum,range,average,median,stddev,sum,variance,coeff_var",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 1.354858636856079,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "v.db.select",
          "parameter": [
            "map=polygon",
            "file=/tmp/gisdbase_d36dd6841e7446f3b8d3b1bf5adcf527/.tmp/tmpztw47z19"
          ],
          "return_code": 0,
          "run_time": 0.05019712448120117,
          "stderr": [
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        {
          "cat": "1",
          "fid": "swwake_10m.0",
          "raster_average": 4.27381481481481,
          "raster_coeff_var": 36.2154244540989,
          "raster_maximum": 6,
          "raster_median": 5,
          "raster_minimum": 1,
          "raster_number": 2025000,
          "raster_range": 5,
          "raster_stddev": 1.54778017556735,
          "raster_sum": 8654475,
          "raster_variance": 2.39562347187929
        }
      ],
      "progress": {
        "num_of_steps": 4,
        "step": 4
      },
      "resource_id": "resource_id-ed2c2fdb-9963-4f71-acd0-1fbdff93f590",
      "status": "finished",
      "time_delta": 1.6842188835144043,
      "timestamp": 1525464435.7931283,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-ed2c2fdb-9963-4f71-acd0-1fbdff93f590"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Raster Statistics

## Compute areal univariate statistics on a raster map layer based on an input polygon synchronously.

POST /locations/{location_name}/mapsets/{mapset_name}/raster_layers/{raster_name}/area_stats_univar_sync

Compute areal univariate statistics on a raster map layer based on an input polygon. The input polygon must be provided as GeoJSON content in the request body. A correct coordinate reference system must be present in the GeoJSON definition. Minimum required user role: user.

GeoJSON definition of the polygon to compute the statistics for.

location_name: string
in path

The location name

mapset_name: string
in path

The name of the mapset that contains the required raster map layer

raster_name: string
in path

The name of the raster map layer to compute the statistics from

##### Request Content-Types: application/json

##### Request Example

    "string"

200 OK
RasterAreaUnivarStatsResponseModel

The result of the areal raster statistical computation

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why raster statistic did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-04 22:07:14.108967",
      "accept_timestamp": 1525464434.1089664,
      "api_info": {
        "endpoint": "syncephemeralrasterareastatsunivarresource",
        "method": "POST",
        "path": "/api/v3/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/towns/area_stats_univar_sync",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/towns/area_stats_univar_sync"
      },
      "datetime": "2018-05-04 22:07:15.793146",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "inputs": {
              "input": "/tmp/gisdbase_d36dd6841e7446f3b8d3b1bf5adcf527/.tmp/tmpdqtuzub4"
            },
            "module": "v.import",
            "outputs": {
              "output": {
                "name": "polygon"
              }
            },
            "superquiet": true
          }
        },
        {
          "2": {
            "flags": "p",
            "inputs": {
              "vector": "polygon"
            },
            "module": "g.region"
          },
          "3": {
            "inputs": {
              "column_prefix": "raster",
              "map": "polygon",
              "method": "number,minimum,maximum,range,average,median,stddev,sum,variance,coeff_var",
              "raster": "towns@PERMANENT"
            },
            "module": "v.rast.stats",
            "superquiet": true
          },
          "4": {
            "inputs": {
              "map": "polygon"
            },
            "module": "v.db.select",
            "outputs": {
              "file": {
                "name": "/tmp/gisdbase_d36dd6841e7446f3b8d3b1bf5adcf527/.tmp/tmpztw47z19"
              }
            }
          }
        }
      ],
      "process_log": [
        {
          "executable": "v.import",
          "parameter": [
            "input=/tmp/gisdbase_d36dd6841e7446f3b8d3b1bf5adcf527/.tmp/tmpdqtuzub4",
            "output=polygon",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 0.1504511833190918,
          "stderr": [
            "WARNING: Width for column fid set to 255 (was not specified by OGR), some strings may be truncated!",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "vector=polygon",
            "-p"
          ],
          "return_code": 0,
          "run_time": 0.050218820571899414,
          "stderr": [
            ""
          ],
          "stdout": "projection: 99 (Lambert Conformal Conic)\nzone:       0\ndatum:      nad83\nellipsoid:  a=6378137 es=0.006694380022900787\nnorth:      228500\nsouth:      215000\nwest:       630000\neast:       645000\nnsres:      500\newres:      500\nrows:       27\ncols:       30\ncells:      810\n"
        },
        {
          "executable": "v.rast.stats",
          "parameter": [
            "raster=towns@PERMANENT",
            "map=polygon",
            "column_prefix=raster",
            "method=number,minimum,maximum,range,average,median,stddev,sum,variance,coeff_var",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 1.354858636856079,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "v.db.select",
          "parameter": [
            "map=polygon",
            "file=/tmp/gisdbase_d36dd6841e7446f3b8d3b1bf5adcf527/.tmp/tmpztw47z19"
          ],
          "return_code": 0,
          "run_time": 0.05019712448120117,
          "stderr": [
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        {
          "cat": "1",
          "fid": "swwake_10m.0",
          "raster_average": 4.27381481481481,
          "raster_coeff_var": 36.2154244540989,
          "raster_maximum": 6,
          "raster_median": 5,
          "raster_minimum": 1,
          "raster_number": 2025000,
          "raster_range": 5,
          "raster_stddev": 1.54778017556735,
          "raster_sum": 8654475,
          "raster_variance": 2.39562347187929
        }
      ],
      "progress": {
        "num_of_steps": 4,
        "step": 4
      },
      "resource_id": "resource_id-ed2c2fdb-9963-4f71-acd0-1fbdff93f590",
      "status": "finished",
      "time_delta": 1.6842188835144043,
      "timestamp": 1525464435.7931283,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-ed2c2fdb-9963-4f71-acd0-1fbdff93f590"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

# STRDS Management

STRDS Management

## Get a list of all STRDS that are located in a specific location/mapset.

GET /locations/{location_name}/mapsets/{mapset_name}/strds

Get a list of all STRDS that are located in a specific location/mapset. Minimum required user role: user.

location_name: string
in path

The name of the location

mapset_name: string
in path

The name of the mapset

where: string
in query

A where statement to select user specific STRDS

200 OK
StringListProcessingResultResponseModel

This response returns a list of STRDS names and timestamps and the log of the process chain that was used to create the response.

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why listing of STRDS did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-02 12:02:20.746845",
      "accept_timestamp": 1525255340.746844,
      "api_info": {
        "endpoint": "listmapsetsresource",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets",
        "request_url": "http://localhost:5000/locations/nc_spm_08/mapsets"
      },
      "datetime": "2018-05-02 12:02:20.861017",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "flags": "l",
            "inputs": {
              "separator": "newline"
            },
            "module": "g.mapsets"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.mapsets",
          "parameter": [
            "separator=newline",
            "-l"
          ],
          "return_code": 0,
          "run_time": 0.0501406192779541,
          "stderr": [
            "Available mapsets:",
            ""
          ],
          "stdout": "PERMANENT\nSource_A\nSource_B\nTarget\nlandsat\nraster_test_mapset\nuser1\n"
        }
      ],
      "process_results": [
        "PERMANENT",
        "Source_A",
        "Source_B",
        "Target",
        "landsat",
        "raster_test_mapset",
        "user1"
      ],
      "progress": {
        "num_of_steps": 1,
        "step": 1
      },
      "resource_id": "resource_id-715530fe-53e2-4b2b-87b2-3777c90fec7c",
      "status": "finished",
      "time_delta": 0.11421895027160645,
      "timestamp": 1525255340.8610027,
      "urls": {
        "resources": [],
        "status": "http://localhost:5000/resources/user/resource_id-715530fe-53e2-4b2b-87b2-3777c90fec7c"
      },
      "user_id": "user"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

STRDS Management

## Delete a STRDS that is located in a specific location/mapset.

DELETE /locations/{location_name}/mapsets/{mapset_name}/strds/{strds_name}

Delete a STRDS that is located in a specific location/mapset. Minimum required user role: user.

location_name: string
in path

The name of the location

mapset_name: string
in path

The name of the mapset

strds_name: string
in path

The name of the STRDS

recursive: boolean
in query

Delete the STRDS and all registered raster map layer recursively

200 OK
ProcessingResponseModel

Deletion of the STRDS was successfully finished.

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why deletion of the STRDS did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

STRDS Management

## Create a new STRDS in a specific location/mapset.

POST /locations/{location_name}/mapsets/{mapset_name}/strds/{strds_name}

Create a new STRDS in a specific location/mapset. Minimum required user role: user.

STRDSCreationModel

Temporal type, title and description of the STRDS

location_name: string
in path

The name of the location

mapset_name: string
in path

The name of the mapset

strds_name: string
in path

The name of the STRDS

##### Request Example

    {
      "title": "Monthly mean temperature from 1950-2010 for Germany",
      "description": "Monthly mean temperature from 1950-2010 for Germany in degree celsius",
      "ttype": "absolute"
    }

200 OK
ProcessingResponseModel

Creation of the STRDS was successfully finished.

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why creation of the STRDS did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

STRDS Management

## Get information about a STRDS that is located in a specific location/mapset.

GET /locations/{location_name}/mapsets/{mapset_name}/strds/{strds_name}

Get information about a STRDS that is located in a specific location/mapset. Minimum required user role: user.

location_name: string
in path

The name of the location

mapset_name: string
in path

The name of the mapset

strds_name: string
in path

The name of the STRDS

200 OK
STRDSInfoResponseModel

This response returns information about a specific STRDS and the log of the process chain that was used to create the response.

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why information gathering of the STRDS did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-02 10:36:43.119861",
      "accept_timestamp": 1525257403.119857,
      "api_info": {
        "endpoint": "strdsmanagementresource",
        "method": "GET",
        "path": "/locations/ECAD/mapsets/PERMANENT/strds/precipitation_1950_2013_yearly_mm",
        "request_url": "http://localhost:8080/locations/ECAD/mapsets/PERMANENT/strds/precipitation_1950_2013_yearly_mm"
      },
      "datetime": "2018-05-02 10:36:43.677867",
      "http_code": 200,
      "message": "Information gathering for STRDS <precipitation_1950_2013_yearly_mm> successful",
      "process_chain_list": [
        {
          "1": {
            "flags": "g",
            "inputs": {
              "input": "precipitation_1950_2013_yearly_mm",
              "type": "strds"
            },
            "module": "t.info"
          }
        }
      ],
      "process_log": [
        {
          "executable": "t.info",
          "parameter": [
            "type=strds",
            "input=precipitation_1950_2013_yearly_mm",
            "-g"
          ],
          "return_code": 0,
          "run_time": 0.4944636821746826,
          "stderr": [
            ""
          ],
          "stdout": "..."
        }
      ],
      "process_results": {
        "aggregation_type": "None",
        "band_reference": "None",
        "bottom": "0.0",
        "creation_time": "2017-12-29 15:58:40.020820",
        "creator": "soeren",
        "east": "75.5",
        "end_time": "2013-01-01 00:00:00",
        "ewres_max": "0.25",
        "ewres_min": "0.25",
        "granularity": "1 year",
        "id": "precipitation_1950_2013_yearly_mm@PERMANENT",
        "map_time": "interval",
        "mapset": "PERMANENT",
        "max_max": "5132.0",
        "max_min": "2498.3",
        "min_max": "35.2",
        "min_min": "0.0",
        "modification_time": "2017-12-29 15:58:44.396206",
        "name": "precipitation_1950_2013_yearly_mm",
        "north": "75.5",
        "nsres_max": "0.25",
        "nsres_min": "0.25",
        "number_of_bands": "None",
        "number_of_maps": "63",
        "raster_register": "raster_map_register_87e1edbaf2da4a27a03da04fa9f3a7f1",
        "semantic_type": "mean",
        "south": "25.25",
        "start_time": "1950-01-01 00:00:00",
        "temporal_type": "absolute",
        "top": "0.0",
        "west": "-40.5"
      },
      "progress": {
        "num_of_steps": 1,
        "step": 1
      },
      "resource_id": "resource_id-1f178974-684d-417e-a3f4-878708b7382b",
      "status": "finished",
      "time_delta": 0.5580840110778809,
      "timestamp": 1525257403.6778474,
      "urls": {
        "resources": [],
        "status": "http://localhost:8080/resources/user/resource_id-1f178974-684d-417e-a3f4-878708b7382b"
      },
      "user_id": "user"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

STRDS Management

## Unregister raster map layers from a STRDS located in a specific

DELETE /locations/{location_name}/mapsets/{mapset_name}/strds/{strds_name}/raster_layers

Unregister raster map layers from a STRDS located in a specific location/mapset. Minimum required user role: user.

The list of raster map layers to be unregistered from the STRDS

string
location_name: string
in path

The name of the location

mapset_name: string
in path

The name of the mapset

strds_name: string
in path

The name of the STRDS

##### Request Example

    [
      "string"
    ]

200 OK
ProcessingResponseModel

Unregistration of raster map layers was successfully finished.

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why raster map layer unregistration did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

STRDS Management

## Register raster map layers in a STRDS located in a specific

PUT /locations/{location_name}/mapsets/{mapset_name}/strds/{strds_name}/raster_layers

Register raster map layers in a STRDS located in a specific location/mapset. Minimum required user role: user.

RasterListRegisterModel

The list of raster map layers to be registered in the STRDS

location_name: string
in path

The name of the location

mapset_name: string
in path

The name of the mapset

strds_name: string
in path

The name of the STRDS

##### Request Example

    [
      {
        "end_time": "2013-06-01 00:00:00",
        "start_time": "2013-05-01 00:00:00",
        "name": "precipitation_monthly_mm_760"
      },
      {
        "end_time": "2013-07-01 00:00:00",
        "start_time": "2013-06-01 00:00:00",
        "name": "precipitation_monthly_mm_761"
      }
    ]

200 OK
ProcessingResponseModel

Registration of raster map layers was successfully finished.

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why raster map layer registration did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

STRDS Management

## Get a list of all raster map layers that are registered in a STRDS

GET /locations/{location_name}/mapsets/{mapset_name}/strds/{strds_name}/raster_layers

Get a list of all raster map layers that are registered in a STRDS that is located in a specific location/mapset. Minimum required user role: user.

location_name: string
in path

The name of the location

mapset_name: string
in path

The name of the mapset

strds_name: string
in path

The name of the STRDS

where: string
in query

A where statement to select user specific raster map layers from the STRDS

200 OK
STRDSRasterListResponseModel

This response returns a list of all raster map layers that are registered a specific STRDS and the log of the process chain that was used to create the response.

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why creating a list of raster map layers from STRDS did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-06 21:28:18.583050",
      "accept_timestamp": 1525634898.5830483,
      "api_info": {
        "endpoint": "strdsrastermanagement",
        "method": "GET",
        "path": "/locations/ECAD/mapsets/PERMANENT/strds/precipitation_1950_2013_yearly_mm/raster_layers",
        "request_url": "http://localhost:5000/locations/ECAD/mapsets/PERMANENT/strds/precipitation_1950_2013_yearly_mm/raster_layers?where=start_time>'2010-01-01'"
      },
      "datetime": "2018-05-06 21:28:19.187395",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "flags": "u",
            "inputs": {
              "columns": "id,start_time,end_time,north,south,east,west,min,max,rows,cols",
              "input": "precipitation_1950_2013_yearly_mm@PERMANENT",
              "separator": "|",
              "where": "start_time>'2010-01-01'"
            },
            "module": "t.rast.list",
            "outputs": {
              "output": {
                "name": "/home/soeren/actinia/workspace/temp_db/gisdbase_1b72938d2ef54c199f6627b8720f21e1/.tmp/tmptps71vn7"
              }
            }
          }
        }
      ],
      "process_log": [
        {
          "executable": "t.rast.list",
          "parameter": [
            "input=precipitation_1950_2013_yearly_mm@PERMANENT",
            "where=start_time>'2010-01-01'",
            "separator=|",
            "columns=id,start_time,end_time,north,south,east,west,min,max,rows,cols",
            "output=/home/soeren/actinia/workspace/temp_db/gisdbase_1b72938d2ef54c199f6627b8720f21e1/.tmp/tmptps71vn7",
            "-u"
          ],
          "return_code": 0,
          "run_time": 0.5023984909057617,
          "stderr": [
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        {
          "cols": "201",
          "east": "75.5",
          "end_time": "2011-01-01 00:00:00",
          "id": "precipitation_yearly_mm_60@PERMANENT",
          "max": "2899.6",
          "min": "22.5",
          "north": "75.5",
          "rows": "464",
          "south": "25.25",
          "start_time": "2010-01-01 00:00:00",
          "west": "-40.5"
        },
        {
          "cols": "201",
          "east": "75.5",
          "end_time": "2012-01-01 00:00:00",
          "id": "precipitation_yearly_mm_61@PERMANENT",
          "max": "4226.0",
          "min": "10.0",
          "north": "75.5",
          "rows": "464",
          "south": "25.25",
          "start_time": "2011-01-01 00:00:00",
          "west": "-40.5"
        },
        {
          "cols": "201",
          "east": "75.5",
          "end_time": "2013-01-01 00:00:00",
          "id": "precipitation_yearly_mm_62@PERMANENT",
          "max": "3442.6",
          "min": "0.0",
          "north": "75.5",
          "rows": "464",
          "south": "25.25",
          "start_time": "2012-01-01 00:00:00",
          "west": "-40.5"
        }
      ],
      "progress": {
        "num_of_steps": 1,
        "step": 1
      },
      "resource_id": "resource_id-729ace44-6245-43c7-a875-d2059c1a1549",
      "status": "finished",
      "time_delta": 0.6043989658355713,
      "timestamp": 1525634899.1873734,
      "urls": {
        "resources": [],
        "status": "http://localhost:5000/resources/user/resource_id-729ace44-6245-43c7-a875-d2059c1a1549"
      },
      "user_id": "user"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

STRDS Management

## Render the raster map layers of a specific STRDS as a single image.

GET /locations/{location_name}/mapsets/{mapset_name}/strds/{strds_name}/render

Render the raster map layers of a specific STRDS as a single image. All raster layers are rendered in order of their time stamps, from past to future. Minimum required user role: user.

location_name: string nc_spm_08
in path

The location name

mapset_name: string PERMANENT
in path

The name of the mapset that contains the required raster map layer

strds_name: string elevation
in path

The name of the STRDS to render

n: number (double)
in query

Northern border

s: number (double)
in query

Southern border

e: number (double)
in query

Eastern border

w: number (double)
in query

Western border

width: number (integer) 800
in query

Image width in pixel, default is 800

height: number (integer) 600
in query

Image height in pixel, default is 600

start_time: string
in query

Raster map layers that have equal or greater the start time will be rendered

end_time: string
in query

Raster map layers that have equal or lower the end time will be rendered

200 OK

The PNG image

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why rendering did not succeeded

##### Response Content-Types: image/png

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

# STRDS Sampling

STRDS Sampling

## Sample a strds by point coordinates, asynchronous call

POST /locations/{location_name}/mapsets/{mapset_name}/strds/{strds_name}/sampling_async

Spatial sampling of a space-time raster dataset with vector points. The vector points must be in the same coordinate reference system as the location that contains the space-time raster dataset. The result of the sampling is located in the resource responseJSON docuement after the processing was finished, as a list of timestamped values for each vector point. Minimum required user role: user.

PointListModel

The sampling point array [[id, x, y],[id, x, y]] and an optional where statement. The coordinates of the sampling points must be the same as of the location that contains the space-time raster dataset.

location_name: string
in path

The location name

mapset_name: string
in path

The name of the mapset that contains the required raster map layer

strds_name: string
in path

The name of the space-time raster dataset that should be sampledS

##### Request Content-Types: application/json

##### Request Example

    {
      "where": "start_time > '2001-01-01'",
      "points": [
        [
          "a",
          "1",
          "1"
        ],
        [
          "b",
          "2",
          "2"
        ],
        [
          "c",
          "3",
          "3"
        ]
      ]
    }

200 OK
STRDSSampleResponseModel

The result of the strds sampling

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why strds sampling did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-11 10:09:47.237997",
      "accept_timestamp": 1494490187.237996,
      "api_info": {
        "endpoint": "syncephemeralstrdssamplingresource",
        "method": "POST",
        "path": "/locations/ECAD/mapsets/PERMANENT/strds/temperature_mean_1950_2013_yearly_celsius/sampling_sync",
        "request_url": "http://localhost/locations/ECAD/mapsets/PERMANENT/strds/temperature_mean_1950_2013_yearly_celsius/sampling_sync"
      },
      "datetime": "2017-05-11 10:09:48.376521",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_log": [
        {
          "executable": "v.in.ascii",
          "parameter": [
            "column=id text, x double precision, y double precision",
            "input=/tmp/tmpOlouNV",
            "y=3",
            "x=2",
            "format=point",
            "output=input_points"
          ],
          "return_code": 0,
          "stderr": [
            "Scanning input for column types...",
            "Number of columns: 3",
            "Number of rows: 3",
            "Importing points...",
            "0..33..66..100",
            "Populating table...",
            "Building topology for vector map <input_points@mapset_ffb3520846104a42878271a83117a93f>...",
            "Registering primitives...",
            "",
            "3 primitives registered",
            "3 vertices registered",
            "Building areas...",
            "0..33..66..100",
            "0 areas built",
            "0 isles built",
            "Attaching islands...",
            "Attaching centroids...",
            "33..66..100",
            "Number of nodes: 0",
            "Number of primitives: 3",
            "Number of points: 3",
            "Number of lines: 0",
            "Number of boundaries: 0",
            "Number of centroids: 0",
            "Number of areas: 0",
            "Number of isles: 0",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "t.rast.sample",
          "parameter": [
            "column=id",
            "points=input_points",
            "where=start_time >'2010-01-01'",
            "strds=temperature_mean_1950_2013_yearly_celsius@PERMANENT",
            "output=/tmp/tmpgU9ITw",
            "-rn",
            "--o",
            "--v"
          ],
          "return_code": 0,
          "stderr": [
            "Sample map <temperature_mean_yearly_celsius_60> number  1 out of 3",
            "Sample map <temperature_mean_yearly_celsius_61> number  2 out of 3",
            "Sample map <temperature_mean_yearly_celsius_62> number  3 out of 3",
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        [
          "start_time",
          "end_time",
          "a",
          "b",
          "c"
        ],
        [
          "2010-01-01 00:00:00",
          "2011-01-01 00:00:00",
          "16.5293979135",
          "7.50153213006",
          "7.67950249616"
        ],
        [
          "2011-01-01 00:00:00",
          "2012-01-01 00:00:00",
          "17.3258000667",
          "9.35620500512",
          "8.37665885817"
        ],
        [
          "2012-01-01 00:00:00",
          "2013-01-01 00:00:00",
          "16.5512179273",
          "8.8377879125",
          "7.87268863552"
        ]
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 2
      },
      "resource_id": "resource_id-96554e63-3dad-4a16-8652-e7c6be734057",
      "status": "finished",
      "timestamp": 1494490188.376519,
      "urls": {
        "resources": [],
        "status": "http://localhost/status/admin/resource_id-96554e63-3dad-4a16-8652-e7c6be734057"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

STRDS Sampling

## Sample a strds by point coordinates, asynchronous call

POST /locations/{location_name}/mapsets/{mapset_name}/strds/{strds_name}/sampling_async_geojson

Spatial sampling of a space-time raster dataset (STRDS) with vector points. The vector points must be provided as GeoJSON vector point format that includes correct coordinate system specification. The result of the sampling is located in the resource responseJSON document after the processing was finished, as a list of timestamped values for each vector point. Minimum required user role: user.

location_name: string ECAD
in path

The location name

mapset_name: string PERMANENT
in path

The name of the mapset that contains the required raster map layer

strds_name: string temperature_mean_1950_2013_yearly_celsius
in path

The name of the space-time raster dataset that should be sampled

##### Request Content-Types: application/json

##### Request Example

200 OK
STRDSSampleGeoJSONResponseModel

The result of the strds sampling

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why strds sampling did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-09-04 19:41:41.456341",
      "accept_timestamp": 1504546901.456339,
      "api_info": {
        "endpoint": "syncephemeralstrdssamplinggeojsonresource",
        "method": "POST",
        "path": "/api/v3/locations/ECAD/mapsets/PERMANENT/strds/temperature_mean_1950_2013_yearly_celsius/sampling_sync_geojson",
        "request_url": "http://localhost/api/v3/locations/ECAD/mapsets/PERMANENT/strds/temperature_mean_1950_2013_yearly_celsius/sampling_sync_geojson"
      },
      "datetime": "2017-09-04 19:41:42.622865",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_log": [
        {
          "executable": "v.import",
          "parameter": [
            "input=/tmp/gisdbase_3e090bec1a744be78743668a573cbf5b/.tmp/tmpk6Le10",
            "output=input_points"
          ],
          "return_code": 0,
          "run_time": 0.25067806243896484,
          "stderr": [
            "Check if OGR layer <OGRGeoJSON> contains polygons...",
            "0..33..66..100",
            "Column name <cat> renamed to <cat_>",
            "Importing 3 features (OGR layer <OGRGeoJSON>)...",
            "0..33..66..100",
            "-----------------------------------------------------",
            "Building topology for vector map <input_points@mapset_3e090bec1a744be78743668a573cbf5b>...",
            "Registering primitives...",
            "",
            "3 primitives registered",
            "3 vertices registered",
            "Building areas...",
            "0..33..66..100",
            "0 areas built",
            "0 isles built",
            "Attaching islands...",
            "Attaching centroids...",
            "33..66..100",
            "Number of nodes: 0",
            "Number of primitives: 3",
            "Number of points: 3",
            "Number of lines: 0",
            "Number of boundaries: 0",
            "Number of centroids: 0",
            "Number of areas: 0",
            "Number of isles: 0",
            "Input </tmp/gisdbase_3e090bec1a744be78743668a573cbf5b/.tmp/tmpk6Le10> successfully imported without reprojection",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "t.rast.sample",
          "parameter": [
            "points=input_points",
            "strds=temperature_mean_1950_2013_yearly_celsius@PERMANENT",
            "output=/tmp/gisdbase_3e090bec1a744be78743668a573cbf5b/.tmp/tmp3ilr28",
            "-rn",
            "--o",
            "--v"
          ],
          "return_code": 0,
          "run_time": 0.5513670444488525,
          "stderr": [
            "Default TGIS driver / database set to:",
            "driver: sqlite",
            "database: $GISDBASE/$LOCATION_NAME/$MAPSET/tgis/sqlite.db",
            "WARNING: Temporal database connection defined as:",
            "/tmp/gisdbase_3e090bec1a744be78743668a573cbf5b/ECAD/mapset_3e090bec1a744be78743668a573cbf5b/tgis/sqlite.db",
            "But database file does not exist.",
            "Creating temporal database: /tmp/gisdbase_3e090bec1a744be78743668a573cbf5b/ECAD/mapset_3e090bec1a744be78743668a573cbf5b/tgis/sqlite.db",
            "Sample map <temperature_mean_yearly_celsius_0> number  1 out of 63",
            "Sample map <temperature_mean_yearly_celsius_62> number  63 out of 63",
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        [
          "start_time",
          "end_time",
          "1",
          "2",
          "3"
        ],
        [
          "1950-01-01 00:00:00",
          "1951-01-01 00:00:00",
          "16.4121888761",
          "8.17818215566",
          "7.17657693292"
        ],
        [
          "2012-01-01 00:00:00",
          "2013-01-01 00:00:00",
          "16.5512179273",
          "8.8377879125",
          "7.87268863552"
        ]
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 2
      },
      "resource_id": "resource_id-6ee74d8c-1ef6-4b01-a098-2bc04bcb75c8",
      "status": "finished",
      "time_delta": 1.1665611267089844,
      "timestamp": 1504546902.622857,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/status/admin/resource_id-6ee74d8c-1ef6-4b01-a098-2bc04bcb75c8"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

STRDS Sampling

## Sample a strds by point coordinates, synchronous call

POST /locations/{location_name}/mapsets/{mapset_name}/strds/{strds_name}/sampling_sync

Spatial sampling of a space-time raster dataset with vector points. The vector points must be in the same coordinate reference system as the location that contains the space-time raster dataset. The result of the sampling is located in the resource responseJSON docuement after the processing was finished, as a list of timestamped values for each vector point. Minimum required user role: user.

PointListModel

The sampling point array [[id, x, y],[id, x, y]] and an optional where statement. The coordinates of the sampling points must be the same as of the location that contains the space-time raster dataset.

location_name: string
in path

The location name

mapset_name: string
in path

The name of the mapset that contains the required raster map layer

strds_name: string
in path

The name of the space-time raster dataset that should be sampledS

##### Request Content-Types: application/json

##### Request Example

    {
      "where": "start_time > '2001-01-01'",
      "points": [
        [
          "a",
          "1",
          "1"
        ],
        [
          "b",
          "2",
          "2"
        ],
        [
          "c",
          "3",
          "3"
        ]
      ]
    }

200 OK
STRDSSampleResponseModel

The result of the strds sampling

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why strds sampling did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-11 10:09:47.237997",
      "accept_timestamp": 1494490187.237996,
      "api_info": {
        "endpoint": "syncephemeralstrdssamplingresource",
        "method": "POST",
        "path": "/locations/ECAD/mapsets/PERMANENT/strds/temperature_mean_1950_2013_yearly_celsius/sampling_sync",
        "request_url": "http://localhost/locations/ECAD/mapsets/PERMANENT/strds/temperature_mean_1950_2013_yearly_celsius/sampling_sync"
      },
      "datetime": "2017-05-11 10:09:48.376521",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_log": [
        {
          "executable": "v.in.ascii",
          "parameter": [
            "column=id text, x double precision, y double precision",
            "input=/tmp/tmpOlouNV",
            "y=3",
            "x=2",
            "format=point",
            "output=input_points"
          ],
          "return_code": 0,
          "stderr": [
            "Scanning input for column types...",
            "Number of columns: 3",
            "Number of rows: 3",
            "Importing points...",
            "0..33..66..100",
            "Populating table...",
            "Building topology for vector map <input_points@mapset_ffb3520846104a42878271a83117a93f>...",
            "Registering primitives...",
            "",
            "3 primitives registered",
            "3 vertices registered",
            "Building areas...",
            "0..33..66..100",
            "0 areas built",
            "0 isles built",
            "Attaching islands...",
            "Attaching centroids...",
            "33..66..100",
            "Number of nodes: 0",
            "Number of primitives: 3",
            "Number of points: 3",
            "Number of lines: 0",
            "Number of boundaries: 0",
            "Number of centroids: 0",
            "Number of areas: 0",
            "Number of isles: 0",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "t.rast.sample",
          "parameter": [
            "column=id",
            "points=input_points",
            "where=start_time >'2010-01-01'",
            "strds=temperature_mean_1950_2013_yearly_celsius@PERMANENT",
            "output=/tmp/tmpgU9ITw",
            "-rn",
            "--o",
            "--v"
          ],
          "return_code": 0,
          "stderr": [
            "Sample map <temperature_mean_yearly_celsius_60> number  1 out of 3",
            "Sample map <temperature_mean_yearly_celsius_61> number  2 out of 3",
            "Sample map <temperature_mean_yearly_celsius_62> number  3 out of 3",
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        [
          "start_time",
          "end_time",
          "a",
          "b",
          "c"
        ],
        [
          "2010-01-01 00:00:00",
          "2011-01-01 00:00:00",
          "16.5293979135",
          "7.50153213006",
          "7.67950249616"
        ],
        [
          "2011-01-01 00:00:00",
          "2012-01-01 00:00:00",
          "17.3258000667",
          "9.35620500512",
          "8.37665885817"
        ],
        [
          "2012-01-01 00:00:00",
          "2013-01-01 00:00:00",
          "16.5512179273",
          "8.8377879125",
          "7.87268863552"
        ]
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 2
      },
      "resource_id": "resource_id-96554e63-3dad-4a16-8652-e7c6be734057",
      "status": "finished",
      "timestamp": 1494490188.376519,
      "urls": {
        "resources": [],
        "status": "http://localhost/status/admin/resource_id-96554e63-3dad-4a16-8652-e7c6be734057"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

STRDS Sampling

## Sample a strds by point coordinates, synchronous call

POST /locations/{location_name}/mapsets/{mapset_name}/strds/{strds_name}/sampling_sync_geojson

Spatial sampling of a space-time raster dataset (STRDS) with vector points. The vector points must be provided as GeoJSON vector point format that includes correct coordinate system specification. The result of the sampling is located in the resource responseJSON document after the processing was finished, as a list of timestamped values for each vector point. Minimum required user role: user.

location_name: string ECAD
in path

The location name

mapset_name: string PERMANENT
in path

The name of the mapset that contains the required raster map layer

strds_name: string temperature_mean_1950_2013_yearly_celsius
in path

The name of the space-time raster dataset that should be sampled

##### Request Content-Types: application/json

##### Request Example

200 OK
STRDSSampleGeoJSONResponseModel

The result of the strds sampling

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why strds sampling did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-09-04 19:41:41.456341",
      "accept_timestamp": 1504546901.456339,
      "api_info": {
        "endpoint": "syncephemeralstrdssamplinggeojsonresource",
        "method": "POST",
        "path": "/api/v3/locations/ECAD/mapsets/PERMANENT/strds/temperature_mean_1950_2013_yearly_celsius/sampling_sync_geojson",
        "request_url": "http://localhost/api/v3/locations/ECAD/mapsets/PERMANENT/strds/temperature_mean_1950_2013_yearly_celsius/sampling_sync_geojson"
      },
      "datetime": "2017-09-04 19:41:42.622865",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_log": [
        {
          "executable": "v.import",
          "parameter": [
            "input=/tmp/gisdbase_3e090bec1a744be78743668a573cbf5b/.tmp/tmpk6Le10",
            "output=input_points"
          ],
          "return_code": 0,
          "run_time": 0.25067806243896484,
          "stderr": [
            "Check if OGR layer <OGRGeoJSON> contains polygons...",
            "0..33..66..100",
            "Column name <cat> renamed to <cat_>",
            "Importing 3 features (OGR layer <OGRGeoJSON>)...",
            "0..33..66..100",
            "-----------------------------------------------------",
            "Building topology for vector map <input_points@mapset_3e090bec1a744be78743668a573cbf5b>...",
            "Registering primitives...",
            "",
            "3 primitives registered",
            "3 vertices registered",
            "Building areas...",
            "0..33..66..100",
            "0 areas built",
            "0 isles built",
            "Attaching islands...",
            "Attaching centroids...",
            "33..66..100",
            "Number of nodes: 0",
            "Number of primitives: 3",
            "Number of points: 3",
            "Number of lines: 0",
            "Number of boundaries: 0",
            "Number of centroids: 0",
            "Number of areas: 0",
            "Number of isles: 0",
            "Input </tmp/gisdbase_3e090bec1a744be78743668a573cbf5b/.tmp/tmpk6Le10> successfully imported without reprojection",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "t.rast.sample",
          "parameter": [
            "points=input_points",
            "strds=temperature_mean_1950_2013_yearly_celsius@PERMANENT",
            "output=/tmp/gisdbase_3e090bec1a744be78743668a573cbf5b/.tmp/tmp3ilr28",
            "-rn",
            "--o",
            "--v"
          ],
          "return_code": 0,
          "run_time": 0.5513670444488525,
          "stderr": [
            "Default TGIS driver / database set to:",
            "driver: sqlite",
            "database: $GISDBASE/$LOCATION_NAME/$MAPSET/tgis/sqlite.db",
            "WARNING: Temporal database connection defined as:",
            "/tmp/gisdbase_3e090bec1a744be78743668a573cbf5b/ECAD/mapset_3e090bec1a744be78743668a573cbf5b/tgis/sqlite.db",
            "But database file does not exist.",
            "Creating temporal database: /tmp/gisdbase_3e090bec1a744be78743668a573cbf5b/ECAD/mapset_3e090bec1a744be78743668a573cbf5b/tgis/sqlite.db",
            "Sample map <temperature_mean_yearly_celsius_0> number  1 out of 63",
            "Sample map <temperature_mean_yearly_celsius_62> number  63 out of 63",
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        [
          "start_time",
          "end_time",
          "1",
          "2",
          "3"
        ],
        [
          "1950-01-01 00:00:00",
          "1951-01-01 00:00:00",
          "16.4121888761",
          "8.17818215566",
          "7.17657693292"
        ],
        [
          "2012-01-01 00:00:00",
          "2013-01-01 00:00:00",
          "16.5512179273",
          "8.8377879125",
          "7.87268863552"
        ]
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 2
      },
      "resource_id": "resource_id-6ee74d8c-1ef6-4b01-a098-2bc04bcb75c8",
      "status": "finished",
      "time_delta": 1.1665611267089844,
      "timestamp": 1504546902.622857,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/status/admin/resource_id-6ee74d8c-1ef6-4b01-a098-2bc04bcb75c8"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

# STRDS Statistics

STRDS Statistics

## Compute area statistics based on a vector map for a single raster

POST /locations/{location_name}/mapsets/{mapset_name}/strds/{strds_name}/timestamp/{timestamp}/area_stats_async

Compute areal categorical statistics on a raster map layer contained in a space-time raster dataset based on an input polygon. The input polygon must be provided as GeoJSON content in the request body. A correct coordinate reference system must be present in the GeoJSON definition. For each category the size of the occupied area, the number of pixel of the area and the percentage of the area size in relation to all other categories inclusive NULL data are computed. Minimum required user role: user.

GeoJSON definition of the polygon to compute the statistics for. The .

location_name: string
in path

The location name

mapset_name: string
in path

The name of the mapset that contains the required space-time raster dataset

strds_name: string
in path

The name of the space-time raster dataset to select the raster map layer from

timestamp: string (dateTime)
in path

The time stamp that should be used for raster map layer selection. Required format is: YYYY-MM-DDTHH:MM:SS for example 2001-03-16T12:30:15.

##### Request Content-Types: application/json

##### Request Example

    "string"

200 OK
RasterAreaStatsResponseModel

The result of the areal raster statistical computation

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why raster statistic did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-04 22:02:42.503999",
      "accept_timestamp": 1525464162.5039973,
      "api_info": {
        "endpoint": "syncephemeralrasterareastatsresource",
        "method": "POST",
        "path": "/api/v3/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/landuse96_28m/area_stats_sync",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/landuse96_28m/area_stats_sync"
      },
      "datetime": "2018-05-04 22:02:43.014544",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "inputs": {
              "input": "/tmp/gisdbase_c9071ae8c7844743a40fc2f864911a69/.tmp/tmpfgs_4jur"
            },
            "module": "v.import",
            "outputs": {
              "output": {
                "name": "polygon"
              }
            },
            "superquiet": true
          }
        },
        {
          "2": {
            "flags": "p",
            "inputs": {
              "align": "landuse96_28m@PERMANENT",
              "vector": "polygon"
            },
            "module": "g.region"
          },
          "3": {
            "inputs": {
              "vector": "polygon"
            },
            "module": "r.mask",
            "superquiet": true
          },
          "4": {
            "flags": "acpl",
            "inputs": {
              "input": "landuse96_28m@PERMANENT",
              "separator": "|"
            },
            "module": "r.stats",
            "outputs": {
              "output": {
                "name": "/tmp/gisdbase_c9071ae8c7844743a40fc2f864911a69/.tmp/tmp00trsfwh"
              }
            },
            "superquiet": true
          }
        }
      ],
      "process_log": [
        {
          "executable": "v.import",
          "parameter": [
            "input=/tmp/gisdbase_c9071ae8c7844743a40fc2f864911a69/.tmp/tmpfgs_4jur",
            "output=polygon",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 0.15042471885681152,
          "stderr": [
            "WARNING: Width for column fid set to 255 (was not specified by OGR), some strings may be truncated!",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "vector=polygon",
            "align=landuse96_28m@PERMANENT",
            "-p"
          ],
          "return_code": 0,
          "run_time": 0.050189971923828125,
          "stderr": [
            ""
          ],
          "stdout": "projection: 99 (Lambert Conformal Conic)\nzone:       0\ndatum:      nad83\nellipsoid:  a=6378137 es=0.006694380022900787\nnorth:      228527.25\nsouth:      214989.75\nwest:       629980\neast:       645028\nnsres:      28.5\newres:      28.5\nrows:       475\ncols:       528\ncells:      250800\n"
        },
        {
          "executable": "r.mask",
          "parameter": [
            "vector=polygon",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 0.1504218578338623,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.stats",
          "parameter": [
            "separator=|",
            "input=landuse96_28m@PERMANENT",
            "output=/tmp/gisdbase_c9071ae8c7844743a40fc2f864911a69/.tmp/tmp00trsfwh",
            "-acpl",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 0.050148725509643555,
          "stderr": [
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        {
          "area": 812.25,
          "cat": "0",
          "cell_count": 1,
          "name": "not classified",
          "percent": 0
        },
        {
          "area": 28297165.5,
          "cat": "1",
          "cell_count": 34838,
          "name": "High Intensity Developed",
          "percent": 13.89
        },
        {
          "area": 30871185.75,
          "cat": "2",
          "cell_count": 38007,
          "name": "Low Intensity Developed",
          "percent": 15.16
        },
        {
          "area": 1727655.75,
          "cat": "3",
          "cell_count": 2127,
          "name": "Cultivated",
          "percent": 0.85
        },
        {
          "area": 20610843.75,
          "cat": "4",
          "cell_count": 25375,
          "name": "Managed Herbaceous Cover",
          "percent": 10.12
        },
        {
          "area": 24367.5,
          "cat": "6",
          "cell_count": 30,
          "name": "Riverine/Estuarine Herbaceous",
          "percent": 0.01
        },
        {
          "area": 13308716.25,
          "cat": "7",
          "cell_count": 16385,
          "name": "Evergreen Shrubland",
          "percent": 6.53
        },
        {
          "area": 256671,
          "cat": "8",
          "cell_count": 316,
          "name": "Deciduous Shrubland",
          "percent": 0.13
        },
        {
          "area": 36551.25,
          "cat": "9",
          "cell_count": 45,
          "name": "Mixed Shrubland",
          "percent": 0.02
        },
        {
          "area": 6394032,
          "cat": "10",
          "cell_count": 7872,
          "name": "Mixed Hardwoods",
          "percent": 3.14
        },
        {
          "area": 15972896.25,
          "cat": "11",
          "cell_count": 19665,
          "name": "Bottomland Hardwoods/Hardwood Swamps",
          "percent": 7.84
        },
        {
          "area": 52401496.5,
          "cat": "15",
          "cell_count": 64514,
          "name": "Southern Yellow Pine",
          "percent": 25.72
        },
        {
          "area": 27352518.75,
          "cat": "18",
          "cell_count": 33675,
          "name": "Mixed Hardwoods/Conifers",
          "percent": 13.43
        },
        {
          "area": 4289492.25,
          "cat": "20",
          "cell_count": 5281,
          "name": "Water Bodies",
          "percent": 2.11
        },
        {
          "area": 157576.5,
          "cat": "21",
          "cell_count": 194,
          "name": "Unconsolidated Sediment",
          "percent": 0.08
        },
        {
          "area": 2010318.75,
          "cat": "*",
          "cell_count": 2475,
          "name": "no data",
          "percent": 0.99
        }
      ],
      "progress": {
        "num_of_steps": 4,
        "step": 4
      },
      "resource_id": "resource_id-9757d66b-4986-4bc7-9b7d-7f985900fb20",
      "status": "finished",
      "time_delta": 0.5105781555175781,
      "timestamp": 1525464163.0145323,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-9757d66b-4986-4bc7-9b7d-7f985900fb20"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

STRDS Statistics

## Compute area statistics based on a vector map for a single raster

POST /locations/{location_name}/mapsets/{mapset_name}/strds/{strds_name}/timestamp/{timestamp}/area_stats_sync

Compute areal categorical statistics on a raster map layer contained in a space-time raster dataset based on an input polygon. The input polygon must be provided as GeoJSON content in the request body. A correct coordinate reference system must be present in the GeoJSON definition. For each category the size of the occupied area, the number of pixel of the area and the percentage of the area size in relation to all other categories inclusive NULL data are computed. Minimum required user role: user.

GeoJSON definition of the polygon to compute the statistics for. The .

location_name: string
in path

The location name

mapset_name: string
in path

The name of the mapset that contains the required space-time raster dataset

strds_name: string
in path

The name of the space-time raster dataset to select the raster map layer from

timestamp: string (dateTime)
in path

The time stamp that should be used for raster map layer selection. Required format is: YYYY-MM-DDTHH:MM:SS for example 2001-03-16T12:30:15.

##### Request Content-Types: application/json

##### Request Example

    "string"

200 OK
RasterAreaStatsResponseModel

The result of the areal raster statistical computation

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why raster statistic did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-04 22:02:42.503999",
      "accept_timestamp": 1525464162.5039973,
      "api_info": {
        "endpoint": "syncephemeralrasterareastatsresource",
        "method": "POST",
        "path": "/api/v3/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/landuse96_28m/area_stats_sync",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/landuse96_28m/area_stats_sync"
      },
      "datetime": "2018-05-04 22:02:43.014544",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "inputs": {
              "input": "/tmp/gisdbase_c9071ae8c7844743a40fc2f864911a69/.tmp/tmpfgs_4jur"
            },
            "module": "v.import",
            "outputs": {
              "output": {
                "name": "polygon"
              }
            },
            "superquiet": true
          }
        },
        {
          "2": {
            "flags": "p",
            "inputs": {
              "align": "landuse96_28m@PERMANENT",
              "vector": "polygon"
            },
            "module": "g.region"
          },
          "3": {
            "inputs": {
              "vector": "polygon"
            },
            "module": "r.mask",
            "superquiet": true
          },
          "4": {
            "flags": "acpl",
            "inputs": {
              "input": "landuse96_28m@PERMANENT",
              "separator": "|"
            },
            "module": "r.stats",
            "outputs": {
              "output": {
                "name": "/tmp/gisdbase_c9071ae8c7844743a40fc2f864911a69/.tmp/tmp00trsfwh"
              }
            },
            "superquiet": true
          }
        }
      ],
      "process_log": [
        {
          "executable": "v.import",
          "parameter": [
            "input=/tmp/gisdbase_c9071ae8c7844743a40fc2f864911a69/.tmp/tmpfgs_4jur",
            "output=polygon",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 0.15042471885681152,
          "stderr": [
            "WARNING: Width for column fid set to 255 (was not specified by OGR), some strings may be truncated!",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "vector=polygon",
            "align=landuse96_28m@PERMANENT",
            "-p"
          ],
          "return_code": 0,
          "run_time": 0.050189971923828125,
          "stderr": [
            ""
          ],
          "stdout": "projection: 99 (Lambert Conformal Conic)\nzone:       0\ndatum:      nad83\nellipsoid:  a=6378137 es=0.006694380022900787\nnorth:      228527.25\nsouth:      214989.75\nwest:       629980\neast:       645028\nnsres:      28.5\newres:      28.5\nrows:       475\ncols:       528\ncells:      250800\n"
        },
        {
          "executable": "r.mask",
          "parameter": [
            "vector=polygon",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 0.1504218578338623,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.stats",
          "parameter": [
            "separator=|",
            "input=landuse96_28m@PERMANENT",
            "output=/tmp/gisdbase_c9071ae8c7844743a40fc2f864911a69/.tmp/tmp00trsfwh",
            "-acpl",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 0.050148725509643555,
          "stderr": [
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        {
          "area": 812.25,
          "cat": "0",
          "cell_count": 1,
          "name": "not classified",
          "percent": 0
        },
        {
          "area": 28297165.5,
          "cat": "1",
          "cell_count": 34838,
          "name": "High Intensity Developed",
          "percent": 13.89
        },
        {
          "area": 30871185.75,
          "cat": "2",
          "cell_count": 38007,
          "name": "Low Intensity Developed",
          "percent": 15.16
        },
        {
          "area": 1727655.75,
          "cat": "3",
          "cell_count": 2127,
          "name": "Cultivated",
          "percent": 0.85
        },
        {
          "area": 20610843.75,
          "cat": "4",
          "cell_count": 25375,
          "name": "Managed Herbaceous Cover",
          "percent": 10.12
        },
        {
          "area": 24367.5,
          "cat": "6",
          "cell_count": 30,
          "name": "Riverine/Estuarine Herbaceous",
          "percent": 0.01
        },
        {
          "area": 13308716.25,
          "cat": "7",
          "cell_count": 16385,
          "name": "Evergreen Shrubland",
          "percent": 6.53
        },
        {
          "area": 256671,
          "cat": "8",
          "cell_count": 316,
          "name": "Deciduous Shrubland",
          "percent": 0.13
        },
        {
          "area": 36551.25,
          "cat": "9",
          "cell_count": 45,
          "name": "Mixed Shrubland",
          "percent": 0.02
        },
        {
          "area": 6394032,
          "cat": "10",
          "cell_count": 7872,
          "name": "Mixed Hardwoods",
          "percent": 3.14
        },
        {
          "area": 15972896.25,
          "cat": "11",
          "cell_count": 19665,
          "name": "Bottomland Hardwoods/Hardwood Swamps",
          "percent": 7.84
        },
        {
          "area": 52401496.5,
          "cat": "15",
          "cell_count": 64514,
          "name": "Southern Yellow Pine",
          "percent": 25.72
        },
        {
          "area": 27352518.75,
          "cat": "18",
          "cell_count": 33675,
          "name": "Mixed Hardwoods/Conifers",
          "percent": 13.43
        },
        {
          "area": 4289492.25,
          "cat": "20",
          "cell_count": 5281,
          "name": "Water Bodies",
          "percent": 2.11
        },
        {
          "area": 157576.5,
          "cat": "21",
          "cell_count": 194,
          "name": "Unconsolidated Sediment",
          "percent": 0.08
        },
        {
          "area": 2010318.75,
          "cat": "*",
          "cell_count": 2475,
          "name": "no data",
          "percent": 0.99
        }
      ],
      "progress": {
        "num_of_steps": 4,
        "step": 4
      },
      "resource_id": "resource_id-9757d66b-4986-4bc7-9b7d-7f985900fb20",
      "status": "finished",
      "time_delta": 0.5105781555175781,
      "timestamp": 1525464163.0145323,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-9757d66b-4986-4bc7-9b7d-7f985900fb20"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

STRDS Statistics

## Compute areal univariate statistics on a raster map layer contained in a space-time raster dataset based on an input polygon.

POST /locations/{location_name}/mapsets/{mapset_name}/strds/{strds_name}/timestamp/{timestamp}/area_stats_univar_async

Compute areal univariate statistics on a raster map layer contained in a space-time raster dataset based on an input polygon. The input polygon must be provided as GeoJSON content in the request body. A correct coordinate reference system must be present in the GeoJSON definition. Minimum required user role: user.

GeoJSON definition of the polygon to compute the statistics for.

location_name: string
in path

The location name

mapset_name: string
in path

The name of the mapset that contains the required space-time raster dataset

strds_name: string
in path

The name of the space-time raster dataset to select the raster map layer from

timestamp: string (dateTime)
in path

The time stamp that should be used for raster map layer selection. Required format is: YYYY-MM-DDTHH:MM:SS for example 2001-03-16T12:30:15.

##### Request Content-Types: application/json

##### Request Example

    "string"

200 OK
RasterAreaUnivarStatsResponseModel

The result of the areal univar raster statistical computation

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why univar raster statistic did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-04 22:07:14.108967",
      "accept_timestamp": 1525464434.1089664,
      "api_info": {
        "endpoint": "syncephemeralrasterareastatsunivarresource",
        "method": "POST",
        "path": "/api/v3/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/towns/area_stats_univar_sync",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/towns/area_stats_univar_sync"
      },
      "datetime": "2018-05-04 22:07:15.793146",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "inputs": {
              "input": "/tmp/gisdbase_d36dd6841e7446f3b8d3b1bf5adcf527/.tmp/tmpdqtuzub4"
            },
            "module": "v.import",
            "outputs": {
              "output": {
                "name": "polygon"
              }
            },
            "superquiet": true
          }
        },
        {
          "2": {
            "flags": "p",
            "inputs": {
              "vector": "polygon"
            },
            "module": "g.region"
          },
          "3": {
            "inputs": {
              "column_prefix": "raster",
              "map": "polygon",
              "method": "number,minimum,maximum,range,average,median,stddev,sum,variance,coeff_var",
              "raster": "towns@PERMANENT"
            },
            "module": "v.rast.stats",
            "superquiet": true
          },
          "4": {
            "inputs": {
              "map": "polygon"
            },
            "module": "v.db.select",
            "outputs": {
              "file": {
                "name": "/tmp/gisdbase_d36dd6841e7446f3b8d3b1bf5adcf527/.tmp/tmpztw47z19"
              }
            }
          }
        }
      ],
      "process_log": [
        {
          "executable": "v.import",
          "parameter": [
            "input=/tmp/gisdbase_d36dd6841e7446f3b8d3b1bf5adcf527/.tmp/tmpdqtuzub4",
            "output=polygon",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 0.1504511833190918,
          "stderr": [
            "WARNING: Width for column fid set to 255 (was not specified by OGR), some strings may be truncated!",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "vector=polygon",
            "-p"
          ],
          "return_code": 0,
          "run_time": 0.050218820571899414,
          "stderr": [
            ""
          ],
          "stdout": "projection: 99 (Lambert Conformal Conic)\nzone:       0\ndatum:      nad83\nellipsoid:  a=6378137 es=0.006694380022900787\nnorth:      228500\nsouth:      215000\nwest:       630000\neast:       645000\nnsres:      500\newres:      500\nrows:       27\ncols:       30\ncells:      810\n"
        },
        {
          "executable": "v.rast.stats",
          "parameter": [
            "raster=towns@PERMANENT",
            "map=polygon",
            "column_prefix=raster",
            "method=number,minimum,maximum,range,average,median,stddev,sum,variance,coeff_var",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 1.354858636856079,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "v.db.select",
          "parameter": [
            "map=polygon",
            "file=/tmp/gisdbase_d36dd6841e7446f3b8d3b1bf5adcf527/.tmp/tmpztw47z19"
          ],
          "return_code": 0,
          "run_time": 0.05019712448120117,
          "stderr": [
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        {
          "cat": "1",
          "fid": "swwake_10m.0",
          "raster_average": 4.27381481481481,
          "raster_coeff_var": 36.2154244540989,
          "raster_maximum": 6,
          "raster_median": 5,
          "raster_minimum": 1,
          "raster_number": 2025000,
          "raster_range": 5,
          "raster_stddev": 1.54778017556735,
          "raster_sum": 8654475,
          "raster_variance": 2.39562347187929
        }
      ],
      "progress": {
        "num_of_steps": 4,
        "step": 4
      },
      "resource_id": "resource_id-ed2c2fdb-9963-4f71-acd0-1fbdff93f590",
      "status": "finished",
      "time_delta": 1.6842188835144043,
      "timestamp": 1525464435.7931283,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-ed2c2fdb-9963-4f71-acd0-1fbdff93f590"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

STRDS Statistics

## Compute areal univariate statistics on a raster map layer contained in a space-time raster dataset based on an input polygon.

POST /locations/{location_name}/mapsets/{mapset_name}/strds/{strds_name}/timestamp/{timestamp}/area_stats_univar_sync

Compute areal univariate statistics on a raster map layer contained in a space-time raster dataset based on an input polygon. The input polygon must be provided as GeoJSON content in the request body. A correct coordinate reference system must be present in the GeoJSON definition. Minimum required user role: user.

GeoJSON definition of the polygon to compute the statistics for.

location_name: string
in path

The location name

mapset_name: string
in path

The name of the mapset that contains the required space-time raster dataset

strds_name: string
in path

The name of the space-time raster dataset to select the raster map layer from

timestamp: string (dateTime)
in path

The time stamp that should be used for raster map layer selection. Required format is: YYYY-MM-DDTHH:MM:SS for example 2001-03-16T12:30:15.

##### Request Content-Types: application/json

##### Request Example

    "string"

200 OK
RasterAreaUnivarStatsResponseModel

The result of the areal univar raster statistical computation

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why univar raster statistic did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-04 22:07:14.108967",
      "accept_timestamp": 1525464434.1089664,
      "api_info": {
        "endpoint": "syncephemeralrasterareastatsunivarresource",
        "method": "POST",
        "path": "/api/v3/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/towns/area_stats_univar_sync",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/towns/area_stats_univar_sync"
      },
      "datetime": "2018-05-04 22:07:15.793146",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "inputs": {
              "input": "/tmp/gisdbase_d36dd6841e7446f3b8d3b1bf5adcf527/.tmp/tmpdqtuzub4"
            },
            "module": "v.import",
            "outputs": {
              "output": {
                "name": "polygon"
              }
            },
            "superquiet": true
          }
        },
        {
          "2": {
            "flags": "p",
            "inputs": {
              "vector": "polygon"
            },
            "module": "g.region"
          },
          "3": {
            "inputs": {
              "column_prefix": "raster",
              "map": "polygon",
              "method": "number,minimum,maximum,range,average,median,stddev,sum,variance,coeff_var",
              "raster": "towns@PERMANENT"
            },
            "module": "v.rast.stats",
            "superquiet": true
          },
          "4": {
            "inputs": {
              "map": "polygon"
            },
            "module": "v.db.select",
            "outputs": {
              "file": {
                "name": "/tmp/gisdbase_d36dd6841e7446f3b8d3b1bf5adcf527/.tmp/tmpztw47z19"
              }
            }
          }
        }
      ],
      "process_log": [
        {
          "executable": "v.import",
          "parameter": [
            "input=/tmp/gisdbase_d36dd6841e7446f3b8d3b1bf5adcf527/.tmp/tmpdqtuzub4",
            "output=polygon",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 0.1504511833190918,
          "stderr": [
            "WARNING: Width for column fid set to 255 (was not specified by OGR), some strings may be truncated!",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "vector=polygon",
            "-p"
          ],
          "return_code": 0,
          "run_time": 0.050218820571899414,
          "stderr": [
            ""
          ],
          "stdout": "projection: 99 (Lambert Conformal Conic)\nzone:       0\ndatum:      nad83\nellipsoid:  a=6378137 es=0.006694380022900787\nnorth:      228500\nsouth:      215000\nwest:       630000\neast:       645000\nnsres:      500\newres:      500\nrows:       27\ncols:       30\ncells:      810\n"
        },
        {
          "executable": "v.rast.stats",
          "parameter": [
            "raster=towns@PERMANENT",
            "map=polygon",
            "column_prefix=raster",
            "method=number,minimum,maximum,range,average,median,stddev,sum,variance,coeff_var",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 1.354858636856079,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "v.db.select",
          "parameter": [
            "map=polygon",
            "file=/tmp/gisdbase_d36dd6841e7446f3b8d3b1bf5adcf527/.tmp/tmpztw47z19"
          ],
          "return_code": 0,
          "run_time": 0.05019712448120117,
          "stderr": [
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        {
          "cat": "1",
          "fid": "swwake_10m.0",
          "raster_average": 4.27381481481481,
          "raster_coeff_var": 36.2154244540989,
          "raster_maximum": 6,
          "raster_median": 5,
          "raster_minimum": 1,
          "raster_number": 2025000,
          "raster_range": 5,
          "raster_stddev": 1.54778017556735,
          "raster_sum": 8654475,
          "raster_variance": 2.39562347187929
        }
      ],
      "progress": {
        "num_of_steps": 4,
        "step": 4
      },
      "resource_id": "resource_id-ed2c2fdb-9963-4f71-acd0-1fbdff93f590",
      "status": "finished",
      "time_delta": 1.6842188835144043,
      "timestamp": 1525464435.7931283,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-ed2c2fdb-9963-4f71-acd0-1fbdff93f590"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

# Vector Management

Vector Management

## Delete a single vector map layer or a list of vector map layer names

DELETE /locations/{location_name}/mapsets/{mapset_name}/vector_layers

Delete a single vector map layer or a list of vector map layer names that are located in a specific location/mapset. Minimum required user role: user.

location_name: string
in path

The name of the location that should be accessed

mapset_name: string
in path

The name of the mapset from which the vector map layers should be deleted

pattern: string
in query

A parameter passed for g.remove to remove a list of vector map layers, to remove all eg.: http:// ?pattern="*"

200 OK
ProcessingResponseModel

This response returns the log of the process chain that was used to create the response.

400 Bad Request
ProcessingResponseModel

The error message and a detailed log why deletion of vector map layers did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

Vector Management

## Rename a single vector map layer or a list of vector map layers that

PUT /locations/{location_name}/mapsets/{mapset_name}/vector_layers

Rename a single vector map layer or a list of vector map layers that are located in a specific location/mapset. Minimum required user role: user.

A list of vector name tuples [(a, a_new),(b, b_new),(c, c_new), ...]

location_name: string
in path

The name of the location that should be accessed

mapset_name: string
in path

The name of the mapset from which the vector map layers should be renamed

##### Request Example

    "string"

200 OK
ProcessingResponseModel

This response returns the log of the process chain that was used to create the response.

400 Bad Request
ProcessingResponseModel

The error message and a detailed log why listing of vector map layers did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

Vector Management

## Get a list of vector map layer names that are located in a specific

GET /locations/{location_name}/mapsets/{mapset_name}/vector_layers

Get a list of vector map layer names that are located in a specific location/mapset. Minimum required user role: user.

location_name: string nc_spm_08
in path

The name of the location that should be accessed

mapset_name: string PERMANENT
in path

The name of the mapset from which the vector map layers should be listed

pattern: string
in query

A parameter passed to g.list for vector map layer selection, eg.: http:// ?pattern="*"

200 OK
StringListProcessingResultResponseModel

This response returns a list of vector map layers and the log of the process chain that was used to create the response.

400 Bad Request
ProcessingResponseModel

The error message and a detailed log why listing of vector map layers did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-02 12:02:20.746845",
      "accept_timestamp": 1525255340.746844,
      "api_info": {
        "endpoint": "listmapsetsresource",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets",
        "request_url": "http://localhost:5000/locations/nc_spm_08/mapsets"
      },
      "datetime": "2018-05-02 12:02:20.861017",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "flags": "l",
            "inputs": {
              "separator": "newline"
            },
            "module": "g.mapsets"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.mapsets",
          "parameter": [
            "separator=newline",
            "-l"
          ],
          "return_code": 0,
          "run_time": 0.0501406192779541,
          "stderr": [
            "Available mapsets:",
            ""
          ],
          "stdout": "PERMANENT\nSource_A\nSource_B\nTarget\nlandsat\nraster_test_mapset\nuser1\n"
        }
      ],
      "process_results": [
        "PERMANENT",
        "Source_A",
        "Source_B",
        "Target",
        "landsat",
        "raster_test_mapset",
        "user1"
      ],
      "progress": {
        "num_of_steps": 1,
        "step": 1
      },
      "resource_id": "resource_id-715530fe-53e2-4b2b-87b2-3777c90fec7c",
      "status": "finished",
      "time_delta": 0.11421895027160645,
      "timestamp": 1525255340.8610027,
      "urls": {
        "resources": [],
        "status": "http://localhost:5000/resources/user/resource_id-715530fe-53e2-4b2b-87b2-3777c90fec7c"
      },
      "user_id": "user"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

Vector Management

## Delete an existing vector map layer.

DELETE /locations/{location_name}/mapsets/{mapset_name}/vector_layers/{vector_name}

Delete an existing vector map layer. Minimum required user role: user.

location_name: string
in path

The location name

mapset_name: string
in path

The name of the mapset that contains the required vector map layer

vector_name: string
in path

The name of the vector map layer to be deleted

200 OK
ProcessingResponseModel

Successfully delete a vector map layer

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why vector map layer deletion did not succeeded

##### Response Content-Types: application/json

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Vector Management

## Create a new vector map layer based on randomly generated point

POST /locations/{location_name}/mapsets/{mapset_name}/vector_layers/{vector_name}

Create a new vector map layer based on randomly generated point coordinates in a user specific region. This method will fail if the map already exists. Minimum required user role: user.

VectorRegionCreationModel

Parameters to create random vector point map layer in a specific region.

location_name: string
in path

The location name

mapset_name: string
in path

The name of the mapset that contains the required vector map layer

vector_name: string
in path

The name of the new vector map layer to be created

##### Request Content-Types: application/json

##### Request Example

    {
      "region": {
        "n": 228500,
        "s": 215000,
        "e": 645000,
        "w": 630000
      },
      "parameter": {
        "npoints": 1,
        "zmin": 1,
        "zmax": 1,
        "seed": 1
      }
    }

200 OK
ProcessingResponseModel

The vector map layer information

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why gathering vector map layer information did not succeeded

##### Response Content-Types: application/json

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Vector Management

## Get information about an existing vector map layer.

GET /locations/{location_name}/mapsets/{mapset_name}/vector_layers/{vector_name}

Get information about an existing vector map layer. Minimum required user role: user.

location_name: string nc_spm_08
in path

The location name

mapset_name: string PERMANENT
in path

The name of the mapset that contains the required vector map layer

vector_name: string boundary_county
in path

The name of the vector map layer to get information about

200 OK
VectorInfoResponseModel

The vector map layer information

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why gathering vector map layer information did not succeeded

##### Response Content-Types: application/json

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-06 21:36:53.825043",
      "accept_timestamp": 1525635413.8250418,
      "api_info": {
        "endpoint": "vectorlayerresource",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANENT/vector_layers/geology",
        "request_url": "http://localhost:5000/locations/nc_spm_08/mapsets/PERMANENT/vector_layers/geology"
      },
      "datetime": "2018-05-06 21:36:54.032325",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "flags": "gte",
            "inputs": {
              "map": "geology@PERMANENT"
            },
            "module": "v.info"
          },
          "2": {
            "flags": "h",
            "inputs": {
              "map": "geology@PERMANENT"
            },
            "module": "v.info"
          },
          "3": {
            "flags": "c",
            "inputs": {
              "map": "geology@PERMANENT"
            },
            "module": "v.info"
          }
        }
      ],
      "process_log": [
        {
          "executable": "v.info",
          "parameter": [
            "map=geology@PERMANENT",
            "-gte"
          ],
          "return_code": 0,
          "run_time": 0.050188302993774414,
          "stderr": [
            ""
          ],
          "stdout": "..."
        },
        {
          "executable": "v.info",
          "parameter": [
            "map=geology@PERMANENT",
            "-h"
          ],
          "return_code": 0,
          "run_time": 0.05018758773803711,
          "stderr": [
            ""
          ],
          "stdout": "..."
        },
        {
          "executable": "v.info",
          "parameter": [
            "map=geology@PERMANENT",
            "-c"
          ],
          "return_code": 0,
          "run_time": 0.050185441970825195,
          "stderr": [
            "Displaying column types/names for database connection of layer <1>:",
            ""
          ],
          "stdout": "..."
        }
      ],
      "process_results": {
        "Attributes": [
          {
            "column": "cat",
            "type": "INTEGER"
          },
          {
            "column": "onemap_pro",
            "type": "DOUBLE PRECISION"
          },
          {
            "column": "PERIMETER",
            "type": "DOUBLE PRECISION"
          },
          {
            "column": "GEOL250_",
            "type": "INTEGER"
          },
          {
            "column": "GEOL250_ID",
            "type": "INTEGER"
          },
          {
            "column": "GEO_NAME",
            "type": "CHARACTER"
          },
          {
            "column": "SHAPE_area",
            "type": "DOUBLE PRECISION"
          },
          {
            "column": "SHAPE_len",
            "type": "DOUBLE PRECISION"
          }
        ],
        "COMMAND": " v.db.connect -o map=\"geology@PERMANENT\" driver=\"sqlite\" database=\"$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db\" table=\"geology\" key=\"cat\" layer=\"1\" separator=\"|\"",
        "areas": "1832",
        "attribute_database": "/home/soeren/actinia/workspace/temp_db/gisdbase_d98fc0548fc44fac8fe43abd575e98cc/nc_spm_08/PERMANENT/sqlite/sqlite.db",
        "attribute_database_driver": "sqlite",
        "attribute_layer_name": "geology",
        "attribute_layer_number": "1",
        "attribute_primary_key": "cat",
        "attribute_table": "geology",
        "bottom": "0.000000",
        "boundaries": "3649",
        "centroids": "1832",
        "comment": "",
        "creator": "helena",
        "database": "/home/soeren/actinia/workspace/temp_db/gisdbase_d98fc0548fc44fac8fe43abd575e98cc",
        "digitization_threshold": "0.000000",
        "east": "930172.312822711",
        "format": "native",
        "islands": "907",
        "level": "2",
        "lines": "0",
        "location": "nc_spm_08",
        "map3d": "0",
        "mapset": "PERMANENT",
        "name": "geology",
        "nodes": "2724",
        "north": "318117.437416345",
        "num_dblinks": "1",
        "organization": "NC OneMap",
        "points": "0",
        "primitives": "5481",
        "projection": "Lambert Conformal Conic",
        "scale": "1:1",
        "source_date": "Mon Nov  6 15:48:53 2006",
        "south": "10875.8272320917",
        "timestamp": "none",
        "title": "North Carolina geology map (polygon map)",
        "top": "0.000000",
        "west": "123971.194989783"
      },
      "progress": {
        "num_of_steps": 3,
        "step": 3
      },
      "resource_id": "resource_id-5494af8c-8c9d-4f8e-a568-d6e86d69d8fd",
      "status": "finished",
      "time_delta": 0.20732927322387695,
      "timestamp": 1525635414.0323067,
      "urls": {
        "resources": [],
        "status": "http://localhost:5000/resources/user/resource_id-5494af8c-8c9d-4f8e-a568-d6e86d69d8fd"
      },
      "user_id": "user"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Vector Management

## Render a single vector map layer

GET /locations/{location_name}/mapsets/{mapset_name}/vector_layers/{vector_name}/render

Render a single vector map layer. Minimum required user role: user.

location_name: string nc_spm_08
in path

The location name

mapset_name: string PERMANENT
in path

The name of the mapset that contains the required raster map layer

vector_name: string boundary_county
in path

The name of the vector map layer to render

n: number (double)
in query

Northern border

s: number (double)
in query

Southern border

e: number (double)
in query

Eastern border

w: number (double)
in query

Western border

width: number (integer) 800
in query

Image width in pixel, default is 800

height: number (integer) 600
in query

Image height in pixel, default is 600

200 OK

The PNG image

400 Bad Request
ProcessingErrorResponseModel

The error message and a detailed log why rendering did not succeeded

##### Response Content-Types: image/png

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

# GeoNetwork

GeoNetwork

## Get geodata object from requests to Geonetwork opensource by one or many tags.

GET /metadata/geodata/tags/{tags}

The request will ask Geonetwork which metadata records are available for a certain tag or more tags separated by comma and returns a parsed record build from model. At the moment only the first record is returned.

tags: string
in path

One or more Geonetwork tags, comma separated

200 OK
GeodataResponseModel

Modelled Search Results from Geonetwork

##### Response Example (200 OK)

    {
      "uuid": "da165110-88fd-11da-a88f-000d939bc5d8",
      "bbox": [
        51.1,
        -34.6,
        -17.3,
        38.2
      ],
      "crs": "urn:ogc:def:crs:::WGS 1984",
      "table": "http://www.fao.org/ag/AGL/aglw/aquastat/watresafrica/index.stm"
    }

GeoNetwork

## Get geodata object from requests to Geonetwork opensource by uuid.

GET /metadata/geodata/uuids/{uuid}

The request will ask Geonetwork which metadata records are available for a certain uuid and returns a parsed record build from model. At the moment only the first record is returned.

uuid: string
in path

A Geonetwork uuid from a record

200 OK
GeodataResponseModel

Modelled Search Results from Geonetwork

##### Response Example (200 OK)

    {
      "uuid": "da165110-88fd-11da-a88f-000d939bc5d8",
      "bbox": [
        51.1,
        -34.6,
        -17.3,
        38.2
      ],
      "crs": "urn:ogc:def:crs:::WGS 1984",
      "table": "http://www.fao.org/ag/AGL/aglw/aquastat/watresafrica/index.stm"
    }

GeoNetwork

## Requests a category from Geonetwork opensource.

GET /metadata/raw/categories/{category}

The request will ask Geonetwork which metadata records are available for a certain category and returns the JSON response with these records. Requirement: a virtual CSW is defined in Geonetwork

category: string
in path

A Geonetwork category

200 OK

The Search Results from Geonetwork

##### Response Example (200 OK)

    {
      "csw:GetRecordsResponse": {
        "@xmlns:csw": "http://www.opengis.net/cat/csw/2.0.2",
        "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
        "@xsi:schemaLocation": "http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd",
        "csw:SearchStatus": {
          "@timestamp": "2018-03-28T13:46:43"
        },
        "csw:SearchResults": {
          "@numberOfRecordsMatched": "2",
          "@numberOfRecordsReturned": "2",
          "@elementSet": "full",
          "@nextRecord": "0",
          "csw:Record": [
            {
              "@xmlns:ows": "http://www.opengis.net/ows",
              "@xmlns:dc": "http://purl.org/dc/elements/1.1/",
              "@xmlns:geonet": "http://www.fao.org/geonetwork",
              "@xmlns:dct": "http://purl.org/dc/terms/",
              "dc:identifier": "d619aac5-6fc7-44f2-9552-7f8bb4d826e0",
              "dc:date": "2018-02-02T09:47:25",
              "dc:title": "Localities in Victoria (VMADMIN.LOCALITY_POLYGON) - Comprehensive Elements",
              "dc:type": "dataset",
              "dc:subject": [
                "BOUNDARIES-Administrative",
                "LAND-Ownership",
                "boundaries"
              ],
              "dc:format": [
                "Most popular formats including ESRI shape, MapInfo Tab and Oracle Spatial",
                "Most popular formats including ESRI shape, MapInfo Tab and Oracle Spatial"
              ],
              "dct:abstract": "This dataset is the definitive set of locality boundaries for the state of Victoria            as defined by Local Government and registered by the Registrar of Geographic Names.            The boundaries are aligned to Vicmap Property. This dataset is part of the Vicmap Admin dataset series.",
              "dc:description": "This dataset is the definitive set of locality boundaries for the state of Victoria            as defined by Local Government and registered by the Registrar of Geographic Names.            The boundaries are aligned to Vicmap Property. This dataset is part of the Vicmap Admin dataset series.",
              "dc:rights": [
                "intellectualPropertyRights",
                "otherRestrictions"
              ],
              "dc:language": "eng",
              "dc:source": "Local Government defines suburb, town and rural district boundaries after seeking appropriate consultation with all interested parties.              Proposed boundaries/names are submitted to the Registrar of Geographic Names for approval and formal gazettal.              As boundary and name information changes are processed through the formal definition and gazettal process at the Registrar of Geographic Names, the amendments will be flagged              and the dataset will be updated by the maintainer with all new boundaries aligned to Vicmap Property.",
              "ows:BoundingBox": {
                "@crs": "urn:ogc:def:crs:::4283",
                "ows:LowerCorner": "150 -39",
                "ows:UpperCorner": "141 -34"
              },
              "dc:URI": {
                "@description": "Web page listing Data Service Providers (DSP)s",
                "#text": "http://www.land.vic.gov.au/vicmapdsp"
              }
            },
            {
              "@xmlns:ows": "http://www.opengis.net/ows",
              "@xmlns:dc": "http://purl.org/dc/elements/1.1/",
              "@xmlns:geonet": "http://www.fao.org/geonetwork",
              "@xmlns:dct": "http://purl.org/dc/terms/",
              "dc:identifier": "78f93047-74f8-4419-ac3d-fc62e4b0477b",
              "dc:date": "2018-02-02T09:47:45",
              "dc:title": "Physiographic Map of North and Central Eurasia (Sample record, please remove!)",
              "dc:subject": [
                "physiography, soil",
                "Eurasia",
                "geoscientificInformation"
              ],
              "dct:abstract": "Physiographic maps for the CIS and Baltic States (CIS_BS), Mongolia, China and Taiwan Province of China. Between the three regions (China, Mongolia, and CIS_BS countries) DCW boundaries were introduced. There are no DCW boundaries between Russian Federation and the rest of the new countries of the CIS_BS. The original physiographic map of China includes the Chinese border between India and China, which extends beyond the Indian border line, and the South China Sea islands (no physiographic information is present for islands in the South China Sea). The use of these country boundaries does not imply the expression of any opinion whatsoever on the part of FAO concerning the legal or constitutional states of any country, territory, or sea area, or concerning delimitation of frontiers. The Maps visualize the items LANDF, HYPSO, SLOPE that correspond to Landform, Hypsometry and Slope.",
              "dc:description": "Physiographic maps for the CIS and Baltic States (CIS_BS), Mongolia, China and Taiwan Province of China. Between the three regions (China, Mongolia, and CIS_BS countries) DCW boundaries were introduced. There are no DCW boundaries between Russian Federation and the rest of the new countries of the CIS_BS. The original physiographic map of China includes the Chinese border between India and China, which extends beyond the Indian border line, and the South China Sea islands (no physiographic information is present for islands in the South China Sea). The use of these country boundaries does not imply the expression of any opinion whatsoever on the part of FAO concerning the legal or constitutional states of any country, territory, or sea area, or concerning delimitation of frontiers. The Maps visualize the items LANDF, HYPSO, SLOPE that correspond to Landform, Hypsometry and Slope.",
              "dc:rights": [
                "copyright",
                "copyright"
              ],
              "dc:language": null,
              "dc:source": null,
              "ows:BoundingBox": {
                "@crs": "urn:ogc:def:crs:::Lambert Azimuthal Projection",
                "ows:LowerCorner": "156 -3",
                "ows:UpperCorner": "37 83"
              },
              "dc:URI": [
                {
                  "@protocol": "WWW:DOWNLOAD-1.0-http--download",
                  "@name": "phy.zip",
                  "@description": "Physiography of North and Central Eurasia Landform (Gif Format)",
                  "#text": "http://localhost:8080/geonetwork/srv/api/records/78f93047-74f8-4419-ac3d-fc62e4b0477b/attachments/phy.zip"
                },
                {
                  "@protocol": "OGC:WMS",
                  "@name": "GEONETWORK:phy_landf_7386",
                  "@description": "Physiography of North and Central Eurasia Landform",
                  "#text": "http://data.fao.org/maps/wms"
                },
                {
                  "@protocol": "OGC:WMS",
                  "@name": "GEONETWORK:phy_slope_7386",
                  "@description": "Physiography of North and Central Eurasia Slope",
                  "#text": "http://data.fao.org/maps/wms"
                },
                {
                  "@protocol": "OGC:WMS",
                  "@name": "GEONETWORK:phy_hypso_7386",
                  "@description": "Physiography of North and Central Eurasia Hypsography",
                  "#text": "http://data.fao.org/maps/wms"
                },
                {
                  "@protocol": "image/gif",
                  "@name": "Physiographic Map (small preview)",
                  "#text": "http://localhost:8080/geonetwork/srv/api/records/78f93047-74f8-4419-ac3d-fc62e4b0477b/attachments/phy_s.gif"
                },
                {
                  "@protocol": "image/gif",
                  "@name": "Physiographic Map",
                  "#text": "http://localhost:8080/geonetwork/srv/api/records/78f93047-74f8-4419-ac3d-fc62e4b0477b/attachments/phy.gif"
                }
              ]
            }
          ]
        }
      }
    }

GeoNetwork

## Requests one or many tags from Geonetwork opensource.

GET /metadata/raw/tags/{tags}

The request will ask Geonetwork which metadata records are available for a certain tag or more tags separated by comma and returns the JSON response with these records.

tags: string
in path

One or more Geonetwork tags, comma separated

200 OK

The Search Results from Geonetwork

##### Response Example (200 OK)

    {
      "csw:GetRecordsResponse": {
        "@xmlns:csw": "http://www.opengis.net/cat/csw/2.0.2",
        "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
        "@xsi:schemaLocation": "http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd",
        "csw:SearchStatus": {
          "@timestamp": "2018-03-28T13:42:41"
        },
        "csw:SearchResults": {
          "@numberOfRecordsMatched": "2",
          "@numberOfRecordsReturned": "2",
          "@elementSet": "full",
          "@nextRecord": "0",
          "csw:Record": [
            {
              "@xmlns:ows": "http://www.opengis.net/ows",
              "@xmlns:dc": "http://purl.org/dc/elements/1.1/",
              "@xmlns:geonet": "http://www.fao.org/geonetwork",
              "@xmlns:dct": "http://purl.org/dc/terms/",
              "dc:identifier": "da165110-88fd-11da-a88f-000d939bc5d8",
              "dc:date": "2018-02-02T09:46:51",
              "dc:title": "Hydrological Basins in Africa (Sample record, please remove!)",
              "dc:subject": [
                "watersheds",
                "river basins",
                "water resources",
                "hydrology",
                "AQUASTAT",
                "AWRD",
                "Africa",
                "inlandWaters"
              ],
              "dc:format": [
                "ShapeFile",
                "ShapeFile"
              ],
              "dct:abstract": "Major hydrological basins and their sub-basins. This dataset divides the African continent according to its hydrological characteristics.\nThe dataset consists of the following information:- numerical code and name of the major basin (MAJ_BAS and MAJ_NAME); - area of the major basin in square km (MAJ_AREA); - numerical code and name of the sub-basin (SUB_BAS and SUB_NAME); - area of the sub-basin in square km (SUB_AREA); - numerical code of the sub-basin towards which the sub-basin flows (TO_SUBBAS) (the codes -888 and -999 have been assigned respectively to internal sub-basins and to sub-basins draining into the sea)",
              "dc:description": "Major hydrological basins and their sub-basins. This dataset divides the African continent according to its hydrological characteristics.\nThe dataset consists of the following information:- numerical code and name of the major basin (MAJ_BAS and MAJ_NAME); - area of the major basin in square km (MAJ_AREA); - numerical code and name of the sub-basin (SUB_BAS and SUB_NAME); - area of the sub-basin in square km (SUB_AREA); - numerical code of the sub-basin towards which the sub-basin flows (TO_SUBBAS) (the codes -888 and -999 have been assigned respectively to internal sub-basins and to sub-basins draining into the sea)",
              "dc:language": "eng",
              "dc:source": "The linework of the map is obtained by delineating drainage basin boundaries from an hydrologically corrected digital elevation model with a resolution of 1 * 1 km.",
              "ows:BoundingBox": {
                "@crs": "urn:ogc:def:crs:::WGS 1984",
                "ows:LowerCorner": "51.1 -34.6",
                "ows:UpperCorner": "-17.3 38.2"
              },
              "dc:URI": [
                {
                  "@protocol": "WWW:LINK-1.0-http--link",
                  "@name": "",
                  "@description": "Online link to the  'Water Resources and Irrigation in Africa'- website",
                  "#text": "http://www.fao.org/ag/AGL/aglw/aquastat/watresafrica/index.stm"
                },
                {
                  "@protocol": "WWW:DOWNLOAD-1.0-http--download",
                  "@name": "basins.zip",
                  "@description": "Hydrological basins in Africa (Shapefile Format)",
                  "#text": "http://localhost:8080/geonetwork/srv/api/records/da165110-88fd-11da-a88f-000d939bc5d8/attachments/basins.zip"
                },
                {
                  "@protocol": "OGC:WMS",
                  "@name": "GEONETWORK:basins_296",
                  "@description": "Hydrological basins in Africa",
                  "#text": "http://data.fao.org/maps/wms"
                },
                {
                  "@protocol": "image/gif",
                  "@name": "Hydrological Basins in Africa (small preview)",
                  "#text": "http://localhost:8080/geonetwork/srv/api/records/da165110-88fd-11da-a88f-000d939bc5d8/attachments/thumbnail_s.gif"
                },
                {
                  "@protocol": "image/gif",
                  "@name": "Hydrological Basins in Africa",
                  "#text": "http://localhost:8080/geonetwork/srv/api/records/da165110-88fd-11da-a88f-000d939bc5d8/attachments/thumbnail.gif"
                }
              ]
            },
            {
              "@xmlns:ows": "http://www.opengis.net/ows",
              "@xmlns:dc": "http://purl.org/dc/elements/1.1/",
              "@xmlns:geonet": "http://www.fao.org/geonetwork",
              "@xmlns:dct": "http://purl.org/dc/terms/",
              "dc:identifier": "d619aac5-6fc7-44f2-9552-7f8bb4d826e0",
              "dc:date": "2018-02-02T09:47:25",
              "dc:title": "Localities in Victoria (VMADMIN.LOCALITY_POLYGON) - Comprehensive Elements",
              "dc:type": "dataset",
              "dc:subject": [
                "BOUNDARIES-Administrative",
                "LAND-Ownership",
                "boundaries"
              ],
              "dc:format": [
                "Most popular formats including ESRI shape, MapInfo Tab and Oracle Spatial",
                "Most popular formats including ESRI shape, MapInfo Tab and Oracle Spatial"
              ],
              "dct:abstract": "This dataset is the definitive set of locality boundaries for the state of Victoria            as defined by Local Government and registered by the Registrar of Geographic Names.            The boundaries are aligned to Vicmap Property. This dataset is part of the Vicmap Admin dataset series.",
              "dc:description": "This dataset is the definitive set of locality boundaries for the state of Victoria            as defined by Local Government and registered by the Registrar of Geographic Names.            The boundaries are aligned to Vicmap Property. This dataset is part of the Vicmap Admin dataset series.",
              "dc:rights": [
                "intellectualPropertyRights",
                "otherRestrictions"
              ],
              "dc:language": "eng",
              "dc:source": "Local Government defines suburb, town and rural district boundaries after seeking appropriate consultation with all interested parties.              Proposed boundaries/names are submitted to the Registrar of Geographic Names for approval and formal gazettal.              As boundary and name information changes are processed through the formal definition and gazettal process at the Registrar of Geographic Names, the amendments will be flagged              and the dataset will be updated by the maintainer with all new boundaries aligned to Vicmap Property.",
              "ows:BoundingBox": {
                "@crs": "urn:ogc:def:crs:::4283",
                "ows:LowerCorner": "150 -39",
                "ows:UpperCorner": "141 -34"
              },
              "dc:URI": {
                "@description": "Web page listing Data Service Providers (DSP)s",
                "#text": "http://www.land.vic.gov.au/vicmapdsp"
              }
            }
          ]
        }
      }
    }

GeoNetwork

## Requests an uuid from Geonetwork opensource.

GET /metadata/raw/uuids/{uuid}

The request will ask Geonetwork which metadata records are available for a certain uuid and returns the JSON response with this record.

uuid: string
in path

A Geonetwork uuid from a record

200 OK

The Search Results from Geonetwork

##### Response Example (200 OK)

    {
      "csw:GetRecordByIdResponse": {
        "@xmlns:csw": "http://www.opengis.net/cat/csw/2.0.2",
        "csw:Record": {
          "@xmlns:ows": "http://www.opengis.net/ows",
          "@xmlns:dc": "http://purl.org/dc/elements/1.1/",
          "@xmlns:geonet": "http://www.fao.org/geonetwork",
          "@xmlns:dct": "http://purl.org/dc/terms/",
          "dc:identifier": "da165110-88fd-11da-a88f-000d939bc5d8",
          "dc:date": "2018-02-02T09:46:51",
          "dc:title": "Hydrological Basins in Africa (Sample record, please remove!)",
          "dc:subject": [
            "watersheds",
            "river basins",
            "water resources",
            "hydrology",
            "AQUASTAT",
            "AWRD",
            "Africa",
            "inlandWaters"
          ],
          "dc:format": [
            "ShapeFile",
            "ShapeFile"
          ],
          "dct:abstract": "Major hydrological basins and their sub-basins. This dataset divides the African continent according to its hydrological characteristics.\nThe dataset consists of the following information:- numerical code and name of the major basin (MAJ_BAS and MAJ_NAME); - area of the major basin in square km (MAJ_AREA); - numerical code and name of the sub-basin (SUB_BAS and SUB_NAME); - area of the sub-basin in square km (SUB_AREA); - numerical code of the sub-basin towards which the sub-basin flows (TO_SUBBAS) (the codes -888 and -999 have been assigned respectively to internal sub-basins and to sub-basins draining into the sea)",
          "dc:description": "Major hydrological basins and their sub-basins. This dataset divides the African continent according to its hydrological characteristics.\nThe dataset consists of the following information:- numerical code and name of the major basin (MAJ_BAS and MAJ_NAME); - area of the major basin in square km (MAJ_AREA); - numerical code and name of the sub-basin (SUB_BAS and SUB_NAME); - area of the sub-basin in square km (SUB_AREA); - numerical code of the sub-basin towards which the sub-basin flows (TO_SUBBAS) (the codes -888 and -999 have been assigned respectively to internal sub-basins and to sub-basins draining into the sea)",
          "dc:language": "eng",
          "dc:source": "The linework of the map is obtained by delineating drainage basin boundaries from an hydrologically corrected digital elevation model with a resolution of 1 * 1 km.",
          "ows:BoundingBox": {
            "@crs": "urn:ogc:def:crs:::WGS 1984",
            "ows:LowerCorner": "51.1 -34.6",
            "ows:UpperCorner": "-17.3 38.2"
          },
          "dc:URI": [
            {
              "@protocol": "WWW:LINK-1.0-http--link",
              "@name": "",
              "@description": "Online link to the  'Water Resources and Irrigation in Africa'- website",
              "#text": "http://www.fao.org/ag/AGL/aglw/aquastat/watresafrica/index.stm"
            },
            {
              "@protocol": "WWW:DOWNLOAD-1.0-http--download",
              "@name": "basins.zip",
              "@description": "Hydrological basins in Africa (Shapefile Format)",
              "#text": "http://localhost:8080/geonetwork/srv/api/records/da165110-88fd-11da-a88f-000d939bc5d8/attachments/basins.zip"
            },
            {
              "@protocol": "OGC:WMS",
              "@name": "GEONETWORK:basins_296",
              "@description": "Hydrological basins in Africa",
              "#text": "http://data.fao.org/maps/wms"
            },
            {
              "@protocol": "image/gif",
              "@name": "Hydrological Basins in Africa (small preview)",
              "#text": "http://localhost:8080/geonetwork/srv/api/records/da165110-88fd-11da-a88f-000d939bc5d8/attachments/thumbnail_s.gif"
            },
            {
              "@protocol": "image/gif",
              "@name": "Hydrological Basins in Africa",
              "#text": "http://localhost:8080/geonetwork/srv/api/records/da165110-88fd-11da-a88f-000d939bc5d8/attachments/thumbnail.gif"
            }
          ]
        }
      }
    }

GeoNetwork

## Tests for active connection to Geonetwork opensource.

POST /metadata/test/connection

The request will ask the backend if it can successfully connect to Geonetwork.

200 OK
SimpleStatusCodeResponseModel

Success or failure of connection

##### Response Example (200 OK)

    {
      "status": 200,
      "message": "success"
    }

GeoNetwork

## Tests for active connection to Geonetwork opensource.

GET /metadata/test/connection

The request will ask the backend if it can successfully connect to Geonetwork.

200 OK
SimpleStatusCodeResponseModel

Success or failure of connection

##### Response Example (200 OK)

    {
      "status": 200,
      "message": "success"
    }

# Resource Management

Resource Management

## Clean the resource storage and remove all cached data

DELETE /resource_storage

Clean the resource storage and remove all cached data. Minimum required user role: admin.

200 OK
ProcessingResponseModel

Processing status of resource storage deletion

400 Bad Request
ProcessingErrorResponseModel

The error message why resource storage cleaning did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Resource Management

## Get the current size of the resource storage

GET /resource_storage

Get the current size of the resource storage. Minimum required user role: admin.

200 OK
StorageResponseModel

The current state of the resource storage

400 Bad Request
ProcessingErrorResponseModel

The error message why resource storage information gathering did not succeeded

##### Response Example (200 OK)

    {
      "accept_datetime": "2018-05-02 10:51:27.988969",
      "accept_timestamp": 1525258287.9889677,
      "api_info": {
        "endpoint": "syncresourcestorageresource",
        "method": "GET",
        "path": "/resource_storage",
        "request_url": "http://localhost:8080/resource_storage"
      },
      "datetime": "2018-05-02 10:51:28.100659",
      "http_code": 200,
      "message": "Resource storage size successfully computed",
      "process_chain_list": [],
      "process_log": [
        {
          "executable": "/usr/bin/du",
          "parameter": [
            "-sb",
            "/actinia/resources/superadmin"
          ],
          "return_code": 0,
          "run_time": 0.05042886734008789,
          "stderr": [
            ""
          ],
          "stdout": "4096\t/actinia/resources/superadmin\n"
        }
      ],
      "process_results": {
        "free": 107374178304,
        "free_percent": 99,
        "quota": 107374182400,
        "used": 4096
      },
      "progress": {
        "num_of_steps": 0,
        "step": 1
      },
      "resource_id": "resource_id-f9463d91-04a6-497c-b107-37c4ee013530",
      "status": "finished",
      "time_delta": 0.11174893379211426,
      "timestamp": 1525258288.1006439,
      "urls": {
        "resources": [],
        "status": "http://localhost:8080/resources/superadmin/resource_id-f9463d91-04a6-497c-b107-37c4ee013530"
      },
      "user_id": "superadmin"
    }

##### Response Example (400 Bad Request)

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

Resource Management

## Terminate all accepted and running resources of the specified user.

DELETE /resources/{user_id}

Terminate all accepted and running resources of the specified user. Minimum required user role: user.

user_id: string
in path

The unique user name/id

200 OK
SimpleResponseModel

Termination requests have been successfully committed. Be aware that does not mean, that the resources have been successfully terminated.

401 Unauthorized
SimpleResponseModel

The error message why the resource termination did not succeeded

##### Response Example (200 OK)

    {
      "status": "string",
      "message": "string"
    }

##### Response Example (401 Unauthorized)

    {
      "status": "string",
      "message": "string"
    }

Resource Management

## Get a list of resources that have been generated by the specified user.

GET /resources/{user_id}

Get a list of resources that have been generated by the specified user. Minimum required user role: user.

user_id: string
in path

The unique user name/id

num: integer
in query

The maximum number of jobs that should be returned

type: string
in query

The type of job that should be returned: accepted, running, error, terminated, finished

200 OK
ProcessingResponseListModel

Returned a list of resources that have been generated by the specified user.

401 Unauthorized
SimpleResponseModel

The error message why resource gathering did not succeeded

##### Response Example (200 OK)

    {
      "resource_list": [
        {
          "accept_datetime": "2017-05-24 22:37:21.607255",
          "accept_timestamp": 1495658241.607252,
          "api_info": {
            "endpoint": "asyncephemeralresource",
            "method": "POST",
            "path": "/locations/nc_spm_08/processing_async",
            "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
          },
          "datetime": "2017-05-24 22:37:21.608717",
          "http_code": 200,
          "message": "Resource accepted",
          "process_results": {},
          "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
          "status": "accepted",
          "timestamp": 1495658241.608716,
          "urls": {
            "resources": [],
            "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
          },
          "user_id": "admin"
        }
      ]
    }

##### Response Example (401 Unauthorized)

    {
      "status": "string",
      "message": "string"
    }

Resource Management

## Request the termination of a resource.

DELETE /resources/{user_id}/{resource_id}

Request the termination of a resource. Minimum required user role: user.

user_id: string
in path

The unique user name/id

resource_id: string
in path

The id of the resource

200 OK
SimpleResponseModel

Returned if termination request of the resource was successfully committed. Be aware that this does not mean, that the resource was successfully terminated.

400 Bad Request
SimpleResponseModel

The error message why resource storage information gathering did not succeeded

##### Response Example (200 OK)

    {
      "status": "string",
      "message": "string"
    }

##### Response Example (400 Bad Request)

    {
      "status": "string",
      "message": "string"
    }

Resource Management

## Get the status of a resource.

GET /resources/{user_id}/{resource_id}

Get the status of a resource. Minimum required user role: user.

user_id: string
in path

The unique user name/id

resource_id: string
in path

The id of the resource

200 OK
ProcessingResponseModel

The current state of the resource

400 Bad Request
SimpleResponseModel

The error message if the resource does not exists

##### Response Example (200 OK)

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

##### Response Example (400 Bad Request)

    {
      "status": "string",
      "message": "string"
    }

# Process Chain Monitoring

Process Chain Monitoring

## Get the sizes of mapset of a resource.

GET /resources/{user_id}/{resource_id}/mapsetsizes

Get the mapset sizes of a resource. Minimum required user role: user.

user_id: string
in path

The unique user name/id

resource_id: string
in path

The id of the resource

200 OK
MapsetSizeResponseModel

The current state of the resource

400 Bad Request
SimpleResponseModel

The error message if the resource does not exist

##### Response Example (200 OK)

    {
      "mapset_sizes": [
        29946,
        29946
      ],
      "status": "success"
    }

##### Response Example (400 Bad Request)

    {
      "status": "string",
      "message": "string"
    }

Process Chain Monitoring

## Get the step-by-step mapset size differences of a resource.

GET /resources/{user_id}/{resource_id}/mapsetsizes/diffs

Get the step-by-step mapset size differences of a resource. Minimum required user role: user.

user_id: string
in path

The unique user name/id

resource_id: string
in path

The id of the resource

200 OK
MapsetSizeResponseModel

The current state of the resource

400 Bad Request
SimpleResponseModel

The error message if the resource does not exists

##### Response Example (200 OK)

    {
      "mapset_sizes": [
        29946,
        29946
      ],
      "status": "success"
    }

##### Response Example (400 Bad Request)

    {
      "status": "string",
      "message": "string"
    }

Process Chain Monitoring

## Render the step-by-step mapset size differences of a resource.

GET /resources/{user_id}/{resource_id}/mapsetsizes/diffs/render

Render the step-by-step mapset size differences of a resource. Minimum required user role: user.

user_id: string
in path

The unique user name/id

resource_id: string
in path

The id of the resource

200 OK

The PNG image

400 Bad Request
SimpleResponseModel

The error message and a detailed log why rendering did not succeed

##### Response Content-Types: image/png

##### Response Example (400 Bad Request)

    {
      "status": "string",
      "message": "string"
    }

Process Chain Monitoring

## Get the maximum size of mapset of a resource.

GET /resources/{user_id}/{resource_id}/mapsetsizes/max

Get the maximum mapset size of a resource. Minimum required user role: user.

user_id: string
in path

The unique user name/id

resource_id: string
in path

The id of the resource

200 OK
MaxMapsetSizeResponseModel

The current state of the resource

400 Bad Request
SimpleResponseModel

The error message if the resource does not exist

##### Response Example (200 OK)

    {
      "max_mapset_size": 29949,
      "status": "success"
    }

##### Response Example (400 Bad Request)

    {
      "status": "string",
      "message": "string"
    }

Process Chain Monitoring

## Render the mapset sizes of a resource.

GET /resources/{user_id}/{resource_id}/mapsetsizes/render

Render the mapset sizes of a resource. Minimum required user role: user.

user_id: string
in path

The unique user name/id

resource_id: string
in path

The id of the resource

200 OK

The PNG image

400 Bad Request
SimpleResponseModel

The error message and a detailed log why rendering did not succeed

##### Response Content-Types: image/png

##### Response Example (400 Bad Request)

    {
      "status": "string",
      "message": "string"
    }

# User Management

User Management

## List all users in the database

GET /users

Get a list of all users. Minimum required user role: admin.

200 OK
UserListResponseModel

This response returns a list of user names.

##### Response Example (200 OK)

    {
      "status": "success",
      "user_list": [
        "actinia-gdi"
      ]
    }

User Management

## Delete a specific user

DELETE /users/{user_id}

Deletes a user. Minimum required user role: admin.

user_id: string
in path

The unique name of the user

200 OK
SimpleResponseModel

This response returns the status of user deletion.

400 Bad Request
SimpleResponseModel

The error message

##### Response Example (200 OK)

    {
      "status": "string",
      "message": "string"
    }

##### Response Example (400 Bad Request)

    {
      "status": "string",
      "message": "string"
    }

User Management

## Create a user in the database

POST /users/{user_id}

Creates a new user in the database. Minimum required user role: admin.

user_id: string
in path

The unique name of the user

password: string
in path

The password of the new user

group: string
in path

The group of the new user

200 OK
SimpleResponseModel

This response returns the status of user creation.

400 Bad Request
SimpleResponseModel

The error message

##### Response Example (200 OK)

    {
      "status": "string",
      "message": "string"
    }

##### Response Example (400 Bad Request)

    {
      "status": "string",
      "message": "string"
    }

User Management

## Return the credentials of a single user

GET /users/{user_id}

Get information about the group, role and permissions of a certain user. Minimum required user role: admin.

user: string
in path

The unique name of the user

200 OK
UserInfoResponseModel

This response returns information about a certain user.

400 Bad Request
SimpleResponseModel

The error message

##### Response Example (200 OK)

    {
      "Permissions": {
        "accessible_datasets": {
          "nc_spm_08": [
            "PERMANENT",
            "user1",
            "landsat"
          ]
        },
        "accessible_modules": [
          "r.blend",
          "r.buffer",
          "...",
          "t.rast.univar",
          "importer",
          "exporter"
        ],
        "cell_limit": 100000000000,
        "process_num_limit": 1000,
        "process_time_limit": 31536000
      },
      "Status": "success",
      "User group": "superadmin",
      "User id": "actinia-gdi",
      "User role": "superadmin"
    }

##### Response Example (400 Bad Request)

    {
      "status": "string",
      "message": "string"
    }

# Schema Definitions

## LocationListResponseModel: object

Response schema for location lists

status: string

  The status of the resource, values: accepted, running, finished, terminated, error

locations: string[]

  The list of locations in the GRASS database

string

##### Example

    {
      "locations": [
        "nc_spm_08",
        "latlong_wgs84",
        "ECAD"
      ],
      "status": "success"
    }

## SimpleResponseModel: object

Response schema that is used in cases that no asynchronous run was performed and the

status: string

  The status of the resource, values: accepted, running, finished, terminated, error

message: string

  A simple message to describes the status of the resource

##### Example

    {
      "status": "string",
      "message": "string"
    }

## MapsetInfoResponseModel: object

Response schema that includes projection and region information

status: string

  The status of the response

user_id: string

  The id of the user that issued a request

resource_id: string

  The unique resource id

process_log: ProcessLogModel

  A list of ProcessLogModels

ProcessLogModel
process_chain_list: GrassModule

  The list of GRASS modules that were used in the processing

GrassModule
process_results: MapsetInfoModel
progress: ProgressInfoModel
message: string

  Message for the user, maybe status, finished or error message

exception: ExceptionTracebackModel
accept_timestamp: number (double)

  The acceptance timestamp in seconds of the response

accept_datetime: string

  The acceptance timestamp of the response in human readable format

timestamp: number (double)

  The current timestamp in seconds of the response

time_delta: number (double)

  The time delta of the processing in seconds

datetime: string

  The current timestamp of the response in human readable format

http_code: number (int32)

  The HTTP code of the response

urls: UrlModel
api_info: ApiInfoModel

##### Example

    {
      "accept_datetime": "2018-05-02 10:53:20.254387",
      "accept_timestamp": 1525258400.2543857,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/api/v3/locations/ECAD/mapsets/PERMANENT/info",
        "request_url": "http://localhost/api/v3/locations/ECAD/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-02 10:53:20.392509",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 0,
          "run_time": 0.05018115043640137,
          "stderr": [
            ""
          ],
          "stdout": "..."
        },
        {
          "executable": "g.proj",
          "parameter": [
            "-fw"
          ],
          "return_code": 0,
          "run_time": 0.05016374588012695,
          "stderr": [
            ""
          ],
          "stdout": "..."
        }
      ],
      "process_results": {
        "projection": "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]\n",
        "region": {
          "b": 0,
          "cells": 1,
          "cells3": 1,
          "cols": 1,
          "cols3": 1,
          "depths": 1,
          "e": 1,
          "ewres": 1,
          "ewres3": 1,
          "n": 1,
          "nsres": 1,
          "nsres3": 1,
          "projection": 3,
          "rows": 1,
          "rows3": 1,
          "s": 0,
          "t": 1,
          "tbres": 1,
          "w": 0,
          "zone": 0
        }
      },
      "progress": {
        "num_of_steps": 2,
        "step": 2
      },
      "resource_id": "resource_id-2222cdb7-06f5-460d-a38f-5745a3c3b518",
      "status": "finished",
      "time_delta": 0.13819408416748047,
      "timestamp": 1525258400.392495,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-2222cdb7-06f5-460d-a38f-5745a3c3b518"
      },
      "user_id": "user"
    }

## ProcessLogModel: object

This class defines the model for Unix process information.

executable: string

  The name of the executable

parameter: string[]

  The parameter of the executable

string
stdout: string

  The stdout output of the executable

stderr: string[]

  The stderr output of the executable as list of strings

string
return_code: number (int32)

  The return code of the executable

run_time: number (float)

  The runtime of the executable in seconds

mapset_size: number (float)

  The size of the mapset in bytes

##### Example

    {
      "executable": "g.list",
      "parameter": [
        "type=raster",
        "mapset=PERMANENT"
      ],
      "return_code": 0,
      "run_time": 0.05017662048339844,
      "stderr": [
        ""
      ],
      "stdout": "aspect\nbasin_50K\n"
    }

## GrassModule: object

The definition of a single GRASS GIS module and its inputs, outputs and flags. This module will be run in a location/mapset environment and is part of a process chain. The stdout and stderr output of modules that were run before this module in the process chain can be used as stdin for this module. The stdout of a module can be automatically transformed in list, table or key/value JSON representations in the HTTP response.

id: string

  A unique id to identify the module call in the process chain to reference its stdout and stderr output as stdin in other modules.

module: string

  The name of the GRASS GIS module (r.univar, r.slope.aspect, v.select, ...) that should be executed. Use as module names "importer" or "exporter" to import or export raster layer, vector layer or other file based data without calling a GRASS GIS module.

inputs: InputParameter

  A list of input parameters of a GRASS GIS module.

InputParameter
outputs: OutputParameter

  A list of output parameters of a GRASS GIS module.

OutputParameter
flags: string

  The flags that should be set for the GRASS GIS module.

stdin: string

  Use the stdout output of a GRASS GIS module or executable of the process chain as input for this module. Refer to the module/executable output as id::stderr or id::stdout, the "id" is the unique identifier of a GRASS GIS module definition.

stdout: StdoutParser
overwrite: boolean

  Set True to overwrite existing data.

verbose: boolean

  Set True to activate verbosity output of the module.

superquiet: boolean

  Set True to silence the output of the module.

interface-description: boolean

  Set True to print interface description and exit.

##### Example

    {
      "module": "r.slope.aspect",
      "id": "r_slope_aspect_1",
      "inputs": [
        {
          "import_descr": {
            "source": "https://storage.googleapis.com/graas-geodata/elev_ned_30m.tif",
            "type": "raster"
          },
          "param": "raster",
          "value": "elev_ned_30m_new"
        }
      ],
      "outputs": [
        {
          "export": {
            "format": "GTiff",
            "type": "raster"
          },
          "param": "slope",
          "value": "elev_ned_30m_new_slope"
        }
      ],
      "flags": "a"
    }

## InputParameter:

Parameter definition of a GRASS GIS module that should be executed in the actinia environment. Parameters can be of type input or output. A GRASS GIS module will be usually called like:

g.region raster=elevation30m@PERMANENT

The GRASS GIS module g.region parameter raster has the value elevation30m@PERMANENT. This is reflected by the param and value properties that can specify input and output parameters.

param: string

  The name of a GRASS GIS module parameter like map or elevation.

value: string

  The value of the GRASS GIS module parameter. Raster, vector and STDS inputs must contain the mapset name in their id: slope@PERMANENT, if they are not located in the working mapset. Do not contain the mapset name in map names that are processed, since the mapsets are generated on demand using random names. Outputs are not allowed to contain mapset names.Files that are created in the process chain to exchange data can be specified using the $file::unique_id identifier. The unique_id will be replaced with a temporary file name, that is available in the whole process chain at runtime. The unique_id is the identifier that can be used by different modules in a process chain to access the same temporary file or to prepare it for export.

import_descr: object

  Definition of sources to be imported as raster or vector map layer.

type: string raster, vector, landsat, sentinel2, postgis, file

  The type of the input that should be downloaded and imported. In case of raster or vector types a download URL must be provided as source using http, https or ftp protocols. In case of sentinel2 scenes the scene name and the band must be provided. The Landsat approach is different.
  In case a Landsat scene is requested, all bands will be download, in the target location imported and an atmospheric correction is applied. The atmospheric correction must be specified. The resulting raster map layers have a specific name scheme, that is independent from the provided map name in the process description. The name scheme is always:

  <landsat scene id>_<atcor>.<band>

  For example, if the scene

  LT52170762005240COA00

  was requested, the resulting name for the DOS1 atmospheric corrected band 1 would be:

  LT52170762005240COA00_dos1.1

  .For the DOS1 atmospheric corrected band 2 it would be:

  LT52170762005240COA00_dos1.2

  and so on. All other process steps must use these raster map layer names to refer to the imported Landsat bands. Use the file option to download any kind of files that should be processed by a grass gis module.
sentinel_band: string B01, B02, B03, B04, B05, B06, B07, B08, B8A, B09, B10, B11, B12

  The band of the sentinel2 scene that should be imported

landsat_atcor: string uncorrected, dos1, dos2, dos2b, dos3, dos4

  The atmospheric correction that should be applied to the landsat scene

vector_layer: string

  The name of the layer that should be imported form the vector file or postGIS database

source: string

  The input source that may be a landsat scene name, a sentinel2 scene name, a postGIS database string, or an URL that points to an accessible raster or vector file. A HTTP, HTTPS or FTP connection must be specified in case of raster or vector types. In this case the source string must contain the protocol that will used for connection: http:// or https:// or ftp://. PostGIS vector layer can be imported by defining a database string as source and a layer name.

basic_auth: string

  User name and password for basic HTTP, HTTPS and FTP authentication of the source connection. The user name and password must be separated by a colon: username:password

##### Example

    {
      "import_descr": {
        "source": "LT52170762005240COA00",
        "type": "landsat",
        "landsat_atcor": "dos1"
      },
      "param": "map",
      "value": "ignored"
    }

## OutputParameter: object

Parameter definition of a GRASS GIS module that should be executed in the actinia environment. Parameters can be of type input or output. A GRASS GIS module will be usually called like:

g.region raster=elevation30m@PERMANENT

The GRASS GIS module g.region parameter raster has the value elevation30m@PERMANENT. This is reflected by the param and value properties that can specify input and output parameters.

param: string

  The name of a GRASS GIS module parameter like map or elevation.

value: string

  The value of the GRASS GIS module parameter. Raster, vector and STDS inputs must contain the mapset name in their id: slope@PERMANENT, if they are not located in the working mapset. Do not contain the mapset name in map names that are processed, since the mapsets are generated on demand using random names. Outputs are not allowed to contain mapset names.Files that are created in the process chain to exchange data can be specified using the $file::unique_id identifier. The unique_id will be replaced with a temporary file name, that is available in the whole process chain at runtime. The unique_id is the identifier that can be used by different modules in a process chain to access the same temporary file or to prepare it for export.

export: object

  The raster, vector or text file export parameter.

format: string COG, GTiff, GPKG, SQLite, GML, GeoJSON, ESRI_Shapefile, CSV, TXT, PostgreSQL

  The format of the output file in case of raster layer, vector layer or text file export. Raster layer export support only GeoTiff format, all other formats are vector layer export formats. If the PostgeSQL format was chosen, a postgis database string dbstring must be provided so that the GRASS GIS module v.out.ogr knows to which PostgreSQL database it should be connect. The name of the output layer can be specified as *output_layer for PostgreSQL database exports. Some GRASS GIS modules allow the export of text files. These files can be exported and provided as downloadable link as well.

type: string raster, vector, file

  The type of the output. In case of the file option only text files are supported for export. In addition the $file::unique_id option must be used in the value parameter to export a file that was generated by a GRASS GIS module. Exported text and vector files will always be compressed with zip.

dbstring: string

  The database string to be used to connect to a PostgreSQL database for vector export.

output_layer: string

  Name for output PostgreSQL layer. If not specified, GRASS GIS vector map layer name is used.

##### Example

    {
      "param": "slope",
      "value": "elev_10m_slope",
      "export": {
        "type": "raster",
        "format": "GTiff"
      }
    }

## StdoutParser: object

Use this parameter to automatically parse the output of GRASS GIS modules and convert the output into tables, lists or key/value pairs in the result section of the response.If the property type is set to table, list or kv then the stdout of the current command will be parsed and the result of the parse operation will be added to the result dictionary using the provided id as key. GRASS GIS modules produce regular output. Many modules have the flag -g to create key value pairs as stdout output. Other create a list of values or a table with/without header.

id: string

  The unique id that is used to identify the parsed output in the result dictionary.

format: string table, list, kv

  The stdout format to be parsed.

delimiter: string

  The delimiter that should be used to parse table, list and key/value module output. Many GRASS GIS modules use by default "|" in tables and "=" in key/value pairs. A new line "\n" is always the delimiter between rows in the output.

##### Example

    {
      "id": "stats",
      "format": "table",
      "delimiter": "|"
    }

## MapsetInfoModel: object

Schema for projection and region information from a specific mapset.

projection: string

  The location projection WKT string

region: RegionModel

##### Example

    {
      "projection": "PROJCS[\"NAD83(HARN) / North Carolina\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHEROID[\"GRS1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.16666666666666],PARAMETER[\"standard_parallel_2\",34.33333333333334],PARAMETER[\"latitude_of_origin\",33.75],PARAMETER[\"central_meridian\",-79],PARAMETER[\"false_easting\",609601.22],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3358\"]]\n",
      "region": {
        "b": 0,
        "cells": 29535,
        "cells3": 29535,
        "cols": 179,
        "cols3": 179,
        "depths": 1,
        "e": 639530,
        "ewres": 10,
        "ewres3": 10,
        "n": 221230,
        "nsres": 10,
        "nsres3": 10,
        "projection": 99,
        "rows": 165,
        "rows3": 165,
        "s": 219580,
        "t": 1,
        "tbres": 1,
        "w": 637740,
        "zone": 0
      }
    }

## RegionModel: object

Output of GRASS GIS module g.region -gu3

projection: number (integer)
zone: number (integer)
n: number (double)
s: number (double)
w: number (double)
e: number (double)
t: number (double)
b: number (double)
nsres: number (double)
nsres3: number (double)
ewres: number (double)
ewres3: number (double)
tbres: number (double)
rows: number (integer)
rows3: number (integer)
cols: number (integer)
cols3: number (integer)
depths: number (integer)
cells: number (integer)
cells3: number (integer)

##### Example

    {
      "b": 0,
      "cells": 29535,
      "cells3": 29535,
      "cols": 179,
      "cols3": 179,
      "depths": 1,
      "e": 639530,
      "ewres": 10,
      "ewres3": 10,
      "n": 221230,
      "nsres": 10,
      "nsres3": 10,
      "projection": 99,
      "rows": 165,
      "rows3": 165,
      "s": 219580,
      "t": 1,
      "tbres": 1,
      "w": 637740,
      "zone": 0
    }

## ProgressInfoModel: object

This class defines the model for progress information.

step: integer (int64)

  The current processing step

num_of_steps: integer (int64)

  The total number of processing steps

sub_step: integer (int64)

  The current sub step of the current processing step

num_of_sub_steps: integer (int32)

  The total number of sub steps of the current processing step

##### Example

    {
      "num_of_steps": 6,
      "step": 6
    }

## ExceptionTracebackModel: object

Response schema that contains python3 exception information of the called endpoint

message: string

  The message that was send with the exception

type: string

  The type of the exception

traceback: string[]

  The full traceback of the exception

string

##### Example

    {
      "message": "Error",
      "type": "exceptions.Exception",
      "traceback": "File \"main.py\", line 2, in <module>\n    raise Exception(\"Error\")\n"
    }

## UrlModel: object

URL schema that points to the status URL

status: string

  The URL to check the status of the resource

resources: string[]

  A list of URLs to generated resources, that may be GeoTiff files, vector files, ASCII files or png images

string

##### Example

    {
      "resources": [
        "http://localhost/api/v3/resource/user/resource_id-4846cbcc-3918-4654-bf4d-7e1ba2b59ce6/my_slope.tiff"
      ],
      "status": "http://localhost/api/v3/resources/user/resource_id-4846cbcc-3918-4654-bf4d-7e1ba2b59ce6"
    }

## ApiInfoModel: object

Response schema that contains API information of the called endpoint.

endpoint: string

  The endpoint of the API call

method: string

  The HTTP method of the request

path: string

  The path of the REST API call

request_url: string

  The request URL

##### Example

    {
      "endpoint": "asyncephemeralresource",
      "method": "POST",
      "path": "/api/v3//locations/nc_spm_08/processing_async",
      "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
    }

## ProcessingResponseModel: object

This is the base class for ALL response models.

status: string

  The status of the response

user_id: string

  The id of the user that issued a request

resource_id: string

  The unique resource id

process_log: ProcessLogModel

  A list of ProcessLogModels

ProcessLogModel
process_chain_list: GrassModule

  The list of GRASS modules that were used in the processing

GrassModule
process_results: string

  An arbitrary class that stores the processing results

progress: ProgressInfoModel
message: string

  Message for the user, maybe status, finished or error message

exception: ExceptionTracebackModel
accept_timestamp: number (double)

  The acceptance timestamp in seconds of the response

accept_datetime: string

  The acceptance timestamp of the response in human readable format

timestamp: number (double)

  The current timestamp in seconds of the response

time_delta: number (double)

  The time delta of the processing in seconds

datetime: string

  The current timestamp of the response in human readable format

http_code: number (int32)

  The HTTP code of the response

urls: UrlModel
api_info: ApiInfoModel

##### Example

    {
      "accept_datetime": "2017-05-24 22:37:21.607255",
      "accept_timestamp": 1495658241.607252,
      "api_info": {
        "endpoint": "asyncephemeralresource",
        "method": "POST",
        "path": "/locations/nc_spm_08/processing_async",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
      },
      "datetime": "2017-05-24 22:37:21.608717",
      "http_code": 200,
      "message": "Resource accepted",
      "process_results": {},
      "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
      "status": "accepted",
      "timestamp": 1495658241.608716,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
      },
      "user_id": "admin"
    }

## ProjectionInfoModel: object

Schema to define projection information as JSON input in POST requests

epsg: string

  The EPSG code of the projection that should be used to create a location

##### Example

    {
      "epsg": "4326"
    }

## StringListProcessingResultResponseModel: object

Response schema for resources that generate string list

status: string

  The status of the response

user_id: string

  The id of the user that issued a request

resource_id: string

  The unique resource id

process_log: ProcessLogModel

  A list of ProcessLogModels

ProcessLogModel
process_chain_list: GrassModule

  The list of GRASS modules that were used in the processing

GrassModule
process_results: string[]
string
progress: ProgressInfoModel
message: string

  Message for the user, maybe status, finished or error message

exception: ExceptionTracebackModel
accept_timestamp: number (double)

  The acceptance timestamp in seconds of the response

accept_datetime: string

  The acceptance timestamp of the response in human readable format

timestamp: number (double)

  The current timestamp in seconds of the response

time_delta: number (double)

  The time delta of the processing in seconds

datetime: string

  The current timestamp of the response in human readable format

http_code: number (int32)

  The HTTP code of the response

urls: UrlModel
api_info: ApiInfoModel

##### Example

    {
      "accept_datetime": "2018-05-02 12:02:20.746845",
      "accept_timestamp": 1525255340.746844,
      "api_info": {
        "endpoint": "listmapsetsresource",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets",
        "request_url": "http://localhost:5000/locations/nc_spm_08/mapsets"
      },
      "datetime": "2018-05-02 12:02:20.861017",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "flags": "l",
            "inputs": {
              "separator": "newline"
            },
            "module": "g.mapsets"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.mapsets",
          "parameter": [
            "separator=newline",
            "-l"
          ],
          "return_code": 0,
          "run_time": 0.0501406192779541,
          "stderr": [
            "Available mapsets:",
            ""
          ],
          "stdout": "PERMANENT\nSource_A\nSource_B\nTarget\nlandsat\nraster_test_mapset\nuser1\n"
        }
      ],
      "process_results": [
        "PERMANENT",
        "Source_A",
        "Source_B",
        "Target",
        "landsat",
        "raster_test_mapset",
        "user1"
      ],
      "progress": {
        "num_of_steps": 1,
        "step": 1
      },
      "resource_id": "resource_id-715530fe-53e2-4b2b-87b2-3777c90fec7c",
      "status": "finished",
      "time_delta": 0.11421895027160645,
      "timestamp": 1525255340.8610027,
      "urls": {
        "resources": [],
        "status": "http://localhost:5000/resources/user/resource_id-715530fe-53e2-4b2b-87b2-3777c90fec7c"
      },
      "user_id": "user"
    }

## ProcessingErrorResponseModel: object

Response schema that returns error messages from a failed process execution

status: string

  The status of the response

user_id: string

  The id of the user that issued a request

resource_id: string

  The unique resource id

process_log: ProcessLogModel

  A list of ProcessLogModels

ProcessLogModel
process_chain_list: GrassModule

  The list of GRASS modules that were used in the processing

GrassModule
process_results: string

  An arbitrary class that stores the processing results

progress: ProgressInfoModel
message: string

  Message for the user, maybe status, finished or error message

exception: ExceptionTracebackModel
accept_timestamp: number (double)

  The acceptance timestamp in seconds of the response

accept_datetime: string

  The acceptance timestamp of the response in human readable format

timestamp: number (double)

  The current timestamp in seconds of the response

time_delta: number (double)

  The time delta of the processing in seconds

datetime: string

  The current timestamp of the response in human readable format

http_code: number (int32)

  The HTTP code of the response

urls: UrlModel
api_info: ApiInfoModel

##### Example

    {
      "accept_datetime": "2018-05-06 22:02:14.323815",
      "accept_timestamp": 1525636934.3238132,
      "api_info": {
        "endpoint": "mapsetmanagementresourceuser",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANE/info",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/info"
      },
      "datetime": "2018-05-06 22:02:14.398927",
      "exception": {
        "message": "AsyncProcessError:  Error while running executable <g.region>",
        "traceback": [
          "  File \"/home/soeren/src/GRaaS/actinia_venv/lib/python3.5/site-packages/actinia_core-0.0.post0.dev37+g216eeae.dirty-py3.5.egg/actinia_core/resources/ephemeral_processing.py\", line 1063, in _run_executable\n    raise AsyncProcessError(\"Error while running executable <%s>\" % process.executable)\n"
        ],
        "type": "<class 'actinia_core.resources.common.exceptions.AsyncProcessError'>"
      },
      "http_code": 400,
      "message": "AsyncProcessError:  Error while running executable <g.region>",
      "process_chain_list": [
        {
          "1": {
            "flags": "ug3",
            "module": "g.region"
          },
          "2": {
            "flags": "fw",
            "module": "g.proj"
          }
        }
      ],
      "process_log": [
        {
          "executable": "g.region",
          "parameter": [
            "-ug3"
          ],
          "return_code": 1,
          "run_time": 0.05020904541015625,
          "stderr": [
            "ERROR: MAPSET PERMANE not found at /home/soeren/actinia/workspace/temp_db/gisdbase_5c4c13bce6e54207aea2e1705cba0b8b/nc_spm_08",
            ""
          ],
          "stdout": ""
        }
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 1
      },
      "resource_id": "resource_id-79608249-521c-4a98-9e1f-9201f693870b",
      "status": "error",
      "time_delta": 0.07516026496887207,
      "timestamp": 1525636934.3989098,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/user/resource_id-79608249-521c-4a98-9e1f-9201f693870b"
      },
      "user_id": "user"
    }

## MapsetLockManagementResponseModel: object

The response content that is returned by the GET request

status: string

  The status of the response

user_id: string

  The id of the user that issued a request

resource_id: string

  The unique resource id

process_log: ProcessLogModel

  A list of ProcessLogModels

ProcessLogModel
process_chain_list: GrassModule

  The list of GRASS modules that were used in the processing

GrassModule
process_results: boolean
progress: ProgressInfoModel
message: string

  Message for the user, maybe status, finished or error message

exception: ExceptionTracebackModel
accept_timestamp: number (double)

  The acceptance timestamp in seconds of the response

accept_datetime: string

  The acceptance timestamp of the response in human readable format

timestamp: number (double)

  The current timestamp in seconds of the response

time_delta: number (double)

  The time delta of the processing in seconds

datetime: string

  The current timestamp of the response in human readable format

http_code: number (int32)

  The HTTP code of the response

urls: UrlModel
api_info: ApiInfoModel

##### Example

    {
      "accept_datetime": "2018-05-02 11:03:26.529673",
      "accept_timestamp": 1525259006.5296717,
      "api_info": {
        "endpoint": "mapsetlockmanagementresource",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANENT/lock",
        "request_url": "http://localhost:8080/locations/nc_spm_08/mapsets/PERMANENT/lock"
      },
      "datetime": "2018-05-02 11:03:26.586348",
      "http_code": 200,
      "message": "Mapset lock state: False",
      "process_chain_list": [],
      "process_log": [],
      "process_results": false,
      "progress": {
        "num_of_steps": 0,
        "step": 0
      },
      "resource_id": "resource_id-162101d9-2abc-417e-83ef-dc6f52ed7aaf",
      "status": "finished",
      "time_delta": 0.056743621826171875,
      "timestamp": 1525259006.5863316,
      "urls": {
        "resources": [],
        "status": "http://localhost:8080/resources/admin/resource_id-162101d9-2abc-417e-83ef-dc6f52ed7aaf"
      },
      "user_id": "admin"
    }

## RasterRegionCreationModel: object

Schema for random raster map layer generation using r.mapcalc in a specific region

region: SetRegionModel
expression: string 1

  The r.mapcalc expression to create a new raster map layer. The expression must not contain the name of the new raster map layer only the statement after the equal operator: "a + b" instead of "c = a + b"

##### Example

    {
      "region": {
        "region": "string",
        "raster": "string",
        "align": "string",
        "zoom": "string",
        "vector": "string",
        "n": "number (double)",
        "s": "number (double)",
        "w": "number (double)",
        "e": "number (double)",
        "t": "number (double)",
        "b": "number (double)",
        "nsres": "number (double)",
        "res": "number (double)",
        "ewres": "number (double)",
        "res3": "number (double)",
        "tbres": "number (double)"
      },
      "expression": "string"
    }

## SetRegionModel: object

This schema represents the computational region definition for raster

region: string

  Set current region from named region

raster: string

  Raster layer name with mapset to set the region from

align: string

  Raster layer name with mapset to align the region to

zoom: string

  Raster layer name with mapset to zoom the region to

vector: string

  Vector layer name with mapset to set the region from

n: number (double)

  Value for the northern edge

s: number (double)

  Value for the southern edge

w: number (double)

  Value for the western edge

e: number (double)

  Value for the eastern edge

t: number (double)

  Value for the top edge

b: number (double)

  Value for the bottom edge

nsres: number (double)

  North-south 2D grid resolution

res: number (double)

  2D grid resolution (north-south and east-west)

ewres: number (double)

  East-west 2D grid resolution

res3: number (double)

  3D grid resolution (north-south, east-west and top-bottom)

tbres: number (double)

  Top-bottom 3D grid resolution

##### Example

    {
      "region": "string",
      "raster": "string",
      "align": "string",
      "zoom": "string",
      "vector": "string",
      "n": "number (double)",
      "s": "number (double)",
      "w": "number (double)",
      "e": "number (double)",
      "t": "number (double)",
      "b": "number (double)",
      "nsres": "number (double)",
      "res": "number (double)",
      "ewres": "number (double)",
      "res3": "number (double)",
      "tbres": "number (double)"
    }

## RasterInfoResponseModel: object

Response schema for raster map layer information.

status: string

  The status of the response

user_id: string

  The id of the user that issued a request

resource_id: string

  The unique resource id

process_log: ProcessLogModel

  A list of ProcessLogModels

ProcessLogModel
process_chain_list: GrassModule

  The list of GRASS modules that were used in the processing

GrassModule
process_results: RasterInfoModel
progress: ProgressInfoModel
message: string

  Message for the user, maybe status, finished or error message

exception: ExceptionTracebackModel
accept_timestamp: number (double)

  The acceptance timestamp in seconds of the response

accept_datetime: string

  The acceptance timestamp of the response in human readable format

timestamp: number (double)

  The current timestamp in seconds of the response

time_delta: number (double)

  The time delta of the processing in seconds

datetime: string

  The current timestamp of the response in human readable format

http_code: number (int32)

  The HTTP code of the response

urls: UrlModel
api_info: ApiInfoModel

##### Example

    {
      "accept_datetime": "2018-05-02 10:44:11.764375",
      "accept_timestamp": 1525257851.7643716,
      "api_info": {
        "endpoint": "rasterlayerresource",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/elevation",
        "request_url": "http://localhost:8080/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/elevation"
      },
      "datetime": "2018-05-02 10:44:11.897704",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "flags": "gre",
            "inputs": {
              "map": "elevation@PERMANENT"
            },
            "module": "r.info"
          }
        }
      ],
      "process_log": [
        {
          "executable": "r.info",
          "parameter": [
            "map=elevation@PERMANENT",
            "-gre"
          ],
          "return_code": 0,
          "run_time": 0.050168514251708984,
          "stderr": [
            ""
          ],
          "stdout": "..."
        }
      ],
      "process_results": {
        "cells": "2025000",
        "cols": "1500",
        "comments": "\"r.proj input=\"ned03arcsec\" location=\"northcarolina_latlong\" mapset=\"\\helena\" output=\"elev_ned10m\" method=\"cubic\" resolution=10\"",
        "creator": "\"helena\"",
        "database": "/actinia/workspace/temp_db/gisdbase_5f1a5262c8bf4d4789348ffa2406ec3e",
        "datatype": "FCELL",
        "date": "\"Tue Nov  7 01:09:51 2006\"",
        "description": "\"generated by r.proj\"",
        "east": "645000",
        "ewres": "10",
        "location": "nc_spm_08",
        "map": "elevation",
        "mapset": "PERMANENT",
        "max": "156.3299",
        "min": "55.57879",
        "ncats": "255",
        "north": "228500",
        "nsres": "10",
        "rows": "1350",
        "source1": "\"\"",
        "source2": "\"\"",
        "south": "215000",
        "timestamp": "\"none\"",
        "title": "\"South-West Wake county: Elevation NED 10m\"",
        "units": "\"none\"",
        "vdatum": "\"none\"",
        "west": "630000"
      },
      "progress": {
        "num_of_steps": 1,
        "step": 1
      },
      "resource_id": "resource_id-0a3d6b2b-0962-4d01-8993-7997f15d1595",
      "status": "finished",
      "time_delta": 0.13338971138000488,
      "timestamp": 1525257851.8976946,
      "urls": {
        "resources": [],
        "status": "http://localhost:8080/resources/user/resource_id-0a3d6b2b-0962-4d01-8993-7997f15d1595"
      },
      "user_id": "user"
    }

## RasterInfoModel: object

Schema that contains raster map layer information

cells: string
cols: string
comments: string
creator: string
database: string
datatype: string
maptype: string
east: string
date: string
description: string
ewres: string
max: string
min: string
ncats: string
nsres: string
location: string
map: string
mapset: string
rows: string
source1: string
north: string
source2: string
units: string
vdatum: string
south: string
timestamp: string
title: string
west: string

##### Example

    {
      "cells": "2025000",
      "cols": "1500",
      "comments": "\"r.proj input=\"ned03arcsec\" location=\"northcarolina_latlong\" mapset=\"\\helena\" output=\"elev_ned10m\" method=\"cubic\" resolution=10\"",
      "creator": "\"helena\"",
      "database": "/tmp/gisdbase_75bc0828",
      "datatype": "FCELL",
      "date": "\"Tue Nov  7 01:09:51 2006\"",
      "description": "\"generated by r.proj\"",
      "east": "645000",
      "ewres": "10",
      "location": "nc_spm_08",
      "map": "elevation",
      "mapset": "PERMANENT",
      "max": "156.3299",
      "min": "55.57879",
      "ncats": "255",
      "north": "228500",
      "nsres": "10",
      "rows": "1350",
      "source1": "\"\"",
      "source2": "\"\"",
      "south": "215000",
      "timestamp": "\"none\"",
      "title": "\"South-West Wake county: Elevation NED 10m\"",
      "units": "\"none\"",
      "vdatum": "\"none\"",
      "west": "630000"
    }

## RasterColorModel: object

Set the color table for an existing raster map layer with a set of rules, a specific color or an other raster map layer

rules: string[]

  A list of rules to set the color table of a raster map layer

string
color: string

  The name of a color to be set for a raster map layer

raster: string

  The name of an existing raster map layer to copy the color table from

##### Example

    {
      "rules": [
        "1 0:0:0",
        "default 255:255:255"
      ],
      "color": "ndvi",
      "raster": "elevation@PERMANENT"
    }

## STRDSCreationModel: object

Information required to create a new STRDS

title: string

  The title of the STRDS

description: string

  The description of the STRDS

temporaltype: string absolute

  The temporal type of the STRDS, which can be absolute and relative

##### Example

    {
      "title": "Monthly mean temperature from 1950-2010 for Germany",
      "description": "Monthly mean temperature from 1950-2010 for Germany in degree celsius",
      "ttype": "absolute"
    }

## STRDSInfoResponseModel: object

Response schema for STRDS information.

status: string

  The status of the response

user_id: string

  The id of the user that issued a request

resource_id: string

  The unique resource id

process_log: ProcessLogModel

  A list of ProcessLogModels

ProcessLogModel
process_chain_list: GrassModule

  The list of GRASS modules that were used in the processing

GrassModule
process_results: STRDSInfoModel
progress: ProgressInfoModel
message: string

  Message for the user, maybe status, finished or error message

exception: ExceptionTracebackModel
accept_timestamp: number (double)

  The acceptance timestamp in seconds of the response

accept_datetime: string

  The acceptance timestamp of the response in human readable format

timestamp: number (double)

  The current timestamp in seconds of the response

time_delta: number (double)

  The time delta of the processing in seconds

datetime: string

  The current timestamp of the response in human readable format

http_code: number (int32)

  The HTTP code of the response

urls: UrlModel
api_info: ApiInfoModel

##### Example

    {
      "accept_datetime": "2018-05-02 10:36:43.119861",
      "accept_timestamp": 1525257403.119857,
      "api_info": {
        "endpoint": "strdsmanagementresource",
        "method": "GET",
        "path": "/locations/ECAD/mapsets/PERMANENT/strds/precipitation_1950_2013_yearly_mm",
        "request_url": "http://localhost:8080/locations/ECAD/mapsets/PERMANENT/strds/precipitation_1950_2013_yearly_mm"
      },
      "datetime": "2018-05-02 10:36:43.677867",
      "http_code": 200,
      "message": "Information gathering for STRDS <precipitation_1950_2013_yearly_mm> successful",
      "process_chain_list": [
        {
          "1": {
            "flags": "g",
            "inputs": {
              "input": "precipitation_1950_2013_yearly_mm",
              "type": "strds"
            },
            "module": "t.info"
          }
        }
      ],
      "process_log": [
        {
          "executable": "t.info",
          "parameter": [
            "type=strds",
            "input=precipitation_1950_2013_yearly_mm",
            "-g"
          ],
          "return_code": 0,
          "run_time": 0.4944636821746826,
          "stderr": [
            ""
          ],
          "stdout": "..."
        }
      ],
      "process_results": {
        "aggregation_type": "None",
        "band_reference": "None",
        "bottom": "0.0",
        "creation_time": "2017-12-29 15:58:40.020820",
        "creator": "soeren",
        "east": "75.5",
        "end_time": "2013-01-01 00:00:00",
        "ewres_max": "0.25",
        "ewres_min": "0.25",
        "granularity": "1 year",
        "id": "precipitation_1950_2013_yearly_mm@PERMANENT",
        "map_time": "interval",
        "mapset": "PERMANENT",
        "max_max": "5132.0",
        "max_min": "2498.3",
        "min_max": "35.2",
        "min_min": "0.0",
        "modification_time": "2017-12-29 15:58:44.396206",
        "name": "precipitation_1950_2013_yearly_mm",
        "north": "75.5",
        "nsres_max": "0.25",
        "nsres_min": "0.25",
        "number_of_bands": "None",
        "number_of_maps": "63",
        "raster_register": "raster_map_register_87e1edbaf2da4a27a03da04fa9f3a7f1",
        "semantic_type": "mean",
        "south": "25.25",
        "start_time": "1950-01-01 00:00:00",
        "temporal_type": "absolute",
        "top": "0.0",
        "west": "-40.5"
      },
      "progress": {
        "num_of_steps": 1,
        "step": 1
      },
      "resource_id": "resource_id-1f178974-684d-417e-a3f4-878708b7382b",
      "status": "finished",
      "time_delta": 0.5580840110778809,
      "timestamp": 1525257403.6778474,
      "urls": {
        "resources": [],
        "status": "http://localhost:8080/resources/user/resource_id-1f178974-684d-417e-a3f4-878708b7382b"
      },
      "user_id": "user"
    }

## STRDSInfoModel: object

Information about a specific space-time raster dataset (STRDS)

aggregation_type: string
band_reference: string
bottom: string
creation_time: string
creator: string
east: string
end_time: string
ewres_max: string
ewres_min: string
granularity: string
id: string
map_time: string
mapset: string
max_max: string
max_min: string
min_max: string
min_min: string
modification_time: string
name: string
north: string
number_of_bands: string
nsres_max: string
nsres_min: string
number_of_maps: string
raster_register: string
semantic_type: string
south: string
start_time: string
temporal_type: string
top: string
west: string

##### Example

    {
      "aggregation_type": "None",
      "band_reference": "None",
      "bottom": "0.0",
      "creation_time": "2016-08-11 16:44:29.756411",
      "creator": "soeren",
      "east": "75.5",
      "end_time": "2013-07-01 00:00:00",
      "ewres_max": "0.25",
      "ewres_min": "0.25",
      "granularity": "1 month",
      "id": "precipitation_1950_2013_monthly_mm@PERMANENT",
      "map_time": "interval",
      "mapset": "PERMANENT",
      "max_max": "1076.9",
      "max_min": "168.9",
      "min_max": "3.2",
      "min_min": "0.0",
      "modification_time": "2016-08-11 16:45:14.032432",
      "name": "precipitation_1950_2013_monthly_mm",
      "north": "75.5",
      "nsres_max": "0.25",
      "nsres_min": "0.25",
      "number_of_bands": "None",
      "number_of_maps": "762",
      "raster_register": "raster_map_register_934719ed2b4841818386a6f9c5f11b09",
      "semantic_type": "mean",
      "south": "25.25",
      "start_time": "1950-01-01 00:00:00",
      "temporal_type": "absolute",
      "top": "0.0",
      "west": "-40.5"
    }

## RasterListRegisterModel: array

RasterListEntryModel

##### Example

    [
      {
        "end_time": "2013-06-01 00:00:00",
        "start_time": "2013-05-01 00:00:00",
        "name": "precipitation_monthly_mm_760"
      },
      {
        "end_time": "2013-07-01 00:00:00",
        "start_time": "2013-06-01 00:00:00",
        "name": "precipitation_monthly_mm_761"
      }
    ]

## RasterListEntryModel: object

name: string
start_time: string
end_time: string

##### Example

    {
      "name": "string",
      "start_time": "string",
      "end_time": "string"
    }

## STRDSRasterListResponseModel: object

Response schema for STRDS raster map layer list information.

status: string

  The status of the response

user_id: string

  The id of the user that issued a request

resource_id: string

  The unique resource id

process_log: ProcessLogModel

  A list of ProcessLogModels

ProcessLogModel
process_chain_list: GrassModule

  The list of GRASS modules that were used in the processing

GrassModule
process_results: STRDSRasterListEntryModel
STRDSRasterListEntryModel
progress: ProgressInfoModel
message: string

  Message for the user, maybe status, finished or error message

exception: ExceptionTracebackModel
accept_timestamp: number (double)

  The acceptance timestamp in seconds of the response

accept_datetime: string

  The acceptance timestamp of the response in human readable format

timestamp: number (double)

  The current timestamp in seconds of the response

time_delta: number (double)

  The time delta of the processing in seconds

datetime: string

  The current timestamp of the response in human readable format

http_code: number (int32)

  The HTTP code of the response

urls: UrlModel
api_info: ApiInfoModel

##### Example

    {
      "accept_datetime": "2018-05-06 21:28:18.583050",
      "accept_timestamp": 1525634898.5830483,
      "api_info": {
        "endpoint": "strdsrastermanagement",
        "method": "GET",
        "path": "/locations/ECAD/mapsets/PERMANENT/strds/precipitation_1950_2013_yearly_mm/raster_layers",
        "request_url": "http://localhost:5000/locations/ECAD/mapsets/PERMANENT/strds/precipitation_1950_2013_yearly_mm/raster_layers?where=start_time>'2010-01-01'"
      },
      "datetime": "2018-05-06 21:28:19.187395",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "flags": "u",
            "inputs": {
              "columns": "id,start_time,end_time,north,south,east,west,min,max,rows,cols",
              "input": "precipitation_1950_2013_yearly_mm@PERMANENT",
              "separator": "|",
              "where": "start_time>'2010-01-01'"
            },
            "module": "t.rast.list",
            "outputs": {
              "output": {
                "name": "/home/soeren/actinia/workspace/temp_db/gisdbase_1b72938d2ef54c199f6627b8720f21e1/.tmp/tmptps71vn7"
              }
            }
          }
        }
      ],
      "process_log": [
        {
          "executable": "t.rast.list",
          "parameter": [
            "input=precipitation_1950_2013_yearly_mm@PERMANENT",
            "where=start_time>'2010-01-01'",
            "separator=|",
            "columns=id,start_time,end_time,north,south,east,west,min,max,rows,cols",
            "output=/home/soeren/actinia/workspace/temp_db/gisdbase_1b72938d2ef54c199f6627b8720f21e1/.tmp/tmptps71vn7",
            "-u"
          ],
          "return_code": 0,
          "run_time": 0.5023984909057617,
          "stderr": [
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        {
          "cols": "201",
          "east": "75.5",
          "end_time": "2011-01-01 00:00:00",
          "id": "precipitation_yearly_mm_60@PERMANENT",
          "max": "2899.6",
          "min": "22.5",
          "north": "75.5",
          "rows": "464",
          "south": "25.25",
          "start_time": "2010-01-01 00:00:00",
          "west": "-40.5"
        },
        {
          "cols": "201",
          "east": "75.5",
          "end_time": "2012-01-01 00:00:00",
          "id": "precipitation_yearly_mm_61@PERMANENT",
          "max": "4226.0",
          "min": "10.0",
          "north": "75.5",
          "rows": "464",
          "south": "25.25",
          "start_time": "2011-01-01 00:00:00",
          "west": "-40.5"
        },
        {
          "cols": "201",
          "east": "75.5",
          "end_time": "2013-01-01 00:00:00",
          "id": "precipitation_yearly_mm_62@PERMANENT",
          "max": "3442.6",
          "min": "0.0",
          "north": "75.5",
          "rows": "464",
          "south": "25.25",
          "start_time": "2012-01-01 00:00:00",
          "west": "-40.5"
        }
      ],
      "progress": {
        "num_of_steps": 1,
        "step": 1
      },
      "resource_id": "resource_id-729ace44-6245-43c7-a875-d2059c1a1549",
      "status": "finished",
      "time_delta": 0.6043989658355713,
      "timestamp": 1525634899.1873734,
      "urls": {
        "resources": [],
        "status": "http://localhost:5000/resources/user/resource_id-729ace44-6245-43c7-a875-d2059c1a1549"
      },
      "user_id": "user"
    }

## STRDSRasterListEntryModel: object

A single raster map layer information entry

id: string
start_time: string
end_time: string
min: string
max: string
north: string
south: string
east: string
west: string
rows: string
cols: string

##### Example

    {
      "cols": "201",
      "east": "75.5",
      "end_time": "2013-06-01 00:00:00",
      "id": "precipitation_monthly_mm_760@PERMANENT",
      "max": "403.8",
      "min": "0.0",
      "north": "75.5",
      "rows": "464",
      "south": "25.25",
      "start_time": "2013-05-01 00:00:00",
      "west": "-40.5"
    }

## VectorRegionCreationModel: object

Schema for random vector generation in a specific region

region: SetRegionModel
parameter: VectorCreationModel

##### Example

    {
      "region": {
        "n": 228500,
        "s": 215000,
        "e": 645000,
        "w": 630000
      },
      "parameter": {
        "npoints": 1,
        "zmin": 1,
        "zmax": 1,
        "seed": 1
      }
    }

## VectorCreationModel: object

Schema for input parameters to generate a random point vector map layer

npoints: number (integer) 5

  Number of points to be created

seed: number (integer) 476135

  The seed to initialize the random generator. If not set the process ID is used

zmin: number (double) 0

  Minimum z height

zmax: number (double) 100

  Maximum z height

##### Example

    {
      "npoints": "number (integer)",
      "seed": "number (integer)",
      "zmin": "number (double)",
      "zmax": "number (double)"
    }

## VectorInfoResponseModel: object

Response schema for vector map layer information.

status: string

  The status of the response

user_id: string

  The id of the user that issued a request

resource_id: string

  The unique resource id

process_log: ProcessLogModel

  A list of ProcessLogModels

ProcessLogModel
process_chain_list: GrassModule

  The list of GRASS modules that were used in the processing

GrassModule
process_results: VectorInfoModel
progress: ProgressInfoModel
message: string

  Message for the user, maybe status, finished or error message

exception: ExceptionTracebackModel
accept_timestamp: number (double)

  The acceptance timestamp in seconds of the response

accept_datetime: string

  The acceptance timestamp of the response in human readable format

timestamp: number (double)

  The current timestamp in seconds of the response

time_delta: number (double)

  The time delta of the processing in seconds

datetime: string

  The current timestamp of the response in human readable format

http_code: number (int32)

  The HTTP code of the response

urls: UrlModel
api_info: ApiInfoModel

##### Example

    {
      "accept_datetime": "2018-05-06 21:36:53.825043",
      "accept_timestamp": 1525635413.8250418,
      "api_info": {
        "endpoint": "vectorlayerresource",
        "method": "GET",
        "path": "/locations/nc_spm_08/mapsets/PERMANENT/vector_layers/geology",
        "request_url": "http://localhost:5000/locations/nc_spm_08/mapsets/PERMANENT/vector_layers/geology"
      },
      "datetime": "2018-05-06 21:36:54.032325",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "flags": "gte",
            "inputs": {
              "map": "geology@PERMANENT"
            },
            "module": "v.info"
          },
          "2": {
            "flags": "h",
            "inputs": {
              "map": "geology@PERMANENT"
            },
            "module": "v.info"
          },
          "3": {
            "flags": "c",
            "inputs": {
              "map": "geology@PERMANENT"
            },
            "module": "v.info"
          }
        }
      ],
      "process_log": [
        {
          "executable": "v.info",
          "parameter": [
            "map=geology@PERMANENT",
            "-gte"
          ],
          "return_code": 0,
          "run_time": 0.050188302993774414,
          "stderr": [
            ""
          ],
          "stdout": "..."
        },
        {
          "executable": "v.info",
          "parameter": [
            "map=geology@PERMANENT",
            "-h"
          ],
          "return_code": 0,
          "run_time": 0.05018758773803711,
          "stderr": [
            ""
          ],
          "stdout": "..."
        },
        {
          "executable": "v.info",
          "parameter": [
            "map=geology@PERMANENT",
            "-c"
          ],
          "return_code": 0,
          "run_time": 0.050185441970825195,
          "stderr": [
            "Displaying column types/names for database connection of layer <1>:",
            ""
          ],
          "stdout": "..."
        }
      ],
      "process_results": {
        "Attributes": [
          {
            "column": "cat",
            "type": "INTEGER"
          },
          {
            "column": "onemap_pro",
            "type": "DOUBLE PRECISION"
          },
          {
            "column": "PERIMETER",
            "type": "DOUBLE PRECISION"
          },
          {
            "column": "GEOL250_",
            "type": "INTEGER"
          },
          {
            "column": "GEOL250_ID",
            "type": "INTEGER"
          },
          {
            "column": "GEO_NAME",
            "type": "CHARACTER"
          },
          {
            "column": "SHAPE_area",
            "type": "DOUBLE PRECISION"
          },
          {
            "column": "SHAPE_len",
            "type": "DOUBLE PRECISION"
          }
        ],
        "COMMAND": " v.db.connect -o map=\"geology@PERMANENT\" driver=\"sqlite\" database=\"$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db\" table=\"geology\" key=\"cat\" layer=\"1\" separator=\"|\"",
        "areas": "1832",
        "attribute_database": "/home/soeren/actinia/workspace/temp_db/gisdbase_d98fc0548fc44fac8fe43abd575e98cc/nc_spm_08/PERMANENT/sqlite/sqlite.db",
        "attribute_database_driver": "sqlite",
        "attribute_layer_name": "geology",
        "attribute_layer_number": "1",
        "attribute_primary_key": "cat",
        "attribute_table": "geology",
        "bottom": "0.000000",
        "boundaries": "3649",
        "centroids": "1832",
        "comment": "",
        "creator": "helena",
        "database": "/home/soeren/actinia/workspace/temp_db/gisdbase_d98fc0548fc44fac8fe43abd575e98cc",
        "digitization_threshold": "0.000000",
        "east": "930172.312822711",
        "format": "native",
        "islands": "907",
        "level": "2",
        "lines": "0",
        "location": "nc_spm_08",
        "map3d": "0",
        "mapset": "PERMANENT",
        "name": "geology",
        "nodes": "2724",
        "north": "318117.437416345",
        "num_dblinks": "1",
        "organization": "NC OneMap",
        "points": "0",
        "primitives": "5481",
        "projection": "Lambert Conformal Conic",
        "scale": "1:1",
        "source_date": "Mon Nov  6 15:48:53 2006",
        "south": "10875.8272320917",
        "timestamp": "none",
        "title": "North Carolina geology map (polygon map)",
        "top": "0.000000",
        "west": "123971.194989783"
      },
      "progress": {
        "num_of_steps": 3,
        "step": 3
      },
      "resource_id": "resource_id-5494af8c-8c9d-4f8e-a568-d6e86d69d8fd",
      "status": "finished",
      "time_delta": 0.20732927322387695,
      "timestamp": 1525635414.0323067,
      "urls": {
        "resources": [],
        "status": "http://localhost:5000/resources/user/resource_id-5494af8c-8c9d-4f8e-a568-d6e86d69d8fd"
      },
      "user_id": "user"
    }

## VectorInfoModel: object

Description of a GRASS GIS vector map layer

Attributes: VectorAttributeModel
VectorAttributeModel
COMMAND: string
areas: string
bottom: string
boundaries: string
centroids: string
comment: string
creator: string
database: string
digitization_threshold: string
east: string
faces: string
format: string
holes: string
islands: string
kernels: string
level: string
lines: string
location: string
map3d: string
mapset: string
name: string
nodes: string
north: string
num_dblinks: string
organization: string
points: string
primitives: string
projection: string
zone: string
scale: string
source_date: string
south: string
timestamp: string
title: string
top: string
volumes: string
west: string
attribute_layer_name: string
attribute_table: string
attribute_database_driver: string
attribute_database: string
attribute_primary_key: string
attribute_layer_number: string

##### Example

    {
      "Attributes": [
        {
          "column": "cat",
          "type": "INTEGER"
        },
        {
          "column": "z",
          "type": "DOUBLE PRECISION"
        }
      ],
      "COMMAND": " v.random -z output=\"test_layer\" npoints=1 layer=\"-1\" zmin=1.0 zmax=1.0 seed=1 column=\"z\" column_type=\"double precision\"",
      "areas": "0",
      "bottom": "1.000000",
      "boundaries": "0",
      "centroids": "0",
      "comment": "",
      "creator": "soeren",
      "database": "/tmp/gisdbase_b83bebdb543440c7b9991e2e5602ba91",
      "digitization_threshold": "0.000000",
      "east": "644375.544828422",
      "faces": "0",
      "format": "native",
      "holes": "0",
      "islands": "0",
      "kernels": "0",
      "level": "2",
      "lines": "0",
      "location": "nc_spm_08",
      "map3d": "1",
      "mapset": "user1",
      "name": "test_layer",
      "nodes": "0",
      "north": "221135.648003836",
      "num_dblinks": "1",
      "organization": "",
      "points": "1",
      "primitives": "1",
      "projection": "Lambert Conformal Conic",
      "scale": "1:1",
      "source_date": "Thu May 18 21:40:02 2017",
      "south": "221135.648003836",
      "timestamp": "none",
      "title": "",
      "top": "1.000000",
      "volumes": "0",
      "west": "644375.544828422",
      "attribute_database": "/tmp/gisdbase_eabed7327ec84d219698670884136c2a/nc_spm_08/user1/vector/test_layer/sqlite.db",
      "attribute_database_driver": "sqlite",
      "attribute_layer_name": "test_layer",
      "attribute_layer_number": "1",
      "attribute_primary_key": "cat",
      "attribute_table": "test_layer"
    }

## VectorAttributeModel: object

Description of a vector map layer attribute

column: string
type: string

##### Example

    {
      "cat": "INTEGER",
      "z": "DOUBLE PRECISION"
    }

## ProcessChainModel: object

Definition of the actinia process chain that includes GRASS GIS modules

version: string 1

  The version string of the process chain

list: GrassModule

  A list of process definitions that should be executed in the order provided by the list.

GrassModule
webhooks: Webhooks

##### Example

    {
      "list": [
        {
          "module": "g.region",
          "id": "g_region_1",
          "inputs": [
            {
              "import_descr": {
                "source": "https://storage.googleapis.com/graas-geodata/elev_ned_30m.tif",
                "type": "raster"
              },
              "param": "raster",
              "value": "elev_ned_30m_new"
            }
          ],
          "flags": "p"
        },
        {
          "module": "r.slope.aspect",
          "id": "r_slope_aspect_1",
          "inputs": [
            {
              "param": "elevation",
              "value": "elev_ned_30m_new"
            }
          ],
          "outputs": [
            {
              "export": {
                "format": "GTiff",
                "type": "raster"
              },
              "param": "slope",
              "value": "elev_ned_30m_new_slope"
            }
          ],
          "flags": "a"
        },
        {
          "module": "r.univar",
          "id": "r_univar_1",
          "inputs": [
            {
              "import_descr": {
                "source": "LT52170762005240COA00",
                "type": "landsat",
                "landsat_atcor": "dos1"
              },
              "param": "map",
              "value": "LT52170762005240COA00_dos1.1"
            }
          ],
          "stdout": {
            "id": "stats",
            "format": "kv",
            "delimiter": "="
          },
          "flags": "a"
        },
        {
          "module": "exporter",
          "id": "exporter_1",
          "outputs": [
            {
              "export": {
                "format": "GTiff",
                "type": "raster"
              },
              "param": "map",
              "value": "LT52170762005240COA00_dos1.1"
            }
          ]
        },
        {
          "id": "ascii_out",
          "module": "r.out.ascii",
          "inputs": [
            {
              "param": "input",
              "value": "elevation@PERMANENT"
            },
            {
              "param": "precision",
              "value": "0"
            }
          ],
          "stdout": {
            "id": "elev_1",
            "format": "table",
            "delimiter": " "
          },
          "flags": "h"
        },
        {
          "id": "ascii_export",
          "module": "r.out.ascii",
          "inputs": [
            {
              "param": "input",
              "value": "elevation@PERMANENT"
            }
          ],
          "outputs": [
            {
              "export": {
                "type": "file",
                "format": "TXT"
              },
              "param": "output",
              "value": "$file::out1"
            }
          ]
        },
        {
          "id": "raster_list",
          "module": "g.list",
          "inputs": [
            {
              "param": "type",
              "value": "raster"
            }
          ],
          "stdout": {
            "id": "raster",
            "format": "list",
            "delimiter": "\n"
          }
        },
        {
          "module": "r.what",
          "id": "r_what_1",
          "verbose": true,
          "flags": "nfic",
          "inputs": [
            {
              "param": "map",
              "value": "landuse96_28m@PERMANENT"
            },
            {
              "param": "coordinates",
              "value": "633614.08,224125.12,632972.36,225382.87"
            },
            {
              "param": "null_value",
              "value": "null"
            },
            {
              "param": "separator",
              "value": "pipe"
            }
          ],
          "stdout": {
            "id": "sample",
            "format": "table",
            "delimiter": "|"
          }
        }
      ],
      "webhooks": {
        "update": "http://business-logic.company.com/api/v3/actinia-update-webhook",
        "finished": "http://business-logic.company.com/api/v3/actinia-finished-webhook"
      },
      "version": "1"
    }

## Webhooks: object

Specify HTTP(S) GET/POST endpoints that should be called when the process chain was executed successful or unsuccessfully (finished) or when a status/progress update is available (update). The actinia JSON response will be send as JSON content to the POST endpoints after processing finished or the status was updated. The GET endpoints, that must be available by the same URL as the POST endpoints (update/finished),will be used to check if the webhooks endpoints are available.The finished endpoint is mandatory, the update endpoint is optional.

update: string

  Specify a HTTP(S) GET/POST endpoint that should be called when a status update is available while the process chain is executed. The actinia JSON status response will be send as JSON content to the POST endpoint for each status update until the process finished. The GET endpoint, that must be available by the same URL as the POST endpoint, will be used to check if the webhook endpoint is available.

finished: string

  Specify a HTTP(S) GET/POST endpoint that should be called when the process chain was executed successful or unsuccessfully. The actinia JSON response will be send as JSON content to the POST endpoint after processing finished. The GET endpoint, that must be available by the same URL as the POST endpoint, will be used to check if the webhook endpoint is available.

##### Example

    {
      "update": "http://business-logic.company.com/api/v3/actinia-update-webhook",
      "finished": "http://business-logic.company.com/api/v3/actinia-finished-webhook"
    }

## UserListResponseModel: object

Response schema that is used to list all users.

status: string

  The status of the request

user_list: string[]

  The names of all users

string

##### Example

    {
      "status": "success",
      "user_list": [
        "actinia-gdi"
      ]
    }

## UserInfoResponseModel: object

Response schema that is used to show information about a user.

status: string

  The status of the request

permissions: object

  The names of all users

cell_limit: string

  The limit of number of raster cells the user is allowed to process

process_num_limit: string

  The limit of number of processes the user is allowed to integrate into one process chain

process_time_limit: string

  The time a process must not exceed

accessible_datasets: object

  The persistent GRASS GIS databases the user is allowed to use. Contains one object for each location name with an array of strings containing all allowed mapset names. See example for more information.

accessible_modules: string[]

  The GRASS GIS modules the user is allowed to use

string

user_id: string

  The identifier of the user

user_role: string

  The role of the user

user_group: string

  The group of the user

##### Example

    {
      "Permissions": {
        "accessible_datasets": {
          "nc_spm_08": [
            "PERMANENT",
            "user1",
            "landsat"
          ]
        },
        "accessible_modules": [
          "r.blend",
          "r.buffer",
          "...",
          "t.rast.univar",
          "importer",
          "exporter"
        ],
        "cell_limit": 100000000000,
        "process_num_limit": 1000,
        "process_time_limit": 31536000
      },
      "Status": "success",
      "User group": "superadmin",
      "User id": "actinia-gdi",
      "User role": "superadmin"
    }

## TokenResponseModel: object

Response schema that is used for authentication token generation.

status: string

  The status of the resource, values: success, error

token: string

  The generated token for authentication

message: string

  The message of the token generation

##### Example

    {
      "status": "string",
      "token": "string",
      "message": "string"
    }

## ApiLogListModel: object

Response schema that represents a list of API log entries.

api_log_list: ApiLogEntryModel

  A list of ApiLogEntryModel objects

ApiLogEntryModel

##### Example

    {
      "api_log_list": [
        {
          "time_stamp": "string",
          "node": "string",
          "endpoint": "string",
          "method": "string",
          "path": "string",
          "url": "string",
          "request_str": "string"
        }
      ]
    }

## ApiLogEntryModel: object

Response schema for a single API log entry that is used to track all API

time_stamp: string

  The time stamp of the API call

node: string

  The node that executed the API call

endpoint: string

  The endpoint of the API call

method: string

  The HTTP method of the request

path: string

  The path of the REST API call

url: string

  The request URL

request_str: string

  The request string

##### Example

    {
      "time_stamp": "string",
      "node": "string",
      "endpoint": "string",
      "method": "string",
      "path": "string",
      "url": "string",
      "request_str": "string"
    }

## ProcessingResponseListModel: object

Response schema that represent a list of ProcessingResponseModel's

resource_list: ProcessingResponseModel

  A list of ProcessingResponseModel objects

ProcessingResponseModel

##### Example

    {
      "resource_list": [
        {
          "accept_datetime": "2017-05-24 22:37:21.607255",
          "accept_timestamp": 1495658241.607252,
          "api_info": {
            "endpoint": "asyncephemeralresource",
            "method": "POST",
            "path": "/locations/nc_spm_08/processing_async",
            "request_url": "http://localhost/api/v3/locations/nc_spm_08/processing_async"
          },
          "datetime": "2017-05-24 22:37:21.608717",
          "http_code": 200,
          "message": "Resource accepted",
          "process_results": {},
          "resource_id": "resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1",
          "status": "accepted",
          "timestamp": 1495658241.608716,
          "urls": {
            "resources": [],
            "status": "http://localhost/api/v3/resources/admin/resource_id-2be8cafe-b451-46a0-be15-f61d95c5efa1"
          },
          "user_id": "admin"
        }
      ]
    }

## StorageResponseModel: object

Response schema for storage management calls.

status: string

  The status of the response

user_id: string

  The id of the user that issued a request

resource_id: string

  The unique resource id

process_log: ProcessLogModel

  A list of ProcessLogModels

ProcessLogModel
process_chain_list: GrassModule

  The list of GRASS modules that were used in the processing

GrassModule
process_results: StorageModel
progress: ProgressInfoModel
message: string

  Message for the user, maybe status, finished or error message

exception: ExceptionTracebackModel
accept_timestamp: number (double)

  The acceptance timestamp in seconds of the response

accept_datetime: string

  The acceptance timestamp of the response in human readable format

timestamp: number (double)

  The current timestamp in seconds of the response

time_delta: number (double)

  The time delta of the processing in seconds

datetime: string

  The current timestamp of the response in human readable format

http_code: number (int32)

  The HTTP code of the response

urls: UrlModel
api_info: ApiInfoModel

##### Example

    {
      "accept_datetime": "2018-05-02 10:51:27.988969",
      "accept_timestamp": 1525258287.9889677,
      "api_info": {
        "endpoint": "syncresourcestorageresource",
        "method": "GET",
        "path": "/resource_storage",
        "request_url": "http://localhost:8080/resource_storage"
      },
      "datetime": "2018-05-02 10:51:28.100659",
      "http_code": 200,
      "message": "Resource storage size successfully computed",
      "process_chain_list": [],
      "process_log": [
        {
          "executable": "/usr/bin/du",
          "parameter": [
            "-sb",
            "/actinia/resources/superadmin"
          ],
          "return_code": 0,
          "run_time": 0.05042886734008789,
          "stderr": [
            ""
          ],
          "stdout": "4096\t/actinia/resources/superadmin\n"
        }
      ],
      "process_results": {
        "free": 107374178304,
        "free_percent": 99,
        "quota": 107374182400,
        "used": 4096
      },
      "progress": {
        "num_of_steps": 0,
        "step": 1
      },
      "resource_id": "resource_id-f9463d91-04a6-497c-b107-37c4ee013530",
      "status": "finished",
      "time_delta": 0.11174893379211426,
      "timestamp": 1525258288.1006439,
      "urls": {
        "resources": [],
        "status": "http://localhost:8080/resources/superadmin/resource_id-f9463d91-04a6-497c-b107-37c4ee013530"
      },
      "user_id": "superadmin"
    }

## StorageModel: object

This class defines the model to inform about available storage

used: number (int64)

  The used storage in bytes

free: number (int64)

  The free storage in bytes

quota: number (int64)

  The current quota in bytes

free_percent: number (int32)

  The free storage in percent

##### Example

    {
      "used": "number (int64)",
      "free": "number (int64)",
      "quota": "number (int64)",
      "free_percent": "number (int32)"
    }

## MapsetSizeResponseModel: object

Response schema for mapset sizes of a resource

status: string

  The status of the resource, values: success, error

mapset_sizes: integer[]

  The list of mapset sizes of a resource in bytes

integer

##### Example

    {
      "mapset_sizes": [
        29946,
        29946
      ],
      "status": "success"
    }

## MaxMapsetSizeResponseModel: object

Response schema for maximum mapset size of a resouce

status: string

  The status of the resource, values: success, error

max_mapset_size: integer

  The maximum mapset size of a resource in bytes

##### Example

    {
      "max_mapset_size": 29949,
      "status": "success"
    }

## RasterAreaUnivarStatsResponseModel: object

Response schema for resources that generate area univariate result lists

status: string

  The status of the response

user_id: string

  The id of the user that issued a request

resource_id: string

  The unique resource id

process_log: ProcessLogModel

  A list of ProcessLogModels

ProcessLogModel
process_chain_list: GrassModule

  The list of GRASS modules that were used in the processing

GrassModule
process_results: AreaUnivarResultModel
AreaUnivarResultModel
progress: ProgressInfoModel
message: string

  Message for the user, maybe status, finished or error message

exception: ExceptionTracebackModel
accept_timestamp: number (double)

  The acceptance timestamp in seconds of the response

accept_datetime: string

  The acceptance timestamp of the response in human readable format

timestamp: number (double)

  The current timestamp in seconds of the response

time_delta: number (double)

  The time delta of the processing in seconds

datetime: string

  The current timestamp of the response in human readable format

http_code: number (int32)

  The HTTP code of the response

urls: UrlModel
api_info: ApiInfoModel

##### Example

    {
      "accept_datetime": "2018-05-04 22:07:14.108967",
      "accept_timestamp": 1525464434.1089664,
      "api_info": {
        "endpoint": "syncephemeralrasterareastatsunivarresource",
        "method": "POST",
        "path": "/api/v3/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/towns/area_stats_univar_sync",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/towns/area_stats_univar_sync"
      },
      "datetime": "2018-05-04 22:07:15.793146",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "inputs": {
              "input": "/tmp/gisdbase_d36dd6841e7446f3b8d3b1bf5adcf527/.tmp/tmpdqtuzub4"
            },
            "module": "v.import",
            "outputs": {
              "output": {
                "name": "polygon"
              }
            },
            "superquiet": true
          }
        },
        {
          "2": {
            "flags": "p",
            "inputs": {
              "vector": "polygon"
            },
            "module": "g.region"
          },
          "3": {
            "inputs": {
              "column_prefix": "raster",
              "map": "polygon",
              "method": "number,minimum,maximum,range,average,median,stddev,sum,variance,coeff_var",
              "raster": "towns@PERMANENT"
            },
            "module": "v.rast.stats",
            "superquiet": true
          },
          "4": {
            "inputs": {
              "map": "polygon"
            },
            "module": "v.db.select",
            "outputs": {
              "file": {
                "name": "/tmp/gisdbase_d36dd6841e7446f3b8d3b1bf5adcf527/.tmp/tmpztw47z19"
              }
            }
          }
        }
      ],
      "process_log": [
        {
          "executable": "v.import",
          "parameter": [
            "input=/tmp/gisdbase_d36dd6841e7446f3b8d3b1bf5adcf527/.tmp/tmpdqtuzub4",
            "output=polygon",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 0.1504511833190918,
          "stderr": [
            "WARNING: Width for column fid set to 255 (was not specified by OGR), some strings may be truncated!",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "vector=polygon",
            "-p"
          ],
          "return_code": 0,
          "run_time": 0.050218820571899414,
          "stderr": [
            ""
          ],
          "stdout": "projection: 99 (Lambert Conformal Conic)\nzone:       0\ndatum:      nad83\nellipsoid:  a=6378137 es=0.006694380022900787\nnorth:      228500\nsouth:      215000\nwest:       630000\neast:       645000\nnsres:      500\newres:      500\nrows:       27\ncols:       30\ncells:      810\n"
        },
        {
          "executable": "v.rast.stats",
          "parameter": [
            "raster=towns@PERMANENT",
            "map=polygon",
            "column_prefix=raster",
            "method=number,minimum,maximum,range,average,median,stddev,sum,variance,coeff_var",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 1.354858636856079,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "v.db.select",
          "parameter": [
            "map=polygon",
            "file=/tmp/gisdbase_d36dd6841e7446f3b8d3b1bf5adcf527/.tmp/tmpztw47z19"
          ],
          "return_code": 0,
          "run_time": 0.05019712448120117,
          "stderr": [
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        {
          "cat": "1",
          "fid": "swwake_10m.0",
          "raster_average": 4.27381481481481,
          "raster_coeff_var": 36.2154244540989,
          "raster_maximum": 6,
          "raster_median": 5,
          "raster_minimum": 1,
          "raster_number": 2025000,
          "raster_range": 5,
          "raster_stddev": 1.54778017556735,
          "raster_sum": 8654475,
          "raster_variance": 2.39562347187929
        }
      ],
      "progress": {
        "num_of_steps": 4,
        "step": 4
      },
      "resource_id": "resource_id-ed2c2fdb-9963-4f71-acd0-1fbdff93f590",
      "status": "finished",
      "time_delta": 1.6842188835144043,
      "timestamp": 1525464435.7931283,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-ed2c2fdb-9963-4f71-acd0-1fbdff93f590"
      },
      "user_id": "admin"
    }

## AreaUnivarResultModel: object

Response schema for the result of univariate computations of raster layers

fid: string

  Field id from the polygon of the vector map layer used for area stats computation

cat: string

  The category id from the polygon of the vector map layer used for area stats computation

raster_number: number (double)
raster_minimum: number (double)
raster_maximum: number (double)
raster_range: number (double)
raster_average: number (double)
raster_median: number (double)
raster_stddev: number (double)
raster_sum: number (double)
raster_variance: number (double)
raster_coeff_var: number (double)

##### Example

    {
      "cat": "1",
      "fid": "swwake_10m.0",
      "raster_average": 4.27381481481481,
      "raster_coeff_var": 36.2154244540989,
      "raster_maximum": 6,
      "raster_median": 5,
      "raster_minimum": 1,
      "raster_number": 2025000,
      "raster_range": 5,
      "raster_stddev": 1.54778017556735,
      "raster_sum": 8654475,
      "raster_variance": 2.39562347187929
    }

## RasterAreaStatsResponseModel: object

Response schema for a list of categorical statistics.

status: string

  The status of the response

user_id: string

  The id of the user that issued a request

resource_id: string

  The unique resource id

process_log: ProcessLogModel

  A list of ProcessLogModels

ProcessLogModel
process_chain_list: GrassModule

  The list of GRASS modules that were used in the processing

GrassModule
process_results: CategoricalStatisticsResultModel
CategoricalStatisticsResultModel
progress: ProgressInfoModel
message: string

  Message for the user, maybe status, finished or error message

exception: ExceptionTracebackModel
accept_timestamp: number (double)

  The acceptance timestamp in seconds of the response

accept_datetime: string

  The acceptance timestamp of the response in human readable format

timestamp: number (double)

  The current timestamp in seconds of the response

time_delta: number (double)

  The time delta of the processing in seconds

datetime: string

  The current timestamp of the response in human readable format

http_code: number (int32)

  The HTTP code of the response

urls: UrlModel
api_info: ApiInfoModel

##### Example

    {
      "accept_datetime": "2018-05-04 22:02:42.503999",
      "accept_timestamp": 1525464162.5039973,
      "api_info": {
        "endpoint": "syncephemeralrasterareastatsresource",
        "method": "POST",
        "path": "/api/v3/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/landuse96_28m/area_stats_sync",
        "request_url": "http://localhost/api/v3/locations/nc_spm_08/mapsets/PERMANENT/raster_layers/landuse96_28m/area_stats_sync"
      },
      "datetime": "2018-05-04 22:02:43.014544",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "inputs": {
              "input": "/tmp/gisdbase_c9071ae8c7844743a40fc2f864911a69/.tmp/tmpfgs_4jur"
            },
            "module": "v.import",
            "outputs": {
              "output": {
                "name": "polygon"
              }
            },
            "superquiet": true
          }
        },
        {
          "2": {
            "flags": "p",
            "inputs": {
              "align": "landuse96_28m@PERMANENT",
              "vector": "polygon"
            },
            "module": "g.region"
          },
          "3": {
            "inputs": {
              "vector": "polygon"
            },
            "module": "r.mask",
            "superquiet": true
          },
          "4": {
            "flags": "acpl",
            "inputs": {
              "input": "landuse96_28m@PERMANENT",
              "separator": "|"
            },
            "module": "r.stats",
            "outputs": {
              "output": {
                "name": "/tmp/gisdbase_c9071ae8c7844743a40fc2f864911a69/.tmp/tmp00trsfwh"
              }
            },
            "superquiet": true
          }
        }
      ],
      "process_log": [
        {
          "executable": "v.import",
          "parameter": [
            "input=/tmp/gisdbase_c9071ae8c7844743a40fc2f864911a69/.tmp/tmpfgs_4jur",
            "output=polygon",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 0.15042471885681152,
          "stderr": [
            "WARNING: Width for column fid set to 255 (was not specified by OGR), some strings may be truncated!",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "vector=polygon",
            "align=landuse96_28m@PERMANENT",
            "-p"
          ],
          "return_code": 0,
          "run_time": 0.050189971923828125,
          "stderr": [
            ""
          ],
          "stdout": "projection: 99 (Lambert Conformal Conic)\nzone:       0\ndatum:      nad83\nellipsoid:  a=6378137 es=0.006694380022900787\nnorth:      228527.25\nsouth:      214989.75\nwest:       629980\neast:       645028\nnsres:      28.5\newres:      28.5\nrows:       475\ncols:       528\ncells:      250800\n"
        },
        {
          "executable": "r.mask",
          "parameter": [
            "vector=polygon",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 0.1504218578338623,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.stats",
          "parameter": [
            "separator=|",
            "input=landuse96_28m@PERMANENT",
            "output=/tmp/gisdbase_c9071ae8c7844743a40fc2f864911a69/.tmp/tmp00trsfwh",
            "-acpl",
            "--qq"
          ],
          "return_code": 0,
          "run_time": 0.050148725509643555,
          "stderr": [
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        {
          "area": 812.25,
          "cat": "0",
          "cell_count": 1,
          "name": "not classified",
          "percent": 0
        },
        {
          "area": 28297165.5,
          "cat": "1",
          "cell_count": 34838,
          "name": "High Intensity Developed",
          "percent": 13.89
        },
        {
          "area": 30871185.75,
          "cat": "2",
          "cell_count": 38007,
          "name": "Low Intensity Developed",
          "percent": 15.16
        },
        {
          "area": 1727655.75,
          "cat": "3",
          "cell_count": 2127,
          "name": "Cultivated",
          "percent": 0.85
        },
        {
          "area": 20610843.75,
          "cat": "4",
          "cell_count": 25375,
          "name": "Managed Herbaceous Cover",
          "percent": 10.12
        },
        {
          "area": 24367.5,
          "cat": "6",
          "cell_count": 30,
          "name": "Riverine/Estuarine Herbaceous",
          "percent": 0.01
        },
        {
          "area": 13308716.25,
          "cat": "7",
          "cell_count": 16385,
          "name": "Evergreen Shrubland",
          "percent": 6.53
        },
        {
          "area": 256671,
          "cat": "8",
          "cell_count": 316,
          "name": "Deciduous Shrubland",
          "percent": 0.13
        },
        {
          "area": 36551.25,
          "cat": "9",
          "cell_count": 45,
          "name": "Mixed Shrubland",
          "percent": 0.02
        },
        {
          "area": 6394032,
          "cat": "10",
          "cell_count": 7872,
          "name": "Mixed Hardwoods",
          "percent": 3.14
        },
        {
          "area": 15972896.25,
          "cat": "11",
          "cell_count": 19665,
          "name": "Bottomland Hardwoods/Hardwood Swamps",
          "percent": 7.84
        },
        {
          "area": 52401496.5,
          "cat": "15",
          "cell_count": 64514,
          "name": "Southern Yellow Pine",
          "percent": 25.72
        },
        {
          "area": 27352518.75,
          "cat": "18",
          "cell_count": 33675,
          "name": "Mixed Hardwoods/Conifers",
          "percent": 13.43
        },
        {
          "area": 4289492.25,
          "cat": "20",
          "cell_count": 5281,
          "name": "Water Bodies",
          "percent": 2.11
        },
        {
          "area": 157576.5,
          "cat": "21",
          "cell_count": 194,
          "name": "Unconsolidated Sediment",
          "percent": 0.08
        },
        {
          "area": 2010318.75,
          "cat": "*",
          "cell_count": 2475,
          "name": "no data",
          "percent": 0.99
        }
      ],
      "progress": {
        "num_of_steps": 4,
        "step": 4
      },
      "resource_id": "resource_id-9757d66b-4986-4bc7-9b7d-7f985900fb20",
      "status": "finished",
      "time_delta": 0.5105781555175781,
      "timestamp": 1525464163.0145323,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/resources/admin/resource_id-9757d66b-4986-4bc7-9b7d-7f985900fb20"
      },
      "user_id": "admin"
    }

## CategoricalStatisticsResultModel: object

Response schema for the result of r.stats computations of raster layers.

cat: string

  The raster category

name: string

  The name of raster category

area: number (double)

  The size of the area in square meters

cell_count: number (double)

  The number of cells that have the raster category

percent: number (double)

  The percentage of the area

##### Example

    {
      "area": 812.25,
      "cat": "0",
      "cell_count": 1,
      "name": "not classified",
      "percent": 0
    }

## PointListModel: object

This schema defines the JSON input of the strds sampling resource

points: string[][]

  A list of coordinate points with unique ids [(id, x, y), (id, x, y), (id, x, y)]

string[]
string
where: string

  The where statement to select specific subsets of the strds, for example: start_time > '2001-01-01'

##### Example

    {
      "where": "start_time > '2001-01-01'",
      "points": [
        [
          "a",
          "1",
          "1"
        ],
        [
          "b",
          "2",
          "2"
        ],
        [
          "c",
          "3",
          "3"
        ]
      ]
    }

## STRDSSampleResponseModel: object

Response schema for a STRDS sampling result.

status: string

  The status of the response

user_id: string

  The id of the user that issued a request

resource_id: string

  The unique resource id

process_log: ProcessLogModel

  A list of ProcessLogModels

ProcessLogModel
process_chain_list: GrassModule

  The list of GRASS modules that were used in the processing

GrassModule
process_results: string[][]
string[]
string
progress: ProgressInfoModel
message: string

  Message for the user, maybe status, finished or error message

exception: ExceptionTracebackModel
accept_timestamp: number (double)

  The acceptance timestamp in seconds of the response

accept_datetime: string

  The acceptance timestamp of the response in human readable format

timestamp: number (double)

  The current timestamp in seconds of the response

time_delta: number (double)

  The time delta of the processing in seconds

datetime: string

  The current timestamp of the response in human readable format

http_code: number (int32)

  The HTTP code of the response

urls: UrlModel
api_info: ApiInfoModel

##### Example

    {
      "accept_datetime": "2017-05-11 10:09:47.237997",
      "accept_timestamp": 1494490187.237996,
      "api_info": {
        "endpoint": "syncephemeralstrdssamplingresource",
        "method": "POST",
        "path": "/locations/ECAD/mapsets/PERMANENT/strds/temperature_mean_1950_2013_yearly_celsius/sampling_sync",
        "request_url": "http://localhost/locations/ECAD/mapsets/PERMANENT/strds/temperature_mean_1950_2013_yearly_celsius/sampling_sync"
      },
      "datetime": "2017-05-11 10:09:48.376521",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_log": [
        {
          "executable": "v.in.ascii",
          "parameter": [
            "column=id text, x double precision, y double precision",
            "input=/tmp/tmpOlouNV",
            "y=3",
            "x=2",
            "format=point",
            "output=input_points"
          ],
          "return_code": 0,
          "stderr": [
            "Scanning input for column types...",
            "Number of columns: 3",
            "Number of rows: 3",
            "Importing points...",
            "0..33..66..100",
            "Populating table...",
            "Building topology for vector map <input_points@mapset_ffb3520846104a42878271a83117a93f>...",
            "Registering primitives...",
            "",
            "3 primitives registered",
            "3 vertices registered",
            "Building areas...",
            "0..33..66..100",
            "0 areas built",
            "0 isles built",
            "Attaching islands...",
            "Attaching centroids...",
            "33..66..100",
            "Number of nodes: 0",
            "Number of primitives: 3",
            "Number of points: 3",
            "Number of lines: 0",
            "Number of boundaries: 0",
            "Number of centroids: 0",
            "Number of areas: 0",
            "Number of isles: 0",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "t.rast.sample",
          "parameter": [
            "column=id",
            "points=input_points",
            "where=start_time >'2010-01-01'",
            "strds=temperature_mean_1950_2013_yearly_celsius@PERMANENT",
            "output=/tmp/tmpgU9ITw",
            "-rn",
            "--o",
            "--v"
          ],
          "return_code": 0,
          "stderr": [
            "Sample map <temperature_mean_yearly_celsius_60> number  1 out of 3",
            "Sample map <temperature_mean_yearly_celsius_61> number  2 out of 3",
            "Sample map <temperature_mean_yearly_celsius_62> number  3 out of 3",
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        [
          "start_time",
          "end_time",
          "a",
          "b",
          "c"
        ],
        [
          "2010-01-01 00:00:00",
          "2011-01-01 00:00:00",
          "16.5293979135",
          "7.50153213006",
          "7.67950249616"
        ],
        [
          "2011-01-01 00:00:00",
          "2012-01-01 00:00:00",
          "17.3258000667",
          "9.35620500512",
          "8.37665885817"
        ],
        [
          "2012-01-01 00:00:00",
          "2013-01-01 00:00:00",
          "16.5512179273",
          "8.8377879125",
          "7.87268863552"
        ]
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 2
      },
      "resource_id": "resource_id-96554e63-3dad-4a16-8652-e7c6be734057",
      "status": "finished",
      "timestamp": 1494490188.376519,
      "urls": {
        "resources": [],
        "status": "http://localhost/status/admin/resource_id-96554e63-3dad-4a16-8652-e7c6be734057"
      },
      "user_id": "admin"
    }

## STRDSSampleGeoJSONResponseModel: object

The response content that is returned by the POST request

status: string

  The status of the response

user_id: string

  The id of the user that issued a request

resource_id: string

  The unique resource id

process_log: ProcessLogModel

  A list of ProcessLogModels

ProcessLogModel
process_chain_list: GrassModule

  The list of GRASS modules that were used in the processing

GrassModule
process_results: string[][]
string[]
string
progress: ProgressInfoModel
message: string

  Message for the user, maybe status, finished or error message

exception: ExceptionTracebackModel
accept_timestamp: number (double)

  The acceptance timestamp in seconds of the response

accept_datetime: string

  The acceptance timestamp of the response in human readable format

timestamp: number (double)

  The current timestamp in seconds of the response

time_delta: number (double)

  The time delta of the processing in seconds

datetime: string

  The current timestamp of the response in human readable format

http_code: number (int32)

  The HTTP code of the response

urls: UrlModel
api_info: ApiInfoModel

##### Example

    {
      "accept_datetime": "2017-09-04 19:41:41.456341",
      "accept_timestamp": 1504546901.456339,
      "api_info": {
        "endpoint": "syncephemeralstrdssamplinggeojsonresource",
        "method": "POST",
        "path": "/api/v3/locations/ECAD/mapsets/PERMANENT/strds/temperature_mean_1950_2013_yearly_celsius/sampling_sync_geojson",
        "request_url": "http://localhost/api/v3/locations/ECAD/mapsets/PERMANENT/strds/temperature_mean_1950_2013_yearly_celsius/sampling_sync_geojson"
      },
      "datetime": "2017-09-04 19:41:42.622865",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_log": [
        {
          "executable": "v.import",
          "parameter": [
            "input=/tmp/gisdbase_3e090bec1a744be78743668a573cbf5b/.tmp/tmpk6Le10",
            "output=input_points"
          ],
          "return_code": 0,
          "run_time": 0.25067806243896484,
          "stderr": [
            "Check if OGR layer <OGRGeoJSON> contains polygons...",
            "0..33..66..100",
            "Column name <cat> renamed to <cat_>",
            "Importing 3 features (OGR layer <OGRGeoJSON>)...",
            "0..33..66..100",
            "-----------------------------------------------------",
            "Building topology for vector map <input_points@mapset_3e090bec1a744be78743668a573cbf5b>...",
            "Registering primitives...",
            "",
            "3 primitives registered",
            "3 vertices registered",
            "Building areas...",
            "0..33..66..100",
            "0 areas built",
            "0 isles built",
            "Attaching islands...",
            "Attaching centroids...",
            "33..66..100",
            "Number of nodes: 0",
            "Number of primitives: 3",
            "Number of points: 3",
            "Number of lines: 0",
            "Number of boundaries: 0",
            "Number of centroids: 0",
            "Number of areas: 0",
            "Number of isles: 0",
            "Input </tmp/gisdbase_3e090bec1a744be78743668a573cbf5b/.tmp/tmpk6Le10> successfully imported without reprojection",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "t.rast.sample",
          "parameter": [
            "points=input_points",
            "strds=temperature_mean_1950_2013_yearly_celsius@PERMANENT",
            "output=/tmp/gisdbase_3e090bec1a744be78743668a573cbf5b/.tmp/tmp3ilr28",
            "-rn",
            "--o",
            "--v"
          ],
          "return_code": 0,
          "run_time": 0.5513670444488525,
          "stderr": [
            "Default TGIS driver / database set to:",
            "driver: sqlite",
            "database: $GISDBASE/$LOCATION_NAME/$MAPSET/tgis/sqlite.db",
            "WARNING: Temporal database connection defined as:",
            "/tmp/gisdbase_3e090bec1a744be78743668a573cbf5b/ECAD/mapset_3e090bec1a744be78743668a573cbf5b/tgis/sqlite.db",
            "But database file does not exist.",
            "Creating temporal database: /tmp/gisdbase_3e090bec1a744be78743668a573cbf5b/ECAD/mapset_3e090bec1a744be78743668a573cbf5b/tgis/sqlite.db",
            "Sample map <temperature_mean_yearly_celsius_0> number  1 out of 63",
            "Sample map <temperature_mean_yearly_celsius_62> number  63 out of 63",
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        [
          "start_time",
          "end_time",
          "1",
          "2",
          "3"
        ],
        [
          "1950-01-01 00:00:00",
          "1951-01-01 00:00:00",
          "16.4121888761",
          "8.17818215566",
          "7.17657693292"
        ],
        [
          "2012-01-01 00:00:00",
          "2013-01-01 00:00:00",
          "16.5512179273",
          "8.8377879125",
          "7.87268863552"
        ]
      ],
      "progress": {
        "num_of_steps": 2,
        "step": 2
      },
      "resource_id": "resource_id-6ee74d8c-1ef6-4b01-a098-2bc04bcb75c8",
      "status": "finished",
      "time_delta": 1.1665611267089844,
      "timestamp": 1504546902.622857,
      "urls": {
        "resources": [],
        "status": "http://localhost/api/v3/status/admin/resource_id-6ee74d8c-1ef6-4b01-a098-2bc04bcb75c8"
      },
      "user_id": "admin"
    }

## SatelliteSceneList: object

resource_list: SatelliteSceneEntry

  A list of satellite scenes

SatelliteSceneEntry

##### Example

    [
      {
        "cloud_cover": "100.0",
        "east_lon": 117.334772,
        "north_lat": -73.8673822679,
        "scene_id": "S2A_MSIL1C_20170101T003802_N0204_R116_T50CMC_20170101T003759",
        "sensing_time": "2017-01-01T00:37:59.459000Z",
        "south_lat": -74.8755595194,
        "total_size": 608562784,
        "west_lon": 113.568673296
      },
      {
        "cloud_cover": "100.0",
        "east_lon": 117.355376908,
        "north_lat": -74.7623823271,
        "scene_id": "S2A_MSIL1C_20170101T003802_N0204_R116_T50CMB_20170101T003759",
        "sensing_time": "2017-01-01T00:37:59.459000Z",
        "south_lat": -75.7719656592,
        "total_size": 604326630,
        "west_lon": 113.35802037
      }
    ]

## SatelliteSceneEntry: object

scene_id: string

  The id of the satellite scene

sensing_time: string

  The sensing time of the scene

cloud_cover: number (double)

  Cloud cover of the scene 0-100

east_lon: number (double)

  Eastern border of the scene

west_lon: number (double)

  Western border of the scene

north_lat: number (double)

  Northern border of the scene

south_lat: number (double)

  Southern border of the scene

total_size: number (double)

  Total size of the scene

##### Example

    {
      "cloud_cover": "100.0",
      "east_lon": 117.334772,
      "north_lat": -73.8673822679,
      "scene_id": "S2A_MSIL1C_20170101T003802_N0204_R116_T50CMC_20170101T003759",
      "sensing_time": "2017-01-01T00:37:59.459000Z",
      "south_lat": -74.8755595194,
      "total_size": 608562784,
      "west_lon": 113.568673296
    }

## LandsatNDVIResponseModel: object

The response of the Landsat vegetation index computation

status: string

  The status of the response

user_id: string

  The id of the user that issued a request

resource_id: string

  The unique resource id

process_log: ProcessLogModel

  A list of ProcessLogModels

ProcessLogModel
process_chain_list: GrassModule

  The list of GRASS modules that were used in the processing

GrassModule
process_results: UnivarResultModel
UnivarResultModel
progress: ProgressInfoModel
message: string

  Message for the user, maybe status, finished or error message

exception: ExceptionTracebackModel
accept_timestamp: number (double)

  The acceptance timestamp in seconds of the response

accept_datetime: string

  The acceptance timestamp of the response in human readable format

timestamp: number (double)

  The current timestamp in seconds of the response

time_delta: number (double)

  The time delta of the processing in seconds

datetime: string

  The current timestamp of the response in human readable format

http_code: number (int32)

  The HTTP code of the response

urls: UrlModel
api_info: ApiInfoModel

##### Example

    {
      "accept_datetime": "2018-05-30 11:16:03.033305",
      "accept_timestamp": 1527678963.033304,
      "api_info": {
        "endpoint": "asyncephemerallandsatprocessingresource",
        "method": "POST",
        "path": "/api/v3/landsat_process/LC80440342016259LGN00/TOAR/NDVI",
        "request_url": "http://localhost:5000/api/v3/landsat_process/LC80440342016259LGN00/TOAR/NDVI"
      },
      "datetime": "2018-05-30 11:22:58.315162",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "flags": "g",
            "inputs": {
              "map": "LC80440342016259LGN00_TOAR_NDVI"
            },
            "module": "r.univar",
            "outputs": {
              "output": {
                "name": "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/tmpkiv0uv6z.univar"
              }
            }
          }
        },
        {
          "1": {
            "flags": "n",
            "inputs": {
              "map": "LC80440342016259LGN00_TOAR_NDVI"
            },
            "module": "d.rast"
          },
          "2": {
            "flags": "n",
            "inputs": {
              "at": "8,92,0,7",
              "raster": "LC80440342016259LGN00_TOAR_NDVI"
            },
            "module": "d.legend"
          }
        }
      ],
      "process_log": [
        {
          "executable": "/usr/bin/wget",
          "parameter": [
            "-t5",
            "-c",
            "-q",
            "-O",
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B6.TIF",
            "https://storage.googleapis.com/gcp-public-data-landsat/LC08/PRE/044/034/LC80440342016259LGN00/LC80440342016259LGN00_B6.TIF"
          ],
          "return_code": 0,
          "run_time": 23.63347291946411,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B6.TIF",
            "/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B6.TIF"
          ],
          "return_code": 0,
          "run_time": 0.05022144317626953,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/wget",
          "parameter": [
            "-t5",
            "-c",
            "-q",
            "-O",
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B7.TIF",
            "https://storage.googleapis.com/gcp-public-data-landsat/LC08/PRE/044/034/LC80440342016259LGN00/LC80440342016259LGN00_B7.TIF"
          ],
          "return_code": 0,
          "run_time": 22.89448094367981,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B7.TIF",
            "/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B7.TIF"
          ],
          "return_code": 0,
          "run_time": 0.051961421966552734,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/wget",
          "parameter": [
            "-t5",
            "-c",
            "-q",
            "-O",
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B8.TIF",
            "https://storage.googleapis.com/gcp-public-data-landsat/LC08/PRE/044/034/LC80440342016259LGN00/LC80440342016259LGN00_B8.TIF"
          ],
          "return_code": 0,
          "run_time": 83.04966020584106,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B8.TIF",
            "/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B8.TIF"
          ],
          "return_code": 0,
          "run_time": 0.05012321472167969,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/wget",
          "parameter": [
            "-t5",
            "-c",
            "-q",
            "-O",
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B9.TIF",
            "https://storage.googleapis.com/gcp-public-data-landsat/LC08/PRE/044/034/LC80440342016259LGN00/LC80440342016259LGN00_B9.TIF"
          ],
          "return_code": 0,
          "run_time": 11.948487043380737,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B9.TIF",
            "/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B9.TIF"
          ],
          "return_code": 0,
          "run_time": 0.05081939697265625,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/wget",
          "parameter": [
            "-t5",
            "-c",
            "-q",
            "-O",
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B10.TIF",
            "https://storage.googleapis.com/gcp-public-data-landsat/LC08/PRE/044/034/LC80440342016259LGN00/LC80440342016259LGN00_B10.TIF"
          ],
          "return_code": 0,
          "run_time": 15.688527345657349,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B10.TIF",
            "/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B10.TIF"
          ],
          "return_code": 0,
          "run_time": 0.05163097381591797,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/wget",
          "parameter": [
            "-t5",
            "-c",
            "-q",
            "-O",
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B11.TIF",
            "https://storage.googleapis.com/gcp-public-data-landsat/LC08/PRE/044/034/LC80440342016259LGN00/LC80440342016259LGN00_B11.TIF"
          ],
          "return_code": 0,
          "run_time": 15.100370645523071,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_B11.TIF",
            "/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B11.TIF"
          ],
          "return_code": 0,
          "run_time": 0.05057358741760254,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/wget",
          "parameter": [
            "-t5",
            "-c",
            "-q",
            "-O",
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_MTL.txt",
            "https://storage.googleapis.com/gcp-public-data-landsat/LC08/PRE/044/034/LC80440342016259LGN00/LC80440342016259LGN00_MTL.txt"
          ],
          "return_code": 0,
          "run_time": 0.25395917892456055,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_MTL.txt",
            "/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_MTL.txt"
          ],
          "return_code": 0,
          "run_time": 0.05015206336975098,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "python3",
          "parameter": [
            "/usr/local/bin/grass",
            "-e",
            "-c",
            "/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B1.TIF",
            "/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/Landsat"
          ],
          "return_code": 0,
          "run_time": 0.15161657333374023,
          "stderr": [
            "Default locale settings are missing. GRASS running with C locale.WARNING: Searched for a web browser, but none found",
            "Creating new GRASS GIS location/mapset...",
            "Cleaning up temporary files...",
            ""
          ],
          "stdout": "Default locale not found, using UTF-8\n"
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B1.TIF",
            "output=LC80440342016259LGN00.1",
            "--q"
          ],
          "return_code": 0,
          "run_time": 3.093010902404785,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B2.TIF",
            "output=LC80440342016259LGN00.2",
            "--q"
          ],
          "return_code": 0,
          "run_time": 3.020535707473755,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B3.TIF",
            "output=LC80440342016259LGN00.3",
            "--q"
          ],
          "return_code": 0,
          "run_time": 2.9988090991973877,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B4.TIF",
            "output=LC80440342016259LGN00.4",
            "--q"
          ],
          "return_code": 0,
          "run_time": 3.0504379272460938,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B5.TIF",
            "output=LC80440342016259LGN00.5",
            "--q"
          ],
          "return_code": 0,
          "run_time": 3.0378293991088867,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B6.TIF",
            "output=LC80440342016259LGN00.6",
            "--q"
          ],
          "return_code": 0,
          "run_time": 3.1231300830841064,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B7.TIF",
            "output=LC80440342016259LGN00.7",
            "--q"
          ],
          "return_code": 0,
          "run_time": 3.0385892391204834,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B8.TIF",
            "output=LC80440342016259LGN00.8",
            "--q"
          ],
          "return_code": 0,
          "run_time": 11.727607488632202,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B9.TIF",
            "output=LC80440342016259LGN00.9",
            "--q"
          ],
          "return_code": 0,
          "run_time": 3.531238317489624,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B10.TIF",
            "output=LC80440342016259LGN00.10",
            "--q"
          ],
          "return_code": 0,
          "run_time": 3.1895594596862793,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_B11.TIF",
            "output=LC80440342016259LGN00.11",
            "--q"
          ],
          "return_code": 0,
          "run_time": 3.1583566665649414,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "i.landsat.toar",
          "parameter": [
            "input=LC80440342016259LGN00.",
            "metfile=/actinia/workspace/download_cache/superadmin/LC80440342016259LGN00_MTL.txt",
            "method=uncorrected",
            "output=LC80440342016259LGN00_TOAR.",
            "--q"
          ],
          "return_code": 0,
          "run_time": 101.34896063804626,
          "stderr": [
            "WARNING: ESUN evaluated from REFLECTANCE_MAXIMUM_BAND",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "i.vi",
          "parameter": [
            "red=LC80440342016259LGN00_TOAR.4",
            "nir=LC80440342016259LGN00_TOAR.5",
            "green=LC80440342016259LGN00_TOAR.3",
            "blue=LC80440342016259LGN00_TOAR.2",
            "band5=LC80440342016259LGN00_TOAR.7",
            "band7=LC80440342016259LGN00_TOAR.8",
            "viname=ndvi",
            "output=LC80440342016259LGN00_TOAR_NDVI"
          ],
          "return_code": 0,
          "run_time": 45.43833112716675,
          "stderr": [
            "0..3..6..9..12..15..18..21..24..27..30..33..36..39..42..45..48..51..54..57..60..63..66..69..72..75..78..81..84..87..90..93..96..99..100",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.colors",
          "parameter": [
            "map=LC80440342016259LGN00_TOAR_NDVI",
            "color=ndvi"
          ],
          "return_code": 0,
          "run_time": 0.050219058990478516,
          "stderr": [
            "Color table for raster map <LC80440342016259LGN00_TOAR_NDVI> set to 'ndvi'",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.univar",
          "parameter": [
            "map=LC80440342016259LGN00_TOAR_NDVI",
            "output=/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/tmpkiv0uv6z.univar",
            "-g"
          ],
          "return_code": 0,
          "run_time": 2.5560226440429688,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "d.rast",
          "parameter": [
            "map=LC80440342016259LGN00_TOAR_NDVI",
            "-n"
          ],
          "return_code": 0,
          "run_time": 1.2287390232086182,
          "stderr": [
            "0..3..6..9..12..15..18..21..24..27..30..33..36..39..42..45..48..51..54..57..60..63..66..69..72..75..78..81..84..87..90..93..96..99..100",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "d.legend",
          "parameter": [
            "raster=LC80440342016259LGN00_TOAR_NDVI",
            "at=8,92,0,7",
            "-n"
          ],
          "return_code": 0,
          "run_time": 0.37291598320007324,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "raster=LC80440342016259LGN00_TOAR_NDVI",
            "-g"
          ],
          "return_code": 0,
          "run_time": 0.051508188247680664,
          "stderr": [
            ""
          ],
          "stdout": "projection=1\nzone=10\nn=4264515\ns=4030185\nw=464385\ne=694515\nnsres=30\newres=30\nrows=7811\ncols=7671\ncells=59918181\n"
        },
        {
          "executable": "r.out.gdal",
          "parameter": [
            "-fm",
            "input=LC80440342016259LGN00_TOAR_NDVI",
            "format=GTiff",
            "createopt=COMPRESS=LZW",
            "output=/actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_TOAR_NDVI.tiff"
          ],
          "return_code": 0,
          "run_time": 8.784564018249512,
          "stderr": [
            "Checking GDAL data type and nodata value...",
            "2..5..8..11..14..17..20..23..26..29..32..35..38..41..44..47..50..53..56..59..62..65..68..71..74..77..80..83..86..89..92..95..98..100",
            "Using GDAL data type <Float64>",
            "Input raster map contains cells with NULL-value (no-data). The value -nan will be used to represent no-data values in the input map. You can specify a nodata value with the nodata option.",
            "Exporting raster data to GTiff format...",
            "ERROR 6: SetColorTable() only supported for Byte or UInt16 bands in TIFF format.",
            "2..5..8..11..14..17..20..23..26..29..32..35..38..41..44..47..50..53..56..59..62..65..68..71..74..77..80..83..86..89..92..95..98..100",
            "r.out.gdal complete. File </actinia/workspace/temp_db/gisdbase_4e879f3951334a559612abab4352b069/.tmp/LC80440342016259LGN00_TOAR_NDVI.tiff> created.",
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        {
          "cells": 59918181,
          "coeff_var": 125.4796560716,
          "max": 1.31488464218245,
          "mean": 0.215349514428788,
          "mean_of_abs": 0.272685223860196,
          "min": -1.35084534300324,
          "n": 41612094,
          "name": "LC80440342016259LGN00_TOAR_NDVI",
          "null_cells": 18306087,
          "range": 2.6657299851857,
          "stddev": 0.270219830057103,
          "sum": 8961144.23726506,
          "variance": 0.0730187565560894
        }
      ],
      "progress": {
        "num_of_steps": 35,
        "step": 34
      },
      "resource_id": "resource_id-6282c634-42e1-417c-a092-c9b21c3283cc",
      "status": "finished",
      "time_delta": 415.2818741798401,
      "timestamp": 1527679378.31516,
      "urls": {
        "resources": [
          "http://localhost:5000/api/v3/resource/superadmin/resource_id-6282c634-42e1-417c-a092-c9b21c3283cc/tmp80apvh0h.png",
          "http://localhost:5000/api/v3/resource/superadmin/resource_id-6282c634-42e1-417c-a092-c9b21c3283cc/LC80440342016259LGN00_TOAR_NDVI.tiff"
        ],
        "status": "http://localhost:5000/api/v3/resources/superadmin/resource_id-6282c634-42e1-417c-a092-c9b21c3283cc"
      },
      "user_id": "superadmin"
    }

## UnivarResultModel: object

Response schema for the result of univariate computations of raster layers.

name: string

  The name of the raster resource

cells: number (double)
coeff_var: number (double)
max: number (double)
mean: number (double)
mean_of_abs: number (double)
min: number (double)
n: number (double)
null_cells: number (double)
range: number (double)
stddev: number (double)
sum: number (double)
variance: number (double)

##### Example

    {
      "name": "string",
      "cells": "number (double)",
      "coeff_var": "number (double)",
      "max": "number (double)",
      "mean": "number (double)",
      "mean_of_abs": "number (double)",
      "min": "number (double)",
      "n": "number (double)",
      "null_cells": "number (double)",
      "range": "number (double)",
      "stddev": "number (double)",
      "sum": "number (double)",
      "variance": "number (double)"
    }

## SentinelNDVIResponseModel: object

The response of the Sentinel2A vegetation index computation

status: string

  The status of the response

user_id: string

  The id of the user that issued a request

resource_id: string

  The unique resource id

process_log: ProcessLogModel

  A list of ProcessLogModels

ProcessLogModel
process_chain_list: GrassModule

  The list of GRASS modules that were used in the processing

GrassModule
process_results: UnivarResultModel
UnivarResultModel
progress: ProgressInfoModel
message: string

  Message for the user, maybe status, finished or error message

exception: ExceptionTracebackModel
accept_timestamp: number (double)

  The acceptance timestamp in seconds of the response

accept_datetime: string

  The acceptance timestamp of the response in human readable format

timestamp: number (double)

  The current timestamp in seconds of the response

time_delta: number (double)

  The time delta of the processing in seconds

datetime: string

  The current timestamp of the response in human readable format

http_code: number (int32)

  The HTTP code of the response

urls: UrlModel
api_info: ApiInfoModel

##### Example

    {
      "accept_datetime": "2018-05-30 12:25:43.987713",
      "accept_timestamp": 1527683143.9877105,
      "api_info": {
        "endpoint": "asyncephemeralsentinel2processingresource",
        "method": "POST",
        "path": "/api/v3/sentinel2_process/ndvi/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749",
        "request_url": "http://localhost:8080/api/v3/sentinel2_process/ndvi/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749"
      },
      "datetime": "2018-05-30 12:29:11.800608",
      "http_code": 200,
      "message": "Processing successfully finished",
      "process_chain_list": [
        {
          "1": {
            "flags": "g",
            "inputs": {
              "map": "ndvi"
            },
            "module": "r.univar",
            "outputs": {
              "output": {
                "name": "/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/tmp7il3n0jk.univar"
              }
            }
          }
        },
        {
          "1": {
            "inputs": {
              "map": "ndvi"
            },
            "module": "d.rast"
          },
          "2": {
            "flags": "n",
            "inputs": {
              "at": "8,92,0,7",
              "raster": "ndvi"
            },
            "module": "d.legend"
          },
          "3": {
            "inputs": {
              "at": "20,4",
              "style": "line"
            },
            "module": "d.barscale"
          }
        }
      ],
      "process_log": [
        {
          "executable": "/usr/bin/wget",
          "parameter": [
            "-t5",
            "-c",
            "-q",
            "https://storage.googleapis.com/gcp-public-data-sentinel-2/tiles/50/R/KR/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749.SAFE/GRANULE/L1C_T50RKR_A007608_20161206T030749/IMG_DATA/T50RKR_20161206T030112_B08.jp2"
          ],
          "return_code": 0,
          "run_time": 49.85953092575073,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/wget",
          "parameter": [
            "-t5",
            "-c",
            "-q",
            "https://storage.googleapis.com/gcp-public-data-sentinel-2/tiles/50/R/KR/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749.SAFE/GRANULE/L1C_T50RKR_A007608_20161206T030749/IMG_DATA/T50RKR_20161206T030112_B04.jp2"
          ],
          "return_code": 0,
          "run_time": 38.676433801651,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749.gml",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749.gml"
          ],
          "return_code": 0,
          "run_time": 0.05118393898010254,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/T50RKR_20161206T030112_B08.jp2",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08"
          ],
          "return_code": 0,
          "run_time": 0.35857558250427246,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/bin/mv",
          "parameter": [
            "/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/T50RKR_20161206T030112_B04.jp2",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04"
          ],
          "return_code": 0,
          "run_time": 0.15271401405334473,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "python3",
          "parameter": [
            "/usr/local/bin/grass",
            "-e",
            "-c",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08",
            "/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/sentinel2"
          ],
          "return_code": 0,
          "run_time": 0.36118006706237793,
          "stderr": [
            "Default locale settings are missing. GRASS running with C locale.WARNING: Searched for a web browser, but none found",
            "Creating new GRASS GIS location/mapset...",
            "Cleaning up temporary files...",
            ""
          ],
          "stdout": "Default locale not found, using UTF-8\n"
        },
        {
          "executable": "v.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749.gml",
            "output=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749",
            "--q"
          ],
          "return_code": 0,
          "run_time": 0.3551313877105713,
          "stderr": [
            "WARNING: Projection of dataset does not appear to match current location.",
            "",
            "Location PROJ_INFO is:",
            "name: WGS 84 / UTM zone 50N",
            "datum: wgs84",
            "ellps: wgs84",
            "proj: utm",
            "zone: 50",
            "no_defs: defined",
            "",
            "Dataset PROJ_INFO is:",
            "name: WGS 84",
            "datum: wgs84",
            "ellps: wgs84",
            "proj: ll",
            "no_defs: defined",
            "",
            "ERROR: proj",
            "",
            "WARNING: Width for column fid set to 255 (was not specified by OGR), some strings may be truncated!",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "v.timestamp",
          "parameter": [
            "map=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749",
            "date=06 dec 2016 03:07:49"
          ],
          "return_code": 0,
          "run_time": 0.050455570220947266,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/gdal_translate",
          "parameter": [
            "-projwin",
            "113.949663",
            "28.011816",
            "115.082607",
            "27.001706",
            "-of",
            "vrt",
            "-projwin_srs",
            "EPSG:4326",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08.vrt"
          ],
          "return_code": 0,
          "run_time": 0.05114293098449707,
          "stderr": [
            "Warning 1: Computed -srcwin 5 -225 10971 11419 falls partially outside raster extent. Going on however.",
            ""
          ],
          "stdout": "Input file size is 10980, 10980\n"
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08.vrt",
            "output=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08_uncropped",
            "--q"
          ],
          "return_code": 0,
          "run_time": 16.326167583465576,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "align=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08_uncropped",
            "vector=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749",
            "-g"
          ],
          "return_code": 0,
          "run_time": 0.10460591316223145,
          "stderr": [
            ""
          ],
          "stdout": "projection=1\nzone=50\nn=3100030\ns=2990100\nw=199960\ne=309790\nnsres=10\newres=10\nrows=10993\ncols=10983\ncells=120736119\n"
        },
        {
          "executable": "r.mask",
          "parameter": [
            "vector=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749"
          ],
          "return_code": 0,
          "run_time": 7.36047887802124,
          "stderr": [
            "Reading areas...",
            "0..100",
            "Writing raster map...",
            "0..3..6..9..12..15..18..21..24..27..30..33..36..39..42..45..48..51..54..57..60..63..66..69..72..75..78..81..84..87..90..93..96..99..100",
            "Reading areas...",
            "0..100",
            "Writing raster map...",
            "0..3..6..9..12..15..18..21..24..27..30..33..36..39..42..45..48..51..54..57..60..63..66..69..72..75..78..81..84..87..90..93..96..99..100",
            "All subsequent raster operations will be limited to the MASK area. Removing or renaming raster map named 'MASK' will restore raster operations to normal.",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.mapcalc",
          "parameter": [
            "expression=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08 = float(S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08_uncropped)"
          ],
          "return_code": 0,
          "run_time": 10.695591926574707,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.timestamp",
          "parameter": [
            "map=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08",
            "date=06 dec 2016 03:07:49"
          ],
          "return_code": 0,
          "run_time": 0.053069353103637695,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.remove",
          "parameter": [
            "type=raster",
            "name=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08_uncropped",
            "-f"
          ],
          "return_code": 0,
          "run_time": 0.050362348556518555,
          "stderr": [
            "Removing raster <S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08_uncropped>",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.mask",
          "parameter": [
            "-r"
          ],
          "return_code": 0,
          "run_time": 0.10059237480163574,
          "stderr": [
            "Raster MASK removed",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "/usr/bin/gdal_translate",
          "parameter": [
            "-projwin",
            "113.949663",
            "28.011816",
            "115.082607",
            "27.001706",
            "-of",
            "vrt",
            "-projwin_srs",
            "EPSG:4326",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04",
            "/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04.vrt"
          ],
          "return_code": 0,
          "run_time": 0.05096769332885742,
          "stderr": [
            "Warning 1: Computed -srcwin 5 -225 10971 11419 falls partially outside raster extent. Going on however.",
            ""
          ],
          "stdout": "Input file size is 10980, 10980\n"
        },
        {
          "executable": "r.import",
          "parameter": [
            "input=/actinia/workspace/download_cache/superadmin/S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04.vrt",
            "output=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04_uncropped",
            "--q"
          ],
          "return_code": 0,
          "run_time": 16.76022958755493,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "align=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04_uncropped",
            "vector=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749",
            "-g"
          ],
          "return_code": 0,
          "run_time": 0.0505826473236084,
          "stderr": [
            ""
          ],
          "stdout": "projection=1\nzone=50\nn=3100030\ns=2990100\nw=199960\ne=309790\nnsres=10\newres=10\nrows=10993\ncols=10983\ncells=120736119\n"
        },
        {
          "executable": "r.mask",
          "parameter": [
            "vector=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749"
          ],
          "return_code": 0,
          "run_time": 6.779608249664307,
          "stderr": [
            "Reading areas...",
            "0..100",
            "Writing raster map...",
            "0..3..6..9..12..15..18..21..24..27..30..33..36..39..42..45..48..51..54..57..60..63..66..69..72..75..78..81..84..87..90..93..96..99..100",
            "Reading areas...",
            "0..100",
            "Writing raster map...",
            "0..3..6..9..12..15..18..21..24..27..30..33..36..39..42..45..48..51..54..57..60..63..66..69..72..75..78..81..84..87..90..93..96..99..100",
            "All subsequent raster operations will be limited to the MASK area. Removing or renaming raster map named 'MASK' will restore raster operations to normal.",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.mapcalc",
          "parameter": [
            "expression=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04 = float(S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04_uncropped)"
          ],
          "return_code": 0,
          "run_time": 10.141529321670532,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.timestamp",
          "parameter": [
            "map=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04",
            "date=06 dec 2016 03:07:49"
          ],
          "return_code": 0,
          "run_time": 0.05050253868103027,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.remove",
          "parameter": [
            "type=raster",
            "name=S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04_uncropped",
            "-f"
          ],
          "return_code": 0,
          "run_time": 0.05098080635070801,
          "stderr": [
            "Removing raster <S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04_uncropped>",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.mask",
          "parameter": [
            "-r"
          ],
          "return_code": 0,
          "run_time": 0.10424232482910156,
          "stderr": [
            "Raster MASK removed",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.mapcalc",
          "parameter": [
            "expression=ndvi = (float(S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08) - float(S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04))/(float(S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B08) + float(S2A_MSIL1C_20161206T030112_N0204_R032_T50RKR_20161206T030749_B04))"
          ],
          "return_code": 0,
          "run_time": 20.28681755065918,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.colors",
          "parameter": [
            "color=ndvi",
            "map=ndvi"
          ],
          "return_code": 0,
          "run_time": 0.05031251907348633,
          "stderr": [
            "Color table for raster map <ndvi> set to 'ndvi'",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "r.univar",
          "parameter": [
            "map=ndvi",
            "output=/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/tmp7il3n0jk.univar",
            "-g"
          ],
          "return_code": 0,
          "run_time": 4.54892897605896,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "d.rast",
          "parameter": [
            "map=ndvi"
          ],
          "return_code": 0,
          "run_time": 2.0198700428009033,
          "stderr": [
            "0..3..6..9..12..15..18..21..24..27..30..33..36..39..42..45..48..51..54..57..60..63..66..69..72..75..78..81..84..87..90..93..96..99..100",
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "d.legend",
          "parameter": [
            "raster=ndvi",
            "at=8,92,0,7",
            "-n"
          ],
          "return_code": 0,
          "run_time": 0.4614551067352295,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "d.barscale",
          "parameter": [
            "style=line",
            "at=20,4"
          ],
          "return_code": 0,
          "run_time": 0.416748046875,
          "stderr": [
            ""
          ],
          "stdout": ""
        },
        {
          "executable": "g.region",
          "parameter": [
            "raster=ndvi",
            "-g"
          ],
          "return_code": 0,
          "run_time": 0.051720619201660156,
          "stderr": [
            ""
          ],
          "stdout": "projection=1\nzone=50\nn=3100030\ns=2990100\nw=199960\ne=309790\nnsres=10\newres=10\nrows=10993\ncols=10983\ncells=120736119\n"
        },
        {
          "executable": "r.out.gdal",
          "parameter": [
            "-fm",
            "input=ndvi",
            "format=GTiff",
            "createopt=COMPRESS=LZW",
            "output=/actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/ndvi.tiff"
          ],
          "return_code": 0,
          "run_time": 12.550397157669067,
          "stderr": [
            "Checking GDAL data type and nodata value...",
            "2..5..8..11..14..17..20..23..26..29..32..35..38..41..44..47..50..53..56..59..62..65..68..71..74..77..80..83..86..89..92..95..98..100",
            "Using GDAL data type <Float32>",
            "Input raster map contains cells with NULL-value (no-data). The value -nan will be used to represent no-data values in the input map. You can specify a nodata value with the nodata option.",
            "Exporting raster data to GTiff format...",
            "ERROR 6: SetColorTable() only supported for Byte or UInt16 bands in TIFF format.",
            "2..5..8..11..14..17..20..23..26..29..32..35..38..41..44..47..50..53..56..59..62..65..68..71..74..77..80..83..86..89..92..95..98..100",
            "r.out.gdal complete. File </actinia/workspace/temp_db/gisdbase_103a050c380e4f50b36efd3f77bd1419/.tmp/ndvi.tiff> created.",
            ""
          ],
          "stdout": ""
        }
      ],
      "process_results": [
        {
          "cells": 120736119,
          "coeff_var": 39.2111992829072,
          "max": 0.80298912525177,
          "mean": 0.345280366103636,
          "mean_of_abs": 0.347984182813063,
          "min": -0.96863466501236,
          "n": 120371030,
          "name": "ndvi",
          "null_cells": 365089,
          "range": 1.77162379026413,
          "stddev": 0.135388572437648,
          "sum": 41561753.3066718,
          "variance": 0.0183300655467043
        }
      ],
      "progress": {
        "num_of_steps": 33,
        "step": 32
      },
      "resource_id": "resource_id-6b849585-576f-40b5-a514-34a7cf1f97ce",
      "status": "finished",
      "time_delta": 207.813636302948,
      "timestamp": 1527683351.8002071,
      "urls": {
        "resources": [
          "http://localhost:8080/api/v3/resource/superadmin/resource_id-6b849585-576f-40b5-a514-34a7cf1f97ce/tmpsaeegg0q.png",
          "http://localhost:8080/api/v3/resource/superadmin/resource_id-6b849585-576f-40b5-a514-34a7cf1f97ce/ndvi.tiff"
        ],
        "status": "http://localhost:8080/api/v3/resources/superadmin/resource_id-6b849585-576f-40b5-a514-34a7cf1f97ce"
      },
      "user_id": "superadmin"
    }

## LandsatSceneListModel: object

This schema defines the JSON input of the Landsat time series creator resource

atcor_method: string TOAR, DOS1, DOS4

  The method for atmospheric correction

strds: string

  The basename of the new space-time raster datasets (strds). One for each band will be created and the basename will be extended by a band specific suffix.

scene_ids: string[]

  A list of Landsat scene names that should be downloaded and imported. Only scenes from a specific satelleite can be imported and represented as strds. Mixing of different satellites is not permitted. All bands will be imported and atmospherically corrected

string

##### Example

    {
      "strds": "Landsat_4",
      "atcor_method": "TOAR",
      "scene_ids": [
        "LT41970251990147XXX00",
        "LT41970251990147XXX01",
        "LT41970251990147XXX02",
        "LT41970251990147XXX03"
      ]
    }

## Sentinel2ASceneListModel: object

This schema defines the JSON input of the sentinel time series creator resource

bands: string[]

  A list of band names that should be downloaded and imported for each Sentinel-2 scene.Available are the following band names: "B01", "B02", "B03", "B04", "B05", "B06", "B07","B08", "B8A", "B09" "B10", "B11", "B12"

string
product_ids: string[]

  A list of Sentinel-2 scene names of which the tile download urls and metadata infor urls should be provided.

string

##### Example

    {
      "bands": [
        "B04",
        "B08"
      ],
      "product_ids": [
        "S2A_MSIL1C_20170212T104141_N0204_R008_T31TGJ_20170212T104138",
        "S2A_MSIL1C_20170227T095021_N0204_R079_T34TBM_20170227T095613",
        "S2A_MSIL1C_20170202T104241_N0204_R008_T32UNE_20170202T104236"
      ]
    }

## Sentinel2ASceneList: object

tiles: Sentinel2ASceneEntry

  A list of sentinel2A scenes

Sentinel2ASceneEntry

##### Example

    [
      {
        "product_id": "S2A_MSIL1C_20170202T090201_N0204_R007_T36TVT_20170202T090155",
        "tiles": [
          {
            "B04": {
              "file_name": "S2A_OPER_PRD_MSIL1C_PDMC_20151207T031157_R102_V20151207T003302_20151207T003302_tile_14_band_B04.jp2",
              "map_name": "S2A_OPER_PRD_MSIL1C_PDMC_20151207T031157_R102_V20151207T003302_20151207T003302_tile_14_band_B04",
              "public_url": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/57/V/XE/2015/12/7/0/B04.jp2"
            },
            "B08": {
              "file_name": "S2A_OPER_PRD_MSIL1C_PDMC_20151207T031157_R102_V20151207T003302_20151207T003302_tile_14_band_B08.jp2",
              "map_name": "S2A_OPER_PRD_MSIL1C_PDMC_20151207T031157_R102_V20151207T003302_20151207T003302_tile_14_band_B08",
              "public_url": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/57/V/XE/2015/12/7/0/B08.jp2"
            },
            "info": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/57/V/XE/2015/12/7/0/tileInfo.json",
            "metadata": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/57/V/XE/2015/12/7/0/metadata.xml",
            "preview": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/57/V/XE/2015/12/7/0/preview.jpg",
            "timestamp": "2015-12-07T00:33:02.634Z",
            "url": "http://sentinel-s2-l1c.s3-website.eu-central-1.amazonaws.com/#tiles/57/V/XE/2015/12/7/0/"
          }
        ]
      }
    ]

## Sentinel2ASceneEntry: object

product_id: string

  The id of the Sentinel2A scene

tiles: Sentinel2ATileEntry

  A list of sentinel2A scenes

Sentinel2ATileEntry

##### Example

    {
      "product_id": "S2A_MSIL1C_20170202T090201_N0204_R007_T36TVT_20170202T090155",
      "tiles": [
        {
          "B04": {
            "file_name": "S2A_OPER_PRD_MSIL1C_PDMC_20151207T031157_R102_V20151207T003302_20151207T003302_tile_14_band_B04.jp2",
            "map_name": "S2A_OPER_PRD_MSIL1C_PDMC_20151207T031157_R102_V20151207T003302_20151207T003302_tile_14_band_B04",
            "public_url": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/57/V/XE/2015/12/7/0/B04.jp2"
          },
          "B08": {
            "file_name": "S2A_OPER_PRD_MSIL1C_PDMC_20151207T031157_R102_V20151207T003302_20151207T003302_tile_14_band_B08.jp2",
            "map_name": "S2A_OPER_PRD_MSIL1C_PDMC_20151207T031157_R102_V20151207T003302_20151207T003302_tile_14_band_B08",
            "public_url": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/57/V/XE/2015/12/7/0/B08.jp2"
          },
          "info": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/57/V/XE/2015/12/7/0/tileInfo.json",
          "metadata": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/57/V/XE/2015/12/7/0/metadata.xml",
          "preview": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/57/V/XE/2015/12/7/0/preview.jpg",
          "timestamp": "2015-12-07T00:33:02.634Z",
          "url": "http://sentinel-s2-l1c.s3-website.eu-central-1.amazonaws.com/#tiles/57/V/XE/2015/12/7/0/"
        }
      ]
    }

## Sentinel2ATileEntry: object

B01: BandInformationEntry
B02: BandInformationEntry
B03: BandInformationEntry
B04: BandInformationEntry
B05: BandInformationEntry
B06: BandInformationEntry
B07: BandInformationEntry
B08: BandInformationEntry
B09: BandInformationEntry
B10: BandInformationEntry
B11: BandInformationEntry
B12: BandInformationEntry
info: string

  The url to Sentinel2A scene information

metadata: string

  The url to Sentinel2A scene XML metadata

preview: string

  The url to Sentinel2A scene preview image

url: string

  The url to Sentinel2A scene root directory that contains all informations about the scene

timestamp: string (dateTime)

  The sensing time of the scene

##### Example

    {
      "B04": {
        "file_name": "S2A_OPER_PRD_MSIL1C_PDMC_20151207T031157_R102_V20151207T003302_20151207T003302_tile_14_band_B04.jp2",
        "map_name": "S2A_OPER_PRD_MSIL1C_PDMC_20151207T031157_R102_V20151207T003302_20151207T003302_tile_14_band_B04",
        "public_url": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/57/V/XE/2015/12/7/0/B04.jp2"
      },
      "B08": {
        "file_name": "S2A_OPER_PRD_MSIL1C_PDMC_20151207T031157_R102_V20151207T003302_20151207T003302_tile_14_band_B08.jp2",
        "map_name": "S2A_OPER_PRD_MSIL1C_PDMC_20151207T031157_R102_V20151207T003302_20151207T003302_tile_14_band_B08",
        "public_url": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/57/V/XE/2015/12/7/0/B08.jp2"
      },
      "info": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/57/V/XE/2015/12/7/0/tileInfo.json",
      "metadata": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/57/V/XE/2015/12/7/0/metadata.xml",
      "preview": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/57/V/XE/2015/12/7/0/preview.jpg",
      "timestamp": "2015-12-07T00:33:02.634Z",
      "url": "http://sentinel-s2-l1c.s3-website.eu-central-1.amazonaws.com/#tiles/57/V/XE/2015/12/7/0/"
    }

## BandInformationEntry: object

file_name: string

  The suggested file name of this band from the requested satellite scene

map_name: string

  The suggested GRASS GIS raster map name of this band from the requested satellite scene

public_url: string

  The download URl of the band from requested satellite scene

##### Example

    {
      "file_name": "S2A_MSIL1C_20170202T090201_N0204_R007_T36TVT_20170202T090155_tile_1_band_B04.jp2",
      "map_name": "S2A_MSIL1C_20170202T090201_N0204_R007_T36TVT_20170202T090155_tile_1_band_B04",
      "public_url": "http://sentinel-s2-l1c.s3.amazonaws.com/tiles/36/T/VT/2017/2/2/0/B04.jp2"
    }

## SimpleStatusCodeResponseModel: object

Simple response schema to inform about status.

status: number

  The status code of the request.

message: string

  A short message to describes the status

##### Example

    {
      "status": 200,
      "message": "success"
    }

## GeodataResponseModel: object

Model for object for geodata

uuid: string

  The Geonetwork uuid.

bbox: number[]

  The bounding box of the result.

number
crs: string

  The coordinate reference system of the result.

table: string

  The database connection string of the source of the result.

##### Example

    {
      "uuid": "da165110-88fd-11da-a88f-000d939bc5d8",
      "bbox": [
        51.1,
        -34.6,
        -17.3,
        38.2
      ],
      "crs": "urn:ogc:def:crs:::WGS 1984",
      "table": "http://www.fao.org/ag/AGL/aglw/aquastat/watresafrica/index.stm"
    }

## ModuleList: object

Response schema for module lists

status: string

  The status of the resource, values: accepted, running, finished, terminated, error

processes: Module

  The list of modules in GRASS GIS

Module

##### Example

    {
      "processes": [
        {
          "id": "v.random",
          "description": "Generates random 2D/3D vector points.",
          "categories": [
            "vector",
            "sampling",
            "statistics",
            "random",
            "point pattern",
            "stratified random sampling",
            "level1"
          ]
        }
      ],
      "status": "success"
    }

## Module: object

Response schema for module

id: string

  Unique identifier of the process.

summary: string

  A short summary of what the process does.

description: string

  Detailed description to fully explain the entity.

categories: string[]

  A list of categories. GRASS GIS addons have the category "grass-module" and the actinia core modules are identified with "actinia-module"

string
parameters: ModuleParameter
returns: ModuleReturns
import_descr: ModuleImportDescription
export: ModuleExportDescription

##### Example

    {
      "categories": [
        "grass-module",
        "level1",
        "pointpattern",
        "random",
        "sampling",
        "statistics",
        "stratifiedrandomsampling",
        "vector"
      ],
      "description": "Generates random 2D/3D vector points.",
      "id": "v.random",
      "parameters": {
        "a": {
          "description": ". Generate n points for each individual area (requires restrict parameter)",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "b": {
          "description": "Do not build topology. Advantageous when handling a large number of points",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "cats": {
          "description": "Category values. Example: 1,3,7-9,13",
          "required": false,
          "schema": {
            "subtype": "cats",
            "type": "string"
          }
        },
        "column": {
          "description": "Name of column for z values. Writes z values to column",
          "required": false,
          "schema": {
            "subtype": "dbcolumn",
            "type": "string"
          }
        },
        "column_type": {
          "description": ". Type of column for z values",
          "required": false,
          "schema": {
            "default": "double precision",
            "enum": [
              "integer",
              "double precision"
            ],
            "type": "string"
          }
        },
        "help": {
          "description": ". Print usage summary",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "layer": {
          "description": "Layer number or name ('-1' for all layers). A single vector map can be connected to multiple database tables. This number determines which table to use. When used with direct OGR access this is the layer name.",
          "required": false,
          "schema": {
            "default": "-1",
            "subtype": "layer_all",
            "type": "string"
          }
        },
        "npoints": {
          "description": ". Number of points to be created",
          "required": true,
          "schema": {
            "type": "integer"
          }
        },
        "output": {
          "description": ". Name for output vector map",
          "required": true,
          "schema": {
            "subtype": "vector",
            "type": "string"
          }
        },
        "overwrite": {
          "description": ". Allow output files to overwrite existing files",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "quiet": {
          "description": ". Quiet module output",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "restrict": {
          "description": "Name of input vector map. Restrict points to areas in input vector",
          "required": false,
          "schema": {
            "subtype": "vector",
            "type": "string"
          }
        },
        "seed": {
          "description": ". The seed to initialize the random generator. If not set the process ID is used",
          "required": false,
          "schema": {
            "type": "integer"
          }
        },
        "verbose": {
          "description": ". Verbose module output",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "where": {
          "description": "WHERE conditions of SQL statement without 'where' keyword. Example: income < 1000 and population >= 10000",
          "required": false,
          "schema": {
            "subtype": "sql_query",
            "type": "string"
          }
        },
        "z": {
          "description": ". Create 3D output",
          "schema": {
            "default": "False",
            "type": "boolean"
          }
        },
        "zmax": {
          "description": ". Maximum z height (needs -z flag or column name)",
          "required": false,
          "schema": {
            "default": "0.0",
            "type": "number"
          }
        },
        "zmin": {
          "description": ". Minimum z height (needs -z flag or column name)",
          "required": false,
          "schema": {
            "default": "0.0",
            "type": "number"
          }
        }
      }
    }

## ModuleParameter: object

A list of parameters that are applicable for this process.

name: string

  A unique name for the parameter.

description: string

  Detailed description to fully explain the entity.

optional: boolean

  Determines whether this parameter is mandatory. Default: true

default: string

  The default value for this parameter.

schema: ModuleParameterSchema

##### Example

    {
      "name": "string",
      "description": "string",
      "optional": "boolean",
      "default": "string",
      "schema": {
        "type": "string",
        "subtype": "string",
        "enum": [
          "string"
        ]
      }
    }

## ModuleParameterSchema: object

A schema object according to the specification of JSON

type: string
subtype: string
enum: string[]
string

##### Example

    {
      "type": "string",
      "subtype": "string",
      "enum": [
        "string"
      ]
    }

## ModuleReturns: object

The data that is returned from this process.

name: string

  A unique name for the parameter.

description: string

  Detailed description to fully explain the entity.

optional: boolean

  Determines whether this parameter is mandatory. Default: true

default: string

  The default value for this parameter.

schema: ModuleParameterSchema

##### Example

    {
      "name": "string",
      "description": "string",
      "optional": "boolean",
      "default": "string",
      "schema": {
        "type": "string",
        "subtype": "string",
        "enum": [
          "string"
        ]
      }
    }

## ModuleImportDescription: object

Import parameters to import data for this process.

name: string

  A unique name for the parameter.

description: string

  Detailed description to fully explain the entity.

optional: boolean

  Determines whether this parameter is mandatory. Default: true

default: string

  The default value for this parameter.

schema: ModuleParameterSchema

##### Example

    {
      "name": "string",
      "description": "string",
      "optional": "boolean",
      "default": "string",
      "schema": {
        "type": "string",
        "subtype": "string",
        "enum": [
          "string"
        ]
      }
    }

## ModuleExportDescription: object

Export parameters to export returned data from this process

name: string

  A unique name for the parameter.

description: string

  Detailed description to fully explain the entity.

optional: boolean

  Determines whether this parameter is mandatory. Default: true

default: string

  The default value for this parameter.

schema: ModuleParameterSchema

##### Example

    {
      "name": "string",
      "description": "string",
      "optional": "boolean",
      "default": "string",
      "schema": {
        "type": "string",
        "subtype": "string",
        "enum": [
          "string"
        ]
      }
    }

## ProcessChainTemplate: object

Response schema for module

id: string

  Unique identifier of the process.

description: string

  Detailed description to fully explain the entity.

template: object

  The full process chain template.

list: GrassModule

  The list of GRASS GIS or actinia modules or executables of which the template consists.

GrassModule

##### Example

    {
      "id": "user_default_value",
      "description": "test default value in actinia-module-plugin",
      "template": {
        "version": "1",
        "list": [
          {
            "module": "r.mapcalc",
            "id": "r.mapcalc_test",
            "inputs": [
              {
                "param": "expression",
                "comment": "output = r.mapcalc result, string; value = raster value (default=0.428), float",
                "value": "{{ output }} = {{ value|default(0.428) }}"
              }
            ]
          },
          {
            "id": "r_info",
            "module": "r.info",
            "inputs": [
              {
                "param": "map",
                "value": "{{ output }}"
              }
            ]
          }
        ]
      }
    }

Documentation by Spectacle