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

path = Path.cwd() / "data_sets" / "2.belastingen_inladen"
yaml_config_file = "demo_sprint2-I.yaml"
config_path = path / yaml_config_file
config = Config(config_path=config_path)
config.lees_config()

Geef config mee aan base.Adapter

from toolbox_continu_inzicht import DataAdapter

data_adapter = DataAdapter(config=config)
print(f"Folder met data: {data_adapter.config.config_path}")
print(f"Globale variabelen: {data_adapter.config.global_variables}")
for data in data_adapter.config.data_adapters:
    print(f"Data apdater: {data}")

Folder met data: D:-continu-inzicht-continu-inzicht_inzicht_sets\2.belastingen_inladen_sprint2-I.yaml Globale variabelen: {‘rootdir’: ‘data_sets/2.belastingen_inladen’, ‘moments’: [-24, 0, 24, 48], ‘aquo_alias’: {‘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(2026, 3, 12, 8, 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;3450;rosmalen.hinthamsluis.boven;RWS Waterwebservices;false

Laad module (functie) LoadsWaterinfo voor inlezen belastingen uit RWS Waterinfo

from toolbox_continu_inzicht.loads import LoadsWaterinfo

waterinfo = LoadsWaterinfo(data_adapter=data_adapter)

Run module (functie) LoadsWaterinfo voor inlezen waterstanden uit Waterinfo

Zoek op basis van een measurement_location_code die in RWS WaterInfo overeenkomt met ‘locationCodes’

ds = waterinfo.run(input="BelastingLocaties_WaterInfo", output="Waterstanden_WaterInfo")
measuringlocations = waterinfo.df_in
measuringlocations
measurement_location_id measurement_location_code measurement_location_description source tide
0 1 lobith.bovenrijn.tolkamer Lobith Bovenrijn Tolkamer WaterInfo False
waterlevels = waterinfo.df_out
waterlevels
measurement_location_id measurement_location_code measurement_location_description parameter_id parameter_code parameter_description unit date_time value value_type
145 1 lobith.bovenrijn.tolkamer Lobith Bovenrijn Tolkamer 4724 WATHTE Waterhoogte in Oppervlaktewater t.o.v. Normaal... cm 2026-03-11 08:00:00+00:00 909.0 meting
146 1 lobith.bovenrijn.tolkamer Lobith Bovenrijn Tolkamer 4724 WATHTE Waterhoogte in Oppervlaktewater t.o.v. Normaal... cm 2026-03-11 08:10:00+00:00 909.0 meting
147 1 lobith.bovenrijn.tolkamer Lobith Bovenrijn Tolkamer 4724 WATHTE Waterhoogte in Oppervlaktewater t.o.v. Normaal... cm 2026-03-11 08:20:00+00:00 909.0 meting
148 1 lobith.bovenrijn.tolkamer Lobith Bovenrijn Tolkamer 4724 WATHTE Waterhoogte in Oppervlaktewater t.o.v. Normaal... cm 2026-03-11 08:30:00+00:00 909.0 meting
149 1 lobith.bovenrijn.tolkamer Lobith Bovenrijn Tolkamer 4724 WATHTE Waterhoogte in Oppervlaktewater t.o.v. Normaal... cm 2026-03-11 08:40:00+00:00 909.0 meting
... ... ... ... ... ... ... ... ... ... ...
559 1 lobith.bovenrijn.tolkamer Lobith Bovenrijn Tolkamer 4724 WATHTE Waterhoogte verwachting in Oppervlaktewater t.... cm 2026-03-14 04:20:00+00:00 890.0 verwachting
560 1 lobith.bovenrijn.tolkamer Lobith Bovenrijn Tolkamer 4724 WATHTE Waterhoogte verwachting in Oppervlaktewater t.... cm 2026-03-14 04:30:00+00:00 890.0 verwachting
561 1 lobith.bovenrijn.tolkamer Lobith Bovenrijn Tolkamer 4724 WATHTE Waterhoogte verwachting in Oppervlaktewater t.... cm 2026-03-14 04:40:00+00:00 890.0 verwachting
562 1 lobith.bovenrijn.tolkamer Lobith Bovenrijn Tolkamer 4724 WATHTE Waterhoogte verwachting in Oppervlaktewater t.... cm 2026-03-14 04:50:00+00:00 890.0 verwachting
563 1 lobith.bovenrijn.tolkamer Lobith Bovenrijn Tolkamer 4724 WATHTE Waterhoogte verwachting in Oppervlaktewater t.... cm 2026-03-14 05:00:00+00:00 890.0 verwachting

419 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’
image info

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_adapter)
# 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

matroos = LoadsMatroos(data_adapter=data_adapter)
ds = matroos.run(input="BelastingLocaties_Matroos", output="Waterstanden_Matroos")
measuringlocations = matroos.df_in
measuringlocations
measurement_location_id measurement_location_code measurement_location_description source tide
2 3 Hoek van Holland Hoek van Holland NOOS Matroos True
waterlevels = matroos.df_out
waterlevels

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!
image info

from toolbox_continu_inzicht.loads import LoadsWaterwebservicesRWS

waterwebservices_rws = LoadsWaterwebservicesRWS(data_adapter=data_adapter)
ds = waterwebservices_rws.run(
    input="BelastingLocaties_Waterwebservices_RWS",
    output="Waterstanden_Waterwebservices_RWS",
)
measuringlocations = waterwebservices_rws.df_in
measuringlocations
measurement_location_id measurement_location_description source tide measurement_location_code_name
measurement_location_code
3450 4 rosmalen.hinthamsluis.boven RWS Waterwebservices False rosmalen.hinthamsluis.boven
waterlevels = waterwebservices_rws.df_out
waterlevels
measurement_location_id measurement_location_code measurement_location_description parameter_id parameter_code date_time unit value value_type
0 4 rosmalen.hinthamsluis.boven Rosmalen Hinthamsluis boven 4724 WATHTE 2026-03-11 09:00:00+01:00 cm 468.0 meting
1 4 rosmalen.hinthamsluis.boven Rosmalen Hinthamsluis boven 4724 WATHTE 2026-03-11 09:10:00+01:00 cm 465.0 meting
2 4 rosmalen.hinthamsluis.boven Rosmalen Hinthamsluis boven 4724 WATHTE 2026-03-11 09:20:00+01:00 cm 461.0 meting
3 4 rosmalen.hinthamsluis.boven Rosmalen Hinthamsluis boven 4724 WATHTE 2026-03-11 09:30:00+01:00 cm 468.0 meting
4 4 rosmalen.hinthamsluis.boven Rosmalen Hinthamsluis boven 4724 WATHTE 2026-03-11 09:40:00+01:00 cm 476.0 meting
... ... ... ... ... ... ... ... ... ...
142 4 rosmalen.hinthamsluis.boven Rosmalen Hinthamsluis boven 4724 WATHTE 2026-03-12 08:50:00+01:00 cm 470.0 meting
143 4 rosmalen.hinthamsluis.boven Rosmalen Hinthamsluis boven 4724 WATHTE 2026-03-12 09:00:00+01:00 cm 469.0 meting
144 4 rosmalen.hinthamsluis.boven Rosmalen Hinthamsluis boven 4724 WATHTE 2026-03-12 09:10:00+01:00 cm 469.0 verwachting
145 4 rosmalen.hinthamsluis.boven Rosmalen Hinthamsluis boven 4724 WATHTE 2026-03-12 09:20:00+01:00 cm 471.0 verwachting
146 4 rosmalen.hinthamsluis.boven Rosmalen Hinthamsluis boven 4724 WATHTE 2026-03-12 09:30:00+01:00 cm 474.0 verwachting

147 rows × 9 columns