---
myst:
html_meta:
description: "Set channel descriptions and units on a dataset from an instrumentation sheet with nom mis."
---
# Instrumentation sheets
{.lead}
`nom mis` reads an instrumentation sheet, also called a signal or channel list, and sets the description and unit of each matching channel in a dataset.
You need a profile from [API keys setup](/guides/api-keys-setup.md).
Excel files need the [`mis` extra](/guides/install.md#extras), and `.xls` files also need `pip install xlrd`.
To set units from Python instead, see [Channels and data types](/guides/datasets/channels.md#set-units).
## Prepare the sheet
The sheet is a CSV or Excel file with a `Channel` column, and optional `Description` and `UCUM Unit` columns.
Column names are case-insensitive, and other columns are ignored.
```text
Channel,Description,UCUM Unit
RPM_ENGINE_1,Engine 1 rotational speed,/min
TEMP_EGT_1,Engine 1 exhaust gas temperature,Cel
PRESS_FUEL_1,Engine 1 fuel pressure,bar
SPEED_IAS,Indicated airspeed,m/s
```
Units are [UCUM](https://ucum.org/) symbols, such as `Cel` for degrees Celsius.
To convert your own unit names, list the units Nominal knows and map yours to them, for example with `XLOOKUP` in Excel:
```bash
nom mis list-units --profile default --output units.csv --format csv
```
The file has a `UCUM` column with the symbol and a `Unit Name` column.
## Check the units
```bash
nom mis validate --profile default mis.csv
```
It lists units that Nominal doesn't recognize.
Those still display in Nominal, but workbooks can't convert them.
## Apply the sheet
```bash
nom mis process --profile default mis.csv --dataset-rid
```
Channels match by exact, case-sensitive name. The command warns about sheet rows with no matching channel.
By default, it skips a channel whose existing description or unit differs from the sheet, with a warning. Pass `--override-channel-info` to replace them.
For an Excel file with several sheets, pick one with `--sheet "Instrumentation"`. `validate` takes the same option.