This repo includes raw and cleaned smell collection metrics recorded by 2 versions of the SmartNanotubes Smell Inspector. The sensor was attached to the tray of a Temi robot, which roamed our office on a set path for around 5 months. The robot patrolled every hour and recorded a few hundred smell data points on each run. At each smell data point (in the processed/new-sensor.csv file), the robot also took a picture using its front top camera of the area that it was in.
Images associated with the processed CSV data can be found on huggingface.
processed/old-sensor.csv)| Column | Data Type | Purpose |
|---|---|---|
| Timestamp | DateTime (YYYY-MM-DD hh:mm:ss) | The timestamp when the smell measurement was taken |
| value_{0,1,2,…63} | float | Measurement from each of the 64 smell sensor channels (raw values from sensor) |
| temperature | float | Measurement from the temperature sensor included in the smell sensor (Celsius) |
| humidity | float | Measurement from the humidity sensor included in the smell sensor (%) |
processed/new-sensor.csv)| Column | Data Type | Purpose |
|---|---|---|
| Timestamp | DateTime (YYYY-MM-DD hh:mm:ss) | The timestamp when the smell measurement was taken |
| value_{0,1,2,…63} | float | Measurement from each of the 64 smell sensor channels (raw values from sensor) |
| temperature | float | Measurement from the temperature sensor included in the smell sensor (Celsius) |
| humidity | float | Measurement from the humidity sensor included in the smell sensor (%) |
| robot_x_position | float | X position of the robot w.r.t. its home base |
| robot_y_position | float | Y position of the robot w.r.t. its home base |
| frame_filename | string | Filename of the picture taken by the robot when a smell was measured (see frames/ directory) |
0_process_raw.pyCleans raw CSV files by removing header/start rows, dropping NaN values, and renaming value_64/value_65 to temperature/humidity. Outputs to processed/.
1_clean_frames.pyRemoves frame images from the frames/ directory that are not referenced in processed/new-sensor.csv.
2_prepare_features.pyApplies the sensor channel mapping (Configuration A) to transform the 64 raw value_* channels into meaningful feature columns. Inactive/base channels (mapped to 999) are dropped. The 15 active feature IDs (1–15) each have 3 replicate channels (one per detector type), which can optionally be averaged together. Temperature (16) and humidity (17) pass through unchanged.
python 2_prepare_features.py # keep all 45 individual channels
python 2_prepare_features.py --average # average replicates → 15 feature columns
Outputs: processed/new-sensor-features.csv, processed/old-sensor-features.csv
In addition to the full sensor logs, two labeled evaluation datasets are provided for ammonia detection benchmarking:
processed/newSensor_training_ammonia-features.csvTraining set for ammonia detection. Contains 15-channel averaged feature columns (ch1_avg–ch15_avg) plus temperature and humidity, with binary class labels (ambient / ammonia) and a file column identifying the source environment. Used for training downstream classifiers and self-supervised pretraining.
processed/newSensor_testing_ammonia-features.csvHeld-out test set for ammonia detection. Collected from a single consistent sensor run where ammonia was poured in the middle of the recording — the sensor response rises and falls in a controlled pattern, providing the cleanest evaluation signal. Same schema as the training set. Used only for final evaluation — never for training or hyperparameter tuning.
processed/new-sensor-features.csvFull unlabeled dataset with 15-channel averaged features from all environments. Used for self-supervised pretraining of the Smell-JEPA encoder.
See evaluation/README.md for the full evaluation pipeline, baseline results, and Smell-JEPA architecture details.
This dataset is licenced under the Apache License 2.0.
Imported from gh:Kentucky-Open-Science/Temi-VOC-Datasets. Source last updated 2026-06-18. Synced 2026-07-27.
Source code on GitHub.
This repo includes raw and cleaned smell collection metrics recorded by 2 versions of the SmartNanotubes Smell Inspector. The sensor was attached to the tray of a Temi robot, which roamed our office on a set path for around 5 months. The robot patrolled every hour and recorded a few hundred smell data points on each run. At each smell data point (in the processed/new-sensor.csv file), the robot also took a picture using its front top camera of the area that it was in.
Images associated with the processed CSV data can be found on huggingface.
processed/old-sensor.csv)processed/new-sensor.csv)