#!/usr/bin/env python
import csv
import lzma
from datetime import date, timedelta
result = []
sensorlist = [1,2,4,8,11,12,13,14,15,16,17,18,19,20]
#sensorlist = [8]
def gather_data(frm, to, which):
global result
if which == 0:
dbdate = frm
else:
dbdate = to
dname = "%04d%02d" % (dbdate.year, dbdate.month)
frm_s = frm.strftime("%Y/%m/%d 00:00")
to_s = to.strftime("%Y/%m/%d 23:59")
tmplist = []
for i in sensorlist:
no = str(i)
fname = "./data/"+no+"/"+dname+".csv.xz"
r1 = csv.DictReader(lzma.LZMAFile(fname), fieldnames=["datetime", "temp-"+no, "humid-"+no])
tmp=filter(lambda x: x["datetime"] >= frm_s and x["datetime"] <= to_s, r1)
if tmp == []: continue
result+=(tmp)
r1 = csv.DictReader(lzma.LZMAFile("JMA.csv.xz"), fieldnames=["datetime", "temp-jma", "humid-jma", "rainfall"])
tmp=filter(lambda x: x["datetime"] >= frm_s and x["datetime"] <= to_s, r1)
result += (tmp)
to = date.today()
frm = to - timedelta(15)
gather_data(frm, to, 0)
if frm.month != to.month:
gather_data(frm, to, 1)
# align on 10 min.
for i in range(len(result)):
result[i]["datetime"] = result[i]["datetime"][:-1]+"0"
result.sort(key=lambda x: x["datetime"])
prev=""
fa = []
for entry in result:
if entry["datetime"] < "2016/12/01 00:00": continue
if entry["datetime"] == prev:
fa[-1] = {k: v for dic in [entry, fa[-1]]
for k, v in dic.items()}
else:
fa.append(entry)
prev = entry["datetime"]
print "var data = "
print fa