def join_with_divi_data(d_districts_data: dict) -> dict:
    d_divi_data = helper.read_json_file('cache/de-divi/de-divi-V3.json')
    for lk_id, l_lk_time_series in d_districts_data.items():
        # all Berlin Districts are in divi at 11000
        if lk_id[0:2] == '11':
            l_divi_time_series = d_divi_data["11000"]
        elif lk_id not in d_divi_data:
            continue
#        assert lk_id in d_divi_data, f"Error: LK {lk_id} missing in DIVI data"
        if lk_id[0:2] != '11':
            l_divi_time_series = d_divi_data[lk_id]
        d_divi_time_series = {}
        for d in l_divi_time_series:
            d_divi_time_series[d['Date']] = d

        for d in l_lk_time_series:
            if d['Date'] not in d_divi_time_series:
                continue
            d['DIVI_Intensivstationen_Covid_Prozent'] = d_divi_time_series[d['Date']
                                                                           ]['faelle_covid_aktuell_proz']
            d['DIVI_Intensivstationen_Betten_belegt_Prozent'] = d_divi_time_series[d['Date']
                                                                                   ]['betten_belegt_proz']

        d_districts_data[lk_id] = l_lk_time_series

    return d_districts_data
def read_json_data() -> dict:
    """
    reads downloaded cached json file contents
    renames some country names according to ref database
    calls prepare_time_series
    adds _Per_Million fields
    NO LONGER exports as json file
    returns as a dict
    """
    d_json_downloaded = helper.read_json_file(file_cache)

    # rename some countries
    d_countries_to_rename = {}
    d_countries_to_rename['US'] = 'United States'
    d_countries_to_rename['Korea, South'] = 'South Korea'
    d_countries_to_rename['Taiwan*'] = 'Taiwan'
    d_countries_to_rename['Burma'] = 'Myanmar'
    d_countries_to_rename['Cote d\'Ivoire'] = 'Ivory Coast'
    d_countries_to_rename['West Bank and Gaza'] = 'Palestinian Territory'
    d_countries_to_rename['Timor-Leste'] = 'Timor Leste'
    d_countries_to_rename['Holy See'] = 'Vatican'
    for country_name_old, country_name_new in d_countries_to_rename.items():
        d_json_downloaded[country_name_new] = d_json_downloaded[
            country_name_old]
        del d_json_downloaded[country_name_old]

    d_countries = {}
    # re-format date using my date_format(y,m,d) function
    for country in d_json_downloaded.keys():
        country_data = d_json_downloaded[country]
        l_time_series = []

        pop = read_population(country)
        if pop != None:
            pop_in_million = pop / 1000000
        else:
            pop_in_million = None

        for entry in country_data:
            d = {}
            # entry in country_data:
            s = entry['date']
            l = s.split("-")
            d['Date'] = helper.date_format(int(l[0]), int(l[1]), int(l[2]))
            d['Cases'] = int(entry['confirmed'])
            d['Deaths'] = int(entry['deaths'])
            l_time_series.append(d)

        l_time_series = helper.prepare_time_series(l_time_series)

        for i in range(len(l_time_series)):
            d = l_time_series[i]

            # _Per_Million
            d = helper.add_per_million(d, pop_in_million)

        d_countries[country] = l_time_series

    return d_countries
def read_ref_data_countries() -> dict:
    d_countries_ref = {}
    d_ref_country_database = helper.read_json_file(
        'data/ref_country_database.json')
    for key, d in d_ref_country_database.items():
        d2 = {}
        code = d["ISO"]
        name = key
        if name == 'Republic of the Congo':
            name = 'Congo (Brazzaville)'
        elif name == 'Democratic Republic of the Congo':
            name = 'Congo (Kinshasa)'
        pop = d['Population']
        if pop != None:
            pop = int(pop)
        if pop == 0:
            pop = None
        continent = d['Continent']
        # move Turkey from Asia to Europe
        if name == 'Turkey':
            continent = 'EU'

        if continent != None:
            if continent == 'AF':
                continent = 'Africa'
            elif continent == 'AN':
                continent = 'Antarctica'
            elif continent == 'AS':
                continent = 'Asia'
            elif continent == 'EU':
                continent = 'Europe'
            elif continent == 'NA':
                continent = 'North America'
            elif continent == 'SA':
                continent = 'South America'
            elif continent == 'OC':
                continent = 'Oceania'
            else:
                assert 1 == 2, f"E: continent missing for {name}"

        d2["Code"] = code
        d2['Continent'] = continent
        d2["Population"] = pop
        d_countries_ref[name] = d2

    return d_countries_ref
def join_with_divi_data() -> dict:
    d_divi_data = helper.read_json_file('cache/de-divi/de-divi-V3-states.json')
    for bl_code, l_time_series in d_states_data.items():
        assert bl_code in d_divi_data, f"Error: BL {bl_code} missing in DIVI data"
        if bl_code[0:2] != '11':
            l_divi_time_series = d_divi_data[bl_code]
        d_divi_time_series = {}
        for d in l_divi_time_series:
            d_divi_time_series[d['Date']] = d

        for d in l_time_series:
            if d['Date'] not in d_divi_time_series:
                continue
            d['DIVI_Intensivstationen_Covid_Prozent'] = d_divi_time_series[
                d['Date']]['faelle_covid_aktuell_proz']
            d['DIVI_Intensivstationen_Betten_belegt_Prozent'] = d_divi_time_series[
                d['Date']]['betten_belegt_proz']

        d_states_data[bl_code] = l_time_series
    return d_states_data
        '#52be80',
        '#27ae60',
        '#229954',
        '#1e8449',
        '#196f3d',
        '#145a32'
    ]
}

d_all_date_data = {}
l_month = []
count = 0
for f in glob.glob('data/de-districts/de-district_timeseries-*.json'):
    count += 1
    lk_id = int(re.search('^.*de-district_timeseries\-(\d+)\.json$', f).group(1))
    l = helper.read_json_file(f)
    for d in l:
        date = d['Date']
        thisMonth = date[0:7]
        # skip old data points
        if thisMonth in ('2020-01', '2020-02'):
            continue
        # add to list of months for later creations of 1 gif per month
        if count == 1:
            if thisMonth not in l_month:
                l_month.append(thisMonth)
        if not d['Date'] in d_all_date_data:
            d_all_date_data[d['Date']] = {}
        del d['Timestamp'], d['Date'], d['Days_Past'], d['Days_Since_2nd_Death']
        d_all_date_data[date][lk_id] = d
del f, d, l, count
"""

import sys
import csv
from datetime import datetime
import re

# my helper modules
import helper

filename = 'data/de-divi/de-divi-V2'

datestr = datetime.now().strftime("%Y-%m-%d")

d_data_all = helper.read_json_file(filename + '.json')

del d_data_all['Deutschland']  # this is re-calculated at each run

# check if date is already in data set
if d_data_all['Bayern'][-1]['Date'] == datestr:
    print(
        f"WARNING: Date: {datestr} already in data file: {filename+'.json'}  -->  SKIPPING"
    )
    sys.exit()


def extractAreaTagTitleData(cont: str) -> list:
    # Example
    # <area shape="RECT" title="Thüringen
    # Anzahl COVID-19 Patienten/innen in intensivmedizinischer Behandlung: 63
示例#7
0
# my helper modules
import helper

unit = 1000000
meta = {
    "colour":
    ["#fee5d9", "#fcbba1", "#fc9272", "#fb6a4a", "#de2d26", "#a50f15"]
}

# date = datetime.date.today()
# date_str = date.strftime("%F")

values = []

l_data = helper.read_json_file(
    'data/de-districts/de-districts-results-V2.json')

date_str = l_data[0]['Date']

main = {}
for d in l_data:
    area = int(d['LK_ID'])
    pcapita = d['Cases_Last_Week_Per_Million']
    main[area] = {'pcapita': pcapita}
    values.append(main[area]["pcapita"])

# generate color scale range
q = statistics.quantiles(values, n=100, method="inclusive")
step = math.sqrt(statistics.mean(values) - q[0]) / 3
threshold = [0, 0, 0, 0, 0, 0]
for i in range(1, 6):
        elif continent == 'SA':
            continent = 'South America'
        elif continent == 'OC':
            continent = 'Oceania'
    return continent


def read_country_code(country_name: str) -> str:
    code = None
    d = get_ref_country_dict(country_name)
    if d != {}:
        code = d['ISO']
    return code


d_ref_country_database = helper.read_json_file(
    'data/ref_country_database.json')

d_selected_countries = read_ref_selected_countries()

if not helper.check_cache_file_available_and_recent(
        fname=file_cache, max_age=900, verbose=True):
    download_new_data()

d_countries_timeseries = read_json_data()

check_for_further_interesting_countries()

fit_doubling_time()

extract_latest_date_data()