The UXO Dataset 2024 uses simple, well-established file formats for maximum accessibility and ease of use.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/dfki-ric/uxo-dataset2024/llms.txt
Use this file to discover all available pages before exploring further.
Image Formats
PGM - ARIS Raw Frames
ARIS raw frames are stored as 8-bit grayscale PGM (Portable Gray Map) images. Format:.pgm
Characteristics:
- Grayscale images representing raw sonar beam intensities
- Each pixel represents a single sample from a beam
- Beams are ordered right to left in the image
- Dimensions vary based on ping mode (48, 64, 96, or 128 beams)
The raw ARIS frames store beam data ordered right to left. When displaying, you may want to flip the image for intuitive viewing (see
view_recording.py:180).aris_definitions.py:4-17
PNG - ARIS Polar Frames
ARIS polar frames represent the sonar data transformed into the actual field-of-view geometry. Format:.png
Characteristics:
- Polar coordinate transformation of raw beam data
- Represents what the sonar actually “sees”
- Can be colorized for visualization (e.g., using TWILIGHT_SHIFTED colormap)
- Better for human interpretation and visualization
- Beam angles (see
BeamWidthsAris3000_64andBeamWidthsAris3000_128inaris_definitions.py) - Range bins along each beam
- Fan-shaped acoustic field of view (±15° horizontal)
ARIS 3000 Beam Angles (64 beams)
ARIS 3000 Beam Angles (64 beams)
The ARIS 3000 in 64-beam mode has the following angular coverage:
- Horizontal FOV: ±15°
- Center beam angles: Range from -14.89° to +14.89°
- Beam width: ~0.46° per beam
aris_definitions.py:251-316 as triplets of (center, left, right) angles for each beam.ARIS 3000 Beam Angles (128 beams)
ARIS 3000 Beam Angles (128 beams)
The ARIS 3000 in 128-beam mode has:
- Horizontal FOV: ±15°
- Center beam angles: Range from -15.01° to +15.02°
- Beam width: ~0.24° per beam
aris_definitions.py:319-448.JPG - GoPro Camera Frames
Camera frames from the GoPro Hero 8. Format:.jpg
Characteristics:
- Downsampled from original UHD resolution
- Default export resolution: FHD (1920×1080)
- Synchronized to ARIS frame timestamps
- Compressed JPEG format for reduced file size
Tabular Data Formats
CSV - Metadata and Poses
Several CSV files store synchronized metadata and pose information.aris_frame_meta.csv
Contains per-frame metadata from the ARIS sonar. Schema (selected fields from 240+ total):| Field | Type | Description |
|---|---|---|
FrameIndex | int | Frame number (primary key) |
FrameTime | uint64 | Frame timestamp in microseconds |
SonarPan | float | Sonar pan angle (degrees) |
SonarTilt | float | Sonar tilt angle (degrees) |
SonarRoll | float | Sonar roll angle (degrees) |
PingMode | int | ARIS ping mode (determines beam count) |
SamplesPerBeam | int | Number of range samples per beam |
SoundSpeed | float | Speed of sound in water (m/s) |
WindowStart | float | Range window start (meters) |
WindowLength | float | Range window length (meters) |
Salinity | float | Water salinity (ppt) |
WaterTemp | float | Water temperature (°C) |
Full Frame Header Fields
Full Frame Header Fields
The complete list of 240+ ARIS frame header fields is defined in
aris_definitions.py:69-247. Key categories include:- Timing: FrameIndex, FrameTime, timestamps
- Sonar pose: SonarX, SonarY, SonarZ, SonarPan, SonarTilt, SonarRoll
- Acquisition: PingMode, SamplesPerBeam, SampleRate, SoundSpeed
- Environment: WaterTemp, Salinity, Pressure
- Status: Battery, various fault flags
- Navigation: GPS data, heading, depth, altitude
gantry.csv
Gantry crane position data interpolated to ARIS frame times. Schema:| Field | Type | Description |
|---|---|---|
aris_frame_idx | int | Corresponding ARIS frame index |
x | float | Gantry X position (meters) |
y | float | Gantry Y position (meters) |
z | float | Gantry Z position (meters) |
ar3.csv
AR3 robot arm poses calculated from gantry position and ARIS metadata. Schema:| Field | Type | Description |
|---|---|---|
aris_frame_idx | int | Corresponding ARIS frame index |
pos.x, pos.y, pos.z | float | AR3 position (meters) |
rot.x, rot.y, rot.z, rot.w | float | AR3 orientation (quaternion) |
- Gantry position
- Gantry-to-AR3 transform from
calibration/transforms.yaml - ARIS roll/tilt/pan angles from frame metadata
release_1_export.py:18-36 for the calculation.
YAML - Calibration and Metadata
aris_file_meta.yaml
File-level ARIS recording metadata. Format: YAML key-value pairs Example fields:aris_definitions.py:26-67.
transforms.yaml
Calibration transforms between all coordinate frames. Format: Hierarchical YAML with transform definitions Structure:Text Formats
notes.txt
Free-form notes about each recording. Format: Plain text Contents:- Target type identifier (e.g., “Target: 100lbs”)
- Recording conditions
- Special notes or observations
- Trajectory description
release_1_export.py:38-43).
Binary Formats
ARIS Frame Data Structure
While the exported dataset uses standard image formats, the original ARIS recordings use a binary format with specific header structures. File Header: 1024 bytes (defined byFileHeaderDefinition)
Frame Header: 1024 bytes per frame (defined by FrameHeaderDefinition)
Frame Data: Variable size based on beam count and samples per beam
From aris_definitions.py:21-23:
Format Summary Table
| Extension | Type | Usage | Location |
|---|---|---|---|
.pgm | Image | ARIS raw frames | aris_raw/ |
.png | Image | ARIS polar frames | aris_polar/ |
.jpg | Image | GoPro camera frames | gopro/ |
.csv | Tabular | Frame metadata | aris_frame_meta.csv |
.csv | Tabular | Gantry positions | gantry.csv |
.csv | Tabular | AR3 poses | ar3.csv |
.yaml | Config | File metadata | aris_file_meta.yaml |
.yaml | Config | Calibration | calibration/transforms.yaml |
.txt | Text | Recording notes | notes.txt |
Working with the Data
Python Example
Viewing Tool
The dataset includes a viewer script for synchronized playback:view_recording.py for implementation.
Next Steps
Recording Structure
Learn about the organization of recording folders
Target Details
Explore calibration and target specifications