from epimargin.smoothing import notched_smoothing from epimargin.utils import cwd # model details CI = 0.95 smoothing = 14 infectious_period = 10 root = cwd() data = root / "data" figs = root / "figs" data.mkdir(exist_ok=True) figs.mkdir(exist_ok=True) plt.set_theme("substack") # define data versions for api files paths = { "v3": [data_path(i) for i in (1, 2)], "v4": [data_path(i) for i in range(3, 26)] } # for target in paths['v3'] + paths['v4']: # download_data(data, target) df = load_all_data(v3_paths=[data / filepath for filepath in paths['v3']], v4_paths=[data / filepath for filepath in paths['v4']]) data_recency = str(df["date_announced"].max()).split()[0] run_date = str(pd.Timestamp.now()).split()[0] ts = get_time_series(df, "detected_state")
import sys from itertools import product import epimargin.plots as plt import pandas as pd from epimargin.estimators import analytical_MPVS from epimargin.etl.commons import download_data from epimargin.etl.covid19india import data_path, get_time_series, load_all_data from epimargin.smoothing import notched_smoothing from epimargin.utils import cwd import seaborn as sns if len(sys.argv) > 1: plt.set_theme(sys.argv[1]) # model details CI = 0.95 smoothing = 7 root = cwd() data = root / "data" figs = root / "figs" data.mkdir(exist_ok=True) figs.mkdir(exist_ok=True) # define data versions for api files paths = { "v3": [data_path(i) for i in (1, 2)], "v4": [data_path(i) for i in range(3, 26)]
from google.cloud import storage dissolved_states = [ "Delhi", "Chandigarh", "Manipur", "Sikkim", "Dadra And Nagar Haveli And Daman And Diu", "Andaman And Nicobar Islands", "Telangana", "Goa", "Assam" ] island_states = ["Lakshadweep", "Puducherry"] app = Flask(__name__) CI = 0.95 smoothing = 10 print("Container starting.") plt.rebuild_font_cache() plt.set_theme("twitter") bucket_name = "daily_pipeline" bucket = storage.Client().bucket(bucket_name) @app.route("/state/<state_code>") def generate_report(state_code: str): print(f"Received request for {state_code}.") state = state_code_lookup[state_code] normalized_state = state.replace(" and ", " And ").replace(" & ", " And ") blobs = { f"pipeline/est/{state_code}_state_Rt.csv": f"/tmp/state_Rt_{state_code}.csv", f"pipeline/est/{state_code}_district_Rt.csv": f"/tmp/district_Rt_{state_code}.csv",
# preliminary set up from itertools import cycle import epimargin.plots as plt import numpy as np import pandas as pd from epimargin.utils import setup (data, figs) = setup() plt.set_theme("minimal") # download, load, and clean data from epimargin.etl import download_data from epimargin.smoothing import notched_smoothing # a snapshot of this csv is checked into the repo at data/tutorial_timeseries.csv in case you run into download problems download_data(data, "districts.csv", "https://api.covid19india.org/csv/latest/") daily_reports = pd.read_csv(data / "districts.csv", parse_dates = ["Date"])\ .rename(str.lower, axis = 1)\ .set_index(["state", "district", "date"])\ .sort_index()\ .loc["Maharashtra", "Mumbai"] daily_cases = daily_reports["confirmed"]\ .diff()\ .clip(lower = 0)\ .dropna()\ smoother = notched_smoothing(window=5) smoothed_cases = pd.Series(data=smoother(daily_cases), index=daily_cases.index)