Data Structures¶
This document describes the primary data structures returned by the NestEgress Service API endpoints.
Dd1RawFrame¶
The Dd1RawFrame structure represents raw dd1 data in a flat, denormalized format. This structure is returned by endpoints under /dd1-raw-frame/ and /api/dd1-raw-frame.
Structure Overview¶
Each Dd1RawFrame contains comprehensive dd1 data organized into logical sections:
Primary Keys¶
unixTimestampMs: Unix timestamp in milliseconds (part of composite primary key)datasetId: Unique dataset identifier (part of composite primary key)positionEciXKm,positionEciYKm,positionEciZKm: Earth-Centered Inertial (ECI) position coordinates in kilometers (part of composite primary key)
Position & Velocity (ECI Coordinates)¶
positionEciXKm,positionEciYKm,positionEciZKm: Earth-Centered Inertial (ECI) position coordinates in kilometersvelocityEciVxKmS,velocityEciVyKmS,velocityEciVzKmS: ECI velocity components in km/spositionInterpolationFlag: Interpolation method used for position data
Geodetic Coordinates¶
latitudeDeg: Latitude in degrees (-90 to 90)longitudeDeg: Longitude in degrees (-180 to 180)altitudeKm: Altitude above reference ellipsoid in kilometers
Angular Rates¶
omegaXRadS,omegaYRadS,omegaZRadS: Angular rates around X, Y, Z axes in radians/second
Quaternion Orientation¶
quaternionQ0,quaternionQ1,quaternionQ2,quaternionQ3: Attitude quaternion componentsquaternionInterpolationFlag: Interpolation method used for quaternion data
PT1000 Temperature Sensors (0-7)¶
For each PT1000 temperature sensor (0 through 7):
pt1000Data{0-7}SensorId: Sensor identifierpt1000Data{0-7}Temperature: Temperature reading in degrees Celsius
Digital Temperature Sensor¶
digitalTempData0SensorId: Digital temperature sensor identifierdigitalTempData0Temperature: Temperature reading in degrees Celsius
Magnetometer Sensors (0-1)¶
For each magnetometer sensor (0 through 1):
magnetometerData{0-1}SensorId: Sensor identifiermagnetometerData{0-1}Temperature: Temperature reading in degrees CelsiusmagnetometerData{0-1}MagneticField0,magnetometerData{0-1}MagneticField1,magnetometerData{0-1}MagneticField2: Magnetic field components in microteslas (X, Y, Z)
Accelerometer Sensors (0-1)¶
For each accelerometer sensor (0 through 1):
accelerometerData{0-1}SensorId: Sensor identifieraccelerometerData{0-1}Temperature: Temperature reading in degrees CelsiusaccelerometerData{0-1}Acceleration0,accelerometerData{0-1}Acceleration1,accelerometerData{0-1}Acceleration2: Acceleration components in g (X, Y, Z)
Gyroscope Data (0-1)¶
For each gyroscope sensor (0 through 1):
gyroscopeData{0-1}AngularRate0,gyroscopeData{0-1}AngularRate1,gyroscopeData{0-1}AngularRate2: Angular rate components in degrees/second (X, Y, Z)
Power Monitor (0)¶
powerMonitorData0SensorId: Power monitor sensor identifierpowerMonitorData0Voltage0,powerMonitorData0Voltage1,powerMonitorData0Voltage2,powerMonitorData0Voltage3: Voltage readings for channels 0-3 in voltspowerMonitorData0Current0,powerMonitorData0Current1,powerMonitorData0Current2,powerMonitorData0Current3: Current readings for channels 0-3 in amperes
Dosimeter¶
dosimeterData0SensorId: Dosimeter sensor identifierdosimeterData0RadiationCount: Radiation particle countdosimeterData0MillisievertsPerHour: Radiation dose rate in millisieverts/hourdosimeterData0UptimeS: Dosimeter uptime in secondsdosimeterData0Voltage: Supply voltage in voltsdosimeterData0TemperatureDegc: Temperature in degrees Celsius
Additional Fields¶
source: Data source identifier
Dd1DataFrame¶
The Dd1DataFrame structure organizes sensor data into logical arrays grouped by sensor type, making it easier to work with related sensor measurements. This structure is returned by endpoints under /dd1-data-frame/.
Structure Overview¶
Core Frame Information¶
unixTimestampMs: Unix timestamp in millisecondsdatasetId: Dataset identifier string
Sensor Data Arrays¶
PT1000 Temperature Sensors¶
"pt1000Data": [
{
"sensorId": 2,
"temperature": -27.977
},
// ... up to 8 sensors
]
Digital Temperature Sensor¶
"digitalTempData": [
{
"sensorId": 10,
"temperature": -27.0
}
]
Magnetometers¶
"magnetometerData": [
{
"sensorId": 13,
"temperature": -0.027667518615722655,
"magneticField": [-8.171945571899414, -43.715877532958984, -24.683975219726562]
},
{
"sensorId": 14,
"temperature": 0.02610182189941406,
"magneticField": [8.446452140808105, -7.967488765716553, -30.75985336303711]
}
]
Accelerometers¶
"accelerometerData": [
{
"sensorId": 11,
"temperature": -0.02765234375,
"acceleration": [0.00555428396910429, 0.0008545052260160446, 0.019836727529764175]
},
{
"sensorId": 12,
"temperature": -0.027560546875,
"acceleration": [0.02520790323615074, 0.00012207217514514923, 0.01495384145528078]
}
]
Gyroscopes¶
"gyroscopeData": [
{
"sensorId": 11,
"angularRate": [-0.3662165403366089, 0.4272526204586029, -0.24414435029029846]
},
{
"sensorId": 12,
"angularRate": [-0.12207217514514923, 0.3662165403366089, -0.061036087572574615]
}
]
Power Monitor¶
"powerMonitorData": [
{
"sensorId": 1,
"voltage": [5.281, 0.0, 0.002, 0.002],
"current": [0.008, 0.0, 0.0, 0.001]
}
]
Dosimeter¶
"dosimeterData": [
{
"sensorId": 15,
"radiationCount": 0,
"millisievertsPerHour": 0.0,
"uptimeS": 0,
"voltage": 0.0,
"temperatureDegc": 0
}
]
Telemetry Data¶
"telemetry": {
"telemetryTimestamp": 1738197125.741833,
"timeDifferenceSec": 3.6398329734802246,
"interpolationMethod": "nearest",
"positionLla": [50.93193820717789, 102.75497643750353, 533.7226754132596],
"positionEciKm": [-963.5567016601562, 4256.590332031251, 5343.1572265625],
"velocityEciKmS": [2.814931869506836, -5.266892433166504, 4.696627140045166],
"angularRatesRadS": [0.001, 0.0, 0.0],
"quaternion": [0.653, -0.032, 0.264, 0.708]
}
Comparison of Structures¶
| Feature | Dd1RawFrame | Dd1DataFrame |
|---|---|---|
| Format | Flat, denormalized structure | Nested, grouped structure |
| Sensor Data | Individual fields for each sensor measurement | Arrays grouped by sensor type |
| Readability | More verbose, suitable for database storage | More intuitive for application development |
| Use Case | Raw data storage and retrieval | Application integration and visualization |
| Query Flexibility | Direct field access | Requires array traversal |
| Size | Larger due to repeated field names | More compact for grouped data |