Niche API

Base URL: /, Version: 2.0.0

REST API to access gridded climate model data at specific points in time. Developed specifically to support Ice Age Mapper / Niche Viewer, and to tie into morphospace visualizations of NeotomaDB data. Enables users to select climate data at single space-time points, arrays of space-time points, or time series at single points. University of Wisconsin, Madison Department of Geography.

Default request content-types: application/json
Default response content-types: application/json
Schemes: http, https

Summary

Path Operation Description
/aggregate GET
/averagingPeriodTypes GET
/data GET
POST
/sources GET
/timeseries GET
/transect GET
/variablePeriodTypes GET
/variables GET
/variableTypes GET
/variableUnits GET

Paths

GET /aggregate

Average mean environmental data over a user-specified geometry.

variableID

Database ID of the variable of interest.

query number
sourceID

Database of the data source.

query number
yearsBP

Years before present of interest.

query number
geometry

WKT geometry along which to average environmental data.

query string

Uses default content-types: application/json

200 OK

Success

default

Error

GET /averagingPeriodTypes

Get a list of the time periods over which a variable could be averaged. Averaging period types are the amount of time over which data is averaged. For example, decadally averaged climate annual precipitation would represent a ten year average, and have an averaging period type of decades.

averagingPeriodTypeId

Database ID of the averaging period type.

query number

Uses default content-types: application/json

200 OK

Success

default

Error

GET /data

Get data for a single space-time point for a given source and variable combination.

latitude

Latitude of point of interest.

query number
longitude

Longitude of point of interest.

query number
variableID

Database ID of variable of interest

query number
sourceID

Database ID of source of interest.

query number
yearsBP

years before present of point of interest. AD1950 is considered zero in this context.

query number

Uses default content-types: application/json

200 OK

Success

default

Error

POST /data

Get data for an array of space-time points for a given source and variable combination. Each point in the array must specify latitude, longitude, and time. The source and variables are specified for the request as a whole.

Uses default content-types: application/json

An array of space-time locations for which to get data.

Uses default content-types: application/json

200 OK

Success

default

Error

GET /sources

Get a list of data sources in the database. A source is the data producer from which the raster data originated. Each source contains information on the producer of the product, the model used to produced the data, the forcings/emissions scenario used to run the model, and the product version. In the current version, only a single source is supported, Lorenz et al (2016) downscaled north american CCSM3 climate model output.

sourceId

Database ID of the source.

query number
scenario

Emission scenario under which the model was run.

query number
version

The version of the modeling product.

query number

Uses default content-types: application/json

200 OK

Success

default

Error

GET /timeseries

Get all time points in the database for a single spatial location. References a single variable/source pair.

latitude

Latitude of point of interest.

query number
longitude

Longitude of point of interest.

query number
variableID

Database ID of variable of interest.

query number
sourceID

Database ID of source of interest.

query number

Uses default content-types: application/json

200 OK

Success

default

Error

GET /transect

Get environmental data along a user-specified geometry at native raster resolution.

variableID

Database ID of the variable of interest.

query number
sourceID

Database of the data source.

query number
yearsBP

Years before present of interest.

query number
geometry

WKT geometry along which to get environmental data. If a multi-point, returns data at at those points. If line, returns environmental data along the transect. If polygon, returns the values of all the cells falling within the polygon.

query string

Uses default content-types: application/json

200 OK

Success

default

Error

GET /variablePeriodTypes

Get a list of the time periods a variable could represent. A variable period is period of time represented by the measurement. For example, monthly precipitation has a variable period of months.

variablePeriodTypeId

Database ID of the variable period type

query number

Uses default content-types: application/json

200 OK

Success

default

Error

GET /variables

Returns a list of the variables that currently have raster data associated with them in the database. A variable is a unique combination of units, averaging period, variable period, and variable type.

variableType

Database ID of the variable type of interest.

query integer
variablePeriod

Variable period by which to filter results. A variable period type is the period over which the data is representitive.

query integer
variablePeriodType

String representation of the name of the variable period type over which the data is representitive. Example - month.

query string
averagingPeriod

Period over which the variable has been averaged.

query integer
averagingPeriodType

String representation of the type of period over which the variable has been averaged. Example - Week.

query string
variableUnits

Canonical SI abbreviation for units in which the variable is measured.

query string
variableID

Database ID of the variable. Returns a single unique variable as the result.

query integer

Uses default content-types: application/json

200 OK

Success

default

Error

GET /variableTypes

Get a list of the variable types in the database. A variable type is a generic representation of what is measured in a dataset. For example, precipitation or maximum temperature.

variableTypeId

Database ID of the variable type

query number

Uses default content-types: application/json

200 OK

Success

default

Error

GET /variableUnits

Get a list of variable units in the database. A variable unit is the units in which a variable is measured.

variableUnitId

Database ID of the variableUnit.

query number
variableUnitAbbreviation

Abbreviation of the variable unit in SI units.

query string

Uses default content-types: application/json

200 OK

Success

default

Error

Schema definitions

DataPoint: object

year: integer

Year before present represented by the response

above: number

Value of the time slice above the year in the interpolation

below: number

Value of the time slice below the year in the interpolation

yearAbove: integer

Year above in the interpolation

yearBelow: integer

Year below in the interpolation

interp: number

Interpolated variable value between the yearAbove and the yearBelow

latitude: number

Latitude of POI

longitude: number

Longitude of POI

DataResponse: object

success: boolean

Flag to indicate whether the server responded successfully.

timestamp: string (date-time)

Time at which the response was minted by the server

variableID: integer

Variable represented by the response

sourceID: integer

Data source of the response

data: object[]

ErrorResponse: object

error: object

GenericResponse: object

success: boolean

Flag to indicate whether the server responded successfully.

timestamp: string (date-time)

Time at which the response was minted by the server

data: object[]
object

PointRequest: object

latitude: number

Latitude of POI

longitude: number

Longitude of POI

year: integer

Years before present of location of interest

id: integer

Optional ID number for relating to neotoma or other site identifiers.

PostDataRequest: object

points: object[]
variableID: integer

Database ID for the requested variable

sourceID: integer

Database ID for the requested data source

TimeSeriesPoint: object

id: integer
value: number
time: number

TimeSeriesResponse: object

success: boolean

Flag to indicate whether the server responded successfully.

timestamp: string (date-time)

Time at which the response was minted by the server

latitude: number (float)
longitude: number (float)
variable: Variable
data: object[]

Variable: object

variableType: string

What the variable represents

variableUnits: string

How the variable is measured

variablePeriod: integer

Period that the variable represents

variablePeriodType: string

Type of period represented by the variable

averagingPeriod: integer

Period over which the variable is averaged.

averagingPeriodType: string

Type of period over which the variable is average.

variableID: integer

Database ID of the variable

variableDescription: string

Plain text description of the variable.

VariableResponse: object

success: boolean

Flag to indicate whether the server responded successfully.

timestamp: string (date-time)

Time at which the response was minted by the server

data: object[]
object