diff --git a/examples/scripts/run_health_metrics.py b/examples/scripts/run_health_metrics.py index 8efec16..ca35570 100644 --- a/examples/scripts/run_health_metrics.py +++ b/examples/scripts/run_health_metrics.py @@ -89,13 +89,13 @@ def _sync_compute_metrics(device, device_id, folder): logger.info("Raw export failed for device %s (non-fatal)", device_id) logger.info("get_nan_ratio for device %s", device_id) - device.get_nan_ratio().to_csv(f"{folder}/device_{device_id}_nan_ratios.csv.gz") + device.get_nan_ratio().to_csv(f"{folder}/{device_id}_nan_ratios.csv.gz") logger.info("get_implausible_ratio for device %s", device_id) - device.get_implausible_ratio().to_csv(f"{folder}/device_{device_id}_implausible_ratios.csv.gz") + device.get_implausible_ratio().to_csv(f"{folder}/{device_id}_implausible_ratios.csv.gz") logger.info("get_outlier_ratio for device %s", device_id) - device.get_outlier_ratio().to_csv(f"{folder}/device_{device_id}_outlier_ratios.csv.gz") + device.get_outlier_ratio().to_csv(f"{folder}/{device_id}_outlier_ratios.csv.gz") logger.info("get_top_value_ratio for device %s", device_id) - device.get_top_value_ratio().to_csv(f"{folder}/device_{device_id}_top_value_ratios.csv.gz") + device.get_top_value_ratio().to_csv(f"{folder}/{device_id}_top_value_ratios.csv.gz") except Exception: logger.exception("Synchronous metric computation failed for device %s", device_id) return False diff --git a/scdata/__init__.py b/scdata/__init__.py index 483fd16..044e125 100644 --- a/scdata/__init__.py +++ b/scdata/__init__.py @@ -3,4 +3,4 @@ from .test import Test from .models import Source, TestOptions, DeviceOptions, APIParams, FileParams, CSVParams -__version__ = '1.3.2' \ No newline at end of file +__version__ = '1.3.3' \ No newline at end of file diff --git a/scdata/tools/series.py b/scdata/tools/series.py index c55319a..5548f09 100644 --- a/scdata/tools/series.py +++ b/scdata/tools/series.py @@ -2,10 +2,11 @@ from scdata.tools.custom_logger import logger +from typing import Optional from pandas import Series, Timedelta import numpy as np -def infer_sampling_rate(series: Series) -> int | None: +def infer_sampling_rate(series: Series) -> Optional[int]: '''Infer the sampling rate of the given timeseries, rounded to the closest minute. ''' @@ -23,7 +24,7 @@ def infer_sampling_rate(series: Series) -> int | None: return integer_minutes -def mode_ratio(series: Series, ignore_zeroes=True) -> int: +def mode_ratio(series: Series, ignore_zeroes=True) -> float: '''Count the percentage of times the most common value appears in the series, ignoring zeroes and NaNs.''' diff --git a/scdata/tools/units.py b/scdata/tools/units.py index 0fa795e..3fcaa48 100644 --- a/scdata/tools/units.py +++ b/scdata/tools/units.py @@ -47,6 +47,7 @@ unit_convertion_lut = ( ['%rh', '%', 1, False], ['ºC', 'degC', 1, False], + ['°C', 'degC', 1, False], ['ppm', 'ppb', 1000, False], ['mg/m3', 'ug/m3', 1000, False], ['mgm3', 'ugm3', 1000, False], @@ -96,6 +97,7 @@ def get_units_convf(sensor, from_units): logger.info(f"Converting units for {sensor}. From {from_units} to {channel_lut[channel]}") for unit in unit_convertion_lut: # Get units + logger.debug(f"Is it {unit[0]} to {unit[1]}?") if unit[0] == from_units and unit[1] == channel_lut[channel]: factor = unit[2] requires_conc = unit[3]