Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions examples/scripts/run_health_metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion scdata/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
from .test import Test
from .models import Source, TestOptions, DeviceOptions, APIParams, FileParams, CSVParams

__version__ = '1.3.2'
__version__ = '1.3.3'
5 changes: 3 additions & 2 deletions scdata/tools/series.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.
'''
Expand All @@ -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.'''

Expand Down
2 changes: 2 additions & 0 deletions scdata/tools/units.py
Original file line number Diff line number Diff line change
Expand Up @@ -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],
Expand Down Expand Up @@ -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]
Expand Down