dev.sensorthings.observation
Schema Diff
+2 -1
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
}