mexicovid19 / Mexico-datos

Datos de la pandemia del COVID19 en Mexico
https://mexicovid19.github.io/
MIT License
23 stars 14 forks source link

No updates #25

Closed Morisset closed 3 years ago

Morisset commented 3 years ago

Hola,

Estoy usando su pagina y en especifico los updates que se publican cada dia de datos_abiertos/series_de_tiempo/nuevos/covid19mex*.csv. Es muy util y les agradezco mucho su trabajo muy importante.

Me parece que desde unos dias ya no hay actualización de estos datos. Hay un problema? Puedo ayudar a algo? Se un poco de python y podria correr un script cada dia para generar los datos si es necesario.

Gracias por su trabajo,

Saludos cordiales, cuidense mucho.

Ch. Morisset

rodrigolece commented 3 years ago

Hola Morriset,

Qué bien que nuestros datos te sean útiles! Efectivamente, tenemos un problema. El archivo que descargamos todos los dias se ha vuelto tan grande que pandas ya no puede cargarlo en memoria en mi computadora personal, que es donde corro el script para actualizar los datos todos los dias.

Veo un par de opciones:

  1. Hacer un pre-procesamiento en bash seleccionando solamente las columnas que utilizamos, sería bastante sencillo por ejemplo con awk. Sin embargo si ahorita cargamos en memoria N esto solo lo reduce a algo como N * 0.3 o algo por el estilo y nos podemos topar con el mismo problema en unos meses.
  2. pandas puede cargar los datos en "chunks" y podemos modificar el script para que procese los datos parcialmente con cada uno de los chunks.
  3. Podemos terminar de automatizar el flujo con github actions para que en vez de correr en mi computadora nuestro código corra en una máquina virtual. Creo que esta es una buena opción salvo por el hecho de que el gobierno cambia sin avisar el formato de la base de datos, o no la actualiza un dia, y en general se necesita más robustez de la que actualmente tenemos.

Cualquiera de estas opciones requiere de cierto tiempo del cual actualmente no dispongo, pero @blas-ko tal vez pueda echarle un ojo? O tú @Morisset ? Puedes echarle un ojo y decidir si es fácil para ti implementar alguna de estas opciones?

rodrigolece commented 3 years ago

Ahora que lo pienso tal vez hacer 1. y 2. juntos es la mejor solución. @LeonardoCastro

Morisset commented 3 years ago

Cual es el limite actual de tu compu?, para ver si lo que tengo podria hacerlo. En este caso hago un fork, hago la corrida cada dia, y mando un pull request para actualizar los datos. A lo mejor se puede tambien como correr el scipt en una maquina virtual como SciServer o Google Colab?

rodrigolece commented 3 years ago

El error que me dio con el archivo del 13 de enero fue

MemoryError: Unable to allocate 997. MiB for an array with shape (33, 3959944) and data type int64

No suena mucho, es menos de 1 GB pero de todas formas mi computadora no pudo.

El PR se agradecería mucho y la máquina virtual definitivamente puede ser una opción aunque de eso yo no sé casi nada. Hace tiempo le eché un vistazo a GitHub Actions pero no terminé la configuración. El problema de las máquinas virtuales es que los scripts necesitan mucha más robustez, sobre todo los de bash que actualmente fallan prácticamente en silencio.

blas-ko commented 3 years ago

Hola a todos! Perdón por llegar tarde al pastel. Muchas gracias por el issue y por la ayuda, Morriset.

Mañana voy a intentar meterle un argumento a la función para que lea los datos por trozos. Así, podemos controlar que, sin importar qué tan grande sea la base de datos, la RAM de cualquier compu pueda correr el archivo. Esperemos esto solucione el problema.

rodrigolece commented 3 years ago

Updates are up in 2ff81bc