1. Installer un environnement de travail - PatGendre/hmvl GitHub Wiki

1. Installer un environnement de travail

Ces étapes sont celles qui sont suivies pour installer le serveur au siège de la DIRMED.
Comme python et postgreSQL fonctionnent sous Windows et Linux, le projet peut fonctionner sous les deux OS.

Voici les étapes...

1. installer conda (python package manager)

Pour installer un environnement conda, beaucoup de sources sont disponibles, notamment via anaconda ou conda.
Ne pas forcément installer tout anaconda. Il faut surtout pandas.
Explications ici:
https://conda.io/projects/conda/en/latest/user-guide/install/index.html bash Miniconda3-latest-Linux-x86_64.sh

2. créer un environnement pour le projet

conda create -n hmvl conda install -c anaconda notebook Il faut ensuite installer les packages 1 à 1 selon les besoins.
Par exemple, les scripts .py du projet hmvl nécessitent d'importer des librairies comme click, dateutil ou pathlib, il faut donc au préalable les avoir installées, avec une commande du type:
conda install click
On peut ensuite exécuter les scripts en ligne de commande, par exemple:
'python duplicates.py _repertoire1_ _repertoire2_'
ou les importer / copier-coller dans une console python ou ipython, ou un notebook.

3. Installer postgresql (optionnel)

Cette étape est optionnelle car il est possible de stocker toutes les données dans des fichiers csv quotidiens, puis de les traiter pour produire des indicateurs quotidiennement.
La doc de référence est :
cf. https://www.postgresql.org/download/linux/ubuntu/ ; https://www.postgresql.org/
Pour mettre en place la base, on a eu recours à les 2 outils complémentaires : psql (ligne de commande) & pgadmin4 (IDE) On renvoie le lecteur à leur documentation qui est facilement disponible en ligne. Installer l'extension timescale, l'installation et la prise en main sont assez bien documentées ici :
https://docs.timescale.com/
Il faut suivre assez méticuleusement les indications car les messages d'erreurs n'aident pas beaucoup le novice. On trouve aussi de l'aide sur stackoverflow , comme par exemple : https://stackoverflow.com/questions/49101709/timescaledb-is-it-possible-to-call-create-hypertable-from-python

4. Création d'une base de données hmvl (optionnel)

Possible via l'interface graphique de pgadmin4
ou en ligne de commandes (psql).

Création d'un rôle (dirmed) pour écrire dans la base.
Table hmvl (même nom que la base!) avec les données individuelles lues dans les fichiers RD,
Table log_imports (en fait plus utilisée avec la nouvelle procédure d'import CSV par jour, mais qu'il faudrait quand même alimenter)
Table avec les codes des stations VRU définies dans le fichier SttCode.csv.

    CREATE TABLE "hmvl"(  
    id BIGSERIAL,  
    hdt0 TIMESTAMPTZ NOT NULL,   
    hdt TIMESTAMPTZ NOT NULL,   
    station CHAR(3),  
    status CHAR(1),   
    voie CHAR(1),  
    vitesse REAL,
    longueur REAL,
    statutTR CHAR(1)  
);    
GRANT ALL ON hmvl TO dirmed;    
GRANT USAGE, SELECT ON SEQUENCE hmvl_id_seq TO dirmed; 
CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;  
SELECT create_hypertable('hmvl', 'hdt');    
CREATE INDEX ON hmvl(station, hdt DESC);  
CREATE TABLE "code_station"( code INT, station CHAR(3));   
GRANT ALL ON code_station TO dirmed;    
COPY code_station FROM 'SttCode.csv' CSV DELIMITER (',') HEADER;   

Bien sûr si vous stockez en base les moyennes 6 minutes ou les indicateurs de qualité du recueil de données,
il faut créer les tables correspondantes en base et les indexer. (exemple CREATE TABLE "moy6"(id BIGSERIAL,hdt TIMESTAMPTZ NOT NULL,station CHAR(3),v6 REAL,l6 REAL,q6 INT);

5. installer jupyter

Pour exécuter des notebooks python dans votre environnement,
il suffit de lancer la commande conda install jupyter
puis de lancer le serveur jupyter notebook par la commande 'jupyter notebook'
une page s'ouvre alors qui vous permet d'ouvrir un notebook existant (fichiers .ipynb) ou d'en créer un nouveau,
afin d'accéder aux données en base.