> For the complete documentation index, see [llms.txt](https://skaha-labs.gitbook.io/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://skaha-labs.gitbook.io/documentation/working-with-the-sensor-and-data/hdf5-file-structure.md).

# HDF5 File Structure

### 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.

<figure><img src="/files/XuCXdyUGtCJArkQFmito" alt="" width="352"><figcaption><p>HDF5 directory structure.</p></figcaption></figure>

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

<figure><img src="/files/aIb3FjDLMkFSjTU9iLf5" alt=""><figcaption><p>Data array.</p></figcaption></figure>

### Datasets

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\alpha = \dfrac{a\[2]}{a\[1]}$$.&#x20;
* 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(\mathrm{MHz}) = \mathrm{freq\_mhz} - \mathrm{sf\_mhz}/4 + \mathrm{channel} \cdot (\mathrm{sf\_mhz}/2)/256$$
* speed\_kmh: GPS speed in km/h.

<figure><img src="/files/xDslQLi2wVcCF9i4ZmzF" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/EahEWXThQ4jAtDnMdU7z" alt=""><figcaption><p>Metadata for each integration.</p></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://skaha-labs.gitbook.io/documentation/working-with-the-sensor-and-data/hdf5-file-structure.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
