HDF5 File Structure

Sensor raw data are stored in HDF5 files.

Directory Structure

Sensors are grouped according to their sensor name. Integrations are stored as datasets in a subgroup called Rawdata. The name of a dataset is a combination of its timestamp and integration counter.

Each dataset (integration) is a 6 x 256 array. Each dataset contains six 256-channel spectra for cal_HH, cal_VV, data_HH, data_VV, data_U, and data_V:

  • cal_HH, cal_VV: auto-correlation products of the calibration load

  • data_HH, data_VV: auto-correlations products of the soil signal

  • data_U, data_V: cross-correlations products of the soil signal


Each integration is stored with a set of metadata. Most of the metadata fields are self-explanatory, except for the following ones:

  • accelerometer: A 3-element array containing the output of the accelerometer for the x, y, and z-axis. The look angle of the sensor is tanα=a[2]a[1]\tan\alpha = \dfrac{a[2]}{a[1]}.

  • bw_mhz: Sensor bandwidth in MHz.

  • course_deg: GPS course (azimuth) in degrees.

  • flight_counter: A counter that increases when the drone returns to its "home" position. This can be used to identify battery swaps.

  • freq_mhz: Sensor centre frequency in MHz.

  • gyro: A 3-element array containing the gyroscope output for the x, y, and z-axis.

  • integration: Counter increases for each new integration containing cal-load and soil signal.

  • lna_temperature_degC: The physical temperature of the calibration load in degrees Celsius.

  • runtime: Sensor runtime since powerup in milliseconds.

  • sats: 2-element array containing the number of GPS satellites used and visible.

  • sf_mhz: Sampling frequency in MHz. The frequency of each channel is: f(MHz)=freq_mhzsf_mhz/4+channel(sf_mhz/2)/256f(\mathrm{MHz}) = \mathrm{freq\_mhz} - \mathrm{sf\_mhz}/4 + \mathrm{channel} \cdot (\mathrm{sf\_mhz}/2)/256

  • speed_kmh: GPS speed in km/h.

Last updated