dev.sensorthings.observation

sensorthings.dev

Schema Diff

+2 -1

From

CID
bafyreiawpa4imnx...
Indexed At
2026-03-27 18:59 UTC
View this version

To

CID
bafyreibqo7zzhbs...
Indexed At
2026-07-26 20:10 UTC
View this version

Compatibility Analysis

Backward Compatible

No changes detected.

1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "arrayResult": {
5 5
      "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.",
6 6
      "properties": {
7 7
        "labels": {
8 8
          "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.",
9 9
          "items": {
10 10
            "maxLength": 32,
11 11
            "type": "string"
12 12
          },
13 13
          "maxLength": 1024,
14 14
          "type": "array"
15 15
        },
16 16
        "values": {
17 17
          "description": "Ordered array of scaled integer values",
18 18
          "items": {
19 19
            "type": "integer"
20 20
          },
21 21
          "maxLength": 1024,
22 22
          "type": "array"
23 23
        }
24 24
      },
25 25
      "required": [
26 26
        "values"
27 27
      ],
28 28
      "type": "object"
29 29
    },
30 30
    "booleanResult": {
31 31
      "description": "True/false observation. Used for threshold exceedances, detection flags, binary sensor states.",
32 32
      "properties": {
33 33
        "value": {
34 34
          "type": "boolean"
35 35
        }
36 36
      },
37 37
      "required": [
38 38
        "value"
39 39
      ],
40 40
      "type": "object"
41 41
    },
42 42
    "categoryResult": {
43 43
      "description": "Categorical observation from a controlled vocabulary. Used for weather codes, flood alert levels, land cover classes, sea state.",
44 44
      "properties": {
45 45
        "value": {
46 46
          "description": "Code or label from the vocabulary",
47 47
          "maxLength": 256,
48 48
          "type": "string"
49 49
        },
50 50
        "vocabulary": {
51 51
          "description": "URI of the code list or vocabulary (e.g. https://codes.wmo.int/306/4677 for WMO present weather codes)",
52 52
          "format": "uri",
53 53
          "type": "string"
54 54
        }
55 55
      },
56 56
      "required": [
57 57
        "value"
58 58
      ],
59 59
      "type": "object"
60 60
    },
61 61
    "geoPointResult": {
62 62
      "description": "Geographic position result for position-as-observation (e.g. GPS fix from a drifting buoy). Uses the same encoding as Thing.location.",
63 63
      "properties": {
64 64
        "altMm": {
65 65
          "description": "Altitude in mm above WGS84 ellipsoid",
66 66
          "type": "integer"
67 67
        },
68 68
        "latE7": {
69 69
          "maximum": 900000000,
70 70
          "minimum": -900000000,
71 71
          "type": "integer"
72 72
        },
73 73
        "lonE7": {
74 74
          "maximum": 1800000000,
75 75
          "minimum": -1800000000,
76 76
          "type": "integer"
77 77
        }
78 78
      },
79 79
      "required": [
80 80
        "latE7",
81 81
        "lonE7"
82 82
      ],
83 83
      "type": "object"
84 84
    },
85 85
    "main": {
86 86
      "description": "A single act of observation. The result type is determined by the $type discriminator on the result object.",
87 87
      "key": "any",
88 88
      "record": {
89 89
        "properties": {
90 90
          "datastream": {
91 91
            "description": "AT-URI of the parent Datastream",
92 92
            "format": "at-uri",
93 93
            "type": "string"
94 94
          },
95 95
          "derivedFrom": {
96 96
            "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)",
97 97
            "items": {
98 98
              "format": "at-uri",
99 99
              "type": "string"
100 100
            },
101 101
            "maxLength": 16,
102 102
            "type": "array"
103 103
          },
104 104
          "featureOfInterest": {
105 105
            "description": "AT-URI of the feature being observed, if different from the Thing's location",
106 106
            "format": "at-uri",
107 107
            "type": "string"
108 108
          },
109 109
          "parameters": {
110 110
            "description": "Additional name-value pairs (e.g. depth, height above ground)",
111 111
            "type": "unknown"
112 112
          },
113 113
          "phenomenonTime": {
114 114
            "description": "Time the phenomenon was observed (ISO 8601). Start of interval if phenomenonTimeEnd is present.",
115 115
            "format": "datetime",
116 116
            "type": "string"
117 117
          },
118 118
          "phenomenonTimeEnd": {
119 119
            "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).",
120 120
            "format": "datetime",
121 121
            "type": "string"
122 122
          },
123 123
          "result": {
124 124
            "description": "The observation result. Type determined by $type discriminator.",
125 125
            "refs": [
126 126
              "#numericResult",
127 127
              "#categoryResult",
128 128
              "#booleanResult",
129 129
              "#arrayResult",
130 130
              "#geoPointResult"
131 131
            ],
132 132
            "type": "union"
133 133
          },
134 134
          "resultQuality": {
135 135
            "description": "Quality flag as a token reference",
136 136
            "knownValues": [
137 137
              "dev.sensorthings.quality#good",
138 138
              "dev.sensorthings.quality#suspect",
139 139
              "dev.sensorthings.quality#missing"
140 140
            ],
141 141
            "maxLength": 64,
142 142
            "type": "string"
143 143
          },
144 144
          "resultTime": {
145 145
            "description": "Time the result became available (if different from phenomenonTime)",
146 146
            "format": "datetime",
147 147
            "type": "string"
148 148
          }
149 149
        },
150 150
        "required": [
151 151
          "datastream",
152 152
          "result",
153 153
          "phenomenonTime"
154 154
        ],
155 155
        "type": "object"
156 156
      },
157 157
      "type": "record"
158 158
    },
159 159
    "numericResult": {
160 160
      "description": "Scaled integer result. Real value = value × 10^(−resultScaleFactor). The common case for continuous measurements.",
161 161
      "properties": {
162 162
        "value": {
163 163
          "type": "integer"
164 164
        }
165 165
      },
166 166
      "required": [
167 167
        "value"
168 168
      ],
169 169
      "type": "object"
170 170
    }
171 171
  },
172 172
  "id": "dev.sensorthings.observation",
173 -
  "lexicon": 1
173 +
  "lexicon": 1,
174 +
  "revision": 1
174 175
}

Compare Other Versions

Lexicon Garden

@