wolfhece.hydrology.PyWatershed
Author: HECE - University of Liege, Pierre Archambeau, Christophe Dessers Date: 2024
Copyright (c) 2024 University of Liege. All rights reserved.
This script and its content are protected by copyright law. Unauthorized copying or distribution of this file, via any medium, is strictly prohibited.
Module Contents
- wolfhece.hydrology.PyWatershed.LISTDEM = ['dem_before_corr', 'dem_after_corr', 'dem_10m', 'dem_20m', 'crosssection'][source]
- class wolfhece.hydrology.PyWatershed.Node_Watershed[source]
Noeud du modèle hydrologique maillé
- down: Node_Watershed[source]
- up: list[Node_Watershed][source]
- upriver: list[Node_Watershed][source]
- slope_down(threshold: float) float [source]
Recherche d’une pente supérieure à un seuil Parcours vers l’aval
- slope_upriver(threshold: float) float [source]
Recherche d’une pente supérieure à un seuil Parcours vers l’amont uniquement selon les rivières
- get_up_nodes(excluded_node: list[Node_Watershed] = [])[source]
Get all upstream nodes
- get_up_nodes_same_sub(excluded_node: list[Node_Watershed] = [])[source]
Get all upstream nodes in the same sub-basin
- class wolfhece.hydrology.PyWatershed.RiverSystem(rivers: list[Node_Watershed], parent: Watershed, thslopemin: float, thslopemax: float, savedir: str = '', computecorr: bool = False, *args, **kwargs)[source]
Classe du réseau de rivières d’un modèle hydrologique WOLF
- init_kdtree(nodes: list[Node_Watershed])[source]
Create a KDTree structure from coordinates
- get_nearest_nodes(xy: wolfhece.hydrology.read.np.ndarray | wolfhece.wolf_array.vector, nb: int = 1) tuple[wolfhece.hydrology.read.np.ndarray | float, list[Node_Watershed] | Node_Watershed] [source]
Return the distance and the nearest Node_Watershed
:param xy = np.ndarray - shape (n,2) :param nb = number of neighbors
return
- get_nodes_in_reaches(reaches: list[int]) list[Node_Watershed] [source]
Get nodes in a reaches
- get_downstream_node_in_reach(reach: int) Node_Watershed [source]
Get downstream node in a reach
- get_upstream_node_in_reach(reach: int) Node_Watershed [source]
Get upstream node in a reach
- get_downstream_reaches(node: Node_Watershed) list[int] [source]
Get index of downstream reaches
- get_kdtree_downstream(node: Node_Watershed) tuple[list[Node_Watershed], scipy.spatial.KDTree] [source]
Get KDTree of downstream reaches
- get_kdtree_from_reaches(reaches: list[int]) tuple[list[Node_Watershed], scipy.spatial.KDTree] [source]
Get KDTree from a list of reaches
- get_downstream_reaches_excluded(node: Node_Watershed, excluded: list[int]) list[int] [source]
Get index of downstream reaches, excepted the excluded ones
- go_downstream_until_reach_found(node: Node_Watershed, reach: int | list[int]) Node_Watershed [source]
Go downstream until a reach is found
- get_dem(whichdem: str, whichreach: int = None, whichup: int = None)[source]
Récupération de l’altitude pour une matrice spécifique
- get_dem_corr(whichdem: str, whichreach: int = None, whichup: int = None)[source]
Récupération de l’altitude corrigée pour une matrice spécifique
- get_slope(whichslope: str = None, whichreach: int = None, whichup: int = None)[source]
Récupération de la pente
- get_nearest_upstream(xy: wolfhece.hydrology.read.np.ndarray, nb: int) tuple[wolfhece.hydrology.read.np.ndarray, list[Node_Watershed]] [source]
Recherche des amonts les plus proches
- create_index()[source]
Incrément d’index depuis l’amont jusque l’exutoire final Parcours des mailles rivières depuis tous les amonts et Incrémentation d’une unité Résultat :
tous les biefs en amont sont à 1
Les autres biefs contiennent le nombre de biefs en amont
Indice de Strahler
- set_strahler_in_nodes(whichreach: int, strahler: int)[source]
Mise à jour de la propriété dans chaque noeud du bief
- selectmin()[source]
Sélection des valeurs minimales afin de conserver une topo décroissante vers l’aval –> une pente positive
- class wolfhece.hydrology.PyWatershed.RunoffSystem(runoff: list[Node_Watershed], parent: Watershed, thslopemin: float = None, thslopemax: float = None, computecorr: bool = False, *args, **kwargs)[source]
Classe de l’ensemble des mailles de ruissellement d’un modèle hydrologique WOLF
- nodes: list[Node_Watershed][source]
- get_oneup(idx: int) Node_Watershed [source]
Récupération d’un amont sur base de l’index
- class wolfhece.hydrology.PyWatershed.SubWatershed(parent: Watershed, name: str, idx: int, mask: wolfhece.wolf_array.WolfArray, nodes: list[Node_Watershed], runoff: list[Node_Watershed], rivers: list[Node_Watershed])[source]
Classe sous-bassin versant
- property outlet: Node_Watershed[source]
Outlet of the subbasin
- is_in_rivers(node: Node_Watershed) bool [source]
Vérification si un noeud est dans les rivières
- get_list_nodes_river(idx_reach: int) list[Node_Watershed] [source]
Récupération des noeuds d’une rivière
- get_nearest_river(x, y) Node_Watershed [source]
Récupération du noeud de rivière le plus proche
- get_max_area_in_reach(idx_reach: int) float [source]
Récupération de la surface maximale dans un bief
- get_min_area_in_reach(idx_reach: int) float [source]
Récupération de la surface minimale dans un bief
- get_min_area_along_reaches(reaches: list[int], starting_node: Node_Watershed = None) float [source]
Aire drainée à la limite amont du ss-bassin
- get_up_rivernode_outside_sub(starting_node: Node_Watershed, reaches: list[int]) Node_Watershed [source]
Récupération du noeud de rivière en amont du sous-bassin
- get_area_outside_sub_if_exists(starting_node: Node_Watershed, reaches: list[int]) float [source]
Aire drainée en amont du sous-bassin
- get_river_nodes_from_upareas(min_area: float, max_area: float) list[Node_Watershed] [source]
Récupération des noeuds de rivière entre deux surfacesde BV.
Les surfaces sont exprimées en km².
Les bornes sont incluses.
- Parameters:
min_area – surface minimale
max_area – surface maximale
- is_in_subwatershed(vec: wolfhece.wolf_array.vector) bool [source]
Vérification si un vecteur est dans le sous-bassin
- filter_zones(zones_to_filter: wolfhece.wolf_array.Zones, force_virtual_if_any: bool = False) list[wolfhece.wolf_array.vector] [source]
Filtrage des zones pour ne garder que celle se trouvant dans le sous-bassin
- get_virtual_subwatershed(outlet: Node_Watershed, excluded_nodes: list[Node_Watershed] = []) SubWatershed [source]
Création d’un sous-bassin virtuel sur base d’une maille rivière aval
- get_downstream_node_in_reach(reach: int) Node_Watershed [source]
Récupération du noeud aval dans un bief
- class wolfhece.hydrology.PyWatershed.Watershed(dir: str, thzmin: float = None, thslopemin: float = None, thzmax: float = None, thslopemax: float = None, crosssections: wolfhece.PyCrosssections.crosssections = None, computestats: bool = False, computecorr: bool = False, plotstats: bool = False, plotriversystem=False, dir_mnt_subpixels: str = None, *args, **kwargs)[source]
Classe bassin versant
- outlet: Node_Watershed[source]
- subs_array: wolfhece.wolf_array.WolfArray[source]
- nodes: list[Node_Watershed][source]
- rivers: list[Node_Watershed][source]
- runoff: list[Node_Watershed][source]
- subcatchments: list[SubWatershed][source]
- virtualcatchments: list[SubWatershed][source]
- riversystem: RiverSystem[source]
- runoffsystem: RunoffSystem[source]
- add_virtual_subwatershed(subwater: SubWatershed)[source]
Ajout d’un sous-bassin virtuel
- create_virtual_subwatershed(outlet: Node_Watershed, excluded_nodes: list[Node_Watershed] = [])[source]
Création d’un sous-bassin virtuel
- get_xy_downstream_node(starting_node: Node_Watershed, limit_to_sub: bool = False)[source]
Récupération des coordonnées du noeud aval
- get_xy_upstream_node(starting_node: Node_Watershed, limit_to_sub: bool = False, limit_to_river: bool = False, limit_to_runoff: bool = False) list[list[float]] [source]
Récupération des coordonnées des noeuds amont
- get_array_from_upstream_node(starting_node: Node_Watershed, limit_to_sub: bool = False)[source]
Récupération de l’array à partir d’un noeud amont
- get_vector_from_upstream_node(starting_node: Node_Watershed, limit_to_sub: bool = False)[source]
Return a vector contouring the upstream area
- get_subwatershed(idx_sorted_or_name: int | str) SubWatershed [source]
Récupération d’un sous-bassin sur base de l’index trié
- get_node_from_ij(i: int, j: int)[source]
Récupération d’un objet Node_Watershed sur base des indices (i,j)
- get_node_from_xy(x: float, y: float)[source]
Récupération d’un objet Node_Watershed sur base des coordonnées (x,y)
- find_rivers(whichsub: int = 0, whichreach: int = 0) tuple[list[Node_Watershed], Node_Watershed] [source]
Recherche des mailles rivières :param whichsub : numéro du sous-bassin à traiter :param whicreach : numéro du tronçon à identifier
- find_sub(whichsub: int = 0) list[Node_Watershed] [source]
Recherche des mailles du sous-bassin versant :param whichsub : numéro du sous-bassin à traiter
- find_runoffnodes(whichsub: int = 0) list[Node_Watershed] [source]
Recherche des mailles du bassin versant seul (sans les rivières) :param whichsub : numéro du sous-bassin à traiter
- find_flatnodes(listofsortednodes: list)[source]
Recherche des mailles dans des zones de faibles pentes :param listofsortednodes : liste triée de mailles
- find_flatzones(listofsortednodes: list, maxindex: int)[source]
Recherche des mailles dans des zones de faibles pentes :param listofsortednodes : liste triée de mailles
- get_subwatershed_from_ij(i: int, j: int) SubWatershed [source]
Récupération d’un sous-bassin sur base des indices (i,j)
- Returns:
SubWatershed : sous-bassin or None
- get_subwatershed_from_xy(x: float, y: float) SubWatershed [source]
Récupération d’un sous-bassin sur base des coordonnées (x,y)
- Returns:
SubWatershed : sous-bassin or None
- get_subwatershed_from_vector(vec: wolfhece.wolf_array.vector) tuple[SubWatershed, bool, list[SubWatershed]] [source]
Récupération d’un sous-bassin sur base d’un vecteur.
Recherche sur base du centroid du vecteur
- Parameters:
vec – vecteur
- Returns:
tuple(SubWatershed, bool, list[SubWatershed]) : sous-bassin, entièrement dans le sous-bassin, autres sous-bassins