Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Table of Contents
maxLevel3
outlinetrue

...

SensorThings Entity

Description

Example: NMBGMR Aquifer Monitoring Well

NMED Drinking Water Quality Monitoring

NMOSE Water Withdrawal Monitoring

Metadata

Location

A unique coordinate or area on the surface of the earth

Location in latitude and longitude or UTM easting and Northing (UTM Zone 13, NAD83)

Street Address (possibly with associated latitude and longitude). (e.g. 3960 PRINCE ST)

Location in easting and northing (UTM NAD83 in meters)

Thing

Some real-world thing with which one or more Sensors are associated

Well Point ID WL-0150

Sample Pt RT236I

Point of Diversion POD Number A 00008 AS

Datastream

A collection of Observations about an ObservedProperty produced by a Sensor associated with a Thing

Time series, Hydrograph

Sample Results

Meter Readings (Quarterly)

Datastream/observationType

The type of observation, codified in the Observations and Measurements data standard. Types include Categorical (defined text), Count (integer), Measurement (continuous number), Observation (free text), and TruthObservation (True/False)

Measurement

Categorical or TruthObservation

Measurement

Datastream/unitOfMeasurement

A three-item definition of the unit of measurement, including its name, symbol, and link to the definition (preferably to one provided in an established ontology such as http://unitsofmeasure.org/ucum.html or http://qudt.org/)

feet (e.g. http://qudt.org/vocab/unit/FT)

TCR Result

Acre-Feet (e.g. http://qudt.org/vocab/unit/AC-FT)

Sensor

The procedure used to provide a Datastream. Can be a particular data recording device model, or a defined procedure followed by a human observer. If applicable, a specific instance (e.g. a sensor model and serial number)

Steel-tape measurement; Continuous acoustic sounder

9223B-PA (https://www.standardmethods.org/doi/10.2105/SMWW.2882.194)

MCCROMETER Diversion Meter-Meter Number 17147

ObservedProperty

The raw or processed phenomenon (quantitative or qualitative) being measured for the Datastream. Preferably including a link to a definition provided by an established ontology or controlled vocabulary such as the ODM2 Controlled Vocabularies or http://qudt.org/)

Depth to Water Below Ground Surface (BGS)

Analyte (e.g. Coliform (TCR) (3100))

Mtr Amount

OPTIONAL: FeatureOfInterest

The real-world feature that the Observations are about. This may or many not be different from the Location where the Thing on which the Sensor is mounted. Can include a JSON-formatted point location or a polygon or collections thereof.

Formation (e.g. https://maps.nmt.edu/maps/data/hydrograph/formation_lu)

Public Water System (head office location or service area boundary) (e.g. Albuquerque Water System PWSID NM3510701)

Water Right (set of relevant points of diversion)

Data

Observation

A single measurement value including the result, time values, and other metadata. Information on the ObservedProperty that was measured by what Sensor is provided by the Datastream these observations are in. Features of Interest are linked for each observation as well. Observations are linked to (collected in) Datastreams

Depth Measurement

Sample (e.g. 763391)

Meter Reading

Observation/result

The actual measured value, with valid values defined in observationType and units defined in unitsOfMeasurement, both provided by Datastream

Depth (e.g. 337.08)

Sample Result (P (Positive/ Coliform found) A (Negative/ Coliform not found))

Mtr Amount (e.g. 107.948)

Observation/phenomenonTime

The date+time (or interval) in ISO 8601 format (YYYY-MM-DDT:HH:MM:SS-Z) when the observation occured

2019-01-31 00:00:00

MP (Monitoring Period) (e.g. 01-01-2020 to 01-31-2020)

1/20/2017-04/05/2017 (Quarterly period for which volume was measured)

OPTIONAL: Observation/resultTime

The date+time that the result was generated. May be the same as phenomenonTime

Date (e.g 01-06-2020)

04/05/2017 (date of meter reading)

OPTIONAL: Observation/validTime

The date+time interval during which the Observation can be used (often used for provisional values that are replaced by QA/QC’d observations)

OPTIONAL: Observation/resultQuality

A description of the result Quality. Will vary according to agency practice. Can use ODM2 controlled vocabulary for data quality types as a guide.

Precision (e.g. “within two hundredths of a foot”)

...

Code Block
languager
{
  "@iot.nextLink": "https://st.newmexicowaterdata.org/FROST-Server/v1.1/Locations?$skip=100",
  "value": [
    {
      "name": "NMWDI-0000001",
      "description": "WELL",
      "encodingType": "application/vnd.geo+json",
      "location": {
        "type": "Point",
        "coordinates": [
          -108.068892,
          36.796529
        ]
      },
      "HistoricalLocations@iot.navigationLink": "https://st.newmexicowaterdata.org/FROST-Server/v1.1/Locations(1)/HistoricalLocations",
      "Things@iot.navigationLink": "https://st.newmexicowaterdata.org/FROST-Server/v1.1/Locations(1)/Things",
      "@iot.id": 1,
      "@iot.selfLink": "https://st.newmexicowaterdata.org/FROST-Server/v1.1/Locations(1)"
    },
    {
      "name": "NMWDI-0000031",
      "description": "WELL",
      "encodingType": "application/vnd.geo+json",
      "location": {
        "type": "Point",
        "coordinates": [
          -105.11427778,
          32.02255556
        ]
      },
      "HistoricalLocations@iot.navigationLink": "https://st.newmexicowaterdata.org/FROST-Server/v1.1/Locations(31)/HistoricalLocations",
      "Things@iot.navigationLink": "https://st.newmexicowaterdata.org/FROST-Server/v1.1/Locations(31)/Things",
      "@iot.id": 31,
      "@iot.selfLink": "https://st.newmexicowaterdata.org/FROST-Server/v1.1/Locations(31    },

Adding the paramaeter parameter ?$resultFormat=CSV returns the same information as tabular data, and adding ?$resultFormat=GeoJSON returns the same information as a GeoJSON file that can be used in GIS applications such as ESRI ArcGIS or QGIS or to create custom web maps. STA is a very full-featured API that enables complex, multi-parameter queries. Full detail can be found at the OGC API specification document or the interactive documentation.

...

The response shows there is one such observation, that it occured occurred on August 15, 2014 with a result of 274, and that the unit of measurement is parts per million, that the result type is a measurement (continuous number) and that the Feature of Interest’s location is longitude -105.59 and latitude 36.73:

...

While the API is useful for creating web applications for any given agency’s data, it is most integral to the NMWDI purpose of data integration. If multiple agencies' data is available via the same API standard, then this reduces the burden on data users to access data from each agency. Consider the complex query above. We can modify it slightly by changing the first part of the URL from https://st.newmexicowaterdata.org/FROST-Server/v1.1 to https://nm.ngwmn.internetofwater.dev/api/v1.1 The latter URL points to an entirely different API written in a different programming language on a separate database stewarded by a different organization. In this case the data is a copy of the New Mexico part of the National Groundwater Monitoring Network being served by the Internet of Water at Duke University. By changing this first part, as well as changing ‘TDS’ to ‘Water Level Below Ground Surface’, and expanding the date range to include everything between 2019 and 2020, we contruct construct this query:

https://nm.ngwmn.internetofwater.dev/api/v1.1/Observations?$filter=FeatureOfInterest/id eq '32' and Datastream/ObservedProperty/name eq 'Water Level Below Ground Surface' and phenomenonTime gt 2019-01-01T00:00:00.000Z and phenomenonTime lt 2020-01-01T00:00:00.000Z&$expand=Datastream

...

NMWDI will provide template .csv and/or .yaml files to be populated by Agency database SQL exports and/or transformations of existing tabular data files. Some of the fields should be filled with URIs from a controlled vocabulary (CV_string_uri). Note that this an extra step from the table representing the mapping exercise from agency data to the STA data model. A variety of tools and scripting languages can be used to export data from databases and export such files. The template will be formatted similarly to this:

...