-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutils.py
92 lines (73 loc) · 24.5 KB
/
utils.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
from PIL import Image
import pickle
def save_to_pkl(fl, dists):
with open(fl, 'wb') as f:
pickle.dump(dists, f)
def load_from_pkl(fl):
with open(fl, 'rb') as f:
p = pickle.load(f)
return p
def aqi_from_pm(pm25, verbose=0):
# Calculations taken from purpleair's javascript example at
# https://docs.google.com/document/d/15ijz94dXJ-YAZLi9iZ_RaBwrZ4KtYeCy08goGBwnbCU/edit
if pm25 < 0 or pm25 > 1000:
if verbose:
print(f'PM2.5 {pm25} out of range')
return None
if pm25 > 350.5:
return calc_aqi(pm25, 500, 401, 500, 350.5)
elif pm25 > 250.5:
return calc_aqi(pm25, 400, 301, 350.4, 250.5)
elif pm25 > 150.5:
return calc_aqi(pm25, 300, 201, 250.4, 150.5)
elif pm25 > 55.5:
return calc_aqi(pm25, 200, 151, 150.4, 55.5)
elif pm25 > 35.5:
return calc_aqi(pm25, 150, 101, 55.4, 35.5)
elif pm25 > 12.1:
return calc_aqi(pm25, 100, 51, 35.4, 12.1)
else:
return calc_aqi(pm25, 50, 0, 12, 0)
def calc_aqi(cp, ih, il, bph, bpl):
a = (ih - il)
b = (bph - bpl)
c = (cp - bpl)
return round((a / b) * c + il)
bay_area_sensors = {65547, 73755, 65575, 57385, 65597, 65619, 73817, 65631, 73829, 16489, 65641, 65643, 65647, 65649, 65655, 16507, 65663, 65665, 73859, 65673, 65677, 65679, 65681, 73875, 65683, 65685, 65687, 65689, 65691, 65697, 73891, 65699, 65701, 65705, 65707, 73899, 65709, 65711, 16559, 65717, 65721, 65723, 65727, 73919, 65729, 65731, 16583, 65735, 65741, 65745, 65747, 65749, 41173, 32985, 65755, 65759, 41183, 65761, 65765, 65769, 65773, 65779, 49397, 65781, 65785, 65787, 33021, 65805, 41231, 65809, 33043, 65815, 33049, 24859, 74019, 33059, 33063, 24871, 65841, 65849, 65851, 65853, 24897, 65859, 65863, 65865, 65867, 33103, 65871, 65873, 65875, 33122, 65895, 65899, 33131, 65901, 74095, 33135, 65905, 65911, 65913, 65914, 381, 65921, 33157, 65925, 65931, 74123, 65933, 65935, 24977, 16785, 65939, 65943, 65945, 65949, 65953, 65955, 24999, 65959, 74155, 65963, 65965, 74157, 41393, 74161, 65969, 41399, 8632, 57787, 65979, 74175, 65991, 74183, 65995, 66001, 74197, 66011, 74203, 66013, 66017, 66019, 41447, 66025, 66027, 66029, 57843, 41461, 66041, 66045, 57853, 66047, 41475, 16905, 74251, 41485, 49681, 16915, 74267, 41503, 57887, 74273, 66079, 74275, 74271, 16943, 57905, 74297, 57931, 49739, 57937, 41553, 74339, 66155, 66157, 66163, 66169, 66171, 66175, 66177, 66179, 66181, 66183, 74375, 74379, 66187, 66199, 17051, 66219, 74413, 66223, 74415, 41651, 66227, 17079, 33463, 66233, 58039, 66239, 58051, 17095, 25289, 74441, 41677, 17101, 25295, 74447, 25301, 66265, 66267, 74463, 33505, 74467, 66281, 74481, 74483, 66299, 66301, 74493, 767, 66303, 74501, 66317, 74513, 8988, 74525, 74527, 66337, 66343, 41769, 66345, 66347, 66349, 66353, 66357, 66359, 74551, 66365, 25407, 66367, 66369, 66371, 66373, 33609, 66383, 66385, 66387, 74585, 66393, 66397, 33629, 66399, 74593, 66401, 74595, 66407, 66409, 66415, 33647, 74607, 66421, 66423, 66427, 66429, 25471, 66437, 66441, 66447, 66449, 25489, 66457, 66459, 74651, 66461, 66463, 66465, 74665, 66477, 74671, 66485, 66487, 17337, 41915, 66493, 66501, 33741, 66523, 41951, 74733, 74735, 74737, 66551, 74743, 74745, 74749, 74757, 42003, 74793, 74809, 66623, 74823, 66643, 74843, 74853, 74855, 66663, 74869, 66693, 25745, 66709, 74905, 74913, 66733, 25775, 25781, 50371, 33987, 33993, 66763, 25805, 74979, 42217, 42225, 75021, 75027, 50457, 58659, 58663, 75047, 75053, 58671, 75057, 75059, 75061, 34103, 58685, 66885, 58695, 34127, 58703, 66899, 66911, 17763, 75109, 34161, 75121, 58743, 34167, 17783, 17787, 66939, 9600, 66945, 75139, 58755, 58759, 25997, 34191, 17809, 17811, 50583, 17821, 17823, 34209, 58787, 75175, 66987, 17839, 17841, 58811, 75197, 58813, 75199, 17863, 17867, 75217, 42453, 9686, 17879, 75223, 58845, 34269, 67039, 34275, 17895, 58855, 75245, 58879, 58883, 17927, 17929, 67083, 17931, 17937, 67089, 17939, 67091, 9750, 67097, 67099, 17951, 17954, 67109, 67117, 17965, 26159, 58925, 67121, 67119, 58933, 75319, 17975, 17977, 1596, 67137, 75331, 67147, 58957, 26193, 58961, 67155, 58963, 75349, 58967, 67161, 67163, 67165, 50785, 34401, 67173, 9834, 67183, 67185, 67187, 58995, 26231, 67197, 67199, 67203, 67205, 67207, 67209, 67211, 67213, 34445, 67215, 67217, 67227, 67229, 67231, 67237, 67245, 75445, 34485, 67255, 67259, 67261, 67263, 67265, 67267, 67269, 67271, 34505, 67275, 67277, 1742, 67283, 67285, 26325, 67287, 34523, 67297, 67299, 67301, 67305, 67307, 75501, 67311, 26353, 67313, 50931, 50933, 67317, 67319, 75513, 26363, 67325, 67327, 67331, 67333, 67335, 59143, 26379, 34571, 59147, 67343, 59151, 67349, 34583, 67351, 67353, 67357, 34589, 67359, 67369, 67371, 67375, 67381, 67383, 67385, 75577, 67387, 67391, 67393, 75585, 67395, 67397, 34631, 75593, 67401, 67403, 34637, 1870, 67405, 1872, 1874, 67413, 67415, 18263, 67417, 67421, 67425, 67429, 18281, 67435, 10092, 42861, 67437, 18287, 18289, 51059, 67443, 67447, 18297, 18299, 67451, 75647, 67455, 67459, 67461, 67463, 67473, 67479, 34711, 67483, 18331, 42909, 34719, 67489, 67491, 75683, 67493, 67495, 34729, 67501, 34733, 75695, 34735, 67507, 67509, 67513, 18363, 67515, 75717, 67527, 75721, 67531, 67533, 18381, 75725, 75729, 67539, 51159, 75737, 18395, 75739, 26589, 18399, 18401, 18405, 67561, 75755, 59375, 75759, 65533, 2031, 59379, 75765, 59389, 18435, 18439, 18443, 67597, 18447, 2063, 18449, 18451, 67605, 18453, 67607, 18455, 67613, 18463, 67617, 67619, 18471, 18473, 18475, 75823, 75825, 18481, 59445, 34871, 75831, 75833, 18491, 59453, 18493, 18495, 75837, 75843, 34885, 59463, 18503, 59465, 18505, 18507, 18509, 75853, 34895, 18511, 67667, 18523, 18527, 51299, 18531, 51301, 34923, 18539, 75887, 18545, 75891, 18551, 18553, 34947, 18563, 18565, 67719, 75915, 34975, 67749, 34987, 34989, 34993, 35007, 67779, 35013, 67785, 75979, 67787, 35021, 75983, 67791, 67793, 35023, 75987, 67795, 35029, 59605, 67797, 67801, 67803, 67805, 67807, 76005, 76007, 67819, 18673, 67827, 18677, 59641, 59643, 67839, 26879, 59649, 67841, 67847, 35085, 59663, 76051, 59667, 43291, 18725, 76071, 67881, 59691, 59695, 18735, 59697, 18737, 18739, 59709, 59711, 18753, 18755, 67909, 76101, 67911, 76111, 59735, 76121, 59737, 18781, 18787, 59749, 59751, 67943, 18793, 76137, 67945, 67951, 67953, 67955, 67959, 67961, 18811, 67963, 67969, 51587, 76165, 67975, 67979, 67981, 76175, 67993, 67995, 67997, 18847, 68001, 68013, 18861, 2480, 18877, 18883, 43461, 18885, 59847, 68041, 18891, 18893, 18901, 59861, 68055, 18903, 18905, 18907, 18911, 68063, 59873, 18915, 18917, 68071, 68085, 18939, 27135, 68097, 68099, 59917, 2574, 59919, 59921, 68113, 59927, 18967, 59931, 18971, 59935, 18975, 18981, 18985, 18987, 18991, 18995, 18997, 68157, 76355, 68167, 35401, 19023, 76369, 19025, 68179, 68177, 19029, 19027, 19031, 68183, 59985, 59997, 76381, 43615, 27231, 27229, 19037, 76387, 27237, 76389, 60007, 19047, 35433, 60011, 19053, 19054, 60015, 60017, 60019, 60021, 19063, 60025, 19066, 19065, 19069, 19073, 19075, 19077, 76423, 60057, 60059, 60063, 68255, 76447, 60065, 60067, 76451, 60069, 43685, 51881, 76463, 60083, 60089, 76477, 60093, 35517, 76481, 68291, 60099, 19143, 60103, 60105, 19151, 19153, 60113, 60115, 19157, 68311, 19159, 10972, 19167, 68319, 68321, 27359, 68323, 19171, 76517, 76519, 60135, 68329, 19181, 68333, 60143, 76525, 68337, 19185, 68339, 19189, 68341, 19191, 68345, 68347, 68349, 60157, 68351, 68353, 76547, 68355, 60163, 68357, 60167, 43787, 60171, 68363, 68366, 76561, 68373, 76571, 19231, 76577, 60193, 19233, 68389, 2856, 68393, 19245, 68397, 76597, 60213, 68405, 19257, 76601, 19259, 68413, 68415, 60223, 19265, 2883, 68421, 68425, 19273, 60235, 43851, 19275, 68433, 19281, 60249, 19289, 68443, 2906, 68445, 68441, 68447, 43871, 19297, 68449, 19299, 60259, 19301, 2910, 19303, 2916, 43881, 60265, 19307, 68459, 60269, 60263, 68463, 19313, 19317, 68471, 19319, 60279, 19323, 68479, 60291, 68485, 19335, 68487, 68489, 76681, 60299, 76683, 60301, 19339, 68495, 60305, 68497, 76691, 19349, 68501, 19351, 76695, 68505, 19353, 68503, 60313, 68509, 19357, 68511, 60319, 68513, 19361, 60323, 35749, 68519, 60329, 68521, 60331, 19369, 60333, 68525, 60335, 76719, 19375, 68523, 19379, 19389, 76735, 19391, 68545, 68543, 3015, 76745, 68553, 68555, 68559, 19407, 68561, 76751, 19415, 27609, 68573, 19425, 35809, 76771, 19431, 68583, 19433, 68585, 68587, 19435, 27631, 68591, 68593, 19439, 76785, 68595, 68599, 68601, 68603, 68609, 76803, 19461, 76807, 68617, 3082, 68619, 44047, 19471, 60433, 68627, 68629, 44055, 19479, 35865, 19481, 68631, 60445, 60447, 68639, 68643, 68645, 76837, 68647, 19495, 60457, 19497, 35883, 60455, 68653, 68655, 68657, 19507, 19509, 44085, 19511, 68661, 44091, 19515, 68669, 68667, 68671, 60485, 27723, 19533, 19535, 60501, 68695, 68697, 68699, 68701, 60509, 60511, 68705, 68707, 68709, 68713, 68717, 3184, 68723, 19571, 19573, 19577, 60537, 27771, 19581, 60543, 19587, 19591, 19593, 27787, 68749, 76943, 60561, 60563, 19605, 11416, 19613, 35999, 60577, 11426, 19627, 3247, 19633, 19635, 19639, 60603, 19647, 3265, 36035, 68809, 19657, 60619, 19664, 60625, 68819, 19669, 19671, 19677, 44255, 60639, 68833, 60641, 19683, 68835, 60645, 19691, 19693, 60653, 60657, 19701, 3318, 44279, 60663, 77051, 19711, 3327, 44289, 19713, 60679, 3336, 68873, 19719, 36109, 68877, 36111, 68879, 68881, 60689, 27923, 68885, 19735, 60695, 36121, 60699, 19743, 19747, 19749, 68907, 60719, 36153, 60735, 19777, 68931, 36163, 68935, 68937, 60749, 44367, 11600, 27985, 60753, 77139, 36177, 36175, 68943, 68949, 68951, 68947, 11610, 68957, 77149, 68959, 36195, 36199, 68967, 68969, 68971, 68973, 68979, 68983, 36217, 3451, 60801, 60805, 60811, 69003, 19855, 60819, 60825, 60829, 77221, 69029, 60839, 36267, 69035, 69041, 60851, 36279, 69049, 36287, 69061, 11726, 69071, 69073, 36309, 69079, 19931, 69085, 52703, 36327, 60903, 69097, 69099, 69101, 69109, 19957, 36343, 69113, 69117, 52735, 36355, 69127, 19977, 19979, 60939, 69133, 69131, 36367, 19983, 69135, 69143, 36377, 19993, 52763, 36381, 19997, 19999, 69153, 69155, 20003, 77349, 20009, 60971, 69165, 3631, 69173, 20025, 69181, 69193, 69197, 69199, 3666, 52819, 69205, 69207, 69209, 69215, 69217, 36453, 69223, 69225, 52841, 69227, 61037, 52847, 69235, 20083, 69237, 52853, 69241, 69243, 36475, 52861, 69249, 69253, 69257, 77451, 44683, 69259, 20113, 20115, 36501, 69269, 20119, 69273, 20123, 69277, 20127, 36513, 20129, 52899, 28325, 69287, 36521, 20141, 61103, 52913, 44721, 3762, 36529, 52917, 20149, 69305, 69307, 20155, 61117, 20157, 20159, 52927, 28351, 52931, 20165, 69317, 61127, 61125, 61129, 36555, 61131, 61133, 20171, 69329, 69331, 20179, 61141, 11988, 20183, 61145, 69339, 20187, 61151, 77535, 61155, 77541, 20199, 69351, 61161, 69353, 20203, 61159, 61165, 69357, 61167, 20209, 52977, 69361, 61169, 69365, 61173, 61175, 20217, 69369, 61179, 36603, 69373, 61183, 69375, 61185, 69377, 36611, 3840, 61189, 52995, 69383, 3848, 69385, 69387, 20235, 69389, 61197, 69391, 61195, 77585, 36627, 61205, 69401, 61209, 61211, 69403, 61213, 53021, 69407, 69405, 61217, 36641, 77603, 77601, 61223, 69415, 69417, 61227, 69419, 36653, 61229, 77611, 69425, 61233, 61235, 77621, 3894, 61237, 36661, 61241, 61243, 3900, 36667, 53051, 69439, 61247, 61249, 69441, 20283, 28487, 20295, 69447, 69451, 69455, 69459, 69461, 3926, 77655, 69465, 69467, 3934, 69471, 69473, 3939, 69475, 69479, 69481, 36715, 69483, 69487, 44911, 69489, 36727, 53113, 77691, 3964, 69505, 61313, 3970, 69507, 69509, 53125, 69511, 61321, 69513, 69515, 53131, 69517, 69519, 53135, 69521, 77711, 53139, 69523, 69525, 69531, 69533, 3998, 69535, 20383, 69541, 69543, 4008, 69547, 69551, 61359, 69557, 69565, 20413, 69569, 61385, 69577, 61387, 69579, 61389, 61391, 69583, 69587, 61399, 69593, 28633, 61401, 61403, 36829, 61407, 53217, 53219, 61413, 28645, 77801, 61417, 61421, 61423, 69615, 77811, 61427, 20469, 61429, 61431, 69623, 4087, 69625, 28667, 20473, 28669, 69629, 61439, 20479, 69633, 69635, 4101, 53253, 4103, 69639, 69637, 69641, 20491, 69645, 20499, 53269, 69655, 20503, 69657, 20505, 69665, 20513, 20515, 28705, 69669, 12326, 20519, 69673, 4137, 69675, 20527, 69679, 53299, 69683, 69685, 69687, 28729, 69693, 61501, 77887, 69697, 4161, 69699, 20547, 53315, 69703, 69707, 53325, 69711, 69713, 69715, 69717, 20565, 20573, 53353, 20589, 69743, 20593, 20601, 53373, 36989, 61567, 36991, 20609, 36995, 36997, 28805, 61575, 61573, 61577, 37003, 61585, 20627, 37011, 61589, 61587, 61591, 53395, 61593, 53401, 61595, 69787, 61597, 37021, 69791, 37025, 69795, 61603, 53411, 61605, 61607, 61609, 53423, 61619, 61621, 61625, 61629, 37059, 37061, 53447, 53449, 69835, 4299, 37069, 53455, 53459, 53461, 53463, 37079, 37087, 28897, 69859, 20707, 20709, 69861, 37095, 37093, 37097, 53483, 53485, 37103, 69871, 20721, 20723, 53491, 37109, 4339, 20727, 4343, 37113, 69875, 69883, 69879, 69881, 69885, 37121, 20737, 37123, 69889, 20741, 53509, 69897, 20747, 53515, 53517, 37133, 53519, 69905, 4372, 20757, 69909, 37143, 37141, 37145, 69915, 37149, 53533, 53537, 69921, 28965, 69925, 69927, 4391, 4389, 69929, 69931, 20781, 69933, 69935, 20785, 69939, 69941, 53563, 69949, 20799, 69951, 20801, 4421, 69961, 61769, 69965, 4431, 69973, 69979, 4445, 69985, 53601, 69987, 37223, 69991, 69993, 69995, 37227, 69997, 70005, 70007, 70009, 20857, 4478, 70017, 70019, 20867, 70021, 61827, 37257, 20873, 4491, 61837, 70031, 61839, 20881, 70033, 70035, 20883, 61845, 4506, 70043, 53661, 70049, 53665, 70053, 20901, 37289, 70059, 70061, 4527, 20911, 37297, 29109, 70071, 20919, 70073, 70075, 37309, 37311, 70079, 53705, 70091, 37327, 70097, 70099, 70101, 70103, 20951, 70105, 37339, 70109, 4575, 70111, 37343, 37345, 37347, 70117, 37351, 20971, 70129, 70131, 70133, 70135, 20989, 70141, 70143, 4606, 70145, 4610, 70147, 70149, 20997, 4615, 70153, 12811, 70159, 37393, 70167, 70169, 70179, 70181, 70183, 4658, 70201, 70205, 21055, 21057, 70211, 53829, 37447, 12873, 37455, 21071, 70227, 70233, 70239, 37475, 70243, 37479, 53863, 37485, 21107, 37491, 37493, 37515, 37521, 12951, 70297, 70299, 53915, 70301, 53917, 4766, 4772, 4776, 70313, 45739, 4788, 70327, 4793, 70329, 21185, 4801, 70339, 53963, 62159, 37583, 53967, 70353, 70355, 53971, 53973, 70359, 70363, 13021, 70367, 70371, 62183, 70375, 62185, 21227, 62187, 70383, 62191, 62193, 21235, 37621, 62201, 70395, 62203, 70401, 62209, 70403, 21251, 21253, 62213, 62215, 62217, 62219, 70413, 62223, 13073, 62225, 62227, 21269, 37655, 4896, 62245, 21285, 37671, 4904, 37673, 62249, 70443, 70449, 62263, 62265, 62269, 37693, 70463, 21313, 37697, 70469, 70471, 37703, 70473, 62279, 70475, 37713, 70481, 62291, 29523, 70485, 45905, 13143, 62295, 62297, 54105, 70487, 37721, 70493, 70491, 62303, 62299, 62305, 70499, 62307, 37733, 70501, 70503, 54119, 70505, 70507, 62315, 70509, 70511, 70513, 54129, 70515, 70517, 13173, 70519, 54137, 70523, 21371, 70525, 70529, 37771, 70539, 70541, 62347, 62353, 13201, 21397, 62357, 21399, 54167, 54165, 70549, 62363, 54169, 70557, 70553, 70559, 5024, 54177, 70561, 62371, 70563, 62373, 62375, 54185, 62377, 54187, 70569, 54189, 62381, 62383, 70575, 21423, 62387, 21427, 70579, 62389, 21431, 5044, 62393, 70581, 54205, 21439, 70593, 21443, 70595, 70599, 21449, 70603, 54221, 62413, 21455, 62417, 70609, 62419, 62421, 70615, 62423, 21465, 70617, 70619, 62427, 37849, 62431, 21475, 37859, 21477, 70631, 13289, 70635, 70637, 62447, 70641, 62449, 62451, 70645, 62455, 37881, 62459, 70651, 70655, 62465, 62467, 62469, 70663, 5127, 70665, 62473, 62475, 70669, 70671, 62479, 70675, 37909, 70677, 62489, 70681, 62493, 70685, 5151, 70687, 70689, 70691, 70697, 62509, 70701, 54319, 46127, 37937, 70703, 70707, 62515, 62517, 70709, 70711, 70713, 54333, 70719, 54335, 70721, 37953, 70723, 5188, 70729, 70731, 70733, 70735, 37971, 70739, 70745, 70747, 21597, 70751, 70753, 70755, 5220, 37991, 62569, 70765, 70769, 5236, 70773, 70777, 70779, 21629, 54397, 70783, 54399, 29825, 70785, 54403, 46205, 54407, 54411, 70795, 46219, 21643, 62607, 54413, 54417, 62611, 13463, 70807, 62619, 62629, 70823, 29865, 70827, 70831, 38063, 70833, 54447, 54459, 38075, 54463, 38085, 54471, 21703, 70857, 21707, 13517, 21713, 54485, 70871, 21723, 5340, 70875, 21733, 54503, 70889, 54507, 70891, 70893, 70895, 70897, 70903, 46331, 46333, 54531, 54535, 54539, 62731, 54551, 54555, 21789, 54559, 62753, 70947, 38179, 54565, 62761, 62765, 62767, 38193, 62773, 62777, 54591, 54595, 54597, 46405, 70983, 5448, 54601, 71003, 21851, 71005, 71007, 62819, 71015, 71017, 71027, 5492, 71033, 46457, 46463, 46465, 54657, 71047, 46475, 62865, 46485, 38295, 21912, 38309, 71093, 21942, 54723, 38341, 62925, 54735, 21967, 38357, 54745, 71129, 38371, 54757, 21994, 71153, 62961, 62963, 38387, 54779, 38401, 5642, 54799, 38415, 22035, 22037, 54805, 38429, 22051, 38435, 22053, 54819, 54825, 46639, 54831, 22063, 22067, 54837, 38457, 38459, 22077, 38463, 22079, 54849, 22081, 38467, 38471, 38473, 54857, 38479, 22097, 63057, 13907, 22099, 38481, 71257, 22117, 63077, 38503, 54887, 38507, 54897, 71283, 63091, 22133, 63109, 63111, 38535, 5776, 38547, 38549, 63129, 63131, 63137, 38567, 63143, 63145, 63147, 13997, 63149, 38575, 22191, 38577, 63153, 63151, 63159, 5818, 38589, 63165, 63169, 38599, 30413, 38607, 63185, 71381, 38613, 63193, 38619, 14051, 63205, 63207, 5868, 71405, 38641, 63219, 63221, 22263, 14073, 63229, 63233, 63235, 38661, 63237, 38665, 63241, 14091, 63245, 22287, 63247, 63249, 71439, 71443, 71441, 63253, 63255, 71447, 38683, 55069, 63261, 63263, 55071, 38689, 71457, 55075, 30499, 63269, 71459, 63271, 38693, 55081, 63273, 38699, 38695, 71469, 63277, 63279, 71471, 63281, 63283, 63287, 55095, 63289, 71481, 63291, 71483, 55101, 63293, 63295, 14141, 22337, 63297, 38723, 71491, 38725, 63303, 22343, 71495, 71497, 22351, 71503, 14161, 22357, 38745, 55131, 71517, 71519, 14175, 71525, 71527, 63341, 71533, 71537, 55155, 71539, 71541, 71547, 71549, 6014, 71551, 55167, 22399, 71555, 55171, 63365, 71557, 22407, 71559, 71561, 38791, 22409, 71565, 55183, 71567, 71569, 30609, 63379, 22421, 55189, 22423, 71573, 71577, 71575, 71579, 55197, 71583, 71585, 38817, 71591, 71593, 38825, 71595, 22445, 30637, 71599, 71601, 22451, 55219, 22453, 71605, 22455, 55223, 71609, 63417, 71611, 22459, 22461, 63421, 38847, 22463, 38849, 38851, 71621, 63431, 22471, 63435, 22475, 14285, 63437, 63439, 38867, 55253, 71637, 71639, 22489, 71641, 63451, 22493, 22499, 63461, 71655, 38887, 38889, 63465, 63467, 22509, 63469, 55279, 63471, 22513, 22515, 63479, 22523, 55293, 71679, 14335, 14339, 55301, 63505, 63507, 63509, 63513, 14361, 55323, 63515, 55327, 55333, 55335, 63533, 71727, 63537, 71731, 63539, 14389, 71733, 63543, 71735, 63545, 47161, 71739, 63553, 71751, 63559, 71753, 63561, 71755, 71757, 63567, 71767, 71771, 63581, 39005, 71775, 63585, 63587, 39013, 63589, 63591, 71783, 63593, 63595, 71789, 63599, 63601, 71793, 71795, 63605, 71797, 71799, 55413, 55417, 55419, 63615, 63617, 63619, 63621, 63623, 39051, 71819, 71821, 63629, 63631, 71823, 63633, 55437, 63635, 71829, 30871, 55447, 63641, 55449, 71835, 55453, 71839, 63649, 55459, 55461, 71845, 55463, 55465, 71851, 71853, 55469, 71855, 39089, 55481, 63677, 6344, 71881, 47307, 71903, 22755, 71909, 55527, 6384, 71921, 39157, 55545, 6396, 63741, 63745, 39171, 47371, 6426, 39197, 39199, 14633, 63785, 63793, 55609, 39227, 55617, 55619, 55623, 55625, 55637, 39255, 22873, 63835, 22879, 63839, 22883, 63849, 63851, 63857, 63863, 63865, 63871, 72067, 63879, 63887, 72079, 63889, 63893, 55703, 63895, 72089, 14749, 63905, 63907, 6564, 63909, 31143, 63911, 6572, 14767, 22961, 6578, 22963, 31155, 72117, 63925, 63931, 63935, 63937, 63939, 63941, 63945, 72139, 63947, 63953, 63955, 31189, 63957, 72157, 72159, 63969, 63981, 55791, 63983, 72177, 55793, 55795, 63985, 63989, 63991, 63995, 55803, 63997, 55807, 64001, 55817, 64011, 55819, 64013, 64015, 55825, 55827, 23061, 64021, 55831, 64025, 23065, 64027, 55833, 64029, 64031, 55841, 64035, 14885, 64037, 64039, 14891, 23083, 23085, 64045, 64047, 64049, 55857, 64051, 14899, 72247, 64055, 72253, 72255, 64063, 39489, 55871, 64067, 72263, 64071, 64073, 72269, 64077, 55887, 23121, 72283, 72289, 64099, 64103, 72295, 64105, 72297, 55915, 55919, 64111, 55929, 72317, 55933, 23167, 64131, 55939, 55941, 72327, 55943, 55945, 72331, 55949, 55951, 72335, 72343, 55961, 72345, 23195, 72347, 72357, 55975, 64167, 55977, 47787, 55979, 55983, 64181, 55991, 39609, 72377, 55995, 15037, 55997, 55999, 56005, 56007, 39623, 56009, 15049, 56011, 56013, 72401, 56021, 47831, 56025, 64217, 56027, 56031, 64225, 39655, 56045, 39661, 23279, 39663, 39665, 72429, 15091, 39667, 72437, 72439, 56069, 39685, 56071, 15113, 72461, 23311, 56085, 72469, 72471, 56089, 72479, 56097, 64289, 39717, 72485, 64295, 56101, 19293, 72497, 31539, 72499, 72501, 72503, 23353, 64315, 72507, 72509, 39743, 39745, 64321, 64325, 64329, 39753, 72523, 72525, 64335, 72527, 39761, 39763, 64343, 64345, 72537, 64347, 15197, 64349, 72547, 64357, 72549, 64359, 56169, 64363, 72557, 56175, 56177, 72561, 64371, 64373, 72567, 39801, 64379, 72571, 64381, 64383, 15235, 64387, 64389, 64391, 64393, 72585, 23435, 39819, 64397, 15245, 72591, 64399, 72587, 64403, 72595, 64405, 15251, 64407, 64409, 72603, 64413, 72605, 64415, 72609, 64417, 72611, 72613, 64421, 64423, 72617, 64427, 64429, 64431, 64433, 56241, 39861, 56245, 56247, 56251, 64445, 48067, 56259, 64453, 64451, 64455, 39879, 64457, 64461, 56275, 64467, 64469, 64473, 56281, 64475, 64477, 39901, 72671, 72677, 64489, 72683, 64491, 56301, 72687, 64503, 72697, 72699, 72705, 72717, 23569, 48151, 31771, 56347, 7198, 56353, 72739, 64549, 23595, 72761, 64573, 72765, 64579, 23625, 71453, 72781, 64593, 72789, 64603, 64605, 31837, 48229, 72809, 72817, 7282, 23673, 40059, 72827, 40065, 40067, 40071, 64651, 40075, 56461, 72845, 72849, 64659, 7316, 56467, 72853, 40089, 72863, 40101, 64687, 64689, 64693, 64697, 72891, 40123, 72893, 64701, 64703, 15553, 64707, 72899, 64709, 72905, 64715, 40141, 64717, 72911, 64719, 64721, 64723, 72917, 64729, 64731, 64733, 72927, 64735, 64737, 56545, 64741, 72933, 64745, 40169, 64751, 64755, 64757, 72949, 72951, 64761, 72953, 64769, 64771, 7428, 23811, 64775, 64777, 64779, 64781, 64783, 64791, 15641, 64795, 64797, 72989, 15645, 64801, 64805, 64809, 64813, 64817, 48433, 64819, 15669, 64823, 40249, 64825, 64831, 64833, 64835, 64837, 64839, 64845, 64855, 64857, 64863, 64865, 64867, 64871, 23915, 64879, 64881, 64883, 64885, 64887, 32123, 23933, 64897, 23937, 64899, 64909, 73101, 15769, 23965, 56733, 40351, 64929, 73123, 64939, 64941, 73137, 15795, 64949, 73141, 64953, 73147, 73149, 15807, 56777, 24011, 64971, 40399, 40401, 64987, 73193, 73195, 73199, 73211, 15879, 73227, 15883, 73235, 56853, 73237, 56855, 40471, 73239, 65053, 65057, 40491, 73263, 73265, 65095, 65107, 15981, 65135, 65141, 40569, 73341, 65159, 65161, 24201, 73357, 65165, 65167, 16013, 65169, 65173, 65177, 65179, 65181, 24223, 65183, 56993, 24227, 73381, 65193, 65201, 65205, 57015, 40633, 65211, 65215, 65217, 65223, 24263, 16073, 65227, 65229, 65231, 16085, 65237, 65241, 73433, 65243, 65245, 57053, 57055, 24289, 65251, 65253, 65255, 65257, 65259, 57069, 65261, 40691, 65271, 40695, 65273, 16123, 65281, 65287, 16137, 57103, 73487, 73491, 57107, 65301, 16149, 73495, 40723, 65305, 73499, 73507, 32547, 32551, 57127, 73515, 16177, 65331, 40757, 73527, 40763, 71603, 65345, 57153, 65349, 40779, 65367, 65369, 40795, 57179, 73565, 65371, 65375, 65373, 65381, 73589, 65413, 65421, 73615, 65425, 65427, 65429, 73623, 65433, 65437, 49057, 65447, 65449, 65451, 65455, 65457, 65459, 65463, 57273, 65471, 73667, 73669, 65477, 65487, 65489, 73681, 65491, 73685, 65493, 65495, 73687, 73689, 65499, 65503, 65505, 65507, 73701, 65511, 65513, 73707, 65517, 65519, 65521, 73715, 24573}
def get_changers(df_list, var_to_viz='temp_f', subset='all'):
print(f'Running changers')
chngrs = []
tmpdic = {}
# extent = [-128, -65, 23, 50.5] # whole US
extent = [-123, -121.75, 37, 38.75] # Bay Area
# extent = [-122.65, -122.15, 37.6, 38.] # SF city Area
for tup in df_list:
now, df = tup[0], tup[1]
df = df[df['lon'].between(extent[0], extent[1])]
df = df[df['lat'].between(extent[2], extent[3])]
for index, row in df.iterrows():
if index not in tmpdic:
tmpdic[index] = {'min': 200, 'max': -100}
if row[var_to_viz] < tmpdic[index]['min']:
tmpdic[index]['min'] = row[var_to_viz]
if row[var_to_viz] > tmpdic[index]['max']:
tmpdic[index]['max'] = row[var_to_viz]
for t in tmpdic:
if tmpdic[t]['max'] - tmpdic[t]['min'] > 10:
chngrs.append(t)
print(len(df_list), len(set(chngrs)))
print(set(chngrs))
title_dict = {'temp_f': 'Temp (F)', 'Temperature_F': 'Temp (F)', 'pm_2.5': 'AQI (PM2.5)',
'PM2.5_CF_ATM_ug/m3': 'AQI (PM2.5)'}
data_cols = {
'created_at': 'created_at',
'entry_id': 'entry_id',
'field1': 'PM1.0_CF_ATM_ug/m3',
'field2': 'PM2.5_CF_ATM_ug/m3',
'field3': 'PM10.0_CF_ATM_ug/m3',
'field4': 'UptimeMinutes',
'field5': 'ADC',
'field6': 'Temperature_F',
'field7': 'Humidity_%',
'field8': 'PM2.5_CF_1_ug/m3',
}