示例#1
0
def total_series(context):
    gc = context['geocodigos'][0]
    dados = load_series(gc)
    dias = dados[str(gc)]['dia'][-52:]

    tempo = [int(mktime(d.timetuple())) for d in dias]
    print(dias)
    print(tempo)
    return {
        'tempo': tempo,
        'start': tempo[0],
        'total': context['total']
    }
示例#2
0
def alerta_series(context):
    dados = load_series(context['geocodigo'])[context['geocodigo']]
    dados['dia'] = [int(mktime(d.timetuple())) for d in dados['dia']]

    ga = [int(c) if a == 0 else None for a, c in zip(dados['alerta'], dados['casos'])]
    ya = [int(c) if a == 1 else None for a, c in zip(dados['alerta'], dados['casos'])]
    oa = [int(c) if a == 2 else None for a, c in zip(dados['alerta'], dados['casos'])]
    ra = [int(c) if a == 3 else None for a, c in zip(dados['alerta'], dados['casos'])]
    return {'nome': context['nome'],
            'dados': dados,
            'start': dados['dia'][0],
            'verde': json.dumps(ga),
            'amarelo': json.dumps(ya),
            'laranja': json.dumps(oa),
            'vermelho': json.dumps(ra),
            }
示例#3
0
def alerta_series(context):
    dados = load_series(context['geocodigo'])[context['geocodigo']]
    dados['dia'] = [int(mktime((d + timedelta(7)).timetuple())) for d in dados['dia']]
    int_or_none  = lambda x: None if x is None else int(x)

    ga = [int(c) if a == 0 else None for a, c in zip(dados['alerta'], dados['casos'])]
    ga = [int_or_none(dados['casos'][n]) if i is None and ga[n-1] is not None else int_or_none(i) for n, i in enumerate(ga)]
    ya = [int(c) if a == 1 else None for a, c in zip(dados['alerta'], dados['casos'])]
    ya = [int_or_none(dados['casos'][n]) if i is None and ya[n-1] is not None else int_or_none(i) for n, i in enumerate(ya)]
    oa = [int(c) if a == 2 else None for a, c in zip(dados['alerta'], dados['casos'])]
    oa = [int_or_none(dados['casos'][n]) if i is None and oa[n-1] is not None else int_or_none(i) for n, i in enumerate(oa)]
    ra = [int(c) if a == 3 else None for a, c in zip(dados['alerta'], dados['casos'])]
    ra = [int_or_none(dados['casos'][n]) if i is None and ra[n-1] is not None else int_or_none(i) for n, i in enumerate(ra)]
    return {'nome': context['nome'],
            'dados': dados,
            'start': dados['dia'][0],
            'verde': json.dumps(ga),
            'amarelo': json.dumps(ya),
            'laranja': json.dumps(oa),
            'vermelho': json.dumps(ra),
            }
示例#4
0
 def setUp(self):
     self.cidade = 330330
     self.series = dbdata.load_series(self.cidade)
示例#5
0
    def get_context_data(self, **kwargs):
        """

        :param kwargs:
        :return:
        """
        context = super(AlertaStateView, self).get_context_data(**kwargs)

        series_data_rj = None

        cities_alert = dbdata.NotificationResume.get_cities_alert_by_state(
            self._state_name[context['state']], context['disease'])

        alerts = dict(cities_alert[['municipio_geocodigo',
                                    'level_alert']].values)

        mun_dict = dict(cities_alert[['municipio_geocodigo', 'nome']].values)
        is_just_rj = False

        if (not mun_dict and context['state'] == 'RJ'
                and context['disease'] == 'chikungunya'):
            geo_id_rj = 3304557
            mun_dict = {geo_id_rj: 'Rio de Janeiro'}
            series_data_rj = dbdata.load_series(geo_id_rj,
                                                'chikungunya')['3304557']
            alerts = {str(geo_id_rj): series_data_rj['alerta'][-1]}
            is_just_rj = True

        mun_dict_ordered = OrderedDict(
            sorted(mun_dict.items(), key=lambda v: v[1]))

        geo_ids = list(mun_dict.keys())

        dbf = DBF.objects.filter(state_abbreviation=context['state']).order_by(
            'export_date').last()

        if dbf is None:
            last_update = gettext('desconhecida')
        else:
            last_update = dbf.export_date

        if len(geo_ids) > 0:
            if not is_just_rj:
                cases_series_last_12 = (
                    dbdata.NotificationResume.tail_estimated_cases(
                        geo_ids, 12))
            else:
                cases_series_last_12 = {geo_id_rj: series_data_rj['casos_est']}
        else:
            cases_series_last_12 = {}

        context.update({
            'state_abv': context['state'],
            'state': self._state_name[context['state']],
            'map_center': self._map_center[context['state']],
            'map_zoom': self._map_zoom[context['state']],
            'mun_dict': mun_dict,
            'mun_dict_ordered': mun_dict_ordered,
            'geo_ids': geo_ids,
            'alerts_level': alerts,
            # estimated cases is used to show a chart of the last 12 events
            'case_series': cases_series_last_12,
            'disease_label': context['disease'].title(),
            'last_update': last_update
        })
        return context
示例#6
0
 def setUp(self):
     self.cidade = 330330
     self.series = dbdata.load_series(self.cidade)
示例#7
0
def alerta_series(context):
    disease = ('dengue'
               if 'disease_code' not in context else context['disease_code'])

    dados = load_series(context['geocodigo'], disease)[context['geocodigo']]

    if dados is None:
        return {
            'nome': context['nome'],
            'dados': {},
            'start': {},
            'verde': {},
            'amarelo': {},
            'laranja': {},
            'vermelho': {},
            'disease_label': context['disease_label']
        }

    dados['dia'] = [int(mktime(d.timetuple())) for d in dados['dia']]

    # green alert
    ga = [
        int(c) if a == 0 else None
        for a, c in zip(dados['alerta'], dados['casos'])
    ]
    ga = [
        int_or_none(dados['casos'][n])
        if i is None and ga[n - 1] is not None else int_or_none(i)
        for n, i in enumerate(ga)
    ]
    # yellow alert
    ya = [
        int(c) if a == 1 else None
        for a, c in zip(dados['alerta'], dados['casos'])
    ]
    ya = [
        int_or_none(dados['casos'][n])
        if i is None and ya[n - 1] is not None else int_or_none(i)
        for n, i in enumerate(ya)
    ]
    # orange alert
    oa = [
        int(c) if a == 2 else None
        for a, c in zip(dados['alerta'], dados['casos'])
    ]
    oa = [
        int_or_none(dados['casos'][n])
        if i is None and oa[n - 1] is not None else int_or_none(i)
        for n, i in enumerate(oa)
    ]
    # red alert
    ra = [
        int(c) if a == 3 else None
        for a, c in zip(dados['alerta'], dados['casos'])
    ]
    ra = [
        int_or_none(dados['casos'][n])
        if i is None and ra[n - 1] is not None else int_or_none(i)
        for n, i in enumerate(ra)
    ]

    return {
        'nome': context['nome'],
        'dados': dados,
        'start': dados['dia'][0],
        'verde': json.dumps(ga),
        'amarelo': json.dumps(ya),
        'laranja': json.dumps(oa),
        'vermelho': json.dumps(ra),
        'disease_label': context['disease_label']
    }
示例#8
0
    def prepare_data(cls,
                     geocode,
                     nome,
                     disease_label,
                     disease='dengue',
                     epiweek=0):
        dados = load_series(geocode, disease, epiweek)[geocode]
        if dados is None:
            return {
                'nome': nome,
                'dados': {},
                'start': {},
                'verde': {},
                'amarelo': {},
                'laranja': {},
                'vermelho': {},
                'disease_label': disease_label,
            }
        dados['dia'] = [int(mktime(d.timetuple())) for d in dados['dia']]
        # green alert
        ga = [
            int(c) if a == 0 else None
            for a, c in zip(dados['alerta'], dados['casos'])
        ]
        ga = [
            int_or_none(dados['casos'][n])
            if i is None and ga[n - 1] is not None else int_or_none(i)
            for n, i in enumerate(ga)
        ]
        # yellow alert
        ya = [
            int(c) if a == 1 else None
            for a, c in zip(dados['alerta'], dados['casos'])
        ]
        ya = [
            int_or_none(dados['casos'][n])
            if i is None and ya[n - 1] is not None else int_or_none(i)
            for n, i in enumerate(ya)
        ]
        # orange alert
        oa = [
            int(c) if a == 2 else None
            for a, c in zip(dados['alerta'], dados['casos'])
        ]
        oa = [
            int_or_none(dados['casos'][n])
            if i is None and oa[n - 1] is not None else int_or_none(i)
            for n, i in enumerate(oa)
        ]
        # red alert
        ra = [
            int(c) if a == 3 else None
            for a, c in zip(dados['alerta'], dados['casos'])
        ]
        ra = [
            int_or_none(dados['casos'][n])
            if i is None and ra[n - 1] is not None else int_or_none(i)
            for n, i in enumerate(ra)
        ]

        result = {
            'nome': nome,
            'dados': dados,
            'start': dados['dia'][0],
            'verde': json.dumps(ga),
            'amarelo': json.dumps(ya),
            'laranja': json.dumps(oa),
            'vermelho': json.dumps(ra),
            'disease_label': disease_label,
        }
        result.update(dados)
        return result