"""Fonction qui lit le fichier du projet, exécute et sauvegarde les sorties d'HSAMI."""
from __future__ import annotations
import datetime
import json
from pathlib import Path
from hsamiplus.hsami2 import hsami2
[docs]
def hsamibin(path, filename):
"""
Lecture de fichier du projet.
Parameters
----------
path : str
Emplacement du fichier de projet, ex ./data.
filename : str
Nom du fichier projet, ex projet.json.
Returns
-------
s : dict
Sorties de simulation.
etats: dict
États du bassin versants et du réservoir.
deltas: dict
Composants du bilan massique.
Notes
-----
Fonction qui lit un projet HSAMI+ en format JSON, exécute HSAMI+, et
sauvegarde les sorties d'HSAMI+ en format JSON dans le méme répertoire
que le projet. La fonction peut étre compilée avec le makefile disponible
dans le répertoire.
Le modèle HSAMI a été originalement développé par J.L. Bisson, et F. Roberge
en Matlab, 1983. HSAMI a été modifié et bonifié par Catherine Guay, Marie Minville,
Isabelle Chartier et Jonathan Roy, 2013-2017 pour devenir HSAMI+. Le code a été
traduit en Python par Didier Haguma, 2024.
"""
# Load json files and convert to Python format
with Path.open(Path(path) / filename) as file:
projet = json.load(file)
# Execute hsami2
date = datetime.date.today()
s, etats, deltas = hsami2(projet)
# Write output file
output = {"S": s, "etats": etats, "deltas": deltas}
output_json = json.dumps(output, indent=4)
output_file = "output_" + date.strftime("%d_%m_%Y") + ".json"
with Path.open(Path(path) / output_file, "w") as file:
file.write(output_json)
return s, etats, deltas
if __name__ == "__main__": # pragma: no cover
"""
path : str, path to the data directory
filename : str, projet file name
"""
# import sys
import time
start_time = time.time()
# path = "../../data"
path = "./data"
filename = "projet.json"
# filename = "Bassin1014_mdj_projet.json"
s, etats, deltas = hsamibin(path, filename)
print(f"Fin, après {time.time() - start_time:.2f} secondes !!! ")