POST Forwarding of Data
When one of your Spotters generates new data, A POST request will be made to all of your delivery endpoints.
Incoming spotter data can optionally be forwarded as POST requests to custom delivery endpoints. The new data will be included in the JSON body of the request.
To configure and manage your delivery endpoints, go to your Spotter dashboard at spotter.sofarocean.com/api
The content of the JSON will depend on the operating mode and configuration of the Spotter. See below for example request bodies.
frequencyDataonly available in Waves: Spectrum or HDR modepartitionDataonly available in Waves: Partition or HDR mode
{
"data": {
"spotterId": "SPOT-0018",
"spotterName": "Mavericks 2",
"payloadType": "waves",
"batteryVoltage": 4.07,
"batteryPower": -0.41,
"solarVoltage": 0.0,
"humidity": 32.8,
"waves": [
{
"significantWaveHeight": 1.14,
"peakPeriod": 9.3,
"meanPeriod": 8.3,
"peakDirection": 302.3,
"peakDirectionalSpread": 42.11,
"meanDirection": 286.2,
"meanDirectionalSpread": 56.16,
"timestamp": "2017-11-08T07:06:57.000Z",
"latitude": 34.30115,
"longitude": -120.6133
},
{
"significantWaveHeight": 1.14,
"peakPeriod": 10.24,
"meanPeriod": 8.44,
"peakDirection": 312.28,
"peakDirectionalSpread": 37.07,
"meanDirection": 284.18,
"meanDirectionalSpread": 57.4,
"timestamp": "2017-11-08T07:36:57.000Z",
"latitude": 34.29883,
"longitude": -120.61127
}
],
"track": [
{
"timestamp": "2017-11-08T07:06:57.000Z",
"latitude": 34.30115,
"longitude": -120.6133
},
{
"timestamp": "2017-11-08T07:36:57.000Z",
"latitude": 34.2988333,
"longitude": -120.6112667
}
],
"frequencyData": [
{
"frequency": [0.02930,0.03906,0.04883,...],
"df": [0.00977, 0.00977, 0.00977,...],
"a1": [-0.097752, -0.095797, -0.054741,...],
"b1": [-0.054741, 0.021505, 0.073314,...],
"a2": [0.120235, 0.115347, -0.018573,...],
"b2": [0.414467, 0.180841, 0.184751,...],
"varianceDensity": [0.7111054247697032, 0.6186233367451381, 0.6411207778915046,...],
"direction": [335.6588548979852, 338.1985905136482, 269.8174396209903,...],
"directionalSpread": [79.181787169671, 74.12281945451112, 67.45630665882223,...],
"timestamp": "2017-10-12T13:28:40.000Z",
"latitude": 35.19229,
"longitude": -120.86748
}
],
"partitionData": [
{
"partitions": [
{
"startFrequency": 0.025,
"endFrequency": 0.078125,
"significantWaveHeight": 0.69,
"meanPeriod": 15.38,
"meanDirection": 240.014,
"meanDirectionalSpread": 29.828
},
{
"startFrequency": 0.078125,
"endFrequency": 0.8,
"significantWaveHeight": 0.97,
"meanPeriod": 8.58,
"meanDirection": 251.647,
"meanDirectionalSpread": 29.645
}
],
"location": {
"latitude": 35.19229,
"longitude": -120.86748,
"timestamp": "2017-10-12T13:28:40.000Z"
}
}
],
"wind": [
{
'speed': 1, // in m/s
'direction': 171, // in degrees
'location': {
'latitude': 37.8973,
'longitude': -122.6868833,
'timestamp': '2019-08-09T20:14:54.000Z'
},
'seasurfaceId': 1 // 1: glassy, 2: choppy, 3: rough
}
],
"surfaceTemp": [
{
"degrees": 14.44,
"location": {
"latitude": 37.7733,
"longitude": -122.3861833,
"timestamp": "2019-11-05T19:34:31.000Z"
}
}
],
...
}
}The
trackproperty represents locations history for a Spotter, ordered bytimestampvalues.
{
"data": {
"spotterId": "SPOT-0018",
"spotterName": "Mavericks 2",
"payloadType": "track",
"batteryVoltage": 4.13,
"batteryPower": -0.03,
"solarVoltage": 7,
"humidity": 9.6,
"waves": [],
"track": [
{
timestamp: "2017-09-27T22:41:27.000Z",
latitude: 34.777083,
longitude: -120.7396172
},
{
timestamp: "2017-09-27T22:44:27.000Z",
latitude: 34.7769077,
longitude: -120.7390585
},
{
timestamp: "2017-09-27T22:47:27.000Z",
latitude: 34.776726,
longitude: -120.7385352
},
{
timestamp: "2017-09-27T22:50:27.000Z",
latitude: 34.7765415,
longitude: -120.7380058
},
{
timestamp: "2017-09-27T22:53:27.000Z",
latitude: 34.7763545,
longitude: -120.7375838
}
],
"frequencyData": [],
"partitionData": [],
"wind": [],
}
}
The
sensorPositionproperty represents the physical position of a sensor in the Smart Mooring relative to Spotter. Sensor position 1 is closest to Spotter.The
data_type_nameproperty represents the type of information being sent by a sensor, as ingested by the API.Timestamps within this data format, while ordered, are not necessarily unique. Two or more sensors may send different values with identical timestamps (e.g. a temperature sensor and a pressure sensor which both emit data on the same time interval).
{
"data": {
"spotterId": "SPOT-0018",
"spotterName": "Mavericks 2",
"payloadType": "sensorData",
"batteryVoltage": 4.13,
"batteryPower": -0.03,
"solarVoltage": 7,
"humidity": 9.6,
"sensorData": [
{
"latitude": 37.7733833,
"longitude": -122.38715,
"timestamp": "2020-12-01T23:46:43.000Z",
"sensorPosition": 2,
"units": "μbar",
"value": 1020490,
"unit_type": "pressure",
"data_type_name": "rbrcoda3_meanpressure_21bits"
},
{
"latitude": 37.7733833,
"longitude": -122.38715,
"timestamp": "2020-12-01T23:46:43.000Z",
"sensorPosition": 2,
"units": "μbar",
"value": 100,
"unit_type": "pressure",
"data_type_name": "rbrcoda3_stdevpressure_15bits"
},
{
"latitude": 37.7733833,
"longitude": -122.38715,
"timestamp": "2020-12-01T23:46:43.000Z",
"sensorPosition": 2,
"units": "°C",
"value": 13.426700000000004,
"unit_type": "temperature",
"data_type_name": "rbrcoda3_meantemperature_20bits"
},
{
"latitude": 37.7733833,
"longitude": -122.38715,
"timestamp": "2020-12-02T00:01:43.000Z",
"sensorPosition": 2,
"units": "μbar",
"value": 1020390,
"unit_type": "pressure",
"data_type_name": "rbrcoda3_meanpressure_21bits"
},
{
"latitude": 37.7733833,
"longitude": -122.38715,
"timestamp": "2020-12-02T00:01:43.000Z",
"sensorPosition": 2,
"units": "μbar",
"value": 50,
"unit_type": "pressure",
"data_type_name": "rbrcoda3_stdevpressure_15bits"
},
{
"latitude": 37.7733833,
"longitude": -122.38715,
"timestamp": "2020-12-02T00:01:43.000Z",
"sensorPosition": 2,
"units": "°C",
"value": 15.081299999999999,
"unit_type": "temperature",
"data_type_name": "rbrcoda3_meantemperature_20bits"
}
]
}
}Last updated
Was this helpful?