Structuration du modèle

Les informations ci-dessous correspondent aux étapes dans l’onglet “Data” de qCEPHEE.

Détection des jonctions et exutoires

Les jonctions sont détectées automatiquement à partir d’une distance minimale minDistance comme argument de la méthode find_junctionAndOutlet. Les tronçons sont tous parcourus pour identifier ceux où leur aval est situé plus proche que la distance minimale des autres tronçons. On suppose qu’une jonction ne peut connecter que 3 tronçons. La cote de la jonction est alors stockées ainsi que les identifiants des tronçons. Ces identifiants seront modifiés lors d’étapes ultérieures pour mettre en cohérence avec la structure hydrographique. La variable junction est un geodataframe, chaque entité correspond à une jonction. Les attributs sont la cote, la liste des identifiants des tronçons connectés sous la forme “River_i”,”reach_i”..

Tous les exutoires possibles sur les dalles MNT sont obtenues par les points les plus bas des rivières. Ils se trouvent en général sur les frontières extérieures des dalles. Ces exutoires sont stockés même si celui du modèle sera celui fourni lors de la création du modelCatchment. la variable “list_of_outlet” est une liste dont chaque élément correspond à un exutoire. Chaque exutoire contient les éléments suivant : un point de position de l’éxutoire (X,Y), l’identifiant de la rivière, l’identifiant du tronçon directement connecté sous la forme [id rivière,id tronçon].

La méthode renameReachFromJunction permet de renommer l’ensemble des tronçons de l’aval vers l’amont (type HEC-RAS) en prenant en compte les jonctions. Les identifiants des tableaux junction et outlet sont aussi renommés automatiqueement.

Création des Reachs

On crée ensuite les objets Reach pour chacun des tronçons. Cela n’est pas fait pour tout le réseau mais uniquement pour le réseau connecté à un exutoire particulier. Une liste des reachs (class Reach) est attribuée à l’instance de la class ModelCatchment. Un geodataframe contenant les informations de chaque reach est associée aux instances de chaque reach.

Par défaut l’exutoire est celui donné en entrée du calcul mais on peut choisir un autre exutoire parmi la liste de tous ceux détectés à partir de la méthode setOutlet qui a comme argument les coordonnées de l’exutoire ou le numéro de l’exutoire dans la variable “outlet”. La méthode createReach instancie tous les objets Reach contenu dans la variable reach du bassin versant. La méthode interpolateRech crée pour chaque Reach , une ligne (LineString) ayant un espacement constant fixé par l’argument d’entrée de la méthode. Ces points interpolés seront les points d’intersections avec les futures sections en travers. L’espacement réel peut être légèrement modifié de façon à ce que les sections soient toutes espacées de la même distance. Les nouveaux points interpolés sont rajoutés à la ligne définie dans la géométrie du Reach (geodata[‘geometry’].