- Nora Bolivar López
- Robert Buj Gelonch
.vscode/: carpeta amb la configuració de Visual Studio Code.extensions.json: llista d’extensions recomanades.settings.json: preferències personalitzades de l’entorn de desenvolupament.
backup/dataset.tar.xz: arxiu del dataset sense cap preprocessament, que s'ha obtingut amb l'execució de l'scriptboost.sh. Veure fitxer logs.tar.zst.logs.tar.zst: arxiu amb registres de l'execució de l'scrapper amb l'scriptboost.sh.
report/columns.css: full d'estil per al fitxerinforme.Rmd.header.tex: fitxer amb codi TeX per al fitxerinforme.Rmd.informe.Rmd: fitxer R Markdown per fer la neteja i l'anàlisi del conjunt de dades.
scripts/boost.sh: script per executar el procés de scraping en paral·lel.compress.sh: script per comprimir el directori de treball, el dataset o els registres.informe.sh: script per generar l'informe en format pdf o html, o bé ambdós.init.sh: script per preparar l'entorn virtual amb venv i instal·lar les dependències.
source/: carpeta amb el codi font del projecte.main.py: punt d’entrada del programa. Inicia el procés de web scraping.scraper.py: implementa la classeMeteoScraper, que genera el conjunt de dades a partir de les dades observades i les estacions disponibles.simple_analysis.py: primer anàlisi del conjunt de dades recollit.
.gitignore: especifica els fitxers i directoris que Git ha d’ignorar en els commits..editorconfig: fitxer de configuració per a editors de text compatibles amb EditorConfig com ara Visual Studio Code.LICENSE: fitxer amb la llicència amb la que es publica el codi.README.md: fitxer amb la documentació general del projecte.environment.yml: fitxer per crear un entorn virtual amb conda i instal·lar les dependències.requirements.txt: fitxer amb les dependències del projecte.
Tots els fitxers dels conjunts de dades estan a la carpeta dataset.
Els fitxers station_list.csv i [CODI]_[DIA].csv s'obtenen en l'etapa de
web scraping. També es poden obtenir de la carpeta backup.
El fitxer dataset.csv es pot obtenir amb el web scraping o bé, amb l'execució
de python3 source/main.py -wuna vegada descomprimit l'arxiu
backup/dataset.tar.xz.
El fitxer dataset_data_analysis.csv s'obté en renderitzar el fitxer
informe.Rmd.
- Python 3.9 o superior
- bash shell >= 4.3 (
wait -nen l'script boost.sh) - Biblioteques de Python:
- pandas: per al processament de dades
- selenium: per al web scraping
- Altres biblioteques de Python, incloses a la biblioteca estàndard:
- argparse: per al processament d'arguments de línia d'ordres
- datetime: per al maneig de dates i hores
- os: per a la interacció amb el sistema operatiu
- re: per a l'ús d'expressions regulars
- time: per a funcions relacionades amb el temps
- Visual Studio Code: baixar (opcional)
shfmtés necessari per donar format als scripts, en entorns macos es pot instal·lar amb l'ordre: baixar (opcional)
brew install shfmtL'avantatge d'utilitzar un entorn virtual és que permet aïllar les dependències del projecte de les del sistema operatiu, evitant conflictes entre diferents projectes i versions de biblioteques.
Per utilitzar el codi, primer cal preparar l'entorn virtual i instal·lar les dependències. Es pot utilitzar venv o conda per crear l'entorn virtual.
Un cop creat i activat l'entorn virtual, ja es pot executar el codi.
Tip
Podeu utilitzar l'script init.sh per automatitzar la creació de l'entorn
virtual amb venv i la instal·lació de les dependències.
Note
Podeu utilitzar l'extensió de Visual Studio Code
Python
per gestionar entorns virtuals i executar codi Python dins de l'editor.
Per crear un entorn virtual amb venv o conda, accediu a la paleta d'ordres
(Ctrl+Shift+P o Cmd+Shift+P a macOS) i escriviu "Python: Create Environment".
Important
Si voleu canviar l'intèrpret de Python utilitzat per Visual Studio Code,
podeu fer-ho des de la paleta d'ordres (Ctrl+Shift+P o Cmd+Shift+P a macOS)
escrivint "Python: Select Interpreter" i seleccionant l'intèrpret de l'entorn
virtual que heu creat. Cal tenir en compte que l'intèrpret se seleccionarà
automàticament amb l'entorn virtual quant aquest s'hagi creat amb l'extensió
comentada en la nota anterior.
Per crear un entorn virtual amb venv, executeu la següent ordre al directori arrel del projecte:
python3 -m venv .venvPer tal d'assegurar que l'entorn virtual s'ha creat correctament, podeu
comprovar que el directori .venv/ s'ha creat al directori arrel del projecte.
Tip
En macos, python ja inclou venv per defecte. En altres sistemes operatius,
pot ser necessari instal·lar el paquet python3-venv. Per exemple, en sistemes
basats en Debian/Ubuntu, podeu instal·lar-lo amb l'ordre següent:
sudo apt-get install python3-venvPer activar l'entorn virtual, executeu la següent ordre:
source .venv/bin/activatePer a desactivar l'entorn virtual, executeu la següent ordre:
deactivatePer a instal·lar les biblioteques de Python es pot utilitzar el fitxer
requirements.txt amb l'ordre:
python3 -m pip install -r requirements.txtSi no voleu utilitzar el fitxer requirements.txt, podeu instal·lar les
biblioteques necessàries amb la següent ordre després d'activar l'entorn virtual:
python3 -m pip install pandas selenium --upgrade pipUn cop instal·lades les dependències, es poden actualitzar amb l'ordre:
python3 -m pip install --upgrade pandas seleniumImportant
Assegureu-vos d'estar dins de l'entorn virtual abans d'instal·lar o actualitzar les dependències.
Per crear un entorn virtual amb conda, executeu la següent ordre al directori arrel del projecte:
conda env create --prefix=./.conda --file=environment.yml
conda activate ./.conda
Rscript -e 'install.packages("VIM", repos="https://cloud.r-project.org")'Per tal d'assegurar que l'entorn virtual s'ha creat correctament, podeu
comprovar que el directori .conda/ s'ha creat al directori arrel del projecte.
Note
Si no voleu utilitzar el fitxer environment.yml, podeu crear l'entorn virtual
amb les següents ordres:
conda create --prefix=./.conda
conda activate ./.conda
conda install pip pandas selenium r-base=4.5.2 r-car r-caret r-corrplot \
r-factoextra r-ggplot2 r-dplyr r-kableextra r-knitr r-languageserver \
r-magick r-moments r-rann r-rmarkdown r-tidyverse \
r-deoptimr r-laeken r-ranger r-robustbase r-sp r-vcd r-xgboost
Rscript -e 'install.packages("VIM", repos="https://cloud.r-project.org")'Dependències de VIM: r-deoptimr, r-laeken, r-ranger, r-robustbase, r-sp, r-vcd i r-xgboost
Tip
Miniconda requereix menys espai i és més lleuger que Anaconda. Per a instal·lar Miniconda en sistemes macOS, podeu utilitzar Homebrew:
brew install --cask miniconda
conda init
conda config --set auto_activate_base False
source ~/.bash_profile
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/rPer activar l'entorn virtual, executeu la següent ordre:
conda activate ./.condaPer a desactivar l'entorn virtual, executeu la següent ordre:
conda deactivateTip
Per canviar el prompt de l'entorn virtual i que mostri el nom de l'entorn, un cop activat, podeu executar la següent ordre per escurçar-lo:
conda config --set env_prompt '({name}) 'Un cop instal·lades les dependències, es poden actualitzar amb l'ordre:
conda update pandas seleniumImportant
Assegureu-vos d'estar dins de l'entorn virtual abans d'actualitzar les dependències.
Per baixar les dades de les estacions de l'ultim any fins al 3 de desembre de 2025:
python3 source/main.py -d 365 -b 03.12.2025 -m
python3 source/main.py -wEn cas que no es vulguin baixar les dades i es desitgi utilitzar el dataset comprimit:
tar xvfa ./backup/dataset.tar.xz
python3 source/main.py -wPer consultar els arguments opcionals de l'aplicació:
$ python3 source/main.py -h
usage: main.py [-h] [-b BEGIN_DATE] [-d DAYS] [-w] [-m] [-o OUTPUT]
Meteo.cat scraper
optional arguments:
-h, --help show this help message and exit
-b BEGIN_DATE, --begin-date BEGIN_DATE
The start date for data scraping (format: DD.MM.YYYY)
-d DAYS, --days DAYS Number of days to scrape
-w, --skip-download Skip the downloading of data files
-m, --skip-merge Do not merge the data files into a single CSV
-o OUTPUT, --output OUTPUT
Output CSV filePer obtenir el conjunt de dades que s'ha utilitzat en la realització d'aquest informe, un cop activat l'entorn virtual conda, executeu les ordres següents:
tar xzvf ./backup/dataset.tar.xz
python3 source/main.py -wPer obtenir l'informe en format pdf, executeu la següent ordre:
Rscript -e "rmarkdown::render('informe.Rmd', output_format = 'pdf_document')"o bé, aquesta altra ordre per obtenir l'enforme en format html:
Rscript -e "rmarkdown::render('informe.Rmd', output_format = 'html_document')"Tip
En MacOS, per renderitzar el fitxer R Markdown a PDF, cal instal·lar MacTeX i pandoc. pandoc es pot instal·lar amb Homebrew:
brew install pandocBolivar, N. i Buj, R. (2025) «Dades recollides per la xarxa d'estacions meteorològiques automàtiques del servei meteorològic de Catalunya de l'últim any». Zenodo. doi:10.5281/zenodo.17505763