You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »


Description

The locations discovery web service returns all locations defined in Oceans 2.0 which meet the filter criteria.

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

A location is the parent of an Oceans 2.0 Tree Node, from which you can get data. In the Oceans 2.0 Data Search GUI, a location is a Tree Node that contains device categories (Instruments by Location) or properties (Variables by Location) that can be selected to download data. From the Oceans 2.0 perspective, a location is a Search Tree Node that has one or more site devices and/or has one or more primary sensors. If there are multiple instruments of the same device category at a location, child-locations or pseudo-nodes will exist and can be pulled from any one of them. Device Categories can be either at the location or at the child-level, whereas Properties (variables) can only be at the location level, due to the 'Primary Sensor' concept, which stitches together data from multiple sensors over time at a location.

For a list of available location codes, along with names and descriptions, see the Available Locations page.

 

See the External Web Services for method and token usage and error messages.

URL

http://data.oceannetworks.ca/api/locations

Method

Description

Example

get

Retrieve a flat list locations metadata.

method=get

getTree

Retrieve a Search Tree Node hierarchy of locations.
method=getTree

 get

The get method retrieves a list of location names and location codes.

Parameters

Parameter
Type
Description
Example
Required   
tokenstringAll Web Services require a token. Once logged in at http://data.oceannetworks.ca/login, your token can be retrieved or generated at http://data.oceannetworks.ca/Profile. Click on the "Web Services" tab, then click "Generate Token".token=5ba514e8-1203-428c-8835-879c8173e387
Optional   
locationCodestring

Return a single Location matching a specific Location Code

  • Location Code must be valid and match exactly, including case
  • Specific Location Codes can be found by simply running the service without this parameter to get a list of all locations
locationCode=BACAX
locationNamestring

Return all of the Locations where the Location Name contains a keyword.

  • Filter is not case sensitive, treating mill, Mill and MILL as the same word.
  • Filter will find partial words. Using the filter locationName=island will return "Digby Island Underwater Network", "Digby Island Shore Station", "Finlayson Islands", "Jenny Lind Island", "Quadra Island", "Digby Island (VDIG)" and "Ridley Island (VRID)".
locationName=mill
deviceCategoryCodestring

Return all Locations that have devices belonging to a specific Device Category

  • Device Category Code must be valid and match exactly, including case
  • Specific Device Category Codes can be obtained using the deviceCateogries service
deviceCategoryCode=CTD
deviceCode string

Return all of the Locations where a specific Device has been deployed.

  • Location Code must be valid and match exactly, including case.
  • Specific Device Codes can be obtained from the devices service.
 deviceCode=AandOpt0581
propertyCodestring

Return all Locations that have devices with a sensor for a specific Property.

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

Return all of the Locations that support a specific Data Product.

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

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

  • When the depolymentBegin filter is included, the deploymentEnd filter must also be included.

Date Time format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z'

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

deploymentEnddatetime

Return all of the Locations that have a Deployment Ending on or before a specific date/time.

    • When the deploymentEnd filter is included, the deploymentBegin filter must also be included.

Date Time format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z'

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

includeChildrenbool

Include all of the children of a location in the results.

  • Requires a valid locationCode.
  • Valid values are either true or false and must match exactly.
includeChildren=true

Response

Example for request: http://data.oceannetworks.ca/api/locations?method=get&token=[YOUR_TOKEN_HERE]&locationCode=BACAX

Success (HTTP 200)

Returns a list of locations with values for Location Code, Location Name, Description, Device Data indicator, Property Data indicator, and Data Search Link URL, ordered by Location Code

 

[
   {
      "deployments": 50,
      "locationName": "Axis ",
      "depth": 984.3076,
      "bbox": {
         "maxDepth": 987,
         "maxLat": 48.316837,
         "maxLon": -126.050125,
         "minDepth": 981,
         "minLat": 48.316517,
         "minLon": -126.05087
      },
      "description": "Depth: 985 m Latitude: 48.3167 Longitude: -126.0501 Type: Stationary platform Description: Canyon axis: benthic processes, biodiversity, sediment dynamics.",
      "hasDeviceData": "true",
      "lon": -126.05033,
      "locationCode": "BACAX",
      "hasPropertyData": "true",
      "lat": 48.31669,
      "dataSearchURL": "http://data.oceannetworks.ca/DataSearch?location=BACAX"
   }
]
Property
Type
Description
Example
locationNamestringThe name of the location
"locationName":"Axis (POD 1)"
locationCodestringThe locationCode for the location.
"locationCode":"BACAX"
descriptionstringThe description of the location
"description":"Depth: 985 m Latitude: 48.3167 Longitude: -126.0501 Type: Stationary platform Description: Canyon axis: benthic processes, biodiversity, sediment dynamics."

hasDeviceData

stringIndicates that data products can be requested using a device category code for the location
"hasDeviceData":"true
hasPropertyDatastringIndicates that data products can be requested using a property code for the location
"hasPropertyData":"true"
dataSearchURLstringThe location specific Data Search web page URL
"dataSearchURL":"http://dmas.uvic.ca/DataSearch?location=BACAX"
deploymentsintegernumber of deployments"deployments" 10,
depthdoubleaverage depth of deployments"depth" 75,
latdouble

average latitude of deployments

"lat" 48.47672,
londoubleaverage longitude of deployments"lon" : -123.294902,
bboxObjectbounding box of site devices at location for device that pass filters
"bbox" : {
    "maxDepth" 100,
    "maxLat" 48.476740,
    "maxLon" : -123.294904,
    "minDepth" 50,
    "minLat" 48.47670,
    "minLon" : -123.294900
  }

Bad Request (HTTP 400)

errorCode
errorMessage
Description
23Invalid Time Range, Start Time is greater than End Time or start time is not provided

Occurs when the deploymentEnd is before the deploymentBegin date/time.

  • The name of both of the datetime filters are 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 is included in the parameter property.
128Missing parameter

Occurs when multiple parameters are needed, but not all are present. Occurs when deploymentBegin is used without deploymentEnd.

  • The names of the required filter parameters, separated by /, are included in the parameter property.
129Invalid parameter name

Occurs when a filter parameter is used, but is not supported.

 

 getTree

The getTree method returns a hierarchical representation of the ONC Search Tree Nodes. The Search Tree is used in Oceans 2.0 to organize Instruments and Variables by Location so that users can easily drill down by place name or mobile platform name to find instruments or properties of interested. 

Parameters

Parameter
Type
Description
Example
Required   
tokenstringAll Web Services require a token. Once logged in at http://data.oceannetworks.ca/login, your token can be retrieved or generated at http://data.oceannetworks.ca/Profile. Click on the "Web Services" tab, then click "Generate Token".token=5ba514e8-1203-428c-8835-879c8173e387
Optional   
locationCodestring

A valid locationCode is needed. Run the service without this parameter to get a list of all locations.

  • Code must match exactly, including case.
locationCode=BACAX

 

Response

Response for request http://data.oceannetworks.ca/api/locations?method=getTree&token=[YOUR_TOKEN_HERE]&locationCode=BACCC

Success (HTTP 200)

 

[
   {"locationName":"Coral Cliff",
    "children":[{"locationName":"ADCP 2 MHz West",
                    "children":null,
                    "description":"Depth: 807 m Latitude: 48.3104 Longitude: -126.0623 Type: Autonomous platform Description: Boundary layer flow near steep bathymetry, interaction of currents and deep-sea corals.",
                    "hasDeviceData":"true",
                    "locationCode":"BACCC.A2",
                    "hasPropertyData":"false"},
                {"locationName":"ADCP 2 MHz East",
                    "children":null,
                    "description":"Depth: 824 m Latitude: 48.3098 Longitude: -126.0621 Type: Autonomous platform Description: Boundary layer flow near steep bathymetry, interaction of currents and deep-sea corals.",
                    "hasDeviceData":"true",
                    "locationCode":"BACCC.A1",
                    "hasPropertyData":"false"}],
    "description":"Depth: 816 m Latitude:48.3101 Longitude: -126.0622 Type: Autonomous platform Description: Boundary layer flow near steep bathymetry, interaction of currents and deep-sea corals.",
    "hasDeviceData":"false",
    "locationCode":"BACCC",
    "hasPropertyData":"true"
   }
]
Property
Type
Description
Example
locationNamestringThe name of the location
"locationName":"Axis (POD 1)"
locationCodestringThe locationCode for that location.
"locationCode":"BACAX"
childrenlistA list of all child nodes for the location. Each child node contains all of the available parameters
"children":[{...},{...},...]
descriptionstringThe description of the location
"description":"Depth: 985 m Latitude: 48.3167 Longitude: -126.0501 Type: Stationary platform Description: Canyon axis: benthic processes, biodiversity, sediment dynamics."

hasDeviceData

stringIndicates that data products can be requested using a device category code for the location
"hasDeviceData":"true
hasPropertyDatastringIndicates that data products can be requested using a property code for the location
"hasPropertyData":"true"
dataSearchURLstringThe location specific Data Search web page URL
"dataSearchURL":"http://dmas.uvic.ca/DataSearch?location=BACAX"

Bad Request (HTTP 400)

errorCode
errorMessage
Description
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.
129Invalid parameter name

Occurs when a filter parameter is used, but is not supported.

 

 URL Examples

  • Return a list of All Locations (no filters)

http://data.oceannetworks.ca/api/locations?method=get&token=[YOUR_TOKEN_HERE]

 

  • Return the Location with a Location Code of 'BACAX' ('Barkely Canyon Axis (POD1)')

http://data.oceannetworks.ca/api/locations?method=get&token=[YOUR_TOKEN_HERE]&locationCode=BACAX

 

  • Return a list of all Locations at or below the Location Code of 'NEP' ('Northeast Pacific') in the Tree View 

http://data.oceannetworks.ca/api/locations?method=get&token=[YOUR_TOKEN_HERE]&locationCode=NEP&includeChildren=true

  • This example returns the NEP location and all of its child locations, in a flat format. In the results obtained from making the request, look for "hasDeviceData" and "hasPropertyData" properties. These indicate whether property data and device data are available from that location. If both values are false, the location is a hierarchical tree node.

 

  • Return a list of all Locations that have a Location Name containing the string 'underwater'

http://data.oceannetworks.ca/api/locations?method=get&token=[YOUR_TOKEN_HERE]&locationName=underwater

  

  • Return a list of all Locations that have devices with a Device Category of 'ADCP2MHZ'

http://data.oceannetworks.ca/api/locations?method=get&token=[YOUR_TOKEN_HERE]&deviceCategoryCode=ADCP2MHZ

 

  • Return a list of all Locations with a Property Code of 'differentialtemperature'

http://data.oceannetworks.ca/api/locations?method=get&token=[YOUR_TOKEN_HERE]&propertyCode=differentialtemperature

 

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

http://data.oceannetworks.ca/api/locations?method=get&token=[YOUR_TOKEN_HERE]&deviceCategoryCode=CTD&propertyCode=pressure

 

  • Return a list of all Locations where a device with a Device Code of 'NORTEKAQDPRO8398' has been deployed

http://data.oceannetworks.ca/api/locations?method=get&token=[YOUR_TOKEN_HERE]&deviceCode=NORTEKAQDPRO8398

 

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

http://data.oceannetworks.ca/api/locations?method=get&token=[YOUR_TOKEN_HERE]&dataProductCode=IBPP

 

  • Return a list of all of the Locations that have instruments that were Deployed Between 1 July 2010 and 30 June 2012

http://dmas.uvic.ca/api/locations?method=get&token=[YOUR_TOKEN_HERE]&deploymentBegin=2010-07-01T00:00:00.000Z&deploymentEnd=2012-06-30T23:59:59.999Z

 

  • Return a list of all of the Locations which has instruments Deployed Between 1 July 2010 and 30 June 2011 with a sensor Property Code of 'seawatertemperature'

http://data.oceannetworks.ca/api/locations?method=get&token=[YOUR_TOKEN_HERE]&deploymentBegin=2010-07-01T00:00:00.000Z&deploymentEnd=2011-06-30T23:59:59.999Z&propertyCode=seawatertemperature

 

  • Return the complete Oceans 2.0 Search Tree hierarchy

http://data.oceannetworks.ca/api/locations?method=getTree&token=[YOUR_TOKEN_HERE]

or

http://data.oceannetworks.ca/api/locations?method=getTree&token=[YOUR_TOKEN_HERE]&locationCode=ONC

 

  • Return the Oceans 2.0 Search Tree hierarchy at or below the 'Mobile Platforms' node

http://data.oceannetworks.ca/api/locations?method=getTree&token=[YOUR_TOKEN_HERE]&locationCode=MOBP

API Proxy

The http://data.oceannetworks.ca/apiproxy/deviceCategories URL 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 behaviour. In order to use the deviceCategories endpoint from code, you must use the http://data.oceannetworks.ca/api/deviceCateogies url along with a valid token. 

Code Examples

TitleCreatorModified
Ouranos Use CaseAllan Rempel26-Feb-22
Bird Studies Canada Use CaseAllan Rempel26-Feb-22
Internal Use CaseRyan Ross26-Feb-22

  • No labels