# Aircraft Cabin Localization(ACL) Dataset


[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.18373850.svg)](https://doi.org/10.5281/zenodo.18373850)
![License: CC BY 4.0](https://img.shields.io/badge/License-CC%20BY%204.0-lightgrey.svg)
![Python](https://img.shields.io/badge/python-3.8%2B-blue.svg)

---

### Overview

This repository contains real-world indoor localization measurements collected in a realistic aircraft cabin environment. The dataset includes measurements from two distinct positioning systems: 
- Ultra-Wideband (UWB) and
- Bluetooth Low Energy (BLE)

provided in both CSV and Pickle formats.

### Repository Structure

    .
    ├── data
    │   ├── csv
    │   │   ├── anchor_positions.csv    # Reference coordinates of anchors   
    |   |   ├── ble.csv                 # Complete BLE dataset
    │   │   ├── ble_test.csv            # BLE testing split
    │   │   ├── ble_train.csv           # BLE training split
    │   │   ├── fused_test.csv          # Combined system testing split
    │   │   ├── fused_train.csv         # Combined system training split
    │   │   ├── uwb.csv                 # Complete UWB dataset
    │   │   ├── uwb_test.csv            # UWB testing split
    │   │   └── uwb_train.csv           # UWB training split
    │   └── pickle
    │       ├── ble.pkl                 # (Pickle format equivalents of above)
    │       ├── ...
    └── scripts
        └── example_iterator.py         # Script to iterate and inspect the data

### Dataset Description

#### Experimental Setup

To validate the localization framework with real-world measurements, an experimental campaign was conducted in a realistic aircraft cabin environment.

- **Location:** Center of Applied Aeronautical Research (Hamburg, Germany).
- **Environment:** An aircraft cabin mockup representing a single-aisle commercial aircraft (partial A320 configuration). It consists of 10 seat rows accommodating 60 passenger seats in total.
- **Hardware Systems:**
    - **UWB System:** Range measurement from 8 distinct anchors.
    - **BLE System:** Provides range measurements from 5 distinct anchors.

#### Data Format
The data is provided in CSV (comma-separated values) and Pickle (.pkl) formats.

**Note on arrays:** In the CSV files, array columns (such as anchors or measured_range) are stored as string representations of lists (e.g., "[100, 101]"). When using Python/Pandas, these may need to be parsed (e.g., using ast.literal_eval). The Pickle files preserve the native list objects.

#### Preprocessed Data
The preprocessing of all the sensors have been carried out in a similar way thereby producing a unified output format for all the systems. The common columns for BLE, UWB, and WiFi processed data includes:

| Column Name      | Data Type  | Description                                            |
|------------------|------------|--------------------------------------------------------|
| `mess_id`        | string     | Unique identifier for each measurement sequence        |
| `timestamp`      | float      | Unix timestamp of the data acquisition                 |
| `anchors`        | list       | IDs of the anchors detected in the measurement         |
| `measured_range` | list       | Measured range values from system to anchors (meters)  |
| `ref_x`          | float      | Ground truth X coordinate of the tag              |
| `ref_y`          | float      | Ground truth Y coordinate of the tag              |
| `true_range`     | list       | Euclidean distance between ground truth and anchor     |
| `residual_range` | list       | The ranging error (`measured_range` - `true_range`)    |

### Usage prerequisites 
- Python 3.9 or above
- pandas

### Citation

tbd

### License
The repository is liscensed under the [Creative Commons Attribution 4.0 Internation (CC-BY 4.0) License](LICENSE-DATA.txt).

### Contact
For any issues or questions, please contact Paul Schwarzbach via email paul.schwarzbach@tu-dresden.de and Muhammad Ammad via email muhammad.ammad@tu-dresden.de.
