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.
Example Waves Mode Data
Example Track Mode Data
Example Smart Mooring Data
frequencyData
only available in Waves: Spectrum modepartitionData
only available in Waves: Partition 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
track
property represents locations history for a Spotter, ordered bytimestamp
values.
{
"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
sensorPosition
property represents the physical position of a sensor in the Smart Mooring relative to Spotter. Sensor position 1 is closest to Spotter. - The
data_type_name
property 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 modified 1yr ago