Skip to content

Cómo instalar y poder procesar la captura de datos en Escovid19data

puzzle72 edited this page Apr 6, 2021 · 32 revisions

Esta es una guía para explicar cómo correr los scripts de Escovid19data.

Los datos se descargan de múltiples fuentes. Tanto los descargados automáticamente de repositorios de datos abiertos como los que se recopilan manualmente en una hoja de cálculo online compartida son luego procesados con este script de R en otro repositorio.

Instalación

Necesitas tener instalado

  • Git
  • R
  • Rstudio con las diversas librerías que se indican al principio de cada script

Clonar repositorios en el mismo directorio

Necesitas tener instalado estos dos repositorios:

/covid19 es la cocina de los datos y /escovid19data donde se publican.

En /covid19 también se generan todos los gráficos que se peuden ver en la web https://lab.montera34.com/covid19/

Para clonar con git los repositorios usa:

git clone https://code.montera34.com/numeroteca/covid19.git --> Guarda los ficheros en un directorio /covid19

git clone https://github.com/montera34/escovid19data.git --> Guarda los ficheros en un directorio /escovid19data

Ambos directorios deberán estar dentro de un directorio común.

El primero tardará un rato, pesa más de 25GB.

00. Actualizar los directorios locales desde los repos en línea

Recordar hacer un git pull antes de empezar, en ambos directorios en local.

Desde el cliente Git Bash, te vas al repositorio /covid19:

cd covid19

Una vez allí haces:

git pull

para descargarte todo lo nuevo que se haya commiteado por otras personas.

Y haces lo mismo con el directorio /escovid19data

cd escovid19data

0. Cosas no automatizadas: las descargas de datos de Andalucía y Cantabria, y las vacunaciones

Ambas CCAA dan problemas de certificados, y debemos descargar manualmente desde el navegador.

Tampoco está automatizado el procesado de datos de las vacunaciones: ve a los commits de escovid19data https://github.com/montera34/escovid19data/commits/master y busca el último de las vacunas. Por ejemplo: este: https://github.com/montera34/escovid19data/commit/73a62031dcc3b0fbe2f860d42973943a42c62a1d.

Copia las filas en verde (las añadidas al final del archivo data/original/vacunas/estado_vacunacion_.csv) y pégalas en el archivo al final del archivo data/original/spain/vacunaciones.csv

1. Captura datos

  1. Abre el proyecto de Rstudio de /covid19. Tienes que abrir el archivo /covid19.Rproj desde Rstudio.
  2. Una vez en el proyecto abre el archivo /analysis/process_spain_provinces_data.R.
  3. Seleccionar todo el código con ctrl + a y... ctrl + enter o pulsa el botón Run de Rstudio para ejecutar. El script irá descargando los diferenes datos de las diversas fuentes e integrándolos todos en una única base de datos. Puede tardar 5 minutos, depende del procesador de tu ordenador y de la velocidad de descarga.

Una vez completado, revisa si aparece una mención a líneas duplicadas en el archivo vacunaciones.csv.

Esos duplicados corresponden a filas de una CCAA que tiene una fecha duplicada en la 9ª columna, "Última fecha de actualización de los datos".

En ese caso, se debe borrar la fila con la fecha de publicación más antigua.

2. Comprobaciones

Esta fase sirve a para visualizar en primera instancia que no hay problemas con los datos.

En el directorio /reports encontrarás los siguientes archivos:

Vamos a generar con ello unos .html con Knitter. Abre los .Rmd y pulsa el botón de "knit".

Antes tienes que instalar la tipografía Roboto Condensed.

3. Generar gráficos

Una vez comprobados los datos hay que ejecutar del directorio /analysis los siguientes scripts:

  • charts_spain_provinces.R
  • luego comparativa-bases-de-datos.R (este último solo correr desde "# ////// Comparativa casos escovid19data y RENAVE ISCIII -----------", la línea 619 hasta el final). pronto lo limpiaré para que se ejecutarlo todo de una vez.

luego da igual el orden

  • charts_spain.R
  • charts_spain_ccaa.R
  • charts_spain_experiments.R

Estos archivos generan las imágenes en png de img/spain/ que luego pueden verse en la web https://lab.montera34.com/covid19/

4. Subir cambios al repositorio

Una vez todos los datos y gráficos están listos hay que subirlos a los repositorios, 'commit' en la jerga de git.

Te vas al repositorio /escovid19data:

cd escovid19data

Una vez allí haces:

git pull

para descargarte todo lo nuevo que se haya commiteado por otras personas.

Ahora añade tus archivos modificados:

git add .

Que añade para commitear todos (eso es lo que significa el ".") los archivos que han cambiado.

Antes de hacerlo puedes mirar cuáles son con:

git status

Ahora que estás seguro de que son los archivos que quieres subir escribe la descripción del commit:

git commit -m "actualiza datos provincias 2021-03-31"

Ahora queda subir los archivos con:

git push

Haz lo mismo en el repositorio /covid19.

5. Más gráficos

Luego hay que ejecutar más archivos de /analysis con otros gráficos:

  • charts_catalunya.R
  • charts_euskadi.R Se pueden correr diariamente "Totales Euskadi" y "Casos de no residentes en Euskadi". En los días laborables "Zonas de salud", "Municipios", que es cuando se actualizan los datos.
  • euskadi_por-edades.R. En días laborables.
  • evolution_italia.R
  • evolution_france.R

Y los martes:

  • charts_madrid.R

Por último unos .Rmd más:

  • madrid-escovid19data.Rmd correr los martes los martes.
  • euskadi-escovid19data.Rmd correr los días laborables.

Mejoras

Estamos evaluando reestructurar y optimizar el código así como construir un dashboard en Shiny. Un dashboard que permitiría "ir hacia artás en el tiempo" para ver cómo estaban los datos en un determinado momento. Un dahshboard o dashboards. Algo que se puede hace ahora, lo de viajar al pasado, viendo las versiones anteriores de los gráficos en PNG pero que no parece la mejor de las soluciones. Estamos ampliando el equipo y viendo si troceando el código es más fácil poder colaborar.

Empieza instalando lo que hay y vemos.

Para poder colaborar necesitarás cuenta en el gitlab de montera34 (https://code.montera34.com) y en github.com.

Hemos creado un issue para esto: https://github.com/montera34/escovid19data/issues/34