From d319c03118d2058c4ced9e3d78ad35817e2c19b3 Mon Sep 17 00:00:00 2001 From: Samuel Gratzl Date: Wed, 5 May 2021 13:17:07 -0400 Subject: [PATCH 1/2] feat: tune heuristic for signal good/bad/neutral --- src/server/endpoints/covidcast_utils/meta.py | 21 +++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/server/endpoints/covidcast_utils/meta.py b/src/server/endpoints/covidcast_utils/meta.py index 091499992..0b90dff15 100644 --- a/src/server/endpoints/covidcast_utils/meta.py +++ b/src/server/endpoints/covidcast_utils/meta.py @@ -24,18 +24,29 @@ class SignalCategory(str, Enum): def guess_name(source: str, signal: str) -> str: - return f"{source.capitalize()}: {signal.capitalize()}" + return f"{source.upper()}: {' '.join((s.capitalize() for s in signal.split('_')))}" def guess_high_values_are(source: str, signal: str) -> HighValuesAre: - if source == "fb-survey": - if "mask" in signal or "vaccine" in signal: + if signal.endswith("_ili") or signal.endswith("_wili") or signal.endswith("_cli") or signal.endswith("_wcli"): + return HighValuesAre.bad + if source == "chng" and signal.endswith("_covid"): + return HighValuesAre.bad + if source == "covid-act-now": + if signal.endswith("_positivity_rate"): + return HighValuesAre.bad + if signal.endswith("_total_tests"): return HighValuesAre.good - if signal.endswith("_ili") or signal.endswith("_cli") or "tested_positive" in signal: + if source == "fb-survey": + if "tested_positive" in signal: return HighValuesAre.bad if "anxious" in signal or "depressed" in signal or "felt_isolated" in signal or "worried" in signal: return HighValuesAre.bad - if source in ["quidel", "indicator-combination", "google-symptoms", "doctor-visits", "hospital-admissions"]: + if "hesitancy_reason" in signal or "vaccine_likely" in signal or "dontneed_reason" in signal: + return HighValuesAre.neutral + if "mask" in signal or "vaccine" in signal or "vaccinated" in signal: + return HighValuesAre.good + if source in ["quidel", "indicator-combination", "google-symptoms", "doctor-visits", "hospital-admissions", "usa-facts", "hhs"]: return HighValuesAre.bad return HighValuesAre.neutral From b55151dd5a1e6236063ac84b5e024418401e888d Mon Sep 17 00:00:00 2001 From: Samuel Gratzl Date: Wed, 5 May 2021 21:46:08 +0200 Subject: [PATCH 2/2] fix: apply suggestions Co-authored-by: Katie Mazaitis --- src/server/endpoints/covidcast_utils/meta.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/endpoints/covidcast_utils/meta.py b/src/server/endpoints/covidcast_utils/meta.py index 0b90dff15..d042bbb3f 100644 --- a/src/server/endpoints/covidcast_utils/meta.py +++ b/src/server/endpoints/covidcast_utils/meta.py @@ -46,7 +46,7 @@ def guess_high_values_are(source: str, signal: str) -> HighValuesAre: return HighValuesAre.neutral if "mask" in signal or "vaccine" in signal or "vaccinated" in signal: return HighValuesAre.good - if source in ["quidel", "indicator-combination", "google-symptoms", "doctor-visits", "hospital-admissions", "usa-facts", "hhs"]: + if source in ["quidel", "indicator-combination", "google-symptoms", "doctor-visits", "hospital-admissions", "usa-facts", "jhu-csse", "hhs"]: return HighValuesAre.bad return HighValuesAre.neutral @@ -113,4 +113,4 @@ def intergrate(self, row: Dict[str, Any]): def asdict(self): r = asdict(self) r["geo_types"] = {k: asdict(v) for k, v in self.geo_types.items()} - return r \ No newline at end of file + return r