wolfhece.hydrometry.kiwis
Author: HECE - University of Liege, Pierre Archambeau 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.hydrometry.kiwis.URL_SERVICE_WATERINFO = 'https://download.waterinfo.be/tsmdownload'[source]
- class wolfhece.hydrometry.kiwis.HICWS_GroupID[source]
Bases:
enum.Enum
Generic enumeration.
Derive from this class to define new enumerations.
- Astronomic_predictions_Scheldt_and_coastal_area = ('Astronomische voorspellingen reeksen Schelde en kust (LAT)', 512458)[source]
- Astronomic_predictions_Scheldt_and_coastal_area_high_res = ('AstroAstronomische voorspellingen reeksen Schelde en kust (mTAW)', 354718)[source]
- Astronomic_predictions_Scheldt_and_coastal_area_high_low = ('Astronomische voorspellingen Hoog-en laagwaters Schelde en kust (LAT)', 515316)[source]
- Astronomic_predictions_Scheldt_and_coastal_area_high_low_highres = ('Astronomische voorspellingen Hoog-en laagwaters Schelde en kust (mTAW)', 350099)[source]
- Calculated_Area_Precipitation = ('Berekende gebiedsneerslagen belangrijke meetlocaties HIC', 156159)[source]
- Forecast_Discharge_longterm_10d = ('Voorspellingen afvoer lange termijn (10 dagen)', 506059)[source]
- Forecast_area_48h = ('Voorspellingen berekende gebiedsneerslagen belangrijke meetlocaties HIC korte termijn (48u)', 506060)[source]
- class wolfhece.hydrometry.kiwis.WaterInfo_GroupdID[source]
Bases:
enum.Enum
Generic enumeration.
Derive from this class to define new enumerations.
- class wolfhece.hydrometry.kiwis.kiwis_command[source]
Bases:
enum.Enum
Generic enumeration.
Derive from this class to define new enumerations.
- class wolfhece.hydrometry.kiwis.kiwis_request_info[source]
Bases:
enum.Enum
Generic enumeration.
Derive from this class to define new enumerations.
- class wolfhece.hydrometry.kiwis.kiwis_token[source]
Bases:
enum.Enum
Generic enumeration.
Derive from this class to define new enumerations.
- class wolfhece.hydrometry.kiwis.kiwis_maintainers[source]
Bases:
enum.Enum
Generic enumeration.
Derive from this class to define new enumerations.
- class wolfhece.hydrometry.kiwis.kiwis_site_fields[source]
Bases:
enum.Enum
Generic enumeration.
Derive from this class to define new enumerations.
- class wolfhece.hydrometry.kiwis.kiwis_keywords_horq[source]
Bases:
enum.Enum
Generic enumeration.
Derive from this class to define new enumerations.
- class wolfhece.hydrometry.kiwis.kiwis_keywords_rain[source]
Bases:
enum.Enum
Generic enumeration.
Derive from this class to define new enumerations.
- class wolfhece.hydrometry.kiwis.kiwis_default_q[source]
Bases:
enum.Enum
Generic enumeration.
Derive from this class to define new enumerations.
- class wolfhece.hydrometry.kiwis.kiwis_default_h[source]
Bases:
enum.Enum
Generic enumeration.
Derive from this class to define new enumerations.
- class wolfhece.hydrometry.kiwis.kiwis_default_rain[source]
Bases:
enum.Enum
Generic enumeration.
Derive from this class to define new enumerations.
- class wolfhece.hydrometry.kiwis.kiwis_default_rain_Waterinfo[source]
Bases:
enum.Enum
Generic enumeration.
Derive from this class to define new enumerations.
- class wolfhece.hydrometry.kiwis.kiwis_default_rain_HIC[source]
Bases:
enum.Enum
Generic enumeration.
Derive from this class to define new enumerations.
- class wolfhece.hydrometry.kiwis.quality_code[source]
Bases:
enum.Enum
Generic enumeration.
Derive from this class to define new enumerations.
- class wolfhece.hydrometry.kiwis.station_fields[source]
Bases:
enum.Enum
Generic enumeration.
Derive from this class to define new enumerations.
- class wolfhece.hydrometry.kiwis.timeseries_fields[source]
Bases:
enum.Enum
Generic enumeration.
Derive from this class to define new enumerations.
- class wolfhece.hydrometry.kiwis.hydrometry(url: str = URL_SPW, urltoken: str = URL_TOKEN, credential='', dir='')[source]
- _get_commandstr(which: str, format='json')[source]
Construction de la commande à envoyer au serveur KIWIS
- daily_token()[source]
Get daily token to be identified on hydrometry website
#FIXME: better manage error as response
- save_struct(dir='')[source]
Sauvegarde des structures dans un répertoire
- Parameters:
dir – répertoire de sauvegarde
- _get_stations_pythonlist(site_no: str | int, onlyreal: bool = True, return_only_name: bool = False)[source]
Obtention des stations pour le site en liste python
- Parameters:
site_no – numéro du site
onlyreal – ne prendre que les stations réelles, pas les calculées
- get_stations()[source]
Obtention des stations pour le serveur courant.
Une requête sur le serveur KIWIS retourne les informations pour toutes les stations. Une séparation entre station réelle et station calculée est ensuite effectuée:
self.realstations
self.compstations
- Champs des stations :
site_no : numéro du site ; le site correspond au réseau de mesure : DGH pour les stations du SPW-MI et DCENN pour les stations du SPW-ARNE ;
station_no, station_name : code et nom de la station ;
station_local_x, station_local_y : coordonnées de la station en Lambert belge 1972 ;
station_latitude,station_longitude : coordonnées de la station en ETRS89 ;
river_name : nom de la rivière, cette information n’est disponible que pour les stations de mesure de hauteur d’eau et de débits, les pluviomètres ne sont pas installés sur une rivière – il n’y a donc pas de nom de rivière associé ;
parametertype_name : type de paramètre ;
ts_id, ts_name : code et nom de la chronique ;
ts_unitname, ts_unitsymbol : nom et symbole de l’unité de mesure ;
ca_sta&ca_sta_returnfields=BV_DCE : nom du bassin versant principal suivi de son abréviation (2 lettres)
- get_names_xy(site_no=None)[source]
Obtention des noms et coordonnées des stations pour le site
- Parameters:
site_no – numéro du site
- get_names_latlon(site_no=None)[source]
Obtention des noms et coordonnées des stations pour le site
- Parameters:
site_no – numéro du site
- select_inside(xll: float, yll: float, xur: float, yur: float, tolist=False)[source]
Recherche les stations dans une zone rectangulaire
- Parameters:
xll – X lower left - Lambert 72
yll – Y lower left - Lambert 72
xur – X upper right - Lambert 72
yur – Y upper right - Lambert 72
tolist – retourne une liste de noms et codes de stations et nom un dataframe
- Returns:
liste de noms et codes de stations ou dataframe
- select_inside_latlon(lonll: float, latll: float, lonur: float, latur: float, tolist=False)[source]
Recherche les stations dans une zone rectangulaire
- Parameters:
lonll – Longitude lower left - WGS84
latll – Latitude lower left - WGS84
lonur – Longitude upper right - WGS84
latur – Latitude upper right - WGS84
tolist – retourne une liste de noms et codes de stations et nom un dataframe
- Returns:
liste de noms et codes de stations ou dataframe
- sort_nearests(x: float, y: float)[source]
Trie les stations en fonction de la distance et retourne un index trié
- Parameters:
x – coordonnée x - Lambert 72
y – coordonnée y - Lambert 72
- sort_nearests_latlon(lon: float, lat: float)[source]
Trie les stations en fonction de la distance et retourne un index trié
- Parameters:
lon – longitude - WGS84
lat – latitude - WGS84
- find_nearest(x: float, y: float, tolist=False)[source]
Trouve la station la plus proche
- Parameters:
x – coordonnée x - Lambert 72
y – coordonnée y - Lambert 72
- find_nearest_latlon(lon: float, lat: float, tolist=False)[source]
Trouve la station la plus proche
- Parameters:
lon – longitude - WGS84
lat – latitude - WGS84
- get_timeseries_group(rfw: Literal[rain, waterdepth, flowrate], time: Literal[highres, 5min, 5or10min, 15min, 1h, 1d, 1m])[source]
Obtention des stations pour le groupe souhaité.
Temps retourné en UTC
- Parameters:
rfw – type de groupe - rain, flowrate, waterdepth
time – type de série - 5min, 5or10min, 1h, 1d, 1m
- get_timeseries_group_spw(rfw: Literal[rain, waterdepth, flowrate], time: Literal[5min, 5or10min, 1h, 1d, 1m])[source]
alias for get_timeseries_group
- get_timeseries_group_winfo_hic(group: WaterInfo_GroupdID | HICWS_GroupID)[source]
Obtention des stations pour le groupe souhaité.
Temps retourné en UTC
- Parameters:
group – type de groupe - see WaterInfo_GroupdID or HICWS_GroupID
- get_sites(forcerequest=False)[source]
Obtention des sites pour le serveur courant
- Parameters:
forcerequest – force la requête même si les données de cache sont déjà présentes
- get_groups(forcerequest=False)[source]
Obtention des groupes pour le serveur courant
- Parameters:
forcerequest – force la requête même si les données de cache sont déjà présentes
- get_requests(forcerequest=False)[source]
Obtention des requêtes possibles pour le serveur courant
- Parameters:
forcerequest – force la requête même si les données de cache sont déjà présentes
- print_requestinfo(which: kiwis_command)[source]
Affichage des informations pour une requête donnée
- Parameters:
which – requête à afficher
- timeseries_list(stationname: str = '', stationcode: str = '')[source]
Récupération de la liste des TimeSeries pour l’id d’une station soit via le nom de la station, soit via le code de la station.
- Parameters:
stationname – nom de la station
stationcode – code de la station
- save_all_lists(dir: str)[source]
Sauveragde des listes pour toutes les stations
- Parameters:
dir – répertoire de sauvegarde
- _get_filename_list(stationname: str = '', stationcode: str = '')[source]
retourne un nom de fichier avec la station et le code
Utile car dans certains noms de la BDD KIWIS il y a un caractère ‘/’ qui ne peut être utilisé comme nom de fichier Il est remplacé par ‘-’
- _get_filename_series(stationname: str = '', stationcode: str = '', which: kiwis_default_q | kiwis_default_h | kiwis_keywords_horq | kiwis_default_rain = kiwis_default_q.Q_FULL)[source]
retourne un nom de fichier avec la station et le code et le type de données
Utile car dans certains noms de la BDD KIWIS il y a un caractère ‘/’ qui ne peut être utilisé comme nom de fichier Il est remplacé par ‘-’
- save_list(stationname: str = '', stationcode: str = '', dir: str = '')[source]
Sauvegarde de la liste des des timeseries dans un fichier
- Parameters:
stationname – nom de la station
stationcode – code de la station
dir – répertoire de sauvegarde
- timeseries(stationname: str = '', stationcode: str = '', stationid: str = '', dir: str = '', fromdate=datetime.now() - timedelta(60), todate=datetime.now(), ts_name: str = '', ts_id: str = '', interval: int = 3600, timezone: str = 'GMT+0')[source]
- Récupération des valeurs d’une TimeSerie
sur base des dates
soit en donnant : - le nom de la station ou le code ET le nom de la timeserie –> dans ce cas, la routine commence par retrouver l’id de la ts - directement l’id de la timeserie
- Parameters:
stationname – nom de la station
stationcode – code de la station
dir – répertoire de sauvegarde
fromdate – date de début
todate – date de fin
ts_name – nom de la timeserie
ts_id – id de la timeserie
interval – intervalle de temps
timezone – timezone
- timeseries_qc(stationname: str = '', stationcode: str = '', dir: str = '', fromdate=datetime.now() - timedelta(60), todate=datetime.now(), ts_name: str = '', ts_id: str = '', interval: int = 3600, timezone: str = 'GMT+0')[source]
- Récupération des quality code d’une TimeSerie
sur base des dates
soit en donnant : - le nom de la station ou le code ET le nom de la timeserie –> dans ce cas, la routine commence par retrouver l’id de la ts - directement l’id de la timeserie
- Parameters:
stationname – nom de la station
stationcode – code de la station
dir – répertoire de sauvegarde
fromdate – date de début
todate – date de fin
ts_name – nom de la timeserie
ts_id – id de la timeserie
interval – intervalle de temps
timezone – timezone
- fromcsv(dir: str = 'spw', stationname: str = '', stationcode: str = '', which: kiwis_default_q | kiwis_default_h | kiwis_keywords_horq | kiwis_default_rain = kiwis_default_q.Q_FULL, fromdate: datetime.datetime = None, todate: datetime.datetime = None)[source]
Lecture depuis un fichier csv créé depuis un import précédent. Les fichiers doivent être disponibles depuis un sous-répertoire spw.
- Parameters:
dir – répertoire de sauvegarde
stationname – nom de la station
stationcode – code de la station
which – type de données
fromdate – date de début
todate – date de fin
- saveas(flow: pandas.Series, dir: str, stationname='', stationcode='', which: kiwis_default_q | kiwis_default_h | kiwis_keywords_horq | kiwis_default_rain = kiwis_default_q.Q_FULL)[source]
Sauvegarde d’une series pandas dans un fichier .csv
- Parameters:
flow – série pandas
dir – répertoire de sauvegarde
stationname – nom de la station
stationcode – code de la station
which – type de données
- get_stationid(name: str = '', code: str = '') int [source]
Récupération de l’id sur base du nom ou du code
- Parameters:
name – nom de la station
code – code de la station
- get_gauge_datum(name: str = '', code: str = '')[source]
Récupération de l’altitude de référence sur base du nom ou du code
- Parameters:
name – nom de la station
code – code de la station
- get_catchment_size(name: str = '', code: str = '')[source]
Récupération de la surface du BV de référence sur base du nom ou du code
- Parameters:
name – nom de la station
code – code de la station
- get_bv_dce(name: str = '', code: str = '')[source]
Récupération du nom de BV au sens de la DCE “Directive Cadre Eau” sur base du nom ou du code
- Parameters:
name – nom de la station
code – code de la station
- get_stationcode(name: str = '')[source]
Récupération du code sur base du nom
- Parameters:
name – nom de la station
- get_stationname(code: str = '')[source]
Récupération du nom sur base du code
- Parameters:
code – code de la station
- get_siteid(name: str = '', code: str = '')[source]
Récupération de l’id sur base du nom ou du code
- Parameters:
name – nom de la station
code – code de la station