Skip to content

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 kilometers
  • velocityEciVxKmS, velocityEciVyKmS, velocityEciVzKmS: ECI velocity components in km/s
  • positionInterpolationFlag: 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 components
  • quaternionInterpolationFlag: Interpolation method used for quaternion data

PT1000 Temperature Sensors (0-7)

For each PT1000 temperature sensor (0 through 7):

  • pt1000Data{0-7}SensorId: Sensor identifier
  • pt1000Data{0-7}Temperature: Temperature reading in degrees Celsius

Digital Temperature Sensor

  • digitalTempData0SensorId: Digital temperature sensor identifier
  • digitalTempData0Temperature: Temperature reading in degrees Celsius

Magnetometer Sensors (0-1)

For each magnetometer sensor (0 through 1):

  • magnetometerData{0-1}SensorId: Sensor identifier
  • magnetometerData{0-1}Temperature: Temperature reading in degrees Celsius
  • magnetometerData{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 identifier
  • accelerometerData{0-1}Temperature: Temperature reading in degrees Celsius
  • accelerometerData{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 identifier
  • powerMonitorData0Voltage0, powerMonitorData0Voltage1, powerMonitorData0Voltage2, powerMonitorData0Voltage3: Voltage readings for channels 0-3 in volts
  • powerMonitorData0Current0, powerMonitorData0Current1, powerMonitorData0Current2, powerMonitorData0Current3: Current readings for channels 0-3 in amperes

Dosimeter

  • dosimeterData0SensorId: Dosimeter sensor identifier
  • dosimeterData0RadiationCount: Radiation particle count
  • dosimeterData0MillisievertsPerHour: Radiation dose rate in millisieverts/hour
  • dosimeterData0UptimeS: Dosimeter uptime in seconds
  • dosimeterData0Voltage: Supply voltage in volts
  • dosimeterData0TemperatureDegc: 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 milliseconds
  • datasetId: 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