Belastingen inladen
Om inzicht te krijgen in de veiligheid van waterkeringen is het van belang om de belastingen op de waterkeringen in kaart te brengen. Dit kunnen waterstanden op het buitenwater (zee, rivieren of meren) zijn, maar ook grondwaterstanden.
In dit voorbeeld wordt het inlezen van waterstanden uit verschillende bronsystemen getoond: - RWS Waterinfo - FEWS - (Noos) Matroos - RWS WaterWebServices
Hierbij wordt gebruik gemaakt van csv bestanden voor uitwisselen van data.
Benodigde generieke Python packages
from pathlib import Path
Definitie configuratie: CSV bestanden
GlobalVariables:
rootdir: "data_demo"
moments: [-24,0,24,48]
LoadsWaterinfo:
parameters: ["waterhoogte"]
MISSING_VALUE: 999
LoadsFews:
host: "https://fews.hhnk.nl"
port: 443
region: "fewspiservice"
version: "1.25"
filter: "HHNK_WEB"
parameters: ["WATHTE [m][NAP][OW]", "WINDRTG [deg]"]
aquo_equivalent: ["WATHTE","WINDRTG"]
MISSING_VALUE: 999
LoadsMatroos:
website: "vitaal"
model: "dcsm6_kf"
parameters: ["WATHTE"]
MISSING_VALUE: 999
LoadsWaterwebservicesRWS:
parameters: ["WATHTE"]
MISSING_VALUE: 999
DataAdapter:
default_options:
csv_source:
sep: ";"
csv:
sep: ","
BelastingLocaties_WaterInfo:
type: csv_source
filter: "WaterInfo"
path: "locaties.csv"
Waterstanden_WaterInfo:
type: csv
path: "waterstanden_waterinfo.csv"
BelastingLocaties_FEWS:
type: csv_source
filter: "FEWS"
path: "locaties.csv"
Waterstanden_FEWS:
type: csv
path: "waterstanden_fews.csv"
BelastingLocaties_Matroos:
type: csv_source
filter: "NOOS Matroos"
path: "locaties.csv"
Waterstanden_Matroos:
type: csv
path: "waterstanden_matroos.csv"
BelastingLocaties_Waterwebservices_RWS:
type: csv_source
filter: "RWS Waterwebservices"
path: "locaties.csv"
Waterstanden_Waterwebservices_RWS:
type: csv
path: "waterstanden_waterwebservices_rws.csv"
Lees configuratie in en maak dictionary base.Config aan
from toolbox_continu_inzicht import Config
= "demo_sprint2-I.yaml"
yaml_config_file = Path.cwd() / "data_demo" / yaml_config_file
path = Config(config_path=path)
config config.lees_config()
Geef config mee aan base.Adapter
from toolbox_continu_inzicht import DataAdapter
= DataAdapter(config=config)
data print(f"Folder met data: {data.config.config_path}")
print(f"Globale variabelen: {data.config.global_variables}")
for data_adapter in data.config.data_adapters:
print(f"Data apdater: {data_adapter}")
Folder met data: D:-continu-inzicht-continu-inzicht_inzicht_demo_sprint2-I.yaml Globale variabelen: {‘rootdir’: ‘data_demo’, ‘moments’: [-24, 0, 24, 48], ‘aquo_allias’: {‘WATHTE [m][NAP][OW]’: ‘WATHTE’}, ‘LoadsWaterinfo’: {‘parameters’: [‘waterhoogte’], ‘MISSING_VALUE’: 999}, ‘LoadsFews’: {‘host’: ‘https://fews.hhnk.nl’, ‘port’: 443, ‘region’: ‘fewspiservice’, ‘version’: ‘1.25’, ‘filter’: ‘HHNK_WEB’, ‘parameters’: [‘WATHTE [m][NAP][OW]’], ‘MISSING_VALUE’: 999}, ‘LoadsMatroos’: {‘website’: ‘noos’, ‘model’: ‘dcsm6_kf’, ‘parameters’: [‘WATHTE’], ‘MISSING_VALUE’: 999}, ‘LoadsWaterwebservicesRWS’: {‘parameters’: [‘WATHTE’], ‘MISSING_VALUE’: 999}, ‘calc_time’: datetime.datetime(2025, 8, 13, 15, 0, tzinfo=datetime.timezone.utc)} Data apdater: default_options Data apdater: BelastingLocaties_WaterInfo Data apdater: Waterstanden_WaterInfo Data apdater: BelastingLocaties_FEWS Data apdater: Waterstanden_FEWS Data apdater: BelastingLocaties_Matroos Data apdater: Waterstanden_Matroos Data apdater: BelastingLocaties_Waterwebservices_RWS Data apdater: Waterstanden_Waterwebservices_RWS
Invoerbestand (CSV) met data van belastinglocaties
De functie verwacht de volgende verplichte velden, dit wordt ook wel een schema genoemd in de code: - measurement_location_id: int64 - measurement_location_code: object (string) - measurement_location_description: object (string)
Het csv bestand ziet er als volgt uit:
measurement_location_id;measurement_location_code;measurement_location_description;source;tide\
1;Pannerdense-kop(PANN);Pannerdense kop;WaterInfo;false\
2;MPN-N-24;Meetpunt Spijkerboor;FEWS;false\
3;hoekvanholland;Hoek van Holland;NOOS Matroos;true\
4;9889;Hintham beneden;RWS Waterwebservices;false
Laad module (functie) LoadsWaterinfo voor inlezen belastingen uit RWS Waterinfo
from toolbox_continu_inzicht.loads import LoadsWaterinfo
= LoadsWaterinfo(data_adapter=data) waterinfo
Run module (functie) LoadsWaterinfo voor inlezen waterstanden uit Waterinfo
Zoek op basis van een measurement_location_code die in RWS WaterInfo overeenkomt met ‘locationCodes’
= waterinfo.run(input="BelastingLocaties_WaterInfo", output="Waterstanden_WaterInfo") ds
= waterinfo.df_in
measuringlocations measuringlocations
measurement_location_id | measurement_location_code | measurement_location_description | source | tide | |
---|---|---|---|---|---|
0 | 1 | Pannerdense-kop(PANN) | Pannerdense kop | WaterInfo | False |
= waterinfo.df_out
waterlevels waterlevels
measurement_location_id | measurement_location_code | measurement_location_description | parameter_id | parameter_code | parameter_description | unit | date_time | value | value_type | |
---|---|---|---|---|---|---|---|---|---|---|
152 | 1 | Pannerdense-kop(PANN) | Pannerdense kop | 4724 | WATHTE | Waterhoogte Oppervlaktewater t.o.v. Normaal Am... | cm | 2025-08-12 15:00:00+00:00 | 820.0 | meting |
153 | 1 | Pannerdense-kop(PANN) | Pannerdense kop | 4724 | WATHTE | Waterhoogte Oppervlaktewater t.o.v. Normaal Am... | cm | 2025-08-12 15:10:00+00:00 | 821.0 | meting |
154 | 1 | Pannerdense-kop(PANN) | Pannerdense kop | 4724 | WATHTE | Waterhoogte Oppervlaktewater t.o.v. Normaal Am... | cm | 2025-08-12 15:20:00+00:00 | 821.0 | meting |
155 | 1 | Pannerdense-kop(PANN) | Pannerdense kop | 4724 | WATHTE | Waterhoogte Oppervlaktewater t.o.v. Normaal Am... | cm | 2025-08-12 15:30:00+00:00 | 820.0 | meting |
156 | 1 | Pannerdense-kop(PANN) | Pannerdense kop | 4724 | WATHTE | Waterhoogte Oppervlaktewater t.o.v. Normaal Am... | cm | 2025-08-12 15:40:00+00:00 | 820.0 | meting |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
526 | 1 | Pannerdense-kop(PANN) | Pannerdense kop | 4724 | WATHTE | Waterhoogte verwacht Oppervlaktewater t.o.v. N... | cm | 2025-08-15 03:20:00+00:00 | 788.0 | verwachting |
527 | 1 | Pannerdense-kop(PANN) | Pannerdense kop | 4724 | WATHTE | Waterhoogte verwacht Oppervlaktewater t.o.v. N... | cm | 2025-08-15 03:30:00+00:00 | 788.0 | verwachting |
528 | 1 | Pannerdense-kop(PANN) | Pannerdense kop | 4724 | WATHTE | Waterhoogte verwacht Oppervlaktewater t.o.v. N... | cm | 2025-08-15 03:40:00+00:00 | 788.0 | verwachting |
529 | 1 | Pannerdense-kop(PANN) | Pannerdense kop | 4724 | WATHTE | Waterhoogte verwacht Oppervlaktewater t.o.v. N... | cm | 2025-08-15 03:50:00+00:00 | 788.0 | verwachting |
530 | 1 | Pannerdense-kop(PANN) | Pannerdense kop | 4724 | WATHTE | Waterhoogte verwacht Oppervlaktewater t.o.v. N... | cm | 2025-08-15 04:00:00+00:00 | 788.0 | verwachting |
379 rows × 10 columns
Laad en run module (functie) LoadsFEWS voor inlezen belastingen uit FEWS
Zoek op basis van een measurement_location_code die in FEWS overeenkomt met ‘locationId’
FEWS is niet extern bereikbaar en kan dus niet in de documentatie worden getoond
# from toolbox_continu_inzicht.loads import LoadsFews
# fews = LoadsFews(data_adapter=data)
# ds = fews.run(input="BelastingLocaties_FEWS", output="Waterstanden_FEWS")
# measuringlocations = fews.df_in
# measuringlocations
# waterlevels = fews.df_out
# waterlevels
Laad en run module (functie) LoadsMatroos voor inlezen belastingen uit Matroos
Zoek op basis van een measurement_location_code die in (NOOS) Matroos overeenkomt met ‘Location’ -> loc_id!
from toolbox_continu_inzicht.loads import LoadsMatroos
= LoadsMatroos(data_adapter=data)
matroos = matroos.run(input="BelastingLocaties_Matroos", output="Waterstanden_Matroos") ds
= matroos.df_in
measuringlocations measuringlocations
measurement_location_id | measurement_location_code | measurement_location_description | source | tide | |
---|---|---|---|---|---|
2 | 3 | Hoek van Holland | Hoek van Holland | NOOS Matroos | True |
= matroos.df_out
waterlevels waterlevels
measurement_location_id | measurement_location_code | measurement_location_description | parameter_id | parameter_code | date_time | unit | value | value_type | |
---|---|---|---|---|---|---|---|---|---|
0 | 3 | Hoek van Holland | Hoek van Holland | 4724 | WATHTE | 2025-08-12 15:00:00+00:00 | cm | 86.15 | meting |
1 | 3 | Hoek van Holland | Hoek van Holland | 4724 | WATHTE | 2025-08-12 15:10:00+00:00 | cm | 99.85 | meting |
2 | 3 | Hoek van Holland | Hoek van Holland | 4724 | WATHTE | 2025-08-12 15:20:00+00:00 | cm | 108.34 | meting |
3 | 3 | Hoek van Holland | Hoek van Holland | 4724 | WATHTE | 2025-08-12 15:30:00+00:00 | cm | 117.21 | meting |
4 | 3 | Hoek van Holland | Hoek van Holland | 4724 | WATHTE | 2025-08-12 15:40:00+00:00 | cm | 123.30 | meting |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
410 | 3 | Hoek van Holland | Hoek van Holland | 4724 | WATHTE | 2025-08-15 11:20:00+00:00 | cm | -17.47 | verwachting |
411 | 3 | Hoek van Holland | Hoek van Holland | 4724 | WATHTE | 2025-08-15 11:30:00+00:00 | cm | -18.00 | verwachting |
412 | 3 | Hoek van Holland | Hoek van Holland | 4724 | WATHTE | 2025-08-15 11:40:00+00:00 | cm | -19.28 | verwachting |
413 | 3 | Hoek van Holland | Hoek van Holland | 4724 | WATHTE | 2025-08-15 11:50:00+00:00 | cm | -22.34 | verwachting |
414 | 3 | Hoek van Holland | Hoek van Holland | 4724 | WATHTE | 2025-08-15 12:00:00+00:00 | cm | -25.36 | verwachting |
415 rows × 9 columns
Laad en run module (functie) LoadsWaterwebservicesRWS voor inlezen belastingen uit RWS Waterwebservices
Zoek op basis van een measurement_location_code die in RWS WaterWebservices overeenkomt met Locatie_MessageID!
from toolbox_continu_inzicht.loads import LoadsWaterwebservicesRWS
= LoadsWaterwebservicesRWS(data_adapter=data)
waterwebservices_rws = waterwebservices_rws.run(
ds input="BelastingLocaties_Waterwebservices_RWS",
="Waterstanden_Waterwebservices_RWS",
output )
= waterwebservices_rws.df_in
measuringlocations measuringlocations
measurement_location_id | measurement_location_code | measurement_location_description | source | tide | |
---|---|---|---|---|---|
3 | 4 | 9889 | Hintham beneden | RWS Waterwebservices | False |
= waterwebservices_rws.df_out
waterlevels waterlevels
measurement_location_id | measurement_location_code | measurement_location_description | parameter_id | parameter_code | date_time | unit | value | value_type | |
---|---|---|---|---|---|---|---|---|---|
0 | 4 | 9889 | Hintham beneden | 4724 | WATHTE | 2025-08-12 17:00:00+01:00 | cm | 202.0 | meting |
1 | 4 | 9889 | Hintham beneden | 4724 | WATHTE | 2025-08-12 17:10:00+01:00 | cm | 199.0 | meting |
2 | 4 | 9889 | Hintham beneden | 4724 | WATHTE | 2025-08-12 17:20:00+01:00 | cm | 202.0 | meting |
3 | 4 | 9889 | Hintham beneden | 4724 | WATHTE | 2025-08-12 17:30:00+01:00 | cm | 202.0 | meting |
4 | 4 | 9889 | Hintham beneden | 4724 | WATHTE | 2025-08-12 17:40:00+01:00 | cm | 202.0 | meting |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
136 | 4 | 9889 | Hintham beneden | 4724 | WATHTE | 2025-08-13 15:40:00+01:00 | cm | 203.0 | meting |
137 | 4 | 9889 | Hintham beneden | 4724 | WATHTE | 2025-08-13 15:50:00+01:00 | cm | 197.0 | meting |
138 | 4 | 9889 | Hintham beneden | 4724 | WATHTE | 2025-08-13 16:00:00+01:00 | cm | 201.0 | meting |
139 | 4 | 9889 | Hintham beneden | 4724 | WATHTE | 2025-08-13 16:10:00+01:00 | cm | 203.0 | verwachting |
140 | 4 | 9889 | Hintham beneden | 4724 | WATHTE | 2025-08-13 16:20:00+01:00 | cm | 199.0 | verwachting |
141 rows × 9 columns