Skip to content

Commit 400bed8

Browse files
authored
Merge pull request #212 from cmu-delphi/handle_wip_signal_ght
ght: standardizing signal names
2 parents 0f0320d + ac80f07 commit 400bed8

15 files changed

+2068
-40
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
"""
2+
REGISTRY FOR SIGNAL NAMES, GEO TYPES
3+
"""
4+
RAW = "raw_search"
5+
SMOOTHED = "smoothed_search"
6+
STATE = "state"
7+
HRR = "hrr"
8+
MSA = "msa"
9+
DMA = "dma"
10+
11+
SIGNALS = [RAW, SMOOTHED]
12+
GEO_TYPES = [STATE, HRR, MSA, DMA]
13+

google_health/delphi_google_health/run.py

Lines changed: 70 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,11 @@
99
import logging
1010

1111
from delphi_utils import read_params
12-
12+
import covidcast
1313
from .pull_api import GoogleHealthTrends, get_counts_states, get_counts_dma
1414
from .map_values import derived_counts_from_dma
1515
from .export import export_csv
16+
from .constants import *
1617

1718

1819
def run_module():
@@ -31,6 +32,7 @@ def run_module():
3132
static_dir = params["static_file_dir"]
3233
export_dir = params["export_dir"]
3334
cache_dir = params["cache_dir"]
35+
wip_signal = params["wip_signal"]
3436

3537
# if missing start_date, set to today (GMT) minus 5 days
3638
if start_date == "":
@@ -58,17 +60,71 @@ def run_module():
5860
)
5961
df_hrr, df_msa = derived_counts_from_dma(df_dma, static_dir=static_dir)
6062

61-
#  export each geographic region, with both smoothed and unsmoothed data
62-
export_csv(df_state, "state", "raw_search", smooth=False, receiving_dir=export_dir)
63-
export_csv(
64-
df_state, "state", "smoothed_search", smooth=True, receiving_dir=export_dir
65-
)
66-
67-
export_csv(df_dma, "dma", "raw_search", smooth=False, receiving_dir=export_dir)
68-
export_csv(df_dma, "dma", "smoothed_search", smooth=True, receiving_dir=export_dir)
69-
70-
export_csv(df_hrr, "hrr", "raw_search", smooth=False, receiving_dir=export_dir)
71-
export_csv(df_hrr, "hrr", "smoothed_search", smooth=True, receiving_dir=export_dir)
63+
signal_names = add_prefix(SIGNALS, wip_signal, prefix)
64+
65+
for signal in signal_names:
66+
if signal.endswith(SMOOTHED):
67+
#  export each geographic region, with both smoothed and unsmoothed data
68+
export_csv(df_state, STATE, signal, smooth=True, receiving_dir=export_dir)
69+
export_csv(df_dma, DMA, signal, smooth=True, receiving_dir=export_dir)
70+
export_csv(df_hrr, HRR, signal, smooth=True, receiving_dir=export_dir)
71+
export_csv(df_msa, MSA, signal, smooth=True, receiving_dir=export_dir)
72+
elif signal.endswith(RAW):
73+
export_csv(df_state, STATE, signal, smooth=False, receiving_dir=export_dir)
74+
export_csv(df_dma, DMA, signal, smooth=False, receiving_dir=export_dir)
75+
export_csv(df_hrr, HRR, signal, smooth=False, receiving_dir=export_dir)
76+
export_csv(df_msa, MSA, signal, smooth=False, receiving_dir=export_dir)
77+
78+
79+
def add_prefix(signal_names, wip_signal, prefix="wip_"):
80+
"""Adds prefix to signal if there is a WIP signal
81+
Parameters
82+
----------
83+
signal_names: List[str]
84+
Names of signals to be exported
85+
prefix : 'wip_'
86+
prefix for new/non public signals
87+
wip_signal : List[str] or bool
88+
a list of wip signals: [], OR
89+
all signals in the registry: True OR
90+
only signals that have never been published: False
91+
Returns
92+
-------
93+
List of signal names
94+
wip/non wip signals for further computation
95+
"""
7296

73-
export_csv(df_msa, "msa", "raw_search", smooth=False, receiving_dir=export_dir)
74-
export_csv(df_msa, "msa", "smoothed_search", smooth=True, receiving_dir=export_dir)
97+
if wip_signal is True:
98+
return [prefix + signal for signal in signal_names]
99+
if isinstance(wip_signal, list):
100+
make_wip = set(wip_signal)
101+
return [
102+
(prefix if signal in make_wip else "") + signal
103+
for signal in signal_names
104+
]
105+
if wip_signal in {False, ""}:
106+
return [
107+
signal if public_signal(signal)
108+
else prefix + signal
109+
for signal in signal_names
110+
]
111+
raise ValueError("Supply True | False or '' or [] | list()")
112+
113+
114+
def public_signal(signal_):
115+
"""Checks if the signal name is already public using COVIDcast
116+
Parameters
117+
----------
118+
signal_ : str
119+
Name of the signal
120+
Returns
121+
-------
122+
bool
123+
True if the signal is present
124+
False if the signal is not present
125+
"""
126+
epidata_df = covidcast.metadata()
127+
for index in range(len(epidata_df)):
128+
if epidata_df['signal'][index] == signal_:
129+
return True
130+
return False

google_health/params.json.template

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@
55
"start_date": "2020-01-05",
66
"end_date": "",
77
"ght_key": ""
8+
"wip_signal" : ""
89
}

google_health/setup.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
"pytest",
99
"pytest-cov",
1010
"pylint",
11-
"delphi-utils"
11+
"delphi-utils",
12+
"covidcast"
1213
]
1314

1415
setup(

google_health/tests/params.json.template

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@
44
"cache_dir": "../cache",
55
"start_date": "2020-02-11",
66
"end_date": "2020-04-30",
7-
"ght_key": ""
7+
"ght_key": "",
8+
"wip_signal": ""
89
}
Lines changed: 211 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,211 @@
1+
geo_id,val,se,sample_size
2+
500,0.00000000,NA,NA
3+
501,25.65377897,NA,NA
4+
502,334.67202142,NA,NA
5+
503,175.13134851,NA,NA
6+
504,25.48638218,NA,NA
7+
505,49.01260746,NA,NA
8+
506,12.96612475,NA,NA
9+
507,0.00000000,NA,NA
10+
508,16.92307270,NA,NA
11+
509,0.00000000,NA,NA
12+
510,0.00000000,NA,NA
13+
511,11.13817408,NA,NA
14+
512,46.18495205,NA,NA
15+
513,0.00000000,NA,NA
16+
514,29.04986504,NA,NA
17+
515,0.00000000,NA,NA
18+
516,0.00000000,NA,NA
19+
517,14.20797575,NA,NA
20+
518,0.00000000,NA,NA
21+
519,51.96424860,NA,NA
22+
520,0.00000000,NA,NA
23+
521,0.00000000,NA,NA
24+
522,0.00000000,NA,NA
25+
523,64.57454268,NA,NA
26+
524,13.42848302,NA,NA
27+
525,0.00000000,NA,NA
28+
526,0.00000000,NA,NA
29+
527,0.00000000,NA,NA
30+
528,14.82042815,NA,NA
31+
529,27.91406915,NA,NA
32+
530,0.00000000,NA,NA
33+
531,0.00000000,NA,NA
34+
532,0.00000000,NA,NA
35+
533,49.84702195,NA,NA
36+
534,56.96510248,NA,NA
37+
535,18.69821017,NA,NA
38+
536,0.00000000,NA,NA
39+
537,0.00000000,NA,NA
40+
538,0.00000000,NA,NA
41+
539,18.49816600,NA,NA
42+
540,0.00000000,NA,NA
43+
541,0.00000000,NA,NA
44+
542,0.00000000,NA,NA
45+
543,71.32667618,NA,NA
46+
544,0.00000000,NA,NA
47+
545,0.00000000,NA,NA
48+
546,97.38135293,NA,NA
49+
547,0.00000000,NA,NA
50+
548,23.14847806,NA,NA
51+
549,0.00000000,NA,NA
52+
550,0.00000000,NA,NA
53+
551,0.00000000,NA,NA
54+
552,0.00000000,NA,NA
55+
553,0.00000000,NA,NA
56+
554,0.00000000,NA,NA
57+
555,0.00000000,NA,NA
58+
556,0.00000000,NA,NA
59+
557,0.00000000,NA,NA
60+
558,0.00000000,NA,NA
61+
559,0.00000000,NA,NA
62+
560,12.21364341,NA,NA
63+
561,24.89929418,NA,NA
64+
563,0.00000000,NA,NA
65+
564,0.00000000,NA,NA
66+
565,0.00000000,NA,NA
67+
566,0.00000000,NA,NA
68+
567,22.68186574,NA,NA
69+
569,0.00000000,NA,NA
70+
570,0.00000000,NA,NA
71+
571,111.33146197,NA,NA
72+
573,0.00000000,NA,NA
73+
574,0.00000000,NA,NA
74+
575,0.00000000,NA,NA
75+
576,0.00000000,NA,NA
76+
577,0.00000000,NA,NA
77+
581,0.00000000,NA,NA
78+
582,0.00000000,NA,NA
79+
583,0.00000000,NA,NA
80+
584,0.00000000,NA,NA
81+
588,0.00000000,NA,NA
82+
592,0.00000000,NA,NA
83+
596,0.00000000,NA,NA
84+
597,0.00000000,NA,NA
85+
598,0.00000000,NA,NA
86+
600,0.00000000,NA,NA
87+
602,21.58373858,NA,NA
88+
603,0.00000000,NA,NA
89+
604,0.00000000,NA,NA
90+
605,0.00000000,NA,NA
91+
606,0.00000000,NA,NA
92+
609,15.19038838,NA,NA
93+
610,0.00000000,NA,NA
94+
611,0.00000000,NA,NA
95+
612,0.00000000,NA,NA
96+
613,9.71062768,NA,NA
97+
616,19.37040475,NA,NA
98+
617,0.00000000,NA,NA
99+
618,12.20127302,NA,NA
100+
619,0.00000000,NA,NA
101+
622,0.00000000,NA,NA
102+
623,34.36222518,NA,NA
103+
624,0.00000000,NA,NA
104+
625,51.14566285,NA,NA
105+
626,0.00000000,NA,NA
106+
627,0.00000000,NA,NA
107+
628,0.00000000,NA,NA
108+
630,0.00000000,NA,NA
109+
631,0.00000000,NA,NA
110+
632,0.00000000,NA,NA
111+
633,0.00000000,NA,NA
112+
634,0.00000000,NA,NA
113+
635,0.00000000,NA,NA
114+
636,78.28237624,NA,NA
115+
637,0.00000000,NA,NA
116+
638,0.00000000,NA,NA
117+
639,0.00000000,NA,NA
118+
640,0.00000000,NA,NA
119+
641,17.25271414,NA,NA
120+
642,0.00000000,NA,NA
121+
643,0.00000000,NA,NA
122+
644,0.00000000,NA,NA
123+
647,0.00000000,NA,NA
124+
648,0.00000000,NA,NA
125+
649,0.00000000,NA,NA
126+
650,0.00000000,NA,NA
127+
651,0.00000000,NA,NA
128+
652,0.00000000,NA,NA
129+
656,0.00000000,NA,NA
130+
657,0.00000000,NA,NA
131+
658,0.00000000,NA,NA
132+
659,0.00000000,NA,NA
133+
661,0.00000000,NA,NA
134+
662,0.00000000,NA,NA
135+
669,48.20671037,NA,NA
136+
670,0.00000000,NA,NA
137+
671,0.00000000,NA,NA
138+
673,0.00000000,NA,NA
139+
675,0.00000000,NA,NA
140+
676,0.00000000,NA,NA
141+
678,0.00000000,NA,NA
142+
679,0.00000000,NA,NA
143+
682,78.93905905,NA,NA
144+
686,0.00000000,NA,NA
145+
687,0.00000000,NA,NA
146+
691,0.00000000,NA,NA
147+
692,0.00000000,NA,NA
148+
693,0.00000000,NA,NA
149+
698,0.00000000,NA,NA
150+
702,0.00000000,NA,NA
151+
705,0.00000000,NA,NA
152+
709,0.00000000,NA,NA
153+
710,0.00000000,NA,NA
154+
711,0.00000000,NA,NA
155+
716,187.26591760,NA,NA
156+
717,0.00000000,NA,NA
157+
718,0.00000000,NA,NA
158+
722,0.00000000,NA,NA
159+
724,344.24132360,NA,NA
160+
725,269.10656620,NA,NA
161+
734,0.00000000,NA,NA
162+
736,0.00000000,NA,NA
163+
737,0.00000000,NA,NA
164+
740,0.00000000,NA,NA
165+
743,0.00000000,NA,NA
166+
744,39.36387970,NA,NA
167+
745,0.00000000,NA,NA
168+
746,0.00000000,NA,NA
169+
747,0.00000000,NA,NA
170+
749,0.00000000,NA,NA
171+
751,19.09092434,NA,NA
172+
752,101.48163182,NA,NA
173+
753,34.25453506,NA,NA
174+
754,0.00000000,NA,NA
175+
755,0.00000000,NA,NA
176+
756,0.00000000,NA,NA
177+
757,0.00000000,NA,NA
178+
758,0.00000000,NA,NA
179+
759,0.00000000,NA,NA
180+
760,0.00000000,NA,NA
181+
762,0.00000000,NA,NA
182+
764,0.00000000,NA,NA
183+
765,49.01960784,NA,NA
184+
766,0.00000000,NA,NA
185+
767,0.00000000,NA,NA
186+
770,14.75961245,NA,NA
187+
771,0.00000000,NA,NA
188+
773,0.00000000,NA,NA
189+
789,45.15895954,NA,NA
190+
790,28.98127210,NA,NA
191+
798,0.00000000,NA,NA
192+
800,0.00000000,NA,NA
193+
801,0.00000000,NA,NA
194+
802,0.00000000,NA,NA
195+
803,19.71649290,NA,NA
196+
804,124.68827930,NA,NA
197+
807,10.17947827,NA,NA
198+
810,0.00000000,NA,NA
199+
811,70.88176921,NA,NA
200+
813,0.00000000,NA,NA
201+
819,15.74578885,NA,NA
202+
820,26.33557359,NA,NA
203+
821,0.00000000,NA,NA
204+
825,12.60281411,NA,NA
205+
828,0.00000000,NA,NA
206+
839,0.00000000,NA,NA
207+
855,0.00000000,NA,NA
208+
862,0.00000000,NA,NA
209+
866,0.00000000,NA,NA
210+
868,0.00000000,NA,NA
211+
881,0.00000000,NA,NA

0 commit comments

Comments
 (0)