curso-reproducibilidad-team4 / zonificacion-climatica-cte

Zonificación climática localidades españolas según severidades del Código Técnico de la Edificación
MIT License
0 stars 2 forks source link

reducir tiempo de ejecución durante el desarrollo #19

Open jmoldon opened 2 years ago

jmoldon commented 2 years ago

Si os tarda mucho tiempo en descargar los datos, lo que podéis hacer es limitar cuántos municipios se descargan. Se puede hacer de varias maneras una rápida (aunque no buena), es fijar a mano el número de municipios a procesar, por ejemplo aquí:

https://github.com/curso-reproducibilidad-team4/zonificacion-climatica-cte/blob/fa33bdec6c710e00e03c66452669d656744d9247/src/select_input.py#L102

Se puede contar el dataframe a solo 5 municipios:

df[0:5].to_csv(MUNICIPIOS_FILE_FORMATTED, index=False, encoding="utf-8") 

En lugar de poner un número se podría leer con un parámetro de un fichero externo o algo. No sé si eso afectará a alguno de los scripts posteriores, pero al menos para hacer pruebas con snakemake será muy rápido

pachi commented 2 years ago

En el archivo compute_indicators.py se usa un TEST_MODE para limitar el cálculo. Se podría extender al resto de scripts (probablemente solo hace falta en download_TMY.py) de modo que trabaje solo con las 10 primeras entradas, por ejemplo y generar esa variable con snakemake (accediendo a ella con snakemake.test de forma similar a lo que se hace con BASEDIR en el notebook ).

TEST_MODE = False

try:
    snakemake_test = snakemake.test
    TEST_MODE = snakemake_test
except:
    pass

luego, usaríamos en dowload_TMY y compute_indicators.py:

if TEST_MODE:
    df = df[0:10]

Faltaría definir en Snakemake esa variable, que dependa de un parámetro que se pueda pasar en la llamada al script y que, por defecto sea False.

pachi commented 2 years ago

Si saco un rato pruebo a implementar esta idea. Pero si alguien se anima a hacerlo antes, ¡perfecto!