Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incorrect extreme values for BERGSDSWT and others #43

Open
veenstrajelmer opened this issue May 17, 2024 · 56 comments
Open

Incorrect extreme values for BERGSDSWT and others #43

veenstrajelmer opened this issue May 17, 2024 · 56 comments
Labels

Comments

@veenstrajelmer
Copy link

veenstrajelmer commented May 17, 2024

When assessing the extremes for BERGSDSWT, there are some extremes too close to each other. Further inspection of one of the instances shows that there are incorrect values present in the timeseries. In this particular example the timestamps 1996-07-05 00:20:00+01:00 and 1996-07-05 01:09:00+01:00 are too close toghether and have different values (-189 vs -207). All metadata is exactly equal.

import ddlpy
import matplotlib.pyplot as plt
plt.close("all")

locations = ddlpy.locations()
bool_hoedanigheid = locations['Hoedanigheid.Code'].isin(['NAP'])
bool_stations = locations.index.isin(['BERGSDSWT'])
bool_grootheid = locations['Grootheid.Code'].isin(['WATHTE'])
bool_groepering_ts = locations['Groepering.Code'].isin(['NVT'])
bool_groepering_ext = locations['Groepering.Code'].isin(['GETETBRKDMSL2', 'GETETBRKD2', 'GETETMSL2', 'GETETM2'])
selected_ts = locations.loc[bool_grootheid & bool_hoedanigheid & bool_groepering_ts & bool_stations]
selected_ext = locations.loc[bool_grootheid & bool_hoedanigheid & bool_groepering_ext & bool_stations]

start_date = "1996-07-04"
end_date = "1996-07-06"
# pass a single row of the locations dataframe to the measurements function to get the measurements for that location
measurements_ts = ddlpy.measurements(selected_ts.iloc[0], start_date, end_date)
measurements_ext = ddlpy.measurements(selected_ext.iloc[0], start_date, end_date)

fig, ax = plt.subplots(figsize=(13,6))
ax.plot(measurements_ts['Meetwaarde.Waarde_Numeriek'], label="waterlevel")
ax.plot(measurements_ext['Meetwaarde.Waarde_Numeriek'], "xr", markersize=10, label="extremes")
ax.grid()
fig.tight_layout()
ax.legend(loc=1)

print(ddlpy.simplify_dataframe(measurements_ext))

Results in this dataframe:

                           Meetwaarde.Waarde_Numeriek Meetwaarde.Waarde_Alfanumeriek
time                                                                                
1996-07-04 05:45:00+01:00                       214.0                            214
1996-07-04 11:45:00+01:00                      -142.0                           -142
1996-07-04 17:57:00+01:00                       211.0                            211
1996-07-05 00:20:00+01:00                      -189.0                           -189
1996-07-05 01:09:00+01:00                      -207.0                           -207
1996-07-05 06:35:00+01:00                       216.0                            216
1996-07-05 12:24:00+01:00                      -147.0                           -147
1996-07-05 18:55:00+01:00                       213.0                            213
1996-07-06 01:12:00+01:00                      -196.0                           -196

And the figure clearly shows the the additional low water with a distance from the waterlevel timeseries:
image
This additional extreme also does not overlap with grootheid WATHTBRKD or WATHTASTRO (latter is empty).

The above can be filtered out by checking for small time differences between extremes. Time differences smaller than 4 hours also occur for the following timestamps for this station:

DatetimeIndex(['1992-01-01 00:50:00', '1996-07-05 01:09:00',
               '1996-10-29 23:15:00', '2007-11-09 00:05:00',
               '2014-10-22 08:56:00', '2018-01-03 22:25:00',
               '2020-02-10 22:55:00', '2022-01-31 21:25:00'],
              dtype='datetime64[ns]', name='time', freq=None)

Also happens for different stations
This happens also for other stations (the variable dict_tdiff_toosmall_times is a dictionary with all times that are too close for each station). This is also included in kenmerkendewaarden.derive_statistics() for datasets with extremes:

import os
import xarray as xr
import pandas as pd

start_date = "1870-01-01"
end_date = "2024-01-01"

dir_base = r"p:\11210325-005-kenmerkende-waarden\work"
dir_meas = os.path.join(dir_base,f"measurements_wl_{start_date.replace('-','')}_{end_date.replace('-','')}")

station_list_tk = ['A12','AWGPFM','BAALHK','BATH','BERGSDSWT','BROUWHVSGT02','BROUWHVSGT08','GATVBSLE','BRESKVHVN','CADZD','D15','DELFZL','DENHDR','EEMSHVN','EURPFM','F16','F3PFM','HARVT10','HANSWT','HARLGN','HOEKVHLD','HOLWD','HUIBGT','IJMDBTHVN','IJMDSMPL','J6','K13APFM','K14PFM','KATSBTN','KORNWDZBTN','KRAMMSZWT','L9PFM','LAUWOG','LICHTELGRE','MARLGT','NES','NIEUWSTZL','NORTHCMRT','DENOVBTN','OOSTSDE04','OOSTSDE11','OOSTSDE14','OUDSD','OVLVHWT','Q1','ROOMPBNN','ROOMPBTN','SCHAARVDND','SCHEVNGN','SCHIERMNOG','SINTANLHVSGR','STAVNSE','STELLDBTN','TERNZN','TERSLNZE','TEXNZE','VLAKTVDRN','VLIELHVN','VLISSGN','WALSODN','WESTKPLE','WESTTSLG','WIERMGDN','YERSKE']
station_list = station_list_tk

dict_tdiff_toosmall_ntimes = {}
dict_tdiff_toosmall_times = {}
dict_has_aggers = {}
print(f'counting small ext differences for {len(station_list)} stations: ', end='')
for istat, current_station in enumerate(station_list):
    
    print(f"{istat+1} ", end="")

    #load measext data
    file_ext_nc = os.path.join(dir_meas,f"{current_station}_measext.nc")
    if not os.path.exists(file_ext_nc):
        continue
    ds_ext_meas = xr.open_dataset(file_ext_nc)
    
    # find (number of) times that are too close
    times_pd = ds_ext_meas.time.to_pandas()
    bool_tdiff_toosmall = times_pd.index.diff() < pd.Timedelta(hours=4)
    if bool_tdiff_toosmall.sum() == 0:
        continue
    dict_tdiff_toosmall_ntimes[current_station] = bool_tdiff_toosmall.sum()
    dict_tdiff_toosmall_times[current_station] = times_pd.index[bool_tdiff_toosmall]
    
    # find unique hwlwcode (aggers or not)
    hwlwcode_uniq = ds_ext_meas["HWLWcode"].to_pandas().drop_duplicates().tolist()
    if len(hwlwcode_uniq) > 2:
        dict_has_aggers[current_station] = True
    else:
        dict_has_aggers[current_station] = False
print()

stats_pd = pd.DataFrame({"ntimes tooclose":dict_tdiff_toosmall_ntimes,
                         "has_aggers":dict_has_aggers})
print(stats_pd.sort_values("has_aggers"))

Prints:

              ntimes tooclose  has_aggers
BERGSDSWT                   8       False
NIEUWSTZL                 332       False
DENOVBTN                 2001       False
OOSTSDE04                   2       False
OOSTSDE14                   1       False
OUDSD                     294       False
ROOMPBTN                    5       False
SCHIERMNOG                 47       False
STAVNSE                     6       False
TERNZN                     12       False
TERSLNZE                   19       False
TEXNZE                   2282       False
VLAKTVDRN                   2       False
VLIELHVN                   42       False
WESTKPLE                    2       False
WESTTSLG                   20       False
WIERMGDN                   30       False
LAUWOG                     53       False
MARLGT                     10       False
KORNWDZBTN                428       False
BROUWHVSGT02                5       False
BROUWHVSGT08               86       False
CADZD                      81       False
DELFZL                     91       False
DENHDR                  21644       False
EEMSHVN                    14       False
HANSWT                      3       False
KRAMMSZWT                   6       False
HARLGN                    882       False
HOLWD                      78       False
HUIBGT                     26       False
IJMDBTHVN                5143       False
IJMDSMPL                  163       False
K13APFM                    44       False
KATSBTN                     7       False
YERSKE                      6       False
HOEKVHLD                87803        True
ROOMPBNN                   12        True
STELLDBTN                8725        True
HARVT10                   421        True
SCHEVNGN                37349        True

The stations HOEKVHLD, ROOMPBNN, STELLDBTN, HARVT10 and SCHEVNGN contain aggers, so those are the only stations where the tooclose-times might be valid. In all other stations these should likely be fixed.

TODO: redo analysis after removal of aggers

@veenstrajelmer veenstrajelmer changed the title Incorrect extreme values for BERGSDSWT Incorrect extreme values for BERGSDSWT and others May 17, 2024
@KDoekes-RWS
Copy link

The incorrect low water for BERGSDSWT 05-07-1996 01:09 NAP -207cm has been removed from DONAR.
The minimum time difference between two extremes selected here is obviously much to high, for by far the most instances 'Too close" are found for locations with strongly asymmetric tide curves like IJMDBTHVN and DENHDR. Another cause is the existence of two types of HW/LW-data for recent years. The standard HW/LW-data are computed from the 10 minute values only when all data of a calendar year are complete quality checked and all gaps are filled up with interpolated values. These data are stored with Beherende Instantie RIKZITSDHG. For recent years there are also HW/LW-data which are computed during the current year, and which are not complete. These data are stored with Beherende Instantie ZLXXWVMMDBG.

@veenstrajelmer
Copy link
Author

veenstrajelmer commented Jun 5, 2024

Yes, 4 hours might be too high. But it gives an indication for most stations. Of course, this can easily be adjusted. Thank you for correcting that single value, but there were more timesteps provided for BERGSDSWT. The time 1992-01-01 00:50:00 is also a duplicated extreme. The other timesteps from the list of BERGSDSWT show no invalid duplicates, so the threshold is indeed too large. When using 2 hours as a threshold value, we get this overview:

              ntimes tooclose  has_aggers
BERGSDSWT                   2       False
WESTKPLE                    2       False
VLIELHVN                    9       False
VLAKTVDRN                   2       False
TEXNZE                      1       False
TERSLNZE                    1       False
TERNZN                      2       False
STAVNSE                     1       False
SCHIERMNOG                  1       False
OUDSD                       3       False
DENOVBTN                    4       False
NIEUWSTZL                   6       False
WESTTSLG                    2       False
KRAMMSZWT                   1       False
MARLGT                      3       False
K13APFM                     7       False
BROUWHVSGT08                3       False
CADZD                      29       False
DELFZL                     21       False
DENHDR                    172       False
HANSWT                      1       False
KORNWDZBTN                  1       False
WIERMGDN                    2       False
HOLWD                       1       False
HUIBGT                      2       False
IJMDBTHVN                   9       False
HARLGN                      5       False
HOEKVHLD                63526        True
SCHEVNGN                12333        True
HARVT10                   128        True
ROOMPBNN                    6        True
STELLDBTN                6140        True

I have expanded my code a bit to generate figures of all tooclose timesteps (this time with >0 and <2 hours as threshold):

import os
import xarray as xr
import pandas as pd
import ddlpy
import matplotlib.pyplot as plt
plt.close("all")

dir_base = r"p:\11210325-005-kenmerkende-waarden\work"
dir_meas = os.path.join(dir_base, "measurements_wl_18700101_20240101")

station_list = ['A12','AWGPFM','BAALHK','BATH','BERGSDSWT','BROUWHVSGT02','BROUWHVSGT08','GATVBSLE','BRESKVHVN','CADZD','D15','DELFZL','DENHDR','EEMSHVN','EURPFM','F16','F3PFM','HARVT10','HANSWT','HARLGN','HOEKVHLD','HOLWD','HUIBGT','IJMDBTHVN','IJMDSMPL','J6','K13APFM','K14PFM','KATSBTN','KORNWDZBTN','KRAMMSZWT','L9PFM','LAUWOG','LICHTELGRE','MARLGT','NES','NIEUWSTZL','NORTHCMRT','DENOVBTN','OOSTSDE04','OOSTSDE11','OOSTSDE14','OUDSD','OVLVHWT','Q1','ROOMPBNN','ROOMPBTN','SCHAARVDND','SCHEVNGN','SCHIERMNOG','SINTANLHVSGR','STAVNSE','STELLDBTN','TERNZN','TERSLNZE','TEXNZE','VLAKTVDRN','VLIELHVN','VLISSGN','WALSODN','WESTKPLE','WESTTSLG','WIERMGDN','YERSKE']

dict_tdiff_toosmall_ntimes = {}
dict_tdiff_toosmall_times = {}
dict_has_aggers = {}
print(f'counting small ext differences for {len(station_list)} stations: ', end='')
for istat, current_station in enumerate(station_list):
    print(f"{istat+1} ", end="")

    #load measext data
    file_ext_nc = os.path.join(dir_meas,f"{current_station}_measext.nc")
    if not os.path.exists(file_ext_nc):
        continue
    ds_ext_meas = xr.open_dataset(file_ext_nc)
    
    # find (number of) times that are too close (but no exact time duplicates)
    times_pd = ds_ext_meas.time.to_pandas().index.tz_localize("UTC").tz_convert("UTC+01:00")
    bool_tdiff_toosmall = (times_pd.diff() < pd.Timedelta(hours=2)) & (times_pd.diff() > pd.Timedelta(hours=0))
    # find number of times that have waterlevel values close to each other
    # vdiff = ds_ext_meas["Meetwaarde.Waarde_Numeriek"].to_pandas().diff().abs()
    # bool_vdiff_toosmall = (vdiff < 100) # max 1m difference, to avoid hit on HW and LW that are too close
    bool_diff_toosmall = bool_tdiff_toosmall #& bool_vdiff_toosmall
    if bool_diff_toosmall.sum() == 0:
        continue
    dict_tdiff_toosmall_ntimes[current_station] = bool_diff_toosmall.sum()
    dict_tdiff_toosmall_times[current_station] = times_pd[bool_diff_toosmall]
    
    # find unique hwlwcode (aggers or not)
    hwlwcode_uniq = ds_ext_meas["HWLWcode"].to_pandas().drop_duplicates().tolist()
    if len(hwlwcode_uniq) > 2:
        dict_has_aggers[current_station] = True
    else:
        dict_has_aggers[current_station] = False
print()
stats_pd = pd.DataFrame({"ntimes tooclose":dict_tdiff_toosmall_ntimes,
                         "has_aggers":dict_has_aggers})
print(stats_pd.sort_values("has_aggers"))


# plot timeseries/ext per tooclose timestep
locations = ddlpy.locations()
station_list_ext = stats_pd.index.tolist()
# station_list_ext = ["NIEUWSTZL"]

for station_code in station_list_ext:
    plt.close("all")
    print(station_code)
    
    if stats_pd.loc[station_code,"has_aggers"]:
        print(f"skipping {station_code} because of aggers")
        continue
    
    bool_hoedanigheid = locations['Hoedanigheid.Code'].isin(['NAP'])
    bool_stations = locations.index.isin([station_code])
    bool_grootheid = locations['Grootheid.Code'].isin(['WATHTE'])
    bool_groepering_ts = locations['Groepering.Code'].isin(['NVT'])
    bool_groepering_ext = locations['Groepering.Code'].isin(['GETETBRKDMSL2', 'GETETBRKD2', 'GETETMSL2', 'GETETM2'])
    selected_ts = locations.loc[bool_grootheid & bool_hoedanigheid & bool_groepering_ts & bool_stations]
    selected_ext = locations.loc[bool_grootheid & bool_hoedanigheid & bool_groepering_ext & bool_stations]
    
    if len(selected_ts) == 0:
        print(f"skipping {station_code} since locations dataframe is empty (check Hoedanigheid)")
        continue
    if len(selected_ts) > 1:
        raise ValueError(f"too much selected location rows for {station_code}")
    
    date_list = dict_tdiff_toosmall_times[station_code]
    if len(date_list) > 30:
        print(f"skipping {station_code} for now since it has too much tooclose values")
        continue
    
    for issue_date in date_list:
        # issue_date = date_list[0]
        start_date = issue_date - pd.Timedelta(days=1)
        end_date = issue_date + pd.Timedelta(days=1)
        # pass a single row of the locations dataframe to the measurements function to get the measurements for that location
        measurements_ts = ddlpy.measurements(selected_ts.iloc[0], start_date, end_date)
        measurements_ext = ddlpy.measurements(selected_ext.iloc[0], start_date, end_date)
        
        if measurements_ts.empty:
            print("not ts for issue_date")
            continue
        
        fig, ax = plt.subplots(figsize=(13,6))
        ax.plot(measurements_ts['Meetwaarde.Waarde_Numeriek'], label="waterlevel")
        ax.plot(measurements_ext['Meetwaarde.Waarde_Numeriek'], "xr", markersize=10, label="extremes")
        ax.grid()
        ax.legend(loc=1)
        ax.set_title(f"{station_code} {issue_date}")
        fig.tight_layout()
        fig.savefig(f"{station_code}_{issue_date.strftime('%Y%m%d_%H%M%S')}")

For BERGSDSWT it results in these figures:
image
image

A zipfile with all resulting figures is attached:
potential_invalid_duplicate_extremes.zip

Some issues that can be resolved later:

  • for many stations there is no timeseries (WATHTE) available for the period with potential duplicate extremes, so no useful figure can be generated (station is skipped). I expect there will be more data in DDL in the future, so I propose to redo this analysis after significant DDL updates.
  • sometimes there are too much duplicates found, in that case also no figure is generated
  • there is filtering on NAP, which at least excludes K13APFM and maybe others.
  • not all of the attached figures point to invalid duplicate extremes, but they often do show some issue in the data. I chose not to filter them yet, but this can be done later if needed.

@KDoekes-RWS
Copy link

KDoekes-RWS commented Jun 24, 2024

Delfzijl 11-11-1891 20:50 (MET) HW +13 and 22:30 LW +9 is still not an error, but a extreme small fall following a negative surge.

@KDoekes-RWS
Copy link

The incorrect high water for BERGSDSWT Bergse Diepsluis west 31-12-1991 23:55 (MET) NAP + 109cm has been removed from DONAR.

@KDoekes-RWS
Copy link

The incorrect low water for BROUWHVSGT08 Brouwershavense Gat 08 01-01-2015 05:33 (MET) NAP -84 cm has been removed from DONAR.

@KDoekes-RWS
Copy link

The incorrect high water for BROUWHVSGT08 Brouwershavense Gat 08 01-01-2015 10:51 (MET) NAP + 105 cm has been removed from DONAR.

@KDoekes-RWS
Copy link

The incorrect low water for BROUWHVSGT08 Brouwershavense Gat 08 01-01-2015 17:30 (MET) NAP -103 cm has been removed from DONAR.

@KDoekes-RWS
Copy link

The incorrect low water for CADZD Cadzand 31-12-1992 23:50 (MET) NAP -123 cm has been removed from DONAR.

@KDoekes-RWS
Copy link

Low water for DELFZL Delfzijl 09-08-1898 15:55 (MET) -113: the time has been corrected in DONAR to 10:55.

@KDoekes-RWS
Copy link

High water for DELFZL Delfzijl 23-09-1901 01:10 (MET) + 86: the time has been corrected in DONAR to 06:30.

@KDoekes-RWS
Copy link

High water for DELFZL Delfzijl17-02-1902 01:05 (MET) + 72: the time has been corrected in DONAR to 06:05.

@KDoekes-RWS
Copy link

High water for DELFZL Delfzijl 04-05-1902 03:40 (MET) + 109: the time has been corrected in DONAR to 08:40.

@KDoekes-RWS
Copy link

High water for DELFZL Delfzijl 18-05-1902 04:35 (MET) + 109: the time has been corrected in DONAR to 09:15.

@KDoekes-RWS
Copy link

Low water for DELFZL Delfzijl 25-06-1902 04:05 (MET) -192: the time has been corrected in DONAR to 09:05.

@KDoekes-RWS
Copy link

High water for DELFZL Delfzijl 18-05-1906 16:00 (MET) + 87: the time has been corrected in DONAR to 20:45.

@KDoekes-RWS
Copy link

Low water for DELFZL Delfzijl 29-03-1907 13:00 (MET) -211: the time has been corrected in DONAR to 19:00.

@KDoekes-RWS
Copy link

High water for DELFZL Delfzijl 29-12-1907 00:45 (MET) + 66: the time has been corrected in DONAR to 05:45.

@KDoekes-RWS
Copy link

High water for DELFZL Delfzijl 14-03-1909 08:40 (MET) + 112: the time has been corrected in DONAR to 03:40.

@KDoekes-RWS
Copy link

KDoekes-RWS commented Jun 25, 2024

Low water for DELFZL Delfzijl 04-09-1909 04:15 (MET) -189: the time has been corrected in DONAR to 09:15.

@KDoekes-RWS
Copy link

Low water for DELFZL Delfzijl 12-01-1914 01:10 (MET) -230: the time has been corrected in DONAR to 06:30.

@KDoekes-RWS
Copy link

High water for DELFZL Delfzijl 13-03-1916 08:40 (MET) + 65: the time has been corrected in DONAR to 05:40.

@KDoekes-RWS
Copy link

High water for DELFZL Delfzijl 24-08-1918 19:25 (MET) + 138: the time has been corrected in DONAR to 13:25.

@KDoekes-RWS
Copy link

High water for DELFZL Delfzijl 17-10-1918 04:15 (MET) + 117: the time has been corrected in DONAR to 09:15.

@KDoekes-RWS
Copy link

DELFZL Delfzijl 06-11-1921 18:05 (MET) is not an error, but an extremely small fall due to a combination of a very weak neap tide and transition from negative to positive surge.

@KDoekes-RWS
Copy link

KDoekes-RWS commented Jun 27, 2024

DENOVBTN Den Oever buiten 14-02-1989 07:05 (MET) is not an error, but an extremely small fall during a very steep storm surge (along the coast of Holland there was even no fall at all that morning).

@KDoekes-RWS
Copy link

DENOVBTN Den Oever buiten 27-10-2002 16:50 (MET) is not an error, but an extremely small fall during a very steep storm surge.

@KDoekes-RWS
Copy link

The superfluous high water for HANSWT Hansweert 01-04-2020 07:32 (MET) NAP + 196 cm has been removed from DONAR.
Also the completely wrong 10 minute averages 31-03-2020 from 13:00 through 16:40 MET were replaced by interpolated values.

@KDoekes-RWS
Copy link

High water for HARLGN Harlingen 30-11-1945 16:00 (MET) + 67: the time has been corrected in DONAR to 19:00.

@KDoekes-RWS
Copy link

HARLGN Harlingen 27-10-2002 17:10 (MET) is not an error, but an extremely small fall during a very steep storm surge.

@KDoekes-RWS
Copy link

The superfluous low water for HOLWD Holwerd 15-02-1994 07:10 (MET) NAP -247 cm has been removed from DONAR.

@KDoekes-RWS
Copy link

IJMDBTHVN IJmuiden buitenhaven 16-09-1997 15:03 (MET) is not an error, but an extremely swift rise after a very late low water in combination with a large daily inequality.

@KDoekes-RWS
Copy link

IJMDBTHVN IJmuiden buitenhaven 09-11-2001 09:20 (MET) is not an error, but a very short rise after a small positive surge.

@KDoekes-RWS
Copy link

The other 7 cases for IJMDBTHVN IJmuiden buitenhaven are no errors, either.

@KDoekes-RWS
Copy link

KORNWDZBTN Kornwerderzand buiten 27-10-2002 17:00 (MET) is not an error, but an extremely small fall during a very steep storm surge.

@KDoekes-RWS
Copy link

The superfluous high water for KRAMMSZWT Krammersluizen west 31-12-1991 23:55 (MET) NAP + 101 cm has been removed from DONAR.

@KDoekes-RWS
Copy link

KDoekes-RWS commented Jun 28, 2024

MARLGT Marollegat 15-04-1987 03:45 (MET), 16-04-1987 04:16 (MET) and 16:44 (MET): no errors. The anomalous curves were caused by the partial closure of the Eastern Scheldt barrier during the closure of the Philipsdam.

@KDoekes-RWS
Copy link

OUDSD Oudeschild 14-02-1989 06:15 (MET) is not an error, but an extremely small fall during a very steep storm surge.

@KDoekes-RWS
Copy link

OUDSD Oudeschild 01-03-2008 05:33 (MET) is not an error, but an extremely small fall during a very steep storm surge.

@KDoekes-RWS
Copy link

The superfluous high water for STAVNSE Stavenisse 31-12-1991 23:55 (MET) NAP + 99 cm has been removed from DONAR.

@KDoekes-RWS
Copy link

Low water for TERNZN Terneuzen 30-03-1952 05:46 (MET) -230: the time has been corrected in DONAR to 11:46.

@KDoekes-RWS
Copy link

TERSLNZE Terschelling Noordzee 31-01-2008 18:25 (MET) is not an error, but an very short fall due to a combination of a weak neap tide and transition from negative to positive surge.

@KDoekes-RWS
Copy link

TEXNZE Texel Noordzee 31-01-2008 17:20 (MET) is not an error, but an very short fall due to a combination of a weak neap tide and transition from negative to positive surge.

@KDoekes-RWS
Copy link

KDoekes-RWS commented Jul 1, 2024

VLAKTVDRN Vlakte van de Raan 08-05-1985 09:46 (MET) LW -227 and 10:04 HW + 229 have been corrected in DONAR to 10:00 LW -183 and 16:00 HW + 210, respectively.

@KDoekes-RWS
Copy link

VLAKTVDRN Vlakte van de Raan 20-11-1985 09:46 (MET) HW + 96 has been corrected in DONAR to 07:30 HW + 86..

@KDoekes-RWS
Copy link

KDoekes-RWS commented Jul 1, 2024

VLIELHVN Vlieland haven 09-02-1948 19:20 (MET) LW -12 has been corrected in DONAR to 14:20.

@KDoekes-RWS
Copy link

The superfluous low water for WESTKPLE Westkapelle 31-12-1992 23:50 (MET) NAP -106 cm has been removed from DONAR.

@KDoekes-RWS
Copy link

WESTTSLG West-Terschelling 19-10-1935 18:45 (MET) is not an error, but an extremely small fall during a storm surge.

@KDoekes-RWS
Copy link

WESTTSLG West-Terschelling 21-12-1940 12:05 (MET) LW -160 has been corrected in DONAR to 08:05.

@KDoekes-RWS
Copy link

WIERMGDN Wierumergronden 29-05-1985 12:18 (MET) LW -113 and 14:00 HW + 95 have been corrected in DONAR to 11:00 LW -101 and 16:30 HW + 77, respectively.
The outliers are in a series 10 min. values under Beherende Instantie NNXXAWZV, for which I don't have write permission. In the series 10 min. values under Beherende Instantie RIKZITSDHG these outliers were already replaced by no info values.

@KDoekes-RWS
Copy link

WIERMGDN Wierumergronden 01-06-2013 23:40 (MET) HW + 63 has been corrected in DONAR to 02-06-2013 04:00 + 60.

@KDoekes-RWS
Copy link

As to NIEUWSTZL Nieuwe Statenzijl 09-06-2011: the water level record during some months in 2011 shows signs of extreme stoppage of the float gauge. The incorrect 10 minute water level data will be replaced by interpolated values, and then the HW/LW-data will be computed from the 10 minute data again.

@TvLoon-RWS
Copy link
Collaborator

With a closed Oosterscheldekering, no high waters will be registered in the Oosterschelde. That is the reason for the missing four high waters for BERGSDSWT in 1993.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants