Skip to content

Commit

Permalink
[SWECommon] Changed to v3.0 and removed XML encodings
Browse files Browse the repository at this point in the history
  • Loading branch information
alexrobin committed Apr 30, 2024
1 parent 9fb95ec commit 7464788
Show file tree
Hide file tree
Showing 89 changed files with 17,287 additions and 87 deletions.
76 changes: 76 additions & 0 deletions swecommon/experiments/avro/BasicYPR_Schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
{
"type": "record",
"fields": [
{
"name": "position",
"type": "record",
"doc": "Platform geographic position",
"@swe.label": "Tangent Point Position",
"@swe.definition": "http://sensorml.com/ont/swe/property/Location",
"@swe.referenceFrame": "http://www.opengis.net/def/crs/EPSG/0/4979",
"fields": [
{
"name": "lat",
"type": "double",
"@swe.label": "Geodetic Latitude",
"@swe.definition": "http://sensorml.com/ont/swe/property/GeodeticLatitude",
"@swe.uomCode": "deg",
"@swe.axisID": "Lat"
},
{
"name": "lon",
"type": "double",
"@swe.label": "Longitude",
"@swe.definition": "http://sensorml.com/ont/swe/property/Longitude",
"@swe.uomCode": "deg",
"@swe.axisID": "Lon"
},
{
"name": "h",
"type": "double",
"@swe.label": "Ellipsoidal Height",
"@swe.definition": "http://sensorml.com/ont/swe/property/HeightAboveEllipsoid",
"@swe.uomCode": "m",
"@swe.axisID": "h"
}
]
},
{
"name": "angles",
"type": "record",
"doc": "Euler angles with order of rotation yaw/pitch/roll in rotating frame",
"@swe.label": "Yaw Pitch Roll Angles",
"@swe.definition": "http://sensorml.com/ont/swe/property/EulerAngles",
"@swe.referenceFrame": "http://www.opengis.net/def/cs/OGC/0/ENU",
"fields": [
{
"name": "yaw",
"type": "float",
"doc": "Heading angle from true north, measured clockwise",
"@swe.label": "Yaw Angle",
"@swe.definition": "http://sensorml.com/ont/swe/property/YawAngle",
"@swe.uomCode": "deg",
"@swe.axisID": "Z"
},
{
"name": "pitch",
"type": "float",
"doc": "Rotation around the lateral axis, up/down from the local horizontal plane (positive when pointing up)",
"@swe.label": "Pitch Angle",
"@swe.definition": "http://sensorml.com/ont/swe/property/PitchAngle",
"@swe.uomCode": "deg",
"@swe.axisID": "Y"
},
{
"name": "roll",
"type": "float",
"doc": "Rotation around the longitudinal axis",
"@swe.label": "Roll Angle",
"@swe.definition": "http://sensorml.com/ont/swe/property/RollAngle",
"@swe.uomCode": "deg",
"@swe.axisID": "X"
}
]
}
]
}
23 changes: 23 additions & 0 deletions swecommon/experiments/flatbuffers/BasicYPR_Schema.idl
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
attribute "swe.definition";
attribute "swe.uomCode";
attribute "swe.axisID";


struct TangentPointPosition {
lat: double (swe.definition: "", swe.uomCode: "deg");
lon: double (swe.definition: "", swe.uomCode: "deg");
h : double (swe.definition: "", swe.uomCode: "m");
}

struct YawPitchRollAngles {
yaw: float (swe.definition: "", swe.uomCode: "deg");
pitch: float (swe.definition: "", swe.uomCode: "deg");
roll: float (swe.definition: "", swe.uomCode: "deg");
}

table BasicYPR {
position: TangentPointPosition;
angles: YawPitchRollAngles;
}

root_type BasicYPR;
84 changes: 84 additions & 0 deletions swecommon/experiments/jsonschema/BasicYPR_Schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"position": {
"type": "object",
"title": "Tangent Point Position",
"description": "Platform geographic position",
"@swe.definition": "http://sensorml.com/ont/swe/property/Location",
"@swe.referenceFrame": "http://www.opengis.net/def/crs/EPSG/0/4979",
"properties": {
"lat": {
"type": "number",
"title": "Geodetic Latitude",
"@swe.definition": "http://sensorml.com/ont/swe/property/GeodeticLatitude",
"@swe.uomCode": "deg",
"@swe.axisID": "Lat",
"minimum": -90,
"maximum": 90
},
"lon": {
"type": "number",
"title": "Longitude",
"@swe.definition": "http://sensorml.com/ont/swe/property/Longitude",
"@swe.uomCode": "deg",
"@swe.axisID": "Lon",
"minimum": -180,
"maximum": 180
},
"h": {
"type": "number",
"title": "Ellipsoidal Height",
"@swe.definition": "http://sensorml.com/ont/swe/property/HeightAboveEllipsoid",
"@swe.uomCode": "m",
"@swe.axisID": "h",
"minimum": -10000
}
},
"required": [ "lat", "lon", "alt" ],
"additionalProperties": false
},
"angles": {
"type": "object",
"title": "Yaw Pitch Roll Angles",
"description": "Euler angles with order of rotation yaw/pitch/roll in rotating frame",
"@swe.definition": "http://sensorml.com/ont/swe/property/EulerAngles",
"@swe.referenceFrame": "http://www.opengis.net/def/cs/OGC/0/ENU",
"properties": {
"yaw": {
"type": "number",
"title": "Yaw Angle",
"description": "Heading angle from true north, measured clockwise",
"@swe.definition": "http://sensorml.com/ont/swe/property/YawAngle",
"@swe.uomCode": "deg",
"@swe.axisID": "Z",
"minimum": -180,
"maximum": 360
},
"pitch": {
"type": "number",
"title": "Pitch Angle",
"description": "Rotation around the lateral axis, up/down from the local horizontal plane (positive when pointing up)",
"@swe.definition": "http://sensorml.com/ont/swe/property/PitchAngle",
"@swe.uomCode": "deg",
"@swe.axisID": "Y",
"minimum": -90,
"maximum": 90
},
"roll": {
"type": "number",
"title": "Roll Angle",
"description": "Rotation around the longitudinal axis",
"@swe.definition": "http://sensorml.com/ont/swe/property/RollAngle",
"@swe.uomCode": "deg",
"@swe.axisID": "X",
"minimum": -180,
"maximum": 180
}
},
"required": [ "yaw", "pitch", "roll" ],
"additionalProperties": false
}
}
}
67 changes: 67 additions & 0 deletions swecommon/experiments/protobuf/BasicYPR_Schema.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
syntax = "proto3";
import "swe_options.proto";

message BasicYPR {

// internal datastream ID
optional int64 datastream_id = 1 [
default = 0
];

// internal FOI ID
optional int64 foi_id = 2 [
default = 0,
(swe.definition) = "http://sensorml.com/ont/swe/property/FoiID"
];

int64 phenomenonTime = 3 [
(swe.definition) = "http://www.opengis.net/def/property/OGC/0/PhenomenonTime",
(swe.uomCode) = "ms"
];

message TangentPointPosition {
// Platform geographic position
option (swe.definition) = "http://sensorml.com/ont/swe/property/Location";
option (swe.referenceFrame) = "http://www.opengis.net/def/crs/EPSG/0/4979";

double lat = 1 [
(swe.definition) = "http://sensorml.com/ont/swe/property/GeodeticLatitude",
(swe.uomCode) = "deg",
(swe.axisID) = "Lat"
];
double lon = 2 [
(swe.definition) = "http://sensorml.com/ont/swe/property/Longitude",
(swe.uomCode) = "deg",
(swe.axisID) = "Lon"
];
double h = 3 [
(swe.definition) = "http://sensorml.com/ont/swe/property/HeightAboveEllipsoid",
(swe.uomCode) = "m",
(swe.axisID) = "h"
];
}
TangentPointPosition position = 4;

message YawPitchRollAngles {
// Euler angles with order of rotation yaw/pitch/roll in rotating frame
option (swe.definition) = "http://sensorml.com/ont/swe/property/EulerAngles";
option (swe.referenceFrame) = "http://www.opengis.net/def/cs/OGC/0/ENU";

float yaw = 1 [
(swe.definition) = "http://sensorml.com/ont/swe/property/YawAngle",
(swe.uomCode) = "deg",
(swe.axisID) = "Z"
];
float pitch = 2 [
(swe.definition) = "http://sensorml.com/ont/swe/property/PitchAngle",
(swe.uomCode) = "deg",
(swe.axisID) = "Y"
];
float roll = 3 [
(swe.definition) = "http://sensorml.com/ont/swe/property/RollAngle",
(swe.uomCode) = "deg",
(swe.axisID) = "X"
];
}
YawPitchRollAngles angles = 5;
}
14 changes: 14 additions & 0 deletions swecommon/experiments/protobuf/swe_options.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import "google/protobuf/descriptor.proto";

extend google.protobuf.FieldOptions {
optional string id = 1000;
optional string label = 1001;
optional string description = 1002;
optional string definition = 1003;
optional string uomCode = 1004;
optional string uomHref = 1005;
optional string axisID = 1006;
optional string referenceFrame = 1007;
optional string localFrame = 1008;
optional string referenceTime = 1009;
}
38 changes: 38 additions & 0 deletions swecommon/experiments/qualifiers/frequency.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"$schema": "../../sweCommon.json",
"type": "DataRecord",
"label": "Frequency Bands Examples",
"fields": [
{
"name": "rf_power1",
"type": "Quantity",
"definition": "http://qudt.org/vocab/quantitykind/RF-Power",
"label": "Received RF Power (dBm)",
"uom": { "code": "dB" },
"qualifiers": [
{
"type": "QuantityRange",
"definition": "http://qudt.org/vocab/quantitykind/Frequency",
"label": "Frequency Range",
"uom": { "code": "MHz" },
"value": [620.0, 720.0]
}
]
},
{
"name": "rf_power_xband",
"type": "Quantity",
"definition": "http://qudt.org/vocab/quantitykind/RF-Power",
"label": "Received RF Power (dBm)",
"uom": { "code": "dB" },
"qualifiers": [
{
"type": "Category",
"definition": "http://qudt.org/vocab/quantitykind/Frequency",
"label": "Frequency Band",
"value": "http://sensorml.com/ont/swe/spectrum/IEEE/X_band"
}
]
}
]
}
24 changes: 24 additions & 0 deletions swecommon/experiments/qualifiers/height.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"$schema": "../../sweCommon.json",
"type": "DataRecord",
"label": "Qualifier Examples",
"fields": [
{
"name": "temp",
"type": "Quantity",
"definition": "http://qudt.org/vocab/quantitykind/Temperature",
"label": "Surface Temperature",
"description": "Air temperature measured 2m above the surface",
"uom": { "code": "Cel" },
"qualifiers": [
{
"type": "Quantity",
"definition": "http://sensorml.com/ont/swe/property/HeightAboveGround",
"label": "Measurement Height",
"uom": { "code": "m" },
"value": 2.0
}
]
}
]
}
Loading

0 comments on commit 7464788

Please sign in to comment.