Git Product home page Git Product logo

impulsogov / farolcovid Goto Github PK

View Code? Open in Web Editor NEW
54.0 4.0 17.0 11.62 MB

🚦🏥. Ferramenta de monitoramento do risco de colapso no sistema de saúde em municípios brasileiros com a Covid-19 • Monitoring tool & simulation of the risk of collapse in Brazilian municipalities' health system due to Covid-19

Home Page: https://farolcovid.coronacidades.org/

License: MIT License

Python 27.52% Shell 0.04% CSS 5.63% Makefile 0.15% Dockerfile 0.12% Jupyter Notebook 63.83% HTML 2.39% JavaScript 0.33%
covid-19 data-science data streamlit epidemiology social-good statistics hacktoberfest

farolcovid's Introduction

FarolCovid 🚦

Contributors Master update Master update Deploy docker build

Ferramenta de monitoramento do risco de colapso no sistema de saúde em municípios brasileiros com a Covid-19.

Monitoring tool & simulation of the risk of collapse in Brazilian municipalities' health system due to Covid-19.

Fontes de dados

Os dados utilizados na ferramenta estão na nossa API, cujas fontes são:

Veja mais detalhes na página de Metodologia da ferramenta.

Referências metodológicas

Os modelos e respectivos códigos utilizados são baseados no trabalho de Alison Hill e Cappra Institute for Data Science (modelo SEIR), e Kevin Systrom (ritmo de contágio), além de diversos estudos utilizados na nossa metodologia:

Veja mais detalhes na página de Metodologia da ferramenta.

📊 Como colaborar com análises

Estamos migrando as análises para outro repositório! Veja mais em coronacidades-analysis 😉

⚙️ Como executar a aplicação localmente?

Utilizando Python + Virtualenv

# Instale o 'make'
sudo apt-get install -y make

# Crie o virtualenv
make create-env

# Execute o servidor com API externa
make serve

# Execute o servidor com API local. 
# Para isso, você terá que subir a API do simulacovid-datasource
# 1. Para subir o servidor local: `make server-build-run`
# 2. Abra outro terminal e rode para subir os dados: `make loader-build-run`
make serve-local

Utilizando o Docker (Linux)

# Instale o Docker
curl -sSL https://get.docker.com | sudo sh

# Instale o 'make'
sudo apt-get install -y make

# Execute o servidor
# ficará disponível em http://localhost:8501/
make docker-build-run

farolcovid's People

Contributors

alsnhll avatar anappellegrino avatar caetanoslavieropires avatar d116626 avatar dandaramcsousa avatar dumsantos avatar fernandascovino avatar francisconog avatar gabriellearruda avatar gabriellecontazap avatar gabrielsaruhashi avatar guimac09 avatar henriquefb avatar joaocarabetta avatar scottwedge avatar thenets avatar victor-cortez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

farolcovid's Issues

Criar métricas de avaliação do modelo

  • Como verificar o gap entre a simulação e dados observados?
  • Qual o período para verificação vamos considerar? últimos 7/15 dias

Premissas:

  • Fitar pelo número de mortes: assumimos não ter subnotificação nessa classe

Ajustes nos cards da simulação

  • Melhorar estimativa do card para quando lower-bound não cruza a linha capacidade mas o upper cruza (atual: "mais de 90 dias")
  • Adicionar texto no card para o caso no qual já estourou capacidade
  • Automatizar mensagem de whatsapp para caso onde "dá ruim" em zero dias

Estruturar API do modelo

Proposta:

Model

A funcão model é responsável por rodar o model epidemiológico a partir de parâmetros populacionais e da doença.

def model(population_params, 
       diseases_params,
       n_days
):
""" Run X epidemiological model

Params
--------
population_params: dict
     Population parameters:
          - N: region population
          - E: exposed
          - I_1: infected mild
          - I_2: infected serious
          - I_3: infected critical
          - R: recovered
          - D: deaths

diseases_params: dict
       Diseases parameters:
           - ...

n_days: int
       Number of days to model

Return
-------
pd.DataFrame
        Evolution of population parameters.
"""

Prepare

A funcão prepare tem métodos para estimar parâmetros populacionais que não são explítos. Por exemplo, I é o número de infectados, que é um número explícito. I_2 pode ser estimado usando 12.5% de I.

def prepare(population_params, config):
""" Estimate not explicity population parameters

Params
--------

population_param: dict
       Explicit population parameters:
                - N: population
                - I: infected
                - R: recovered
                - D: deaths

config: dict
        General configuration files with rules to estimate implicit parameters

Returns
--------
dict
       Explicit and implicit population parameters ready to be applied in the `model` function
"""

Estruturar simulador

O simulador deve organizar quando cada cenário deve ser ativado.

Sudo code:

from <model_name> import prepare_population, prepare_params, model

def prepare_sequential_scenario(user_input, config):
""" Organizes scenarios in a list of tuples (n_days, R0).

The user_input data should overwrite the config setup by default.

Return
-------
list of tuples
     of n_days and R0
"""

def sequential_simulation(user_input, explicit_population_params, config):

      population_params = prepare_population(explicit_population_params)
      scenarios = prepare_scenarios(user_input, config)

      result = pd.DataFrame()
      for n_days, R0 in scenarios:
     
            result_temp = model(
                    population_params, 
                    prepare_model(model_params, R0), 
                    n_days)

             result = pd.concat([result, result_temp])

       return result

Incorporar Rt na simulação de intervenções

Contexto

Temos uma métrica para a disseminação da doença no município/UF atual!

O que fazer

  • Repensar as estratégias de intervenção apresentadas: dado o crescimento atual, o gestor pode simular continuar / aumentar / diminuir a a taxa de contágio (Rt +/- 0.5)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.