Page tree
Skip to end of metadata
Go to start of metadata

Description

The API devices returns all the devices defined in Oceans 2.0 that meet a set of filter criteria.

Devices are instruments that have one or more sensors that observe a property or phenomenon with a goal of producing an estimate of the value of a property. Devices are uniquely identified by a device code and can be deployed at multiple locations during their lifespan.

The primary purpose of the devices service is to find devices that have the data you are interested in and use the deviceCode when requesting a data product using the dataProductDelivery web service.


URL

https://data.oceannetworks.ca/api/devices

Method

Description

Example

get

Retrieve a list of all devices

method=get

get

The get method retrieves a list of devices with deviceId, deviceCode, and deviceName.

Parameters

Parameter

Type

Description

Example

Required


tokenstringAll Web Services require a token. This can be generated at https://data.oceannetworks.ca/Profile. Click on the "Web Services" tab and click "Generate Token".token=YOUR_TOKEN_HERE
Optional


deviceCodestring

Return a single Device matching a specific Device Code.

  • Device Code must be valid and match exactly, including case.
  • Specific Device Codes can be found by simply running the service without this parameter to get a list of all devices.
deviceCode=FSINXIC1622
deviceIdinteger

Return a single Device matching a specific Device ID.

  • Device ID must be valid.
  • Specific Device IDs can be found by simply running the service without this parameter to get a list of all devices.
deviceId=10301
deviceCategoryCodestring

Return all Devices belonging to a specific Device Category Code.

  • Device Category Code must be valid and match exactly, including case.
  • Specific Device Category Codes can be obtained using the deviceCategories service.
deviceCategoryCode=CTD
propertyCodestring

Return all Devices that have a sensor for a specific Property Code.

  • Property Code must be valid and match exactly, including case.
  • Specific Property Codes can be obtained using the properties service.
propertyCode=pressure
deviceNamestring

Return all of the Devices where the Device Name contains a keyword.

  • Not case sensitive.
deviceName=meter
locationCodestring

Return all Devices that are deployed at a specific Location.

  • Location Code must be valid and match exactly, including case.
  • Specific Location Codes can be obtained using the locations service.
locationCode=BACAX
dataProductCodestring

Return all Devices that have the ability to return a specific Data Product Code.

  • Data Product Code must be valid and match exactly, including case.
  • Specific Data Product Codes can be obtained from the dataProducts service.
dataProductCode=jpgfile
dateFromdatetime

Return all of the Devices that have a Deployment Beginning on or after a specific date/time.

Accepted DateTime formats:

  • yyyy-MM-dd'T'HH:mm:ss.SSS'Z' (ISO 8601 Extended)
  • yyyy-MM-dd (ISO 8601 Extended)
  • PnYnMnDTnHnMnS (ISO 8601 Duration)

If not specified, the default value is the beginning of time.

  • DateTime is represented in Coordinated Universal Time (UTC).

  • ISO 8601 Extended format without a time will be assumed to mean midnight (T00:00:000.000Z).
  • Queries with both dateFrom and dateTo in the ISO 8601 Duration format will not be accepted.

dateFrom=2010-07-27T00:00:00.000Z

dateFrom=2010-07-27

dateFrom=-P1DT1H

  • Previous 1 day and 1 hour, relative to the dateTo. Note the '-' before the P.
dateTodatetime

Return all of the Devices that have a Deployment Ending before a specific date/time.

Accepted DateTime formats:

  • yyyy-MM-dd'T'HH:mm:ss.SSS'Z' (ISO 8601 Extended)
  • yyyy-MM-dd (ISO 8601 Extended)
  • PnYnMnDTnHnMnS (ISO 8601 Duration)

If not specified, the default value is the end of time.

  • DateTime is represented in Coordinated Universal Time (UTC).

  • ISO 8601 Extended format without a time will be assumed to mean midnight (T00:00:000.000Z).
  • Queries with both dateFrom and dateTo in the ISO 8601 Duration format will not be accepted.

dateTo=2016-08-01T00:00:00.000Z

dateTo=2016-08-01

dateTo=PT12H30M

  • Next 12 hours and 30 minutes, relative to the dateFrom.

Response

Example for request: https://data.oceannetworks.ca/api/devices?method=get&token=YOUR_TOKEN_HERE&locationCode=BACAX&dateFrom=2010-07-01T00:00:00.000Z&dateTo=2011-06-30T23:59:59.999Z

Success (HTTP 200)

Returns a list of devices with values for Device Code, Device Id, Device Name and Device Link URL, ordered by Device Code

[
    {
        "cvTerm": {
            "device": [
                {
                    "uri":"http://vocab.nerc.ac.uk/collection/L22/current/TOOL0888/",
                    "vocabulary":"SeaVoX Device Catalogue"
                }
            ]
        },
        "dataRating": [
            {
                "dateFrom":"2010-05-27T19:27:04.000Z",
                "dateTo":null,
                "samplePeriod":10.000000,
                "sampleSize":1
            }
        ],
        "deviceCode":"BC_POD1_AD2M",
        "deviceId":11302,
        "deviceLink":"http://data.oceannetworks.ca/DeviceListing?DeviceId=11302",
        "deviceName":"Nortek Aquadopp HR-Profiler 2965",
        "hasDeviceData":true
    },
    {
        "cvTerm": {
            "device":[]
        },
        "dataRating": [
            {
                "dateFrom":"2009-06-22T15:37:00.000Z",
                "dateTo":null,
                "samplePeriod":1.000000,
                "sampleSize":1
            }
        ],
        "deviceCode":"BC_POD1_JB",
        "deviceId":10011,
        "deviceLink":"http://data.oceannetworks.ca/DeviceListing?DeviceId=10011",
        "deviceName":"OceanWorks Junction Box JB-02 (BC Pod #1 Axis)",
        "hasDeviceData":true
    },
    {
        "cvTerm": {
            "device":[]
        },
        "dataRating": [
            {
                "dateFrom":"2008-11-01T00:00:00.000Z",
                "dateTo":null,
                "samplePeriod":60.000000,
                "sampleSize":0
            }
        ],
        "deviceCode":"BC_POD1_PTILTVIDEO",
        "deviceId":11303,
        "deviceLink":"http://data.oceannetworks.ca/DeviceListing?DeviceId=11303",
        "deviceName":"ROS 1060 Multi SeaCam  2186-T",
        "hasDeviceData":true
    },
    {
        "cvTerm": {
            "device":[]
        },
        "dataRating": [
            {
                "dateFrom":"2011-01-14T00:00:00.000Z",
                "dateTo":null,
                "samplePeriod":3600.000000,
                "sampleSize":1
            }
        ],
        "deviceCode":"BC_POD1_ROTSONAR",
        "deviceId":11301,
        "deviceLink":"http://data.oceannetworks.ca/DeviceListing?DeviceId=11301",
        "deviceName":"Kongsberg Mesotech Rotary Sonar 1071 (0711217)",
        "hasDeviceData":true
    },
    {
        "cvTerm": {
            "device":[]
        },
        "dataRating":[],
        "deviceCode":"CAMERALIGHTS58",
        "deviceId":12129,
        "deviceLink":"http://data.oceannetworks.ca/DeviceListing?DeviceId=12129",
        "deviceName":"ROS Pan/Tilt with Lights 3090",
        "hasDeviceData":true
    },
    {
        "cvTerm": {
            "device":[]
        },
        "dataRating":[],
        "deviceCode":"NAXYS_HYD_007",
        "deviceId":11207,
        "deviceLink":"http://data.oceannetworks.ca/DeviceListing?DeviceId=11207",
        "deviceName":"Naxys Hydrophone 02345 (S/N 007)",
        "hasDeviceData":true
    }
]

Property

Type

Description

Example

deviceCodestringReturns the device code
"deviceCode":"BC_POD1_AD2M"
deviceIdintegerReturns the device id
"deviceId":11302
deviceNamestringReturns the device name
"deviceName":"Nortek Aquadopp HR-Profiler 2965"
deviceLinkurlReturns the a URL link to Device Listing page for the specific device
"deviceLink":"https://data.oceannetworks.ca/DeviceListing?DeviceId=11302"
dataRatinglist

Returns a list of data ratings and date from for each device–this list may be empty

Each data rating is made up of:

  1. Key : "samplePeriod", Value : "sample period in seconds"
  2. Key : "dateFrom", Value : "dateFrom of sample period"
  3. Key : "dateTo", Value : "dateTo of sample period"
  4. Key : "sampleSize", Value : "number of readings per sample period"
"dataRating": [
{
"dateFrom":"2009-06-22T15:37:00.000Z",
"dateTo":null,
"samplePeriod":1.000000,
"sampleSize":1
}
]
cvTermobject

The list of controlled vocabulary terms associated with the device and any device groups the device belongs to.

Each vocabulary term is made up of:

  1. Key : "vocabulary" Value : "title of the vocabulary term belongs to"
  2. Key : "uri" Value : "URL of the vocabulary term"
"cvTerm": {
"device": [
{
"uri":"http://vocab.nerc.ac.uk/collection/L22/current/TOOL0888/",
"vocabulary":"SeaVoX Device Catalogue"
}
]
}
hasDeviceDatabooleanhasDeviceData flag for devices with searchable device and siteDevice
"hasDeviceData":true


Bad Request (HTTP 400)

errorCode

errorMessage

Description

23Invalid Time Range, Start Time is greater that End Time or start time is not provided

Occurs when the dateTo is before the dateFrom date/time.

  • The name of both of the datetime filters will be included in the "parameter" property
25

Invalid Time Range, Start Time is in the future.

Occurs when the dateFrom is in the future.

  • The name of both of the datetime filters will be included in the "parameter" property
127Invalid parameter value

Occurs when an invalid code is used in the filter. Most filters require an exact match, otherwise this error will occur.

  • The name of the filter parameter will be included in the "parameter" property
128Missing parameter

Occurs when multiple parameters are needed, but not all are present. Occurs when dateFrom is used without dateTo or vice versa

  • The names of the required filter parameters will be included in the "parameter" property separated by /
129Invalid parameter name

Occurs when a filter parameter is in the query but is not supported.

  • The name of the filter parameter will be included in the "parameter" property


Examples

  • Return a list of All of the Devices (no filters)

https://data.oceannetworks.ca/api/devices?method=get&token=YOUR_TOKEN_HERE


  • Return the Device with a Device Code of 'NORTEKADCP9917'

https://data.oceannetworks.ca/api/devices?method=get&token=YOUR_TOKEN_HERE&deviceCode=NORTEKADCP9917


  • Return a list of all of the Devices that have a Device Name which contains 'JASCO'

https://data.oceannetworks.ca/api/devices?method=get&token=YOUR_TOKEN_HERE&deviceName=JASCO


  • Return a list of all of the devices that have been deployed at a location with a Location Code of 'BACAX' ('Barkely Canyon Axis (POD1)')

https://data.oceannetworks.ca/api/devices?method=get&token=YOUR_TOKEN_HERE&locationCode=BACAX


  • Return a list of all of the Devices with a Device Category of 'ADCP2MHZ'

https://data.oceannetworks.ca/api/devices?method=get&token=YOUR_TOKEN_HERE&deviceCategoryCode=ADCP2MHZ


  • Return a list of all of the Devices with a Property Code of 'oxygen'

https://data.oceannetworks.ca/api/devices?method=get&token=YOUR_TOKEN_HERE&propertyCode=oxygen


  • Return a list of all of the Devices with a Device Category of 'CTD' and Property Code of 'pressure'

https://data.oceannetworks.ca/api/devices?method=get&token=YOUR_TOKEN_HERE&deviceCategoryCode=CTD&propertyCode=pressure


  • Return a list of all of the Devices that support the Data Product Code of 'IBPP' ('Ice Buoy Profile Plots')

https://data.oceannetworks.ca/api/devices?method=get&token=YOUR_TOKEN_HERE&dataProductCode=IBPP


  • Return a list of all of the Devices that were Deployed Between July 1st 2010 and June 30th 2012

https://data.oceannetworks.ca/api/devices?method=get&token=YOUR_TOKEN_HERE&dateFrom=2010-07-01T00:00:00.000Z&dateTo=2012-06-30T23:59:59.999Z


  • Return a list of all of the Devices Deployed Between July 1st 2010 and June 30th 2011, at a location with a Location Code of 'BACAX' ('Barkely Canyon Axis (POD1)')

https://data.oceannetworks.ca/api/devices?method=get&token=YOUR_TOKEN_HERE&locationCode=BACAX&dateFrom=2010-07-01T00:00:00.000Z&dateTo=2011-06-30T23:59:59.999Z


  • Return a list of all of the Devices which have a Property Code of 'seawatertemperature',  at a location with a Location Code of 'BACAX' ('Barkely Canyon Axis (POD1)'), Deployed Between July 1st 2010 and June 30th 2011

https://data.oceannetworks.ca/api/devices?method=get&token=YOUR_TOKEN_HERE&locationCode=BACAX&dateFrom=2010-07-01T00:00:00.000Z&dateTo=2011-06-30T23:59:59.999Z&propertyCode=seawatertemperature


API Proxy

The https://data.oceannetworks.ca/apiproxy/devicesURL link in the above examples can be used in a browser for sharing or testing purposes; however, it can not be accessed from code. Calls to the apiproxy server are redirected to a login screen to capture your user id. Accessing the apiproxy URL from code will return html in the payload, which may cause errors or unexpected behavior. In order to use the deployments endpoint from code, you must use the https://data.oceannetworks.ca/api/devices url along with a valid token. 

Code Examples

TitleCreatorModified
Python Client LibraryRyan Ross16-Aug-19
MATLAB Client LibraryRyan Ross26-Apr-19
Discover DevicesRyan Ross23-Apr-18



Please report all issues with the web services, documentation, samples and client libraries to the Oceans 2.0 Help Centre 

  • No labels