diff --git a/setup.cfg b/setup.cfg index 8f6034d..d43e43f 100644 --- a/setup.cfg +++ b/setup.cfg @@ -29,6 +29,7 @@ install_requires = numpy xarray cfunits + cf-units polars[pyarrow] tomli>=2.0.1; python_version < "3.11" diff --git a/src/pyaro_readers/eeareader/EEATimeseriesReader.py b/src/pyaro_readers/eeareader/EEATimeseriesReader.py index 3be04b6..faa84e3 100644 --- a/src/pyaro_readers/eeareader/EEATimeseriesReader.py +++ b/src/pyaro_readers/eeareader/EEATimeseriesReader.py @@ -8,6 +8,7 @@ from tqdm import tqdm import numpy as np +import cf_units import polars from pyaro.timeseries.AutoFilterReaderEngine import ( AutoFilterReader, @@ -39,7 +40,13 @@ def units(self) -> str: if len(units) == 0: raise EEAReaderException("No units present in this dataset") elif len(units) != 1: - raise EEAReaderException("Multiple different units present in this dataset") + base_unit = cf_units.Unit(units[0]) + for unit in units[1:]: + if base_unit.convert(1, unit) != 1.0: + raise EEAReaderException( + f"Multiple different units present in this dataset ({units[0]} and {unit})" + ) + return units[0] def keys(self):