Skip to content

Dados diários mais recentes do coronavírus por município brasileiro

License

Notifications You must be signed in to change notification settings

fernandascovino/covid19-br

 
 

Repository files navigation

covid19-br

Esse repositório centraliza links e dados sobre boletins de número de casos das secretarias de saúde estaduais sobre a pandemia de coronavírus no Brasil. O recorte é por município por dia, para acompanharmos localmente a evolução da propagação do vírus.

Licença

A licença do código é LGPL3 e dos dados convertidos Creative Commons Attribution ShareAlike. Caso utilize os dados, cite a fonte original e quem tratou os dados, como: Fonte: Secretarias de Saúde das Unidades Federativas, dados tratados por Álvaro Justen/Brasil.IO. Caso compartilhe os dados, utilize a mesma licença.

Dados

Depois de coletados e checados os dados ficam disponíveis de 3 formas no Brasil.IO:

Caso queira acessar os dados antes de serem publicados (ATENÇÃO: pode ser que não tenham sido checados), você pode acessar diretamente as planilhas em que estamos trabalhando.

Se esse programa e/ou os dados resultantes foram úteis a você ou à sua empresa, considere fazer uma doação ao projeto Brasil.IO, que é mantido voluntariamente.

FAQ SOBRE OS DADOS

Antes de entrar em contato conosco (estamos sobrecarregados) para tirar dúvidas sobre os dados, CONSULTE NOSSO FAQ.

Para mais detalhes veja a metodologia de coleta de dados.

Contribuindo

Você pode contribuir de diversas formas:

  • Criando programas (crawlers/scrapers/spiders) para extrair os dados automaticamente (LEIA ISSO ANTES);
  • Coletando links para os boletins de seu estado;
  • Coletando dados sobre os casos por município por dia;
  • Entrando em contato com a secretaria estadual de seu estado, sugerindo as recomendações de liberação dos dados;
  • Evitando contato com humanos;
  • Lavando as mãos várias vezes ao dia;
  • Sendo solidário aos mais vulneráveis;

Para se voluntariar, siga estes passos.

Procure o seu estado nas issues desse repositório e vamos conversar por lá.

Criando Scrapers

Estamos mudando a forma de subida dos dados para facilitar o trabalho dos voluntários e deixar o processo mais robusto e confiável e, com isso, será mais fácil que robôs possam subir também os dados; dessa forma, os scrapers ajudarão bastante no processo. Porém, ao criar um scraper é importante que você siga algumas regras:

  • Necessário fazer o scraper usando o scrapy;
  • Não usar pandas, BeautifulSoap, requests ou outras bibliotecas desnecessárias (a std lib do Python já tem muita biblioteca útil, o scrapy com XPath já dá conta de boa parte das raspagens e rows já é uma dependência desse repositório);
  • Deve existir alguma maneira fácil de fazer o scraper coletar os boletins e casos para uma data específica (mas ele deve ser capaz de identificar para quais datas os dados disponíveis e de capturar várias datas também);
  • O método de parsing deve devolver (com yield) um dicionário com as seguintes chaves:
    • date: data no formato "YYYY-MM-DD"
    • state: sigla do estado, com 2 caracteres maiúsculos (deve ser um atributo da classe do spider e usar self.state)
    • city (nome do município ou em branco, caso seja o valor do estado, deve ser None)
    • place_type: "city" para município e "state" para estado
    • confirmed: inteiro, número de casos confirmados (ou None)
    • deaths: inteiro, número de mortes naquele dia (ou None)
    • ATENÇÃO: o scraper deve devolver sempre um registro para o estado que não seja a soma dos valores por município (esse dado deve ser extraído da linha "total no estado" no boletim) - essa linha virá com a coluna city com o valor None e place_type com "state" - esse dado apenas deve vir preenchido como sendo a soma dos valores municipais caso o boletim não tenha os dados totais;
  • Quando possível, use testes automatizados.

Nesse momento não temos muito tempo disponível para revisão, então por favor, só crie um pull request com código de um novo scraper caso você possa cumprir os requisitos acima.

Instalando

Padrão

Necessita de Python 3 (testado em 3.8.2). Para montar seu ambiente:

  • Instale o Python 3.8.2
  • Crie um virtualenv
  • Instale as dependências:
    • Script de consolidação e robô: pip install -r requirements.txt
    • Extratores de dados estaduais: pip install -r requirements-collect.txt
  • Rode o script de coleta: ./collect.sh
  • Rode o script de consolidação: ./run.sh

Verifique o resultado em data/output.

Docker

Se você preferir utilizar o Docker para executar, basta usar os comandos a seguir :

make docker-build   # para construir a imagem
make docker-collect # para coletar os dados
make docker-run     # para consolidar os dados

VEJA TAMBÉM

<<<<<<< HEAD

Clipping

=======

Análises e Projetos

69ee1d0b0bd49f1c358f08653154e366e3995abe

Quer saber quais projetos e notícias estão usando nossos dados? Veja o clipping.

<<<<<<< HEAD

69ee1d0b0bd49f1c358f08653154e366e3995abe

Atualização dos Dados no Brasil.IO

Crie um arquivo .env com os valores corretos para as seguintes variáveis de ambiente:

BRASILIO_SSH_USER
BRASILIO_SSH_SERVER
BRASILIO_DATA_PATH
BRASILIO_UPDATE_COMMAND

Execute o script:

./deploy.sh

Ele irá coletar os dados das planilhas (que estão linkadas em data/boletim_url.csv e data/caso_url.csv), adicionar os dados ao repositório, compactá-los, enviá-los ao servidor e executar o comando de atualização de dataset.

Nota: o script que baixa e converte os dados automaticamente deve ser executado separadamente, com o comando ./collect.sh.

About

Dados diários mais recentes do coronavírus por município brasileiro

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 69.1%
  • Shell 22.6%
  • HTML 6.3%
  • Makefile 1.1%
  • Dockerfile 0.9%