hsamiplus package

Python Boilerplate contains all the boilerplate you need to create a Python package.

Submodules

hsamiplus.cli module

Console script for hsamiplus.

hsamiplus.cli.main() None[source]

Console script for hsamiplus.

hsamiplus.hsami2 module

The main function for HSAMI+ model simulation.

hsamiplus.hsami2.hsami2(projet)[source]

Simulation du modèle HSAMI.

Parameters

projetdict

Dictionnaire contenant des données d’entrée.

Returns

sdict

Sorties de simulation.

etats: dict

États du bassin versants et du réservoir.

deltas: dict

Composants du bilan massique.

Raises

ValueError

Si la superficie maximale de la zone humide équivalente est nulle lorsque le module « mhumide » est utilisé.

Notes

Fonction principale pour la simulation du modèle HSAMI. Simuler les processus hydrologiques en fonction des paramètres du projet donnés.

projetdict, un dictionnaire contenant des données d’entrée :
  • param : liste, 50 parametres du modèle

  • modules : dict, lchoix de modules

  • physio : dict, qui contient d’information physiologique

  • superficie : liste, superfice du BV est de reservoir

  • meteo : ditc, données météo

sdict, un dictionnaire contenant les sorties de simulation avec les clés :
  • ‘Qtotal’: liste de float

  • ‘Qbase’: liste de float

  • ‘Qinter’: liste de float

  • ‘Qsurf’: liste de float

  • ‘Qreservoir’: liste de float

  • ‘Qglace’: liste de float

  • ‘ETP’: liste de float

  • ‘ETRtotal’: liste de float

  • ‘ETRsublim’: liste de float

  • ‘ETRPsurN’: liste de float

  • ‘ETRintercept’: liste de float

  • ‘ETRtranspir’: liste de float

  • ‘ETRreservoir’: liste de float

  • ‘ETRmhumide’: liste de float

  • ‘Qmh’: liste de float

etatsdict

Un dictionnaire contenant les états de la simulation à chaque pas de temps.

deltasdict

Un dictionnaire contenant les composants du bilan massique avec les clés : - ‘total’: liste de float - ‘glace’: liste de float - ‘interception’: liste de float - ‘ruissellement’: liste de float - ‘vertical’: liste de float - ‘mhumide’: liste de float - ‘horizontal’: liste de float

Développé par J.L. Bisson et F. Roberge dans Matlab, 1983. Modifié et bonifié par Catherine Guay, Marie Minville, Isabelle Chartier et Jonathan Roy, 2013-2017. Traduit en Python par Didier Haguma, 2024.

hsamiplus.hsami2.hsami_etat_initial(projet, param, modules, physio, superficie, etat)[source]

Tour de chauffe (1 an).

Parameters

projetdict

Données du projet HSAMI+.

paramlist

Paramètres pour la simulation.

modulesdict

Les modules pour la simulation.

physiodict

Les données physiographiques.

superficielist

La superficie du bassin versant et la superficie moyenne du réservoir.

etatdict

État du bassin versant et du réservoir.

Returns

dict

État du bassin versant et du réservoir.

hsamiplus.hsami2.hsami_simulation(projet, param, modules, physio, superficie, etat, nb_pas_total, s, etats, deltas)[source]

Simulation avec HASMAI+.

Parameters

projetdict

Dictionnaire contenant des données d’entrée.

paramlist

Paramètres pour la simulation.

modulesdict

Les modules pour la simulation.

physiodict

Les données physiographiques.

superficielist

La superficie du bassin versant et la superficie moyenne du réservoir.

etatdict

État du bassin versant et du réservoir à un pas de temps.

nb_pas_totalfloat

Nombre de pas des temps total.

sdict

Sorties de simulation.

etatsdict

États du bassin versant et du réservoir pout tous les pas de temps.

deltasdict

Composants du bilan massique.

Returns

sdict

Sorties de simulation.

etatsdict

États du bassin versants et du réservoir.

deltasdict

Composants du bilan massique.

Notes

projetdict, Un dictionnaire contenant les clés suivantes :
  • ‘superficie’liste des floats, la zone du projet. S’il ne contient qu’un seul élément,

    un deuxième élément de valeur 0 est ajouté.

  • ‘param’ : liste des float, Paramètres pour la simulation.

  • ‘mémoire’ : int, taille de la mémoire pour la simulation.

  • ‘physio’ : dict, les données physiographiques peuvent être vides.

  • ‘modules’dict, les modules pour la simulation peuvent être vides. Les valeurs par défaut

    sont définies si elles ne sont pas fournies.

  • ‘meteo’ : dict, données météorologiques pour la simulation.

  • ‘dates’ : liste des str, dates de simulation.

  • ‘nb_pas_par_jour’ : entier, nombre de pas de temps par jour.

sdict, un dictionnaire contenant les sorties de simulation avec les clés :
  • ‘Qtotal’ : liste de float

  • ‘Qbase’ : liste de float

  • ‘Qinter’ : liste de float

  • ‘Qsurf’ : liste de float

  • ‘Qreservoir’ : liste de float

  • ‘Qglace’ : liste de float

  • ‘ETP’ : liste de float

  • ‘ETRtotal’ : liste de float

  • ‘ETRsublim’ : liste de float

  • ‘ETRPsurN’ : liste de float

  • ‘ETRintercept’ : liste de float

  • ‘ETRtranspir’ : liste de float

  • ‘ETRreservoir’ : liste de float

  • ‘ETRmhumide’ : liste de float

  • ‘Qmh’ : liste de float

etatsdict

Un dictionnaire contenant les états de la simulation à chaque pas de temps.

deltasdict

Un dictionnaire contenant les composants du bilan massique avec les clés : - ‘total’ : liste de float - ‘glace’ : liste de float - ‘interception’ : liste de float - ‘ruissellement’ : liste de float - ‘vertical’ : liste de float - ‘mhumide’ : liste de float - ‘horizontal’ : liste de float

hsamiplus.hsami2.modules_par_defaut(modules)[source]

Check projet modules definition.

Parameters

modulesdict

Dictionary of modules.

hsamiplus.hsami2.set_default_module(modules, key, default_value)[source]

Set module defaults values.

Parameters

modulesdict

Dictionary of modules.

keystr

Hydrological process.

default_valuestr

HSAMI+ module name.

hsamiplus.hsami2_noyau module

The core of HSAMI+ that simulates hydrological processes for ONE TIME STEP.

hsamiplus.hsami2_noyau.bilan_sorties(modules, meteo, superficie, nb_pas, etat, q, etp_tot, etr_tot, etr, reserv_ini, etats_ini, eaux_hu_ini, bilan)[source]

CALCUL DU BILAN TOTAL ET CALCUL DU BILAN PAR SOUS-FONCTION.

Parameters

modulesdict

Les modules pour la simulation.

meteodict

Données météorologiques pour la simulation.

superficielist

La superficie du bassin versan et la uuperficie moyenne du réservoir.

nb_pasint

Nombre de pas de temps.

etatdict

États du bassin versants et du réservoir.

qlist

Débits provenant du bassin.

etp_totfloat

Évapotranspiration totale.

etr_totfloat

Évapotranspiration réelle totale.

etrlist

Évapotranspiration et évaporation.

reserv_inifloat

Etat initial de la réserve.

etats_inifloat

Etat initial du sol .

eaux_hu_inifloat

Etat initial du HU.

bilandict

Bilan hydrologique.

Returns

sdict

Sorties de simulation.

etatdict

États du bassin versants et du réservoir.

deltadict

Fermeture du bilan hydrologique.

hsamiplus.hsami2_noyau.etp_glace_interception(projet, param, modules, physio, superficie, meteo, nb_pas, etat, bilan)[source]

HSAMI_ETP, HSAMI_GLACE, HSAMI_INTERCEPTION.

Parameters

projetdict

Projet.

paramlist

Paramètres pour la simulation.

modulesdict

Les modules pour la simulation.

physiodict

Les données physiographiques.

superficielist

La superficie du bassin versan et la uuperficie moyenne du réservoir.

meteodict

Données météorologiques pour la simulation.

nb_pasint

Nombre de pas de temps.

etatdict

États du bassin versants et du réservoir.

bilandict

Bilan hydrologique.

Returns

etatdict

États du bassin versants et du réservoir.

eau_surfacefloat

Eau disponible à la surface pour évaporation, ruissellement et infiltration.

demande_eaufloat

Demande en eau restante.

etpslist,

Évapotranspiration au bassin et réservoir.

etrlist

Évapotranspiration et évaporation.

apport_verticallist

Lames d’eau à moduler par les hydrogrammes unitaires.

glace_vers_reservoirfloat

Lame d’eau transitant de la glace de rive vers le réservoir pour le pas de temps (cm).

bassin_vers_reservoirfloat

Lame d’eau transitant du réservoir vers la glace de rive pour le pas de temps (cm).

bilandict,

Bilan hydrologique.

Notes

HSAMI was developed by J.L. Bisson, and F. Roberge in MATLAB, 1983. It was then modified and improved by Catherine Guay, Marie Minville, Isabelle Chartier and Jonathan Roy, 2013-2017 to become HSAMI+. Translated into Python by Didier Haguma, 2024.

hsamiplus.hsami2_noyau.hsami2_noyau(projet, etat)[source]

Noyau d’HSAMI pour simule UN SEUL PAS DE TEMPS.

Parameters

projetdict

Dictionnaire contenant données d’entrée de HSAMI+.

etatdict

États du bassin versants et du réservoir.

Returns

sdict0

Sorties de simulation.

etats: dict

États du bassin versants et du réservoir.

deltas: dict

Composants du bilan massique.

Notes

La fonction constitue le noyau d’HSAMI et simule UN SEUL PAS DE TEMPS. Elle reçoit donc en entrée les états du pas de temps précédent.

projetun dictionnaire contenant les clés suivantes :
  • ‘superficie’superficie(1)Superficie du bassin versant, incluant le réservoir (km^2, scalaire)

    superficie(2) : Superficie moyenne du réservoir (= 0 si non modélisé) (km^2, scalaire).

  • ‘param’ : liste des float, Paramètres pour la simulation.

  • ‘mémoire’ : int, Mémoire utilisée pour les hydrogrammes unitaires (j, scalaire)

  • ‘physio’ : dict, les données physiographiques peuvent être vides.

  • ‘modules’ : dict, les modules pour la simulation peuvent être vides. Les valeurs par défaut sont définies si elles ne sont pas fournies.

  • ‘meteo’ : dict, données météorologiques pour la simulation..

  • ‘dates’ : Date de la journée de la simulation (format datevec, vecteur).

  • ‘nb_pas_par_jour’ : Nombre de pas de temps par jour (scalaire).

  • ‘pas’ : Pas à l’intérieur de la journée (scalaire).

projet[‘param ‘] Paramétres d’HSAMI (scalaires)

param[0] : Efficacité évapo été (adim.) param[1] : Efficacité évapo hiver (adim.) param[2] : Taux de fonte jour (cm/degC/j) param[3] : Taux de fonte nuit (cm/degC/j) param[4] : Température fonte jour (degC) param[5] : Température fonte nuit (degC) param[6] : Température référence pluie (degC) param[7] : Effet redoux sur aire enneigée (adim.) param[8] : Effet gel (adim.) param[9] : Effet sol (adim.) param[10] : Seuil_min (cm) param[11] : Sol_min (cm) param[12] : Sol_max (cm) param[13] : Nappe_max (cm) param[14] : Portion ruissellement surface (fraction) param[15] : Portion ruissellement sol max (fraction) param[16] : Taux vidange sol (cm/j) param[17] : Taux vidange nappe (cm/j) param[18] : Taux vidange inter (cm/j) param[19] : Mode hydrogramme surface param[20] : Forme hydrogramme surface param[21] : Mode hydrogramme intermédiaire param[22] : Forme hydrogramme intermédiaire param[23] : Curve Number param[24] : Puissance de la cond. hydraulique saturée (Ks) de la couche 1 (Ks [=] cm/j) param[25] : Potentiel matriciel au front mouillant (cm) param[26] : Coeff. de récession de la nappe param[27] : Rendement spécifique de la nappe param[28] : Taux de fonte milieu 1 (coniféres) param[29] : Taux de fonte milieu 2 (feuillus) param[30] : Taux de fonte milieu 3 (autres) param[31] : Température de fonte milieu 1 (coniféres) param[32] : Température de fonte milieu 2 (feuillus) param[33] : Température de fonte milieu 3 (autres) param[34] : Puissance de Ks pour l’infiltration param[35] : Capacité de retenue de la neige param[36] : Indice de distribution de la taille des pores (b), couche 1 param[37] : Indice de distribution de la taille des pores (b), couche 2 param[38] : Puissance de K_s, couche 2 param[39] : épaisseur couche 1 (cm) param[40] : épaisseur couche 2 (cm) param[41] : Point de flétrissement permanent, couche 1 param[42] : Capacité au champ, couche 1 param[43] : Capacité au champ, couche 2 param[44] : Porosité couche 1 param[45] : Porosité couche 2m param[46] : Coefficient de Stefan (k) param[47] : Coefficient pour calcul du volume max du MHE (hmax) param[48] : Coefficient pour détermination de la surface normale (30 dans HYDROTEL)(p_norm) param[49] : Puissance de la conductivité hydraulique à saturation à la base du MHE (mm/j)

projet[‘meteo’][‘bassin’] Vecteur météo

tmin [cm] tmax [cm] pluie [cm] neige [cm] soleil [fraction] (optionnel) een [cm] (optionnel, défaut = -1)

projet[‘meteo’][‘reservoir’] ** S’il n’existe aucune météo au réservoir, celle du bassin est utilisée. ** Vecteur météo : tmin [cm] tmax [cm] pluie [cm] neige [cm] soleil [fraction] (optionnel)

projet[‘modules’] Structure spécifiant les modules é utiliser

etp_bassin : ‘hsami’ (défaut) ‘blaney_criddle’ ‘hamon’ ‘linacre’ ‘kharrufa’ ‘mohyse’ ‘romanenko’ ‘makkink’ ‘turc’ ‘mcguinness_bordne’ ‘abtew’ ‘hargreaves’ ‘priestley-taylor’

etp_reservoir : ‘hsami’ (défaut) ‘blaney_criddle’ ‘hamon’ ‘linacre’ ‘kharrufa’ ‘mohyse’ ‘romanenko’ ‘makkink’ ‘turc’ ‘mcguinness_bordne’ ‘abtew’ ‘hargreaves’ ‘priestley-taylor’

een : ‘hsami’ (défaut) ‘dj’ ‘mdj’ ‘alt’

infiltration : ‘hsami’ (défaut) ‘green_ampt’ ‘scs_cn’

sol : ‘hsami’ (défaut) ‘3couches’

qbase : ‘hsami’ (défaut) ‘dingman’

radiation : ‘hsami’ (défaut) ‘mdj’

mhumide: 0 (défaut) 1

reservoir : 0 (défaut) 1

glace_reservoir : 0 (défaut) ‘stefan’ ‘mylake’

physioStructure contenant des variables physiographiques du bassin

Toutes les variables physiographiques peuvent étre facultatives, dépamment des modules utilisés. - latitude : Latitude moyenne (degrés, scalaire) - altitude : Altitude moyenne (m, scalaire) - albedo_sol : Albédo du sol (fraction décimale, scalaire) - i_orientation_bv : Indice d’orientation - pente_bv : Pente moyenne (degrés, scalaire) - occupation : Fractions d’occupation des milieux (fraction, vecteur de 1x2 ou 1x3) - niveau : Niveau du réservoir (m, scalaire) - coeff : Coefficients de l’équation de la courbe d’emmagasinement (vecteur 1 x 3) - samax : Surface maximale du MHE (km2, scalaire) - occupation_bande : Pourcentage d’occupation par bande d’altitude - altitude_bande : Altitude de chaque bande

etatétats du bassin versants et du réservoir
  • etat[‘eau_hydrogrammes’] : Eau en transit dans les HU (cm, matrice de mémoire x 2, ou mémoire x 3 si module[‘mhumide’] = 1)

  • etat[‘neige_au_sol ‘] : équivalent en eau de la neige au bassin versant (cm, scalaire)

  • etat[‘fonte’] : Eau libre dans la neige (cm, scalaire)

  • etat[‘nas_tot’] : Neige au sol totale (cm, scalaire)

  • etat[‘fonte_tot’] : Fonte totale (cm, scalaire)

  • etat[‘derniere_neige’] : Nombre de jours depuis la derniére neige (j, scalaire)

  • etat[‘gel’] : Eau gelée dans le sol (cm, scalaire)

  • etat[‘sol’] : Eau dans la zone non saturée (cm, vecteur de 1x2 si modules[‘sol = ‘3couches’)

  • etat[‘nappe’] : Eau dans la zone saturée (cm, scalaire)

  • etat[‘reserve’] : Eau dans la réserve intermédiaire (cm, scalaire)

  • etat[‘mdj’][‘couvert_neige’]Hauteur du couvert de neige dans les 2 ou 3 milieux (m, vecteur de la même

    taille que physio.occupation)

  • etat[‘mdj’][‘densite_neige’] : Densité du couvert de neige (fraction décimale, vecteur de la même taille que physio.occupation)

  • etat[‘mdj’][‘albedo_neige’] : Albédo de la neige (fraction, vecteur de la même taille que physio.occupation)

  • etat[‘mdj’][‘neige_au_sol’] : équivalent en eau de la neige (m, vecteur de la même taille que physio.occupation)

  • etat[‘mdj’][‘fonte’] : Eau libre dans la neige (m, vecteur de la même taille que physio.occupation)

  • etat[‘mdj’][‘gel’] : Eau gelée dans le sol (cm, vecteur de la même taille que physio.occupation)

  • etat[‘mdj’][‘sol’] : Eau dans la zone non saturée (cm, vecteur de la même taille que physio.occupation)

  • etat[‘mdj’][‘energie_neige’] : Bilan énergétique de la neige (J/m2, vecteur de la même taille que physio.occupation)

  • etat[‘mdj’][‘energie_glace’] : Bilan énergétique de la glace (J/m2, scalaire)

  • etat[‘alt’][‘couvert_neige’]Hauteur du couvert de neige dans les 2 ou 3 milieux (m, vecteur de la même taille

    que physio.occupation_bande)

  • etat[‘alt’][‘densite_neige’]Densité du couvert de neige (fraction décimale, vecteur de la même taille

    que physio.occupation_bande)

  • etat[‘alt’][‘albedo_neige’] : Albédo de la neige (fraction, vecteur de la même taille que physio.occupation_bande)

  • etat[‘alt’][‘neige_au_sol’] : équivalent en eau de la neige (m, vecteur de la même taille que physio.occupation_bande)

  • etat[‘alt’][‘fonte’] : Eau libre dans la neige (m, vecteur de la même taille que physio.occupation_bande)

  • etat[‘alt’][‘gel’] : Eau gelée dans le sol (cm, vecteur de la même taille que physio.occupation_bande)

  • etat[‘alt’][‘sol’] : Eau dans la zone non saturée (cm, vecteur de la même taille que physio.occupation_bande)

  • etat[‘alt’][‘energie_neige’] : Bilan énergétique de la neige (J/m2, vecteur de la même taille que physio.occupation_bande)

  • etat[‘alt’][‘energie_glace’] : Bilan énergétique de la glace (J/m2, scalaire)

  • etat[‘mh_vol’] : Volume du milieu humide (m3, scalaire)

  • etat[‘ratio_MH’] : Ratio du milieu humide dans le bassin versant (fraction décimale, scalaire)

  • etat[‘mh_surf’] : Superficie du milieu humide (ha, scalaire)

  • etat[‘mhumide’] : Lame d’eau du milieu humide (cm, scalaire)

  • etat[‘ratio_qbase’] : Ratio du debit de base provenant du milieu humide (fraction décimale, scalaire)

  • etat[‘cumdegGel’] : Cumulatif de degrés-jour de gel (degC, scalaire)

  • etat[‘obj_gel’] : Objectif de degrés-jour de gel (degC, scalaire)

  • etat[‘dernier_gel’] : Nombre de jour depuis le dernier gel (j, scalaire)

  • etat[‘reservoir_epaisseur_glace’] : épaisseur de la glace sur le réservoir (cm, scalaire)

  • etat[‘reservoir_energie_glace’] : Bilan énergétique de la glace sur le réservoir (J/m2, scalaire)

  • etat[‘reservoir_superficie’] : Superficie du réservoir (km2, scalaire)

  • etat[‘reservoir_superficie_glace’] : Superficie de berges avec de la glace déposée (km2, scalaire)

  • etat[‘reservoir_superficie_ref’] : Superficie de référence en début d’hiver (km2, scalaire)

  • etat[‘eeg’] : équivalent en eau de la glace déposée en berges (cm, vecteur de 3000x1)

  • etat[‘ratio_bassin’]Fraction de la superficie occupée par la partie terrestre du bassin versant

    (fraction décimale, scalaire)

  • etat[‘ratio_reservoir’] : Fraction de la superficie occupée par le réservoir (fraction décimale, scalaire)

  • etat[‘ratio_fixe’]Fraction de la superficie occupée par la partie terrestre pour le calcul des processus

    souterrains (fraction décimale, scalaire)

s

s[‘Qtotal’] s[‘Qbase’] s[‘Qinter’] s[‘Qsurf’] s[‘Qreservoir’] s[‘Qglace’] s[‘Qmh’] s[‘ETP’] s[‘ETRtotal’] s[‘ETRsublim’] s[‘ETRPsurN’] s[‘ETRintercept’] s[‘ETRtranspir’] s[‘ETRreservoir’] s[‘ETRmhumide’]

deltafermeture du bilan hydrologique pour la fonction principale et les sous-fonctions
  • delta[‘total’] : Fermeture de la fonction principale (cm, scalaire)

  • delta[‘glace’] : Fermeture de la fonction hsami_glace (cm, scalaire)

  • delta[‘interception’] : Fermeture de la fonction hsami_interception (cm, scalaire)

  • delta[‘ruissellement’] : Fermeture de la fonction hsami_ruissellement (cm, scalaire)

  • delta[‘vertical’] : Fermeture de la fonction hsami_ecoulement_vertical (cm, scalaire)

  • delta[‘horizontal’] : Fermeture de la fonction hsami_ecoulement_horizontal (cm, scalaire)

  • delta[‘mhumide’] : Fermeture de la fonction hsami_mhumide (cm, scalaire)

hsamiplus.hsami2_noyau.ruissellement_ecoulement(projet, param, modules, physio, superficie, nb_pas, etat, etps, eau_surface, demande_eau, etr, apport_vertical, glace_vers_reservoir, bassin_vers_reservoir, bilan)[source]

HSAMI_RUISSELLEMENT_SURFACE, HSAMI_ECOULEMENT_VERTICAL, HSAMI_ECOULEMENT_HORIZONTAL.

Parameters

projetdict

Projet.

paramlist

Paramètres pour la simulation.

modulesdict

Les modules pour la simulation.

physiodict

Les données physiographiques.

superficielist

La superficie du bassin versan et la uuperficie moyenne du réservoir.

nb_pasint

Nombre de pas de temps.

etatdict

États du bassin versants et du réservoir.

etpsliste

Évapotranspiration au bassin et réservoir.

eau_surfacefloat

Eau disponible à la surface pour évaporation, ruissellement et infiltration.

demande_eaufloat

Demande en eau restante.

etrlist

Évapotranspiration et évaporation.

apport_verticallist

Lames d’eau à moduler par les hydrogrammes unitaires.

glace_vers_reservoirfloat

Lame d’eau transitant de la glace de rive vers le réservoir pour le pas de temps (cm).

bassin_vers_reservoirfloat

Lame d’eau transitant du réservoir vers la glace de rive pour le pas de temps (cm).

bilandict

Bilan hydrologique.

Returns

etatdict

États du bassin versants et du réservoir.

qlist

Débits provenant du bassin.

etp_totfloat

Évapotranspiration totale.

etr_totfloat

Évapotranspiration réelle totale.

bilandict

Bilan hydrologique.

hsamiplus.hsami_ecoulement_horizontal module

The function simulates the lateral flow in HSAMI+ model.

hsamiplus.hsami_ecoulement_horizontal.hsami_ecoulement_horizontal(nb_pas, vidange_reserve_inter, reserve_inter, eau_hydrogrammes, hydrogrammes, apport_vertical, modules)[source]

Module d’écoulement horizontal.

Parameters

nb_pasint

Nombre de pas de temps.

vidange_reserve_interfloat

Taux vidange inter.

reserve_interfloat

Eau dans la réserve intermédiaire.

eau_hydrogrammeslist

Eau en transit dans les HU.

hydrogrammeslist

Hydrogrammes unitaires de surface et intermediaire.

apport_verticallist

Lames d’eau verticales (voir hsami_interception).

modulesdict

Les modules pour la simulation.

Returns

apportfloat

Apports verticaux laminés.

reserve_interfloat

Eau dans la réserve intermédiaire.

eau_hydrogrammeslist

Eau en transit dans les HU.

hsamiplus.hsami_ecoulement_vertical module

The function simulates the infiltration in HSAMI+ model.

hsamiplus.hsami_ecoulement_vertical.ecoulement_3couches(nb_pas, param, etat, offre, demande, modules, ruissellement_surface, apport_vertical, etr)[source]

Calcule l’écoulement vertical dans un système à trois couches de sol.

Parameters

nb_pasfloat

Nombre de pas de temps.

paramlist

Paramètres pour la simulation.

etatdict

États du bassin versants et du réservoir.

offrefloat

L’offre en eau disponible.

demandefloat

La demande en eau.

modulesdict

Les modules pour la simulation.

ruissellement_surfacefloat

Le ruissellement en surface.

apport_verticallist

Liste des apports verticaux.

etrlist

Liste des évapotranspirations.

Returns

apportlist

Liste d’apport.

etatdict

États du bassin versants et du réservoir.

etrlist

Évapotranspiration.

hsamiplus.hsami_ecoulement_vertical.green_ampt(eau_surface, ks, psi, sol_max, sol, nb_pas, gel, neige_au_sol, *args)[source]

Modele de Green-Ampt.

Parameters

eau_surfacefloat

Eau disponible en surface aprés avoir comblé la demande évaporative (cm).

ksfloat

Conductivité hydraulique saturée (cm/j).

psifloat

Pression matricielle au front mouillant, dérivée de Rawls (1993) (cm).

sol_maxfloat

Paramétre 13 correspondant au volume max d’eau ds le sol (cm).

solfloat

Variable d’état correspondant au volume d’eau dans le sol (cm).

nb_pasfloat

Nombre de pas de temps dans une période de 24h (entier positif).

gelfloat

Gel dans la premiére couche de sol (cm).

neige_au_solfloat

Équivalent en eau de la neige au sol (cm).

*argslist

Porosité de la premiére couches de sol si 3couches est utilisé (cm3/cm3).

Returns

infiltrationfloat

Infiltration selon Green-Ampt.

ruissellementfloat

Eeau de ruissellement.

Notes

Fonction calculant l’infiltration et le ruissellement selon le modéle de Green-Ampt tel qu’implémenté dans SWAT.

hsamiplus.hsami_ecoulement_vertical.hsami_ecoulement_vertical(nb_pas, param, etat, offre, demande, modules, ruissellement_surface, apport_vertical, etr)[source]

Écoulement vertical.

Parameters

nb_pasfloat

Nombre de pas de temps.

paramlist

Paramètres pour la simulation.

etatdict

États du bassin versants et du réservoir.

offrefloat

Quantité d’eau disponible pour l’évaporation et le ruissellement (cm).

demandefloat

Demande évaporative de l’atmosphére (cm).

modulesdict

Les modules pour la simulation.

ruissellement_surfacefloat

Ruissellement (cm).

apport_verticallist

Lames d’eau verticales (voir hsami_interception).

etrlist

Composantes de l’évapotranspiration (voir hsami_interception).

Returns

apportlist

Lames d’eau verticales (cm, voir hsami_interception).

etatdict

États du bassin versants et du réservoir.

etrlist

Composantes de l’évapotranspiration (cm, voir hsami_interception).

hsamiplus.hsami_ecoulement_vertical.scs_cn(eau_surface, cn)[source]

Fonction calculant le ruissellement selon la méthode du Curve Number.

Parameters

eau_surfacefloat

Eau disponible en surface aprés avoir comblé la demande évaporative (cm).

cnfloaat

Curve Number (paramétre 24).

Returns

infiltrationfloat

Infiltration selon Green-Ampt.

ruissellementfloat

Eau de ruissellement.

hsamiplus.hsami_ecoulement_vertical.vidange_nappe(apport, nappe, taux_vidange_nappe, nappe_max, nb_pas, modules, param, sol)[source]

Effectue la vidange d’une nappe phréatique en fonction des paramètres donnés.

Parameters

apportlist

Liste contenant les apports d’eau.

nappefloat

Niveau de la nappe phréatique.

taux_vidange_nappefloat

Taux de vidange de la nappe phréatique.

nappe_maxfloat

Niveau maximum de la nappe phréatique.

nb_pasfloat

Nombre de pas de temps.

modulesdict

Les modules pour la simulation.

paramlist

Paramètres pour la simulation.

solfloat

Eau dans le sol.

Returns

apportlist

Nouveaux apports d’eau.

nappefloat

Nouveau niveau de la nappe phréatique.

sol: float

Eau dans e sol.

hsamiplus.hsami_etp module

The function simulates the evapotranspiration (ETP) in HSAMI+ model.

hsamiplus.hsami_etp.etp_abtew(t_min, t_max, rg, lamda)[source]

Calcul de l’évapotranspiration potentielle selon la méthode empirique de Abtew.

Parameters

t_minfloat

Tmin journalière.

t_maxfloat

Tmax journalière.

rgfloat

Rayonnement global MJ/m^2/j.

lamdafloat

Chaleur de vaporisation MJ/kg.

Returns

float

Estimation de l’évapotranspiration potentielle (cm).

Notes

Calcul de l’évapotranspiration potentielle en cm selon la méthode empirique de Abtew et répartition dans la journée selon la pondération proposée par Fortin, J.P. et Girard, G. (1970).

hsamiplus.hsami_etp.etp_blaney_criddle(t_min, t_max, p)[source]

Calcul de l’évapotranspiration potentielle à partir de la formulation de Blaney-Criddle.

Parameters

t_minfloat

Tmin journalière.

t_maxfloat

Tmax journalière.

pfloat

Heures de clarté journalière sur le nombre d’heures de clarté annuelle.

Returns

float

Estimation de l’evapotranspiration potentielle (cm).

Notes

Calcul de l’évapotranspiration potentielle en cm à partir de la formulation de Blaney-Criddle et répartition dans la journée selon la pondération proposée par Fortin, J.P. et Girard, G. (1970).

hsamiplus.hsami_etp.etp_chaleur_lat_vaporisation(t_max, t_min)[source]

Estimation de la chaleur latente de vaporisation.

Parameters

t_maxfloat

Tmax journalière.

t_minfloat

Tmin journalière.

Returns

float

Chaleur latente de vaporisation (MJ/kg).

hsamiplus.hsami_etp.etp_declinaison(jj)[source]

Calcul de la declinaison solaire (en radians) au jour julien jj.

Parameters

jjint

Jour julien.

Returns

float

Declinaison du soleil (radians) pour mohyse entre autre.

hsamiplus.hsami_etp.etp_duree_jour(jj, lat)[source]

Calcul de la duree du jour jj à la latitude lat.

Parameters

jjint

Jour julien.

latfloat

Latitude moyenne du bassin versant.

Returns

float

Duree du jour au jour jj et à la latitude lat.

hsamiplus.hsami_etp.etp_e(t)[source]

Estimation du point de la pression de vapeur.

Parameters

tfloat

Température.

Returns

float

Pression de vapeur.

hsamiplus.hsami_etp.etp_hamon(jj, t_min, t_max, physio)[source]

Calcul de l’évapotranspiration potentielle selon la formulation de Hamon.

Parameters

jjint

Jour julien.

t_minfloat

Tmin journalière.

t_maxfloat

Tmax journalière.

physiodict

Variables physiographiques du bassin.

Returns

float

Estimation de l’évapotranspiration potentielle (cm).

Notes

Calcul de l’évapotranspiration potentielle en cm selon la formulation de Hamon et répartition dans la journée selon la pondération proposée par Fortin, J.P. et Girard, G. (1970).

hsamiplus.hsami_etp.etp_hargreaves(t_min, t_max, re)[source]

Calcul de l’évapotranspiration potentielle selon la formulation de Hargreaves.

Parameters

t_minfloat

Tmin journalière.

t_maxfloat

Tmax journalière.

refloat

Rayonnement extraterrestre (MJ/m^2/j).

Returns

float

Estimation de l’évapotranspiration potentielle (cm).

Notes

Calcul de l’évapotranspiration potentielle en cm selon la formulation de Hargreaves et Samani et répartition dans la journée selon la pondération proposée par Fortin, J.P. et Girard, G. (1970).

hsamiplus.hsami_etp.etp_kharrufa(t_min, t_max, p)[source]

Calcul de l’évapotranspiration potentielle selon la formulation Kharrufa.

Parameters

t_minfloat

Tmin journalière.

t_maxfloat

Tmax journalière.

pfloat,

Heures de clarté journalière sur le nombre déheures de clarté annuelle.

Returns

float

Estimation de l’évapotranspiration potentielle (cm).

Notes

Calcul de l’évapotranspiration potentielle en cm selon la formulation Kharrufa et répartition dans la journée selon la pondération proposée par Fortin, J.P. et Girard, G. (1970).

hsamiplus.hsami_etp.etp_linacre(t_min, t_max, physio)[source]

Calcul de l’évapotranspiration potentielle selon la formulaiton Linacre.

Parameters

t_minfloat

Tmin journalière.

t_maxfloat

Tmax journalière.

physiodict

Variables physiographiques du bassin.

Returns

float

Estimation de l’évapotranspiration potentielle (cm).

Notes

Calcul de l’évapotranspiration potentielle en cm selon la formulaiton Linacre et répartition dans la journée selon la pondération proposée par Fortin, J.P. et Girard, G. (1970).

hsamiplus.hsami_etp.etp_m_courbe_pression(t_min, t_max)[source]

Estimation de la pente de la courbe de pression de vapeur.

Parameters

t_minfloat

Tmin journalière.

t_maxfloat

Tmax journalière.

Returns

float

Pente de la courbe de pression de vapeur.

hsamiplus.hsami_etp.etp_makkink(rg, m, lamda)[source]

Calcul de l’évapotranspiration potentielle selon la formulation de Makkink.

Parameters

rgfloat

Rayonnement global MJ/m^2/j.

mfloat

Pente de la courbe de pression.

lamdafloat

Chaleur de vaporisation MJ/kg.

Returns

float

Estimation de l’évapotranspiration potentielle (cm).

Notes

Calcul de l’évapotranspiration potentielle en cm selon la formulation de Makkink et répartition dans la journée selon la pondération proposée par Fortin, J.P. et Girard, G. (1970).

hsamiplus.hsami_etp.etp_mcguinness_bordne(t_min, t_max, rg, lamda)[source]

Calcul de l’évapotranspiration potentielle selon la formulation de McGuiness et Bordne.

Parameters

t_minfloat

Tmin journalière.

t_maxfloat

Tmax journalière.

rgfloat

Rayonnement global MJ/m^2/j.

lamdafloat

Chaleur de vaporisation MJ/kg.

Returns

float

Estimation de l’évapotranspiration potentielle (cm).

Notes

Calcul de l’évapotranspiration potentielle en cm selon la formulation de McGuiness et Bordne et répartition dans la journée selon la pondération proposée par Fortin, J.P. et Girard, G. (1970).

hsamiplus.hsami_etp.etp_mohyse(t_min, t_max, delta, physio)[source]

Calcul de l’évapotranspiration potentielle selon la formulation du modéle Mohyse.

Parameters

t_minfloat

Tmin journalière.

t_maxfloat

Tmax journalière.

deltafloat

Déclinaison solaire (radians).

physiodict

Variables physiographiques du bassin.

Returns

float

Estimation de l’évapotranspiration potentielle (cm).

Notes

Calcul de l’évapotranspiration potentielle en cm selon la formulation du modéle Mohyse et répartition dans la journée selon la pondération proposée par Fortin, J.P. et Girard, G. (1970).

hsamiplus.hsami_etp.etp_p(lat, jj)[source]

Calcul du pourcentage de la durée du jour sur la somme des durées du jour annuelles.

Parameters

latfloat

Latitude moyenne du bassin versant.

jjint

Jour julien.

Returns

float

Heures de clarté journalière sur le nombre d’heures de clarté annuelle.

hsamiplus.hsami_etp.etp_priestley_taylor(rn, m, lamda)[source]

Calcul de l’évapotranspiration potentielle selon la formulation de Priesley-Taylor.

Parameters

rnfloat

Rayonnement net (MJ/m^2/j).

mfloat

Pente de la courbe de pression.

lamdafloat

Chaleur de vaporisation (MJ/kg).

Returns

float

Estimation de l’évapotranspiration potentielle (cm).

Notes

Calcul de l’évapotranspiration potentielle en cm selon la formulation de Priesley-Taylor et répartition dans la journée selon la pondération proposée par Fortin, J.P. et Girard, G. (1970).

hsamiplus.hsami_etp.etp_rayonnement_et(lat, jj)[source]

Calcul du rayonnement extra-terrestre.

Parameters

latfloat

Latitude moyenne du bassin versant.

jjint

Jour julien.

Returns

float

Rayonnement extra-terrestre (MJ/m^2/j).

Notes

Selon http://www.argenco.ulg.ac.be/etudiants/Multiphysics/Xanthoulis#20-#20Calcul#20ETo#20-#20Penman.pdf

hsamiplus.hsami_etp.etp_rayonnement_g(re, lat, jj, t_min=None, t_max=None)[source]

Calcul du rayonnement global.

Parameters

refloat

Rayonnement extra-terrestre (MJ/m^2/j).

latfloat

Latitude moyenne du bassin versant (m).

jjint

Jour julien.

t_minfloat

Tmin journalière.

t_maxfloat

Tmax journalière.

Returns

float

Rayonnement global (MJ/m^2/j).

hsamiplus.hsami_etp.etp_rayonnement_net(t_min, t_max, rg, rgo, albedo)[source]

Calcul du rayonnement net.

Parameters

t_minfloat

Tmin journalière.

t_maxfloat

Tmax journalière.

rgfloat

Rayonnement global (MJ/m^2/j).

rgofloat

Rayonnement par temps clair (MJ/m^2/j).

albedofloat

Albedo de la surface.

Returns

float

Rayonnement net (MJ/m^2/j).

hsamiplus.hsami_etp.etp_rayonnement_temps_clair(re, h)[source]

Calcul du rayonnement par temps clair.

Parameters

refloat

Rayonnement extraterrestre (MJ/m^2/j).

hfloat

Hauteur moyenne du bassin versant au dessus du niveau de la mer (m).

Returns

float

Rayonnement pas temps clair considérant D=DL (MJ/m^2/j).

hsamiplus.hsami_etp.etp_romanenko(t_min, t_max)[source]

Calcul de l’évapotranspiration potentielle selon la formulation Romanenko.

Parameters

t_minfloat

Tmin journalière.

t_maxfloat

Tmax journalière.

Returns

float

Estimation de l’évapotranspiration potentielle (cm).

Notes

Calcul de l’évapotranspiration potentielle en cm selon la formulation Romanenko et répartition dans la journée selon la pondération proposée par Fortin, J.P. et Girard, G. (1970).

hsamiplus.hsami_etp.etp_td_linacre(t_max, t_min)[source]

Estimation du point de rosée de Linacre.

Parameters

t_maxfloat

Tmax journalière.

t_minfloat

Tmin journalière.

Returns

float

Point de rosée.

hsamiplus.hsami_etp.etp_turc(t_min, t_max, rg)[source]

Calcul de l’évapotranspiration potentielle à partir des températures min et max.

Parameters

t_minfloat

Tmin journalière.

t_maxfloat

Tmax journalière.

rgfloat

Rayonnement global MJ/m^2/j.

Returns

float

Estimation de l’évapotranspiration potentielle (cm).

Notes

Calcul de l’évapotranspiration potentielle en cm à partir des températures min et max en C journalière, selon la méthode empirique de Jean-Louis Bisson (Hydro-Québec) et répartition dans la journée selon la pondération proposée par Fortin, J.P. et Girard, G. (1970).

hsamiplus.hsami_etp.hsami_etp(pas, nb_pas, jj, t_min, t_max, modules, physio)[source]

Calcul de l’évapotranspiration potentielle.

Parameters

pasint

Pas de temps courant à l’intérieur de la journée.

nb_pasfloat

Nombre de pas de temps.

jjint

Jour julien (entier positif).

t_minfloat

Tmin journalière.

t_maxfloat

Tmax journalière.

modulesdict

Les modules pour la simulation.

physiodict

Variables physiographiques du bassin.

Returns

float

Estimation de l’évapotranspiration potentielle.

Notes

MODULES D’ÉVAPOTRANSPIRATION DISPONIBLES - hsami - blaney_criddle - hamon - linacre - kharrufa - mohyse - romanenko - makkink - turc - mcguinness_bordne - abtew - hargreaves - priestley_taylor

Marie Minville, Catherine Guay, 2013 Didier Haguma, 2024

hsamiplus.hsami_glace module

The function simulates the transition of water from liquid state to solid state (ice) and vice versa.

hsamiplus.hsami_glace.conductivite_neige(densite)[source]

Calculer la conductivité de la neige en fonction de sa densité.

Parameters

densitefloat

La densité de la neige en kg/m^3.

Returns

float

La conductivité (float) de la neige en W/(m*K).

hsamiplus.hsami_glace.hsami_glace(modules, superficie, etats, *varargin)[source]

Glace.

Parameters

modulesdict

Les modules pour la simulation.

superficielist

La superficie du bassin versan et la uuperficie moyenne du réservoir.

etatsdict

États du bassin versants et du réservoir.

*vararginlist
Varargin{1}list

Données météorologiques pour la simulation (meteo).

Varargin{2}dict

Les données physiographiques peuvent être vides (physio).

Varargin{3}list

Paramètres pour la simulation (param).

Returns

glace_vers_reservoirfloat

Lame d’eau transitant de la glace de rive vers le réservoir pour le pas de temps (cm).

bassin_vers_reservoirfloat

Lame d’eau transitant du réservoir vers la glace de rive pour le pas de temps (cm).

etatsdict

États du bassin versants et du réservoir.

hsamiplus.hsami_glace.my_lake(meteo, physio, etat, param, modules)[source]

Fonction qui simule le comportement d’un lac gelé en utilisant le modèle MyLake.

Parameters

meteodict

Dictionnaire contenant les données météorologiques.

physiodict

Dictionnaire contenant les paramètres physiques du lac.

etatdict

Dictionnaire contenant les états du lac à un pas de temps précédent.

paramdict

Dictionnaire contenant les paramètres du modèle.

modulesdict

Dictionnaire contenant les modules activés dans le modèle.

Returns

superficie_glacefloat

Superficie de la glace sur le lac en km2.

superficie_reservoirfloat

Superficie totale du lac en km2.

etatdict

Les nouveaux états du lac.

Notes

Cette fonction est basée sur le modèle MyLake (Saloranta et Andersen, 2004) et le modèle mixte degrés-jour implanté.

hsamiplus.hsami_glace.stefan(meteo, k, physio, etats)[source]

Calcule la superficie de glace.

Parameters

meteodict

Données météorologiques pour la simulation.

kfloat

Le coefficient de conversion des degrés-jours en épaisseur de glace.

physiodict

Les données physiographiques.

etatsdict

Les états précédents.

Returns

superficie_glacefloat

Superficie de la glace sur le lac en km2.

superficie_reservoirfloat

Superficie totale du lac en km2.

etatdict

États du bassin versants et du réservoir / lac.

Notes

Calcule la superficie de glace et la superficie du réservoir en fonction des conditions météorologiques, des paramètres physiologiques et des états précédents.

hsamiplus.hsami_hydrogramme module

The function computes the values of a hydrograph following a beta law.

hsamiplus.hsami_hydrogramme.hsami_hydrogramme(mode, forme, pas_temps_par_jour, memoire)[source]

Calculer les valeurs d’un hydrogramme.

Parameters

modefloat

Nombre de jours avant le pic de l’hydrogramme.

formefloat

Paramétre de forme de la loi béta.

pas_temps_par_jourfloat

Nombre de pas de temps par jour.

memoirefloat

Durée de mémoire de l’hydrogramme.

Returns

list

Hydrogramme.

Notes

function h = hsami_hydrogramme(mode,forme,pas_temps_par_jour,memoire) Calcule les valeurs d’un hydrogramme qui pointe aprés “mode” jours, suivant une loi béta de paramétre de forme nommé “forme” et tronqué aprés “memoire” jours.

hsamiplus.hsami_input module

Create hsami input ‘projet’ file.

hsamiplus.hsami_input.make_project(data_dir, basin_file, param_file, projet_file)[source]

Traitement des données d’entrée de HSAMI+.

Parameters

data_dirstr or Path

Répertoire contenant les fichiers de données.

basin_filestr or Path

Chemin d’accès au fichier de données du bassin.

param_filestr or Path

Chemin d’accès au fichier de paramètres.

projet_filestr or Path

Chemin d’accès au fichier de projet de sortie.

Notes

Fonction principale pour traiter les données de bassin, les paramètres et les données météorologiques, et générer un fichier de projet pour HSAMI.

La fonction effectue les étapes suivantes: 1. Lit et traite les données du bassin à partir du fichier_bassin. 2. Configure divers modules et leurs configurations. 3. Lit et traite les paramètres du param_file. 4. Configure les données physiologiques du bassin. 5. Lit et traite les données météorologiques des fichiers spécifiés. 6. Compile toutes les données dans un dictionnaire de projet. 7. Écrit le dictionnaire du projet dans le fichier projet_file spécifié au format JSON. 8. Imprime un message de confirmation une fois la création réussie du fichier de projet.

hsamiplus.hsami_input.meteohsami(data_dir, fichier_meteo_bv, fichier_meteo_reservoir)[source]

Lecture de données météo.

Parameters

data_dirstr or Path

Chemin d’accès au fichier météo à lire.

fichier_meteo_bvstr or Path

Fichier météo du bassin versant.

fichier_meteo_reservoirstr or Path

Fichier météo du réservoir.

Returns

meteodict

Liste de valeurs de paramètres par défaut.

dateslist

Liste de dates.

hsamiplus.hsami_input.paramshsami(param_file)[source]

Définir les valeurs de paramètres par défaut.

Parameters

param_filestr or Path

Chemin d’accès au fichier de paramètres à lire.

Returns

paramslist

Liste de valeurs de paramètres par défaut.

df_parampandas.DataFrame

Un DataFrame contenant les données du paramètre avec des colonnes [‘Nom’, ‘min’, ‘default’, ‘max’].

Notes

La fonction lit un fichier de paramètres et renvoie une liste de valeurs de paramètres par défaut ainsi que le DataFrame complet.

hsamiplus.hsami_input.physiohsami(donnees_bv)[source]

Lecture de données météo.

Parameters

donnees_bvdict

Données de bassin versant.

Returns

dict

Données physiologiques.

hsamiplus.hsami_input.writejson(filename, dict_var)[source]

Convert a dictionary to a JSON formatted string and writes it to a file.

Parameters

filenamestr or Path

The name of the file to write the JSON data to.

dict_vardict

The dictionary to convert to JSON format.

hsamiplus.hsami_interception module

The function simulates the interception of water in HSAMI+ model.

hsamiplus.hsami_interception.albedo_een(albedo, drel, een, neige, pas_de_temps, pluie, tneige, *args)[source]

Calculer l’albedo de l’EEN.

Parameters

albedofloat

Albedo.

drelfloat

Densité relative de la neige.

eenfloat

Équivalent en eau de la neige.

neigefloat

Neige au sol.

pas_de_tempsint

Pas de temps.

pluiefloat

Précipitations liquides.

tneigefloat

Température de la neige.

*argslist

Fonte.

Returns

float

Albedo d’een.

hsamiplus.hsami_interception.calcul_densite_neige(temperature)[source]

Calculer la densité de la neige.

Parameters

temperaturefloat

Témperature en deg C.

Returns

float

Densite de la neige.

hsamiplus.hsami_interception.calcul_erf(x)[source]

Approximation rationnelle.

Parameters

xfloat

Argument.

Returns

float

Valeur la fonction.

hsamiplus.hsami_interception.calcul_indice_radiation(jour, latitude, i_orientation_bv, pas_de_temps, pente)[source]

Calcul de l’indice de radiation pour une surface.

Parameters

jourint

Jour julien.

latitudefloat

Latitude du bassin versant.

i_orientation_bvfloat

Indice d’orientantion du bassin versant.

pas_de_tempsint

Pas de temps.

pentefloat

Pente du bassin versant.

Returns

float

Indice de radiation.

hsamiplus.hsami_interception.conductivite_neige(densite)[source]

Calcul de la conductivité de la neige.

Parameters

densitefloat

Densité de la neige.

Returns

float

Conductivité de la neige.

hsamiplus.hsami_interception.degel_sol(duree, dt_max, sol, gel, neige_au_sol)[source]

Dégel de l’eau gelée dans le sol par temps doux.

Parameters

dureefloat

Nombre de pas de temps par jour.

dt_maxfloat

Températuret max - température de fonte.

solfloat

Eau dans le sol.

gelfloat

Eeau gelée dans le sol.

neige_au_solfloat

Neige au sol.

Returns

solfloat

Eeau dans le sol.

gelfloat

Eau gelée dans le sol.

hsamiplus.hsami_interception.dj_hsami(modules, meteo, etat, apport_vertical, etr, duree, efficacite_evapo_hiver, taux_fonte_jour, taux_fonte_nuit, temp_fonte_jour, temp_fonte_nuit, temp_ref_pluie, effet_redoux_sur_aire_enneigee, sol_min, sol, t_min, t_max, pluie, neige, soleil, demande_eau, demande_reservoir, neige_au_sol, fonte, neige_au_sol_totale, fonte_totale, derniere_neige, eeg, gel)[source]

Module “hsami” et “dj” pour calculer “een”.

Parameters

modulesdict

Les modules pour la simulation.

meteodict

Données météorologiques pour la simulation.

etatdict

États du bassin versants et du réservoir.

apport_verticallist

Lames d’eau à moduler par les hydrogrammes unitaires.

etrlist

Évapotranspiration et évaporation.

dureefloat

Fraction d’une journée correspondant à un pas de temps.

efficacite_evapo_hiverfloat

Param[1].

taux_fonte_jourfloat

Param[2] en cm/degre C/jour.

taux_fonte_nuitfloat

Param[3] en cm/degre C/jour.

temp_fonte_jourfloat

Param[4] en C.

temp_fonte_nuitfloat

Param[5] en C.

temp_ref_pluiefloat

Param[6] en C.

effet_redoux_sur_aire_enneigeefloat

Pparam[7].

sol_minfloat

Param[11].

solfloat

Reserve d’eau dans la zone non-saturée.

t_minfloat

Valeur extréme (observée ou prévue) sur 24h (Celcius).

t_maxfloat

Valeur extréme (observée ou prévue) sur 24h (Celcius).

pluiefloat

Total pour le pas de temps (cm).

neigefloat

Total pour le pas de temps (cm).

soleilint

Ensoleillement (observé ou prévu) pour la journée (entre 0 et 1).

demande_eaufloat

Demande en eau restante.

demande_reservoirfloat

Demande en eau restante pour le reservoir.

neige_au_solfloat

Équivalent en eau de la neige au sol incluant l’eau de fonte.

fontefloat

Eau liquide stockée dans la neige.

neige_au_sol_totalefloat

Total des chutes de neige pendant l’hiver.

fonte_totalefloat

Total de la fonte de neige pendant l’hiver.

derniere_neigeint

Nombre de jours depuis la derniere neige.

eegfloat

Équivalent en eau de la glace.

gelfloat

Eau gelée dans la zone non saturée.

Returns

eau_surfacefloat

Eau disponible à la surface pour évaporation, ruissellement et infiltration.

demande_eaufloat

Demande en eau restante.

etatdict

États du bassin versants et du réservoir.

etrlist

Évapotranspiration et évaporation.

apport_verticallist

Lames d’eau à moduler par les hydrogrammes unitaires.

hsamiplus.hsami_interception.gel_neige(duree, dt_max, neige_au_sol, fonte, fonte_totale)[source]

Gel de la neige au sol en fonction de la température maximale.

Parameters

dureefloat

Nombre de pas de temps par jour.

dt_maxfloat

Températuret max - température de fonte.

neige_au_solfloat

Neige au sol.

fontefloat

Eau liquide stockée dans la neige.

fonte_totalefloat

Fonte totale.

Returns

fontefloat

Eau liquide stockée dans la neige.

fonte_totalefloat

Total de la fonte de neige pendant l’hiver.

hsamiplus.hsami_interception.gel_sol(duree, dt_max, sol_min, sol, gel, neige_au_sol)[source]

Gel du sol en fonction de la température maximale.

Parameters

dureefloat

Nombre de pas de temps par jour.

dt_maxfloat

Températuret max - température de fonte.

sol_minfloat

Point de flétrissement permanent du sol.

solfloat

Eau dans le sol.

gelfloat

Eeau gelée dans le sol.

neige_au_solfloat

Neige au sol.

Returns

solfloat

Eeau dans le sol.

gelfloat

Eau gelée dans le sol.

hsamiplus.hsami_interception.hsami_interception(nb_pas, jj, param, meteo, etp, etat, modules, physio)[source]

Compute interception.

Parameters

nb_pasfloat

Nombre de pas de temps.

jjint

Jour julien.

paramlist

Paramètres pour la simulation.

meteodict

Données météorologiques pour la simulation.

etpfloat

Évapotranspiration potentielle du pas de temps (bassin et réservoir).

etatdict

États du bassin versants et du réservoir.

modulesdict

Les modules pour la simulation.

physiodict

Les données physiographiques.

Returns

eau_surfacefloat

Eau disponible à la surface pour évaporation, ruissellement et infiltration.

demande_eaufloat

Demande en eau restante.

etatdict

États du bassin versants et du réservoir.

apport_verticallist

Lames d’eau à moduler par les hydrogrammes unitaires.

hsamiplus.hsami_interception.mdj_alt(param, modules, meteo, physio, etat, apport_vertical, etr, duree, pdts, jj, pas_de_temps, efficacite_evapo_hiver, temp_fonte_jour, sol_min, sol, t_min, t_max, pluie, neige, soleil, demande_eau, demande_reservoir, neige_au_sol, fonte, derniere_neige, eeg, gel)[source]

Module “mdj” et “alt” pour calculer “een”.

Parameters

paramlist

Paramètres pour la simulation.

modulesdict

Les modules pour la simulation.

meteodict

Données météorologiques pour la simulation.

physiodict

Les données physiographiques peuvent être vides.

etatdict

États du bassin versants et du réservoir.

apport_verticallist

Lames d’eau à moduler par les hydrogrammes unitaires.

etrlist

Évapotranspiration et évaporation.

dureefloat

Fraction d’une journée correspondant à un pas de temps.

pdtsfloat

Pas de temps en secondes.

jjint

Jour julien.

pas_de_tempsint

Pas de temps.

efficacite_evapo_hiverfloat

Param[1].

temp_fonte_jourfloat

Param[4] en C.

sol_minfloat

Param[11].

solfloat

Reserve d’eau dans la zone non-saturée.

t_minfloat

Valeur extréme (observée ou prévue) sur 24h (Celcius).

t_maxfloat

Valeur extréme (observée ou prévue) sur 24h (Celcius).

pluiefloat

Total pour le pas de temps (cm).

neigefloat

Total pour le pas de temps (cm).

soleilint

Ensoleillement (observé ou prévu) pour la journée (entre 0 et 1).

demande_eaufloat

Demande en eau restante.

demande_reservoirfloat

Demande en eau restante pour le reservoir.

neige_au_solfloat

Équivalent en eau de la neige au sol incluant l’eau de fonte.

fontefloat

Eau liquide stockée dans la neige.

derniere_neigeint

Nombre de jours depuis la derniere neige.

eegflpoat

Équivalent en eau de la glace.

gelfloat

Eau gelée dans la zone non saturée.

Returns

eau_surfacefloat

Eau disponible à la surface pour évaporation, ruissellement et infiltration.

demande_eaufloat

Demande en eau restante.

etatdict

États du bassin versants et du réservoir.

etrlist

Évapotranspiration et évaporation.

apport_verticallist

Lames d’eau à moduler par les hydrogrammes unitaires.

hsamiplus.hsami_interception.percolation_eau_fonte(neige_au_sol, neige_au_sol_totale, fonte, fonte_totale)[source]

Calcul la percolation de l’eau de fonte dans la neige.

Parameters

neige_au_solfloat

Equivalent en eau de la neige au sol incluant l’eau de fonte.

neige_au_sol_totalefloat

Total des chutes de neige pendant l’hiver.

fontefloat

Eau liquide stockée dans la neige.

fonte_totalefloat

Total de la fonte de neige pendant l’hiver.

Returns

lamefloat

Eau qui s’écoule.

neige_au_solfloat

Neige au sol.

neige_au_sol_totalefloat

Total des chutes de neige pendant l’hiver.

fontefloat

Eau liquide stockée dans la neige.

fonte_totalefloat

Total de la fonte de neige pendant l’hiver.

hsamiplus.hsami_interception.pluie_neige(tmin, tmax, prec)[source]

Séparation de la précipitation en pluie et neige.

Parameters

tminfloat

Température minimale.

tmaxfloat

Température maximale.

precfloat

Précipitations.

Returns

pluiefloat

Pluie.

neigefloat

Neige.

Notes

Pluie_neige(tmin,tmax,prec) sépare la précipitation en pluie et neige selon l’algorithme suivant :

Puissque la valeur moyenne de tmin et tmax est inférieure à -2 deg C, la précipitation est complétement transformée en neige.

Puisque la valeur moyenne de la température est dans [-2,2] deg C, la précipitation est transformée en neige et pluie dans une proportion qui dépend linéairement de cette température i.e neige = alpha*prec et pluie = (1-alpha)*prec avec alpha = 0 à -2 deg C et alpha = 1 à +2 deg C.

Puisque la valeur moyenne de tmin et tmax est supérieure à +2 deg C, la précipitation est complétement transformée en pluie.

hsamiplus.hsami_mhumide module

The function simulates flow in wwetlands in HSAMI+ model.

hsamiplus.hsami_mhumide.hsami_mhumide(apport, param, etat, demande, etr, physio, superficie)[source]

Module de milieux humides.

Parameters

apportlist

Lames d’eau verticales (cm, voir hsami_interception).

paramlist

Paramètres pour la simulation.

etatdict

États du bassin versants et du réservoir.

demandefloat

Demande évaporative de l’atmosphére (cm).

etrlist

Composantes de l’évapotranspiration (cm, voir hsami_interception).

physiodict

Les données physiographiques peuvent être vides.

superficielist

La superficie du bassin versan et la uuperficie moyenne du réservoir.

Returns

apportlist

Lames d’eau verticales (cm, voir hsami_interception).

etatdict

États du bassin versants et du réservoir.

etrlist

Composantes de l’évapotranspiration (cm, voir hsami_interception).

hsamiplus.hsami_ruissellement_surface module

The script hsimulates the surface runoff in HSAMI+ model.

hsamiplus.hsami_ruissellement_surface.hsami_ruissellement_surface(nb_pas, param, etat, eau_surface, modules)[source]

Ruissellement de surface.

Parameters

nb_pasint

Nombre de pas de temps.

paramlist

Paramètres pour la simulation.

etatdict

États du bassin versants et du réservoir.

eau_surfacefloat

Quantité d’eau disponible en surface (cm).

modulesdict

Les modules pour la simulation.

Returns

ruissellement_surfacefloat

Quantité d’eau qui ruisselle (entre 0 et eau_surface, cm).

infiltrationfloat

Quantité d’eau qui pourra s’infiltrer (entre 0 et eau_surface, cm).

hsamiplus.hsamibin module

Fonction qui lit le fichier du projet, exécute et sauvegarde les sorties d’HSAMI.

hsamiplus.hsamibin.hsamibin(path, filename)[source]

Lecture de fichier du projet.

Parameters

pathstr

Emplacement du fichier de projet, ex ./data.

filenamestr

Nom du fichier projet, ex projet.json.

Returns

sdict

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.