Description technique des calculs hydrauliques
Cette partie décrit les méthodes associées à la classe “Section” qui permettent un calcul hydraulique. Elles sont dans la classe “Section” car elles ne font pas appel à la notion d’écoulement longitudinal. De plus ces méthodes peuvent générale pour l’utilsiation de la classe dans d’autres logiciels (ANDROMEDE). les fonctions pour les calculs hydrauliques se font dans la classe “Reach”. En effet un calcul de ligne d’eau n’a de cohérence qu’en prenant en compte l’évolution longitudinale des sections. Comme nous nous limitons au cas permanent, cela revient à considérer indépendammnt chaque tronçons. La consitence en débit est gérée par la fonction addQtosection ainsi que les autres fonctions dans le module Hydraulics. Les résultats hydrauliques sont eux stockées dans les instances de tronçons en cohérence avec leurs calculs.
Largeur au miroir
Pour déterminer les largeurs entre berges, on détermine les points d’intersections entre le fond et une ligne horizontale à la cote WS (water surface). Ce calcul est fait par la méthode “findBankPoint” qui possède 2 méthodes.
la méthode “levee” sélectionne uniquement les 2 points d’intersections les plus proches de part et d’autres de l’origine de la section en travers (points bas ou ligne du Reach).
la méthode “all” garde tous les points d’intersections et ajoute éventuellement les points extrêmes si nécessaire.
La méthode fournit une liste de tous les abscisses relatives (distances) des points d’intersections.
Interpolation de la section mouillée
Les sections peuvent être réinterpolées entre les points de berges issus de la méthode précédente. Cette interpolation sert au calcul hydraulique distribué sur la largeur. La méthode “interpDistributionLat” a comme arguments les positions des berges et le pas transversal d’interpolation. Si le pas transversal est de 0, cela signifie que l’on garde la distribution latérale fournit par les points de la ligne “line” de la section. On crée des points au milieu des sous sections définies par les points interpolés. Il ya donc n-1 sous sections. Les output de la méthode sont :
line_distr : LineString Z de la section avec comme point le centre des sous sections
dist_distr : distance transversale des centres de sous sections
manning_distr : valeur manning des sous sections interpolés à partir de données sur la section.
Wsextent : liste des 2 points extrêmes de la section mouillée
dist_point : distance transversale des points extrêmes des sous sections
z_point : cote des points extrêmes des sous sections
Calcul des grandeurs de la section mouillée
La méthode “computeHydraulicGeometry” permet de connaitre pour une cote donnée, la surface, le périmètre mouillé et le rayon hydraulique pour une sous section. On obtient également les valeurs moyennées sur la section. Si une loi de frottement autre que “Manning” est séelctionnée la transformation du paramètre d’entrée en vrai valeur de manning équivalent est faite dans cette méthode. Les valeurs dans “manning_distr” en sortie sont alors bien des coefficicents de manning alors que section.mannning contient les coefficients de frottement (par exemple des rugosités en mètre).
Format des résultats
Quatre types de calcul sont possibles même si 2 sont uniquement “hydrauliques”. Cependant ces 4 modes permettent de remplir de la même façon des dataframe de résultats associés à chaque tronçon et contenant les champs suivants :
ID: indice du tronçon [id rivière,id reach]
idSection : indice de la section de l’amont vers l’aval
Q : Débit dans la section lors du calcul
WSE : Elévation de la surface libre dans le calcul
CritDepth : Hauteur critique de la section pour le débit considéré
bank : position des berges
distance : position transversales des points de calculs ‘au milieu des sous sections’
h : hauteur d’eau aux points de calculs
A : aire mouillée des sous sections
P : périmètre mouillé des sous sections
Rh : rayon hydraulique des sous sections
V : vitesse aux points de calculs
Sf : gradient hydraulique (si 1D, pente du fond sinon)
Chaque ligne du dataframe correspond à une section du tronçon.
Quatre dataframes sont donc possibles pour un tronçon:
reach.resNormal : coorespondant aux résultats d’un calcul à hauteur normale.
reach.res1D : coorespondant aux résultats d’un calcul 1D.
reach.Himposed : coorespondant aux résultats d’un calcul avec une profondeur constante par section.
reach.Obs : coorespondant aux résultats issu directement d’observation.
Pente des tronçons
Pour les calculs “Normal Depth”, les pentes longitudinales des tronçons sont approximées par un polynome d’ordre 10 (compute_slope). Les pentes négatives sont imposées à 0,01 % pour éviter les contre pentes dans le calcul de hauteur normales. Cependant pour les calculs 1D, on utilise uniquement la pente mesurée qui peut donc être négative.
Calcul de hauteur normale
La fonction computeNormalAndCriticalDepth calcule la hauteur normale de chaque section et également la hauteur critique. Les valeurs hydrauliques (hauteur, vitesse) sont également stockées pour chaque sous sections de calcul.
Calcul de ligne d’eau permanente
La fonction backWaterProfile calcule la hauteur d’eau de chaque section et également la hauteur critique. Ce calcul est basé sur une résolution de l’équation de la charge sous forme intégrale de façon similaire au calcul dans HECRAS. La résolution numérique se fait par dichotomie. Les paramètres numériques sont accessibles uniquement hors interface dans le fichier paramètre. Il s’agit des bornes inférieures et supérieures du calcul, le nombre d’itération maximale ainsi que le critère de convregence. Les paramètres par défaut devraient couvrir une large gamme de configuration. Neanmoins on peut les modifier dans le fichier parametre.py du fichier .zip. Il faut ensuite réinstaller le plugin. Le calcul 1D permet d’avoir une estimation plus réaliste des cotes de l’eau , en particulier avec des ouvrages en travers. Il est indispensable pour avoir des champs de vitesse pertinent pour un export vers Habby et les problématique d’habitat piscicole. CEpendant, l’utilisateur peut choisir de faire ces calculs sur un autre logiciel à partir de l’export de géométrie fait automatiquement. Pour chaque section la hauteur critique est calculé, ainsi si une hauteur torrentielle devrait apparaitre dansle calcul elle est automatiqueemnt remplacé par la hauteur critique + 5cm . Cela permet la poursuite du calcul même si sur cette section la cote de la surface est fausse (idem méthode HECRAS).
Detection des ouvrages en travers
On ne détecte pas exactement les ouvrages mais les ruptures de pentes entre 2 sections consécutives. Une pente supérieure au paramètre param[‘H’][‘slope_structure’] (uniquement en CLI) permet d’attribuer à la section amont le type inline_structure. Un fichier shapefile est crée dans le répertoire de travail où sont enregistrés la position des structures ainsi que d’un coeffcient de débit, une largeur et une cote de déversement. Ces paramètres sont modifiables (par exemple sous QGIS). Les fichiers “inline_structure.shp” n’est pas associé à une instance de BV, il peut donc servir à plusieurs projets. Lors d’un calcul hydrauliques 1D , la loi de manning pour les sections inline_structure est remplacée par une loi de seuil dénoyé classique. Le type de sections peut change à chaque nouveau calcul. Ainsi si le fichier inline_structure/shp n’exste pas la section redevient une section normale.