Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimización de la descarga y recopilación de datos de Escovid19data #34

Open
numeroteca opened this issue Mar 30, 2021 · 2 comments
Open
Labels
enhancement New feature or request

Comments

@numeroteca
Copy link
Member

numeroteca commented Mar 30, 2021

Estamos evaluando reestructurar y optimizar el código para procesar todos los datos.

Actualmente 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.

Este script cumple varias funciones:

  1. descarga y archiva en sus directorios correspondientes los datos por provincias de cada CCAA
  2. inserta estos datos, convenientemente transformados cuando no lo están en origen (cambio de nombre de variables, transformación de alguntas...) en una base de datos única (archivo .csv) por provincias
  3. inserta datos originales de otras fuentes como RENAVE-ISCIII y los PDF del Ministerio de Sanidad
  4. calcula una serie de variables (medias, valores de 14 días, IA14...) basadas en los datos originales
  5. agrega los datos por comunidades autónomas. Esta no es una operación trivial dado que hay muchos "agujeros" en los datos.
  6. agrega los datos para toda España.
  7. crea archivos descargables por provincias, agregados por CCAA y para toda España

Tienes un introducción a cómo hacer funcionar este script en la wiki.

Problemas

  • El script es largo, cumple demasiadas funciones, lo que hace difícil su mantenimiento.
  • Necesaria revisión del script: elimiar partes que no se usan.
  • No todos los datos vienen de las CCAA, hay algunos archivos que son, por ejemplo, de CCAA uniprovinciales, de un tiempo en el que no había "madrinas" encargadas de ello. Lo comentó porque hay que tenerlo en cuenta a la hora de trocearlo.

Vías de trabajo

Este hilo tiene como objetivo diseñar colectivamente un sistema más eficiente y distribuido. Lanzo algunas ideas:

  • Trocear el script en varios scripts con diferentes funciones, que pudan ser mantenidos por diferentes personas:

    • 19 script para cada CCCA, que prepara cada uno los datos listos para ser insertados.
    • Un script para unir todos los datos por provincias y hace los cálculos de las nuevas variables (medias, acumulados, diarios).
    • Un script para agregar por CCAA
    • Un script para agregar para toda España
  • Pensar cómo ejecutar varios scripts de R de forma sencilla.

  • Nuevos mecanismos automatizados de validación de los datos para detectar errores. Actualmente se usan métodos visuales como este informe de datos disponibles o las tablas dinámicas con Rmarkdown. Además de todos los gráficos de https://lab.montera34.com/covid19/

Os animo a volcar ideas para desarrollar esto.

Abriremos otro hilo para pensar en las visualizaciones, fundamentales para vverificar que los datos son corrrectos.

@numeroteca numeroteca added the enhancement New feature or request label Mar 30, 2021
@kifirifis
Copy link

Dejo esta pequeña idea por aquí para un csv simplificado. Faltaría detallar un poco más y quizá hacer otros flujos para vacunas, hospitalizados, procesados... tal y como comentas @numeroteca. La idea general que propongo es refactorizar por módulos.
provisional

@penguinjournals
Copy link

Hola,
Llevo un buen rato revisando la base de código y pensando en como afrontar un refactor.
Mi primera cuestión es como plantear la validación de que el refactor es correcto.

Dado que el contenido de la carpeta data se sube al repositorio todos los dias ¿tiene sentido que la manera de verificar que cuando haces un refactor funciona bien sea verificar que el contenido de tu carpeta data y el de la carpeta data de el repositorio sean el mismo?

La verdad es que la base de código actual es muy grande y afrontar el refactor tiene su miga.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants