dev.sensorthings.observation

sensorthings.dev

Documentation

A single act of observation. The result type is determined by the $type discriminator on the result object.

main record

A single act of observation. The result type is determined by the $type discriminator on the result object.

Record Key any Any valid record key

Properties

datastream string at-uri Required

AT-URI of the parent Datastream

derivedFrom array of string at-uri Optional

AT-URIs of source observations or datastreams from which this observation was derived (e.g. tidal residual derived from observed and predicted level datastreams)

maxLength: 16 items
featureOfInterest string at-uri Optional

AT-URI of the feature being observed, if different from the Thing's location

parameters unknown Optional

Additional name-value pairs (e.g. depth, height above ground)

phenomenonTime string datetime Required

Time the phenomenon was observed (ISO 8601). Start of interval if phenomenonTimeEnd is present.

phenomenonTimeEnd string datetime Optional

End of observation interval (ISO 8601). If absent, the observation is an instant. Used for aggregates (daily means), processing windows (wave burst statistics), and accumulations (hourly rainfall).

resultQuality string Optional

Quality flag as a token reference

maxLength: 64 bytes
Known values: dev.sensorthings.quality#good, dev.sensorthings.quality#suspect, dev.sensorthings.quality#missing
resultTime string datetime Optional

Time the result became available (if different from phenomenonTime)

View raw schema
{
  "description": "A single act of observation. The result type is determined by the $type discriminator on the result object.",
  "key": "any",
  "record": {
    "properties": {
      "datastream": {
        "description": "AT-URI of the parent Datastream",
        "format": "at-uri",
        "type": "string"
      },
      "derivedFrom": {
        "description": "AT-URIs of source observations or datastreams from which this observation was derived (e.g. tidal residual derived from observed and predicted level datastreams)",
        "items": {
          "format": "at-uri",
          "type": "string"
        },
        "maxLength": 16,
        "type": "array"
      },
      "featureOfInterest": {
        "description": "AT-URI of the feature being observed, if different from the Thing's location",
        "format": "at-uri",
        "type": "string"
      },
      "parameters": {
        "description": "Additional name-value pairs (e.g. depth, height above ground)",
        "type": "unknown"
      },
      "phenomenonTime": {
        "description": "Time the phenomenon was observed (ISO 8601). Start of interval if phenomenonTimeEnd is present.",
        "format": "datetime",
        "type": "string"
      },
      "phenomenonTimeEnd": {
        "description": "End of observation interval (ISO 8601). If absent, the observation is an instant. Used for aggregates (daily means), processing windows (wave burst statistics), and accumulations (hourly rainfall).",
        "format": "datetime",
        "type": "string"
      },
      "result": {
        "description": "The observation result. Type determined by $type discriminator.",
        "refs": [
          "#numericResult",
          "#categoryResult",
          "#booleanResult",
          "#arrayResult",
          "#geoPointResult"
        ],
        "type": "union"
      },
      "resultQuality": {
        "description": "Quality flag as a token reference",
        "knownValues": [
          "dev.sensorthings.quality#good",
          "dev.sensorthings.quality#suspect",
          "dev.sensorthings.quality#missing"
        ],
        "maxLength": 64,
        "type": "string"
      },
      "resultTime": {
        "description": "Time the result became available (if different from phenomenonTime)",
        "format": "datetime",
        "type": "string"
      }
    },
    "required": [
      "datastream",
      "result",
      "phenomenonTime"
    ],
    "type": "object"
  },
  "type": "record"
}
arrayResult object

Array of scaled integer values sharing the parent Datastream's resultScaleFactor. Used for wave spectra (energy at frequency bins), current profiles (speed at depth bins), and similar array-valued observations.

Properties

labels array of string Optional

Optional labels identifying each element (e.g. frequency bin edges in Hz, depth bin centres in m). Must be same length as values if present.

maxLength: 1024 items
values array of integer Required

Ordered array of scaled integer values

maxLength: 1024 items
View raw schema
{
  "description": "Array of scaled integer values sharing the parent Datastream's resultScaleFactor. Used for wave spectra (energy at frequency bins), current profiles (speed at depth bins), and similar array-valued observations.",
  "properties": {
    "labels": {
      "description": "Optional labels identifying each element (e.g. frequency bin edges in Hz, depth bin centres in m). Must be same length as values if present.",
      "items": {
        "maxLength": 32,
        "type": "string"
      },
      "maxLength": 1024,
      "type": "array"
    },
    "values": {
      "description": "Ordered array of scaled integer values",
      "items": {
        "type": "integer"
      },
      "maxLength": 1024,
      "type": "array"
    }
  },
  "required": [
    "values"
  ],
  "type": "object"
}
booleanResult object

True/false observation. Used for threshold exceedances, detection flags, binary sensor states.

Properties

value boolean Required

No description available.

View raw schema
{
  "description": "True/false observation. Used for threshold exceedances, detection flags, binary sensor states.",
  "properties": {
    "value": {
      "type": "boolean"
    }
  },
  "required": [
    "value"
  ],
  "type": "object"
}
categoryResult object

Categorical observation from a controlled vocabulary. Used for weather codes, flood alert levels, land cover classes, sea state.

Properties

value string Required

Code or label from the vocabulary

maxLength: 256 bytes
vocabulary string uri Optional

URI of the code list or vocabulary (e.g. https://codes.wmo.int/306/4677 for WMO present weather codes)

View raw schema
{
  "description": "Categorical observation from a controlled vocabulary. Used for weather codes, flood alert levels, land cover classes, sea state.",
  "properties": {
    "value": {
      "description": "Code or label from the vocabulary",
      "maxLength": 256,
      "type": "string"
    },
    "vocabulary": {
      "description": "URI of the code list or vocabulary (e.g. https://codes.wmo.int/306/4677 for WMO present weather codes)",
      "format": "uri",
      "type": "string"
    }
  },
  "required": [
    "value"
  ],
  "type": "object"
}
geoPointResult object

Geographic position result for position-as-observation (e.g. GPS fix from a drifting buoy). Uses the same encoding as Thing.location.

Properties

altMm integer Optional

Altitude in mm above WGS84 ellipsoid

latE7 integer Required

No description available.

minimum: -900000000maximum: 900000000
lonE7 integer Required

No description available.

minimum: -1800000000maximum: 1800000000
View raw schema
{
  "description": "Geographic position result for position-as-observation (e.g. GPS fix from a drifting buoy). Uses the same encoding as Thing.location.",
  "properties": {
    "altMm": {
      "description": "Altitude in mm above WGS84 ellipsoid",
      "type": "integer"
    },
    "latE7": {
      "maximum": 900000000,
      "minimum": -900000000,
      "type": "integer"
    },
    "lonE7": {
      "maximum": 1800000000,
      "minimum": -1800000000,
      "type": "integer"
    }
  },
  "required": [
    "latE7",
    "lonE7"
  ],
  "type": "object"
}
numericResult object

Scaled integer result. Real value = value × 10^(−resultScaleFactor). The common case for continuous measurements.

Properties

value integer Required

No description available.

View raw schema
{
  "description": "Scaled integer result. Real value = value × 10^(−resultScaleFactor). The common case for continuous measurements.",
  "properties": {
    "value": {
      "type": "integer"
    }
  },
  "required": [
    "value"
  ],
  "type": "object"
}

Lexicon Garden

@