> For the complete documentation index, see [llms.txt](https://docs.unitlab.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.unitlab.ai/documentation/annotations/sensor-annotation.md).

# Sensor Annotation

Label time-series CSV recordings with ranges, point events, channel context, properties, and reviewed releases.

Sensor annotation labels events and operating states in CSV time-series recordings. Inspect numeric channels over a shared X-axis, mark intervals or individual samples, and retain measurement context through review and export.

{% hint style="info" %}
**Use this guide when:** you are preparing labeled recordings for equipment monitoring, process analysis, telemetry, or activity recognition. Sensor annotation uses time-series CSV interpretation. For independent records, use [Tabular Annotation](https://docs.unitlab.ai/documentation/annotations/tabular-annotation).
{% endhint %}

## See sensor annotation in action

The demo shows sensor charts, signal navigation, and labels placed on the recording.

{% embed url="<https://homepage-files.s3.us-east-2.amazonaws.com/hero-videos/hero/sensor-annotation-1-20260917.mp4>" %}

[Open the demo in a new tab](https://homepage-files.s3.us-east-2.amazonaws.com/hero-videos/hero/sensor-annotation-1-20260917.mp4).

## Before you begin

1. Prepare a CSV with an X-axis column and numeric measurement channels. Use numeric X values or supported timezone-aware timestamps.
2. Select the time-series interpretation when configuring the CSV. Verify the X-axis, channel names, and preview before creating annotation work.
3. Define units, interval boundaries, event timing, channel scope, and missing-value policy in the project instructions.
4. Configure range and point classes, their properties, Item Properties, and required relations in the ontology.
5. Open the recording from the project data view or Task Queue.

See [Annotation Workbench](https://docs.unitlab.ai/documentation/annotations/annotation-workbench) for shared controls, history, and workflow actions.

## Understand the sensor work surface

Select the channels needed for the task and view them as separate charts or a combined chart. Separate charts keep channel context visible while sharing the X-axis window. Use the full-series overview, zoom, and pan to inspect short events without losing their position in the recording.

![Vibration, temperature, and pressure charts share a time window for multichannel inspection.](https://content.gitbook.com/content/GjVLUz4wthGkGlRKM6rM/blobs/hxWOpBaShGWUCmYHAema/6aa5de2a182f90536968b620_unitlab%20sensor%2003%20channels.png)

*Inspect related vibration, temperature, and pressure channels over the same X-axis window.*

A combined view helps align patterns across selected channels. Its curves can use different Y scales, so screen height alone does not establish equal physical magnitude. Labels created in the combined view are file-wide; use an individual channel view when the label must be channel-specific.

## Supported annotation model

| Annotation           | Use it for                                                  | Review requirement                                                      |
| -------------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------- |
| **Range**            | Operating states, sustained events, or periods of interest. | Correct start, end, class, and channel or file scope.                   |
| **Point event**      | A spike, transition, or event at an individual sample.      | Correct sample and channel context.                                     |
| **Class properties** | Event details such as severity or operating condition.      | Values follow the ontology and labeling policy.                         |
| **Item Properties**  | Context for the recording as a whole.                       | Units, equipment, quality, or other configured metadata are consistent. |
| **Relation**         | Defined relationships between labeled events.               | Endpoints and direction match the intended meaning.                     |

An anomaly class is a label applied according to your policy. Creating such a class does not automatically detect anomalies in the source.

## Label ranges and point events

Use a range when duration matters. Choose the class, place its start and end on the signal, and inspect both boundaries at a useful zoom level. Use the same rule for a gradual onset, a recovery period, and an interrupted event throughout the dataset.

![Three vibration signal windows with a labeled high-vibration interval and operating-state properties.](https://content.gitbook.com/content/GjVLUz4wthGkGlRKM6rM/blobs/7LnWjCvqfBh7n6axF4va/6aa5de29c46b3e61cee0441c_unitlab%20sensor%2001%20range.png)

*A labeled interval captures a sustained high-vibration state with its event properties.*

Use a point when the event belongs to one sample. The editor snaps point events to real samples. Verify the original X value, neighboring measurements, and the intended channel before submitting.

![An exact temperature spike marked at one sensor sample with neighboring signal context.](https://content.gitbook.com/content/GjVLUz4wthGkGlRKM6rM/blobs/RwEGWSNvwZgK6V5BGGDK/6aa5de2abe6e90ce99c89f78_unitlab%20sensor%2002%20point.png)

*A point event identifies an exact sample while preserving the surrounding signal context.*

## Annotate one production item

1. **Verify the recording.** Check the source, X-axis interpretation, units, channel names, and visible gaps.
2. **Inspect the full signal.** Locate candidate states and events before zooming into one region.
3. **Choose the scope.** Select the relevant channel or a file-wide view according to the task.
4. **Create labels.** Draw ranges for intervals and point events for individual samples.
5. **Complete context.** Add properties and relations, then inspect related channels for contradictory evidence.
6. **Review and submit.** Check boundaries and coverage, save, and hand the item to the configured next stage.

## Quality review

| Review focus          | What to check                                                                |
| --------------------- | ---------------------------------------------------------------------------- |
| X-axis                | Numeric units or timestamp interpretation match the source and instructions. |
| Scope                 | A channel-specific event is not accidentally labeled as file-wide.           |
| Boundaries            | Onset, end, and transition policies are applied consistently.                |
| Point events          | The chosen sample is correct; nearby samples are not interchangeable.        |
| Data gaps             | Missing measurements are not interpreted as confirmed normal behavior.       |
| Multichannel evidence | The event meaning is consistent with the relevant measurements.              |

![A labeled vibration interval with a contextual comment and Approve or Reject review controls.](https://content.gitbook.com/content/GjVLUz4wthGkGlRKM6rM/blobs/Tik85DuTmKOOfInP9zXg/6aa5de2b79109d85ce3e4703_unitlab%20sensor%2005%20review%20v2.png)

*Review feedback and the approval decision stay connected to the labeled signal.*

[Consensus](https://docs.unitlab.ai/documentation/qa/consensus) can expose disagreement about interval boundaries and event classes. [Quality Gate](https://docs.unitlab.ai/documentation/qa/quality-gate) compares submissions with approved references. Sensor point comparisons require the same sample position, so define exact event timing before calibration.

## Move from recordings to released annotations

Curate recordings using names, tags, folders, and available metadata. Inspect chart previews and select representative normal, rare, and difficult cases. Version the source membership separately from the project annotation release that freezes reviewed labels.

JSONL exports include ranges or points, their X values, channel context, and supported properties. Datetime axes use canonical UTC epoch milliseconds; numeric axes retain the original numeric unit. Verify the exported time convention with the consuming pipeline before delivering a full release.

## Troubleshooting and boundaries

| Situation                            | Recommended action                                                               |
| ------------------------------------ | -------------------------------------------------------------------------------- |
| CSV appears as records               | Check the CSV interpretation and select time-series mode for a chart-based task. |
| Channel is missing                   | Check that its values are numeric and that the channel is selected for display.  |
| An interval appears on every channel | Check whether it was created with file-wide scope in the combined view.          |
| Point agreement is unexpectedly low  | Compare the exact X values and the event-placement policy.                       |

The sensor editor works with uploaded time-series data. Do not treat it as a live streaming dashboard, a LiDAR point-cloud editor, or an automatic forecasting service.

## Next steps

* Set shared labels in [Ontologies overview](https://docs.unitlab.ai/documentation/ontologies/ontologies-overview).
* Configure the handoff using [QA Workflows](https://docs.unitlab.ai/documentation/qa/qa-workflows).
* Validate export delivery in [Inspect, download, and validate](https://docs.unitlab.ai/documentation/releases/inspect-download-and-validate).

Explore the [Unitlab Sensor Annotation overview](https://unitlab.ai/en/sensor-annotation).
