Class TransformedMetricDataProviderAbstract

Base class to help implement a MetricDataProvider that provides data by transforming data from another existing metric. Implementers just need to set the id of the data provider and implement the transformData() method.

Metrics that use the data provider should specify the source metric to be transformed via the sourceMetric field of the dataReference field of the metric.

Example

class RollingAverageMetricDataProvider extends TransformedMetricDataProvider {
readonly id = "rolling-average";

transformData(sourceData: MetricData<unknown>, newMetric: Metric, region: Region): MetricData<unknown> {
const ts = sourceData.timeseries;
const newTs = ts.rollingAverage({
days: 7,
treatMissingDatesAsZero: true
});
return new MetricData(newMetric, region, newTs.last?.value ?? null, newTs);
}
}

const metricDef = {
id: "average-cases",
dataReference: {
providerId: "rolling-average",
sourceMetric: "cases",
};

Hierarchy

  • TransformedMetricDataProvider

Implements

Constructors

Properties

Methods

Constructors

Properties

id: string

The unique id of this MetricDataProvider (e.g. "main-metrics-csv" or "city-data-api"). This ID can be used from a MetricDataReference to indicate what provider should be used to fetch the data for a metric.

Methods

Generated using TypeDoc