From 637427325c248a6746c7a7fff9a1ba3a74915bc3 Mon Sep 17 00:00:00 2001 From: veenstrajelmer Date: Fri, 11 Oct 2024 02:02:03 +0200 Subject: [PATCH] updated docs --- docs/examples/minimal_example.py | 11 +- docs/examples/retrieve_parallel_to_netcdf.py | 15 +- docs/notebooks/measurements.ipynb | 2661 +++++++++--------- 3 files changed, 1406 insertions(+), 1281 deletions(-) diff --git a/docs/examples/minimal_example.py b/docs/examples/minimal_example.py index b3469f0..133e121 100644 --- a/docs/examples/minimal_example.py +++ b/docs/examples/minimal_example.py @@ -10,14 +10,17 @@ #select a set of parameters # Filter the locations dataframe with the desired parameters and stations. -bool_stations = locations.index.isin(['IJMDBTHVN', 'DANTZGZD','HOEKVHLD']) -# measured (WATHTE) versus computed/astro +bool_stations = locations.index.isin(['ijmuiden.buitenhaven', 'dantziggat.zuid', 'hoekvanholland', 'ameland.nes']) +# meting/astronomisch/verwachting +bool_procestype = locations['ProcesType'].isin(['meting']) +# waterlevel/waterhoogte (WATHTE) bool_grootheid = locations['Grootheid.Code'].isin(['WATHTE']) # timeseries (NVT) versus extremes -bool_groepering = locations['Groepering.Code'].isin(['NVT']) +bool_groepering = locations['Groepering.Code'].isin(['']) # vertical reference (NAP/MSL) bool_hoedanigheid = locations['Hoedanigheid.Code'].isin(['NAP']) -selected = locations.loc[bool_stations & bool_grootheid & +selected = locations.loc[bool_procestype & + bool_stations & bool_grootheid & bool_groepering & bool_hoedanigheid] start_date = dt.datetime(2023, 1, 1) diff --git a/docs/examples/retrieve_parallel_to_netcdf.py b/docs/examples/retrieve_parallel_to_netcdf.py index 7ce5c35..fced612 100644 --- a/docs/examples/retrieve_parallel_to_netcdf.py +++ b/docs/examples/retrieve_parallel_to_netcdf.py @@ -13,7 +13,6 @@ def get_data(location, start_date, end_date, dir_output, overwrite=True): - station_id = location.name station_messageid = location["Locatie_MessageID"] filename = os.path.join(dir_output, f"{station_id}-{station_messageid}.nc") @@ -44,19 +43,18 @@ def get_data(location, start_date, end_date, dir_output, overwrite=True): ds.to_netcdf(filename, format="NETCDF4_CLASSIC") -if ( __name__ == "__main__" ): - +if __name__ == "__main__": dir_output = './ddl_retrieved_data' os.makedirs(dir_output, exist_ok=True) # get locations locations = ddlpy.locations() - bool_stations = locations.index.isin(['IJMDBTHVN', 'DANTZGZD', 'HOEKVHLD', 'VLISSGN', 'HOEK', 'VLIS', "OLST"]) - bool_grootheid = locations['Grootheid.Code'].isin(['WATHTE']) # measured (WATHTE) versus computed/astro - bool_groepering = locations['Groepering.Code'].isin(['NVT']) # timeseries (NVT) versus extremes + bool_stations = locations.index.isin(['ijmuiden.buitenhaven', 'dantziggat.zuid', 'hoekvanholland', 'ameland.nes', 'vlissingen', 'olst']) + bool_procestype = locations['ProcesType'].isin(['meting']) # meting/astronomisch/verwachting + bool_grootheid = locations['Grootheid.Code'].isin(['WATHTE']) # waterlevel (WATHTE) + bool_groepering = locations['Groepering.Code'].isin(['']) # timeseries (NVT) versus extremes bool_hoedanigheid = locations['Hoedanigheid.Code'].isin(['NAP']) # vertical reference (NAP/MSL) - selected = locations.loc[bool_stations & bool_grootheid & bool_groepering & bool_hoedanigheid] - + selected = locations.loc[bool_stations & bool_procestype & bool_grootheid & bool_groepering & bool_hoedanigheid] start_date = dt.datetime(2022, 1, 1) end_date = dt.datetime(2022, 3, 1) @@ -70,7 +68,6 @@ def get_data(location, start_date, end_date, dir_output, overwrite=True): for station_code, location in selected.iterrows(): executor.submit(get_data, location, start_date, end_date, dir_output) - file_list = glob.glob(os.path.join(dir_output, "*.nc")) fig, ax = plt.subplots() for file_nc in file_list: diff --git a/docs/notebooks/measurements.ipynb b/docs/notebooks/measurements.ipynb index 91905d0..012dbae 100644 --- a/docs/notebooks/measurements.ipynb +++ b/docs/notebooks/measurements.ipynb @@ -39,7 +39,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "DEBUG:ddlpy.ddlpy:Requesting at https://waterwebservices.rijkswaterstaat.nl/METADATASERVICES_DBO/OphalenCatalogus with request: {\"CatalogusFilter\": {\"Eenheden\": true, \"Grootheden\": true, \"Hoedanigheden\": true, \"Groeperingen\": true, \"Parameters\": true, \"Compartimenten\": true}}\n" + "DEBUG:ddlpy.ddlpy:Requesting at https://waterwebservices.beta.rijkswaterstaat.nl/test/METADATASERVICES/OphalenCatalogus with request: {\"CatalogusFilter\": {\"Eenheden\": true, \"Grootheden\": true, \"Hoedanigheden\": true, \"Groeperingen\": true, \"Parameters\": true, \"ProcesTypes\": true, \"Compartimenten\": true}}\n" ] } ], @@ -83,17 +83,19 @@ " \n", " \n", " Locatie_MessageID\n", + " Lat\n", + " Lon\n", " Coordinatenstelsel\n", - " X\n", - " Y\n", " Naam\n", + " Omschrijving\n", " Parameter_Wat_Omschrijving\n", + " ProcesType\n", " Compartiment.Code\n", " Compartiment.Omschrijving\n", + " ...\n", + " Grootheid.Omschrijving\n", " Eenheid.Code\n", " Eenheid.Omschrijving\n", - " Grootheid.Code\n", - " Grootheid.Omschrijving\n", " Hoedanigheid.Code\n", " Hoedanigheid.Omschrijving\n", " Parameter.Code\n", @@ -123,187 +125,242 @@ " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " ROTTMPT3\n", - " 9486\n", - " 25831\n", - " 735924.084551\n", - " 5.941073e+06\n", - " Rottumerplaat 3 km uit de kust\n", - " Korrelgroottefractie Bodem/Sediment diameter g...\n", - " BS\n", - " Bodem/Sediment\n", - " %\n", - " procent\n", - " KGF\n", - " Korrelgroottefractie\n", - " Dg0016dg\n", - " diameter groter dan 16 um / drooggewicht\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", - " Niet van toepassing\n", - " ROTTMPT3\n", + " fortcrevecoeur\n", + " 2258\n", + " 51.733567\n", + " 5.269946\n", + " ETRS89\n", + " Fort Crevecoeur\n", + " monding van de Dieze\n", + " (massa)Concentratie fosfor totaal in Oppervlak...\n", + " meting\n", + " OW\n", + " Oppervlaktewater\n", + " ...\n", + " (massa)Concentratie\n", + " mg/l\n", + " milligram per liter\n", + " P\n", + " uitgedrukt in fosfor\n", + " Ptot\n", + " fosfor totaal\n", + " \n", + " \n", + " fortcrevecoeur\n", " \n", " \n", - " SCHOUWN10\n", - " 9510\n", - " 25831\n", - " 534120.858324\n", - " 5.729921e+06\n", - " Schouwen 10 km uit de kust\n", - " Korrelgroottefractie Bodem/Sediment diameter g...\n", - " BS\n", - " Bodem/Sediment\n", - " %\n", - " procent\n", - " KGF\n", - " Korrelgroottefractie\n", - " Dg0016dg\n", - " diameter groter dan 16 um / drooggewicht\n", + " bremerhaven\n", + " 716\n", + " 53.549304\n", + " 8.565444\n", + " ETRS89\n", + " Bremerhaven\n", + " Bremerhaven\n", + " Waterhoogte astronomisch in Oppervlaktewater t...\n", + " astronomisch\n", + " OW\n", + " Oppervlaktewater\n", + " ...\n", + " Waterhoogte\n", + " cm\n", + " centimeter\n", + " NAP\n", + " t.o.v. Normaal Amsterdams Peil\n", " NVT\n", - " Waarde is niet van toepassing\n", " NVT\n", - " Niet van toepassing\n", - " SCHOUWN10\n", + " GETETBRKD2\n", + " Getijextreem berekend\n", + " bremerhaven\n", " \n", " \n", - " TERSLG235\n", - " 9518\n", - " 25831\n", - " 509938.998556\n", - " 6.113888e+06\n", - " Terschelling 235 km uit de kust\n", - " Korrelgroottefractie Bodem/Sediment diameter g...\n", - " BS\n", - " Bodem/Sediment\n", - " %\n", - " procent\n", - " KGF\n", - " Korrelgroottefractie\n", - " Dg0016dg\n", - " diameter groter dan 16 um / drooggewicht\n", - " NVT\n", - " Waarde is niet van toepassing\n", + " twenthekanaal.hoofdkanaalkm29p500\n", + " 12787\n", + " 52.224782\n", + " 6.585077\n", + " ETRS89\n", + " Twenthekanaal, Hoofdkanaal km. 29.500\n", + " Poelsbeek\n", + " Gemiddelde Temperatuur in Oppervlaktewater in oC\n", + " meting\n", + " OW\n", + " Oppervlaktewater\n", + " ...\n", + " Temperatuur\n", + " oC\n", + " graad Celsius\n", " NVT\n", " Niet van toepassing\n", - " TERSLG235\n", + " \n", + " \n", + " \n", + " \n", + " twenthekanaal.hoofdkanaalkm29p500\n", " \n", " \n", - " WALCRN2\n", - " 9526\n", - " 25831\n", - " 528394.396027\n", - " 5.710854e+06\n", - " Walcheren 2 km uit de kust\n", - " Korrelgroottefractie Bodem/Sediment diameter g...\n", - " BS\n", - " Bodem/Sediment\n", - " %\n", - " procent\n", - " KGF\n", - " Korrelgroottefractie\n", - " Dg0016dg\n", - " diameter groter dan 16 um / drooggewicht\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", - " Niet van toepassing\n", - " WALCRN2\n", + " zeelandbrug.noord\n", + " 3279\n", + " 51.626683\n", + " 3.909728\n", + " ETRS89\n", + " Zeelandbrug, noord\n", + " Zeelandbrug, noord\n", + " Gemiddelde Waterhoogte in Oppervlaktewater t.o...\n", + " meting\n", + " OW\n", + " Oppervlaktewater\n", + " ...\n", + " Waterhoogte\n", + " cm\n", + " centimeter\n", + " NAP\n", + " t.o.v. Normaal Amsterdams Peil\n", + " \n", + " \n", + " \n", + " \n", + " zeelandbrug.noord\n", " \n", " \n", - " GOERE6\n", - " 9542\n", - " 25831\n", - " 560056.490959\n", - " 5.746818e+06\n", - " Goeree 6 km uit de kust\n", - " Korrelgroottefractie Bodem/Sediment diameter g...\n", - " BS\n", - " Bodem/Sediment\n", - " %\n", - " procent\n", - " KGF\n", - " Korrelgroottefractie\n", - " Dg0016dg\n", - " diameter groter dan 16 um / drooggewicht\n", - " NVT\n", - " Waarde is niet van toepassing\n", + " poeldonk.dungensebrug\n", + " 12277\n", + " 51.680673\n", + " 5.368564\n", + " ETRS89\n", + " Poeldonk, Dungense Brug\n", + " Poeldonk, Dungense Brug\n", + " (massa)Concentratie perfluorundecaanzuur in Op...\n", + " meting\n", + " OW\n", + " Oppervlaktewater\n", + " ...\n", + " (massa)Concentratie\n", + " ug/l\n", + " microgram per liter\n", " NVT\n", " Niet van toepassing\n", - " GOERE6\n", + " PFUdA\n", + " perfluorundecaanzuur\n", + " \n", + " \n", + " poeldonk.dungensebrug\n", " \n", " \n", "\n", + "

5 rows × 21 columns

\n", "" ], "text/plain": [ - " Locatie_MessageID Coordinatenstelsel X Y \\\n", - "Code \n", - "ROTTMPT3 9486 25831 735924.084551 5.941073e+06 \n", - "SCHOUWN10 9510 25831 534120.858324 5.729921e+06 \n", - "TERSLG235 9518 25831 509938.998556 6.113888e+06 \n", - "WALCRN2 9526 25831 528394.396027 5.710854e+06 \n", - "GOERE6 9542 25831 560056.490959 5.746818e+06 \n", - "\n", - " Naam \\\n", - "Code \n", - "ROTTMPT3 Rottumerplaat 3 km uit de kust \n", - "SCHOUWN10 Schouwen 10 km uit de kust \n", - "TERSLG235 Terschelling 235 km uit de kust \n", - "WALCRN2 Walcheren 2 km uit de kust \n", - "GOERE6 Goeree 6 km uit de kust \n", - "\n", - " Parameter_Wat_Omschrijving \\\n", - "Code \n", - "ROTTMPT3 Korrelgroottefractie Bodem/Sediment diameter g... \n", - "SCHOUWN10 Korrelgroottefractie Bodem/Sediment diameter g... \n", - "TERSLG235 Korrelgroottefractie Bodem/Sediment diameter g... \n", - "WALCRN2 Korrelgroottefractie Bodem/Sediment diameter g... \n", - "GOERE6 Korrelgroottefractie Bodem/Sediment diameter g... \n", + " Locatie_MessageID Lat Lon \\\n", + "Code \n", + "fortcrevecoeur 2258 51.733567 5.269946 \n", + "bremerhaven 716 53.549304 8.565444 \n", + "twenthekanaal.hoofdkanaalkm29p500 12787 52.224782 6.585077 \n", + "zeelandbrug.noord 3279 51.626683 3.909728 \n", + "poeldonk.dungensebrug 12277 51.680673 5.368564 \n", + "\n", + " Coordinatenstelsel \\\n", + "Code \n", + "fortcrevecoeur ETRS89 \n", + "bremerhaven ETRS89 \n", + "twenthekanaal.hoofdkanaalkm29p500 ETRS89 \n", + "zeelandbrug.noord ETRS89 \n", + "poeldonk.dungensebrug ETRS89 \n", + "\n", + " Naam \\\n", + "Code \n", + "fortcrevecoeur Fort Crevecoeur \n", + "bremerhaven Bremerhaven \n", + "twenthekanaal.hoofdkanaalkm29p500 Twenthekanaal, Hoofdkanaal km. 29.500 \n", + "zeelandbrug.noord Zeelandbrug, noord \n", + "poeldonk.dungensebrug Poeldonk, Dungense Brug \n", + "\n", + " Omschrijving \\\n", + "Code \n", + "fortcrevecoeur monding van de Dieze \n", + "bremerhaven Bremerhaven \n", + "twenthekanaal.hoofdkanaalkm29p500 Poelsbeek \n", + "zeelandbrug.noord Zeelandbrug, noord \n", + "poeldonk.dungensebrug Poeldonk, Dungense Brug \n", + "\n", + " Parameter_Wat_Omschrijving \\\n", + "Code \n", + "fortcrevecoeur (massa)Concentratie fosfor totaal in Oppervlak... \n", + "bremerhaven Waterhoogte astronomisch in Oppervlaktewater t... \n", + "twenthekanaal.hoofdkanaalkm29p500 Gemiddelde Temperatuur in Oppervlaktewater in oC \n", + "zeelandbrug.noord Gemiddelde Waterhoogte in Oppervlaktewater t.o... \n", + "poeldonk.dungensebrug (massa)Concentratie perfluorundecaanzuur in Op... \n", + "\n", + " ProcesType Compartiment.Code \\\n", + "Code \n", + "fortcrevecoeur meting OW \n", + "bremerhaven astronomisch OW \n", + "twenthekanaal.hoofdkanaalkm29p500 meting OW \n", + "zeelandbrug.noord meting OW \n", + "poeldonk.dungensebrug meting OW \n", + "\n", + " Compartiment.Omschrijving ... \\\n", + "Code ... \n", + "fortcrevecoeur Oppervlaktewater ... \n", + "bremerhaven Oppervlaktewater ... \n", + "twenthekanaal.hoofdkanaalkm29p500 Oppervlaktewater ... \n", + "zeelandbrug.noord Oppervlaktewater ... \n", + "poeldonk.dungensebrug Oppervlaktewater ... \n", + "\n", + " Grootheid.Omschrijving Eenheid.Code \\\n", + "Code \n", + "fortcrevecoeur (massa)Concentratie mg/l \n", + "bremerhaven Waterhoogte cm \n", + "twenthekanaal.hoofdkanaalkm29p500 Temperatuur oC \n", + "zeelandbrug.noord Waterhoogte cm \n", + "poeldonk.dungensebrug (massa)Concentratie ug/l \n", + "\n", + " Eenheid.Omschrijving Hoedanigheid.Code \\\n", + "Code \n", + "fortcrevecoeur milligram per liter P \n", + "bremerhaven centimeter NAP \n", + "twenthekanaal.hoofdkanaalkm29p500 graad Celsius NVT \n", + "zeelandbrug.noord centimeter NAP \n", + "poeldonk.dungensebrug microgram per liter NVT \n", + "\n", + " Hoedanigheid.Omschrijving \\\n", + "Code \n", + "fortcrevecoeur uitgedrukt in fosfor \n", + "bremerhaven t.o.v. Normaal Amsterdams Peil \n", + "twenthekanaal.hoofdkanaalkm29p500 Niet van toepassing \n", + "zeelandbrug.noord t.o.v. Normaal Amsterdams Peil \n", + "poeldonk.dungensebrug Niet van toepassing \n", "\n", - " Compartiment.Code Compartiment.Omschrijving Eenheid.Code \\\n", - "Code \n", - "ROTTMPT3 BS Bodem/Sediment % \n", - "SCHOUWN10 BS Bodem/Sediment % \n", - "TERSLG235 BS Bodem/Sediment % \n", - "WALCRN2 BS Bodem/Sediment % \n", - "GOERE6 BS Bodem/Sediment % \n", + " Parameter.Code Parameter.Omschrijving \\\n", + "Code \n", + "fortcrevecoeur Ptot fosfor totaal \n", + "bremerhaven NVT NVT \n", + "twenthekanaal.hoofdkanaalkm29p500 \n", + "zeelandbrug.noord \n", + "poeldonk.dungensebrug PFUdA perfluorundecaanzuur \n", "\n", - " Eenheid.Omschrijving Grootheid.Code Grootheid.Omschrijving \\\n", - "Code \n", - "ROTTMPT3 procent KGF Korrelgroottefractie \n", - "SCHOUWN10 procent KGF Korrelgroottefractie \n", - "TERSLG235 procent KGF Korrelgroottefractie \n", - "WALCRN2 procent KGF Korrelgroottefractie \n", - "GOERE6 procent KGF Korrelgroottefractie \n", + " Groepering.Code Groepering.Omschrijving \\\n", + "Code \n", + "fortcrevecoeur \n", + "bremerhaven GETETBRKD2 Getijextreem berekend \n", + "twenthekanaal.hoofdkanaalkm29p500 \n", + "zeelandbrug.noord \n", + "poeldonk.dungensebrug \n", "\n", - " Hoedanigheid.Code Hoedanigheid.Omschrijving \\\n", - "Code \n", - "ROTTMPT3 Dg0016dg diameter groter dan 16 um / drooggewicht \n", - "SCHOUWN10 Dg0016dg diameter groter dan 16 um / drooggewicht \n", - "TERSLG235 Dg0016dg diameter groter dan 16 um / drooggewicht \n", - "WALCRN2 Dg0016dg diameter groter dan 16 um / drooggewicht \n", - "GOERE6 Dg0016dg diameter groter dan 16 um / drooggewicht \n", + " Code \n", + "Code \n", + "fortcrevecoeur fortcrevecoeur \n", + "bremerhaven bremerhaven \n", + "twenthekanaal.hoofdkanaalkm29p500 twenthekanaal.hoofdkanaalkm29p500 \n", + "zeelandbrug.noord zeelandbrug.noord \n", + "poeldonk.dungensebrug poeldonk.dungensebrug \n", "\n", - " Parameter.Code Parameter.Omschrijving Groepering.Code \\\n", - "Code \n", - "ROTTMPT3 NVT Waarde is niet van toepassing NVT \n", - "SCHOUWN10 NVT Waarde is niet van toepassing NVT \n", - "TERSLG235 NVT Waarde is niet van toepassing NVT \n", - "WALCRN2 NVT Waarde is niet van toepassing NVT \n", - "GOERE6 NVT Waarde is niet van toepassing NVT \n", - "\n", - " Groepering.Omschrijving Code \n", - "Code \n", - "ROTTMPT3 Niet van toepassing ROTTMPT3 \n", - "SCHOUWN10 Niet van toepassing SCHOUWN10 \n", - "TERSLG235 Niet van toepassing TERSLG235 \n", - "WALCRN2 Niet van toepassing WALCRN2 \n", - "GOERE6 Niet van toepassing GOERE6 " + "[5 rows x 21 columns]" ] }, "execution_count": 4, @@ -333,7 +390,7 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, "execution_count": 5, @@ -342,7 +399,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABBYAAAK1CAYAAAB8em3QAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA+6klEQVR4nO3df5RVdb0//teZAQYLZhIEhWZEBX+mmBmaAoWG+StCW5p6+4GpaYUGki3tU+btJ1ZKulZeU5nFXO+9hdlKCyy1zN9SoNbNbmaAIYxKkiSDlgPM7O8ffmdiYGaY8545Z87MPB5rnVVnzz57v86ZzSzfz/N+v3Yuy7IsAAAAABKU9XYBAAAAQN8lWAAAAACSCRYAAACAZIIFAAAAIJlgAQAAAEgmWAAAAACSCRYAAACAZIIFAAAAIJlgAQAAAEgmWAAAAACS9Vqw8NBDD8WMGTNi7Nixkcvl4s4778z7GFmWxTXXXBMHHHBAVFRUxFvf+tb4+te/3vPFAgAAAO0a1Fsnfu211+Lwww+P8847Lz74wQ8mHWPOnDlx7733xjXXXBOHHXZYbNy4MTZu3NjDlQIAAAAdyWVZlvV6Eblc3HHHHXHaaae1bmtsbIwvfOEL8YMf/CBeeeWVOPTQQ+Ob3/xmTJs2LSIinn766Zg4cWL84Q9/iAMPPLB3CgcAAIABrmR7LFx88cWxbNmyWLx4cfz+97+PM888M0466aRYuXJlREQsWbIk9ttvv1i6dGnsu+++sc8++8QFF1xgxgIAAAAUUUkGC2vXro1FixbF7bffHlOnTo3x48fHZZddFlOmTIlFixZFRMSzzz4bzz33XNx+++1x6623Rl1dXTzxxBNxxhln9HL1AAAAMHD0Wo+Fzjz11FPR1NQUBxxwQJvtjY2NMXLkyIiIaG5ujsbGxrj11ltb96utrY0jjzwynnnmGcsjAAAAoAhKMlh49dVXo7y8PJ544okoLy9v87Nhw4ZFRMSYMWNi0KBBbcKHgw8+OCLemPEgWAAAAIDCK8lg4YgjjoimpqZ46aWXYurUqe3uM3ny5Ni2bVusXr06xo8fHxERf/7znyMiYty4cUWrFQAAAAayXrsrxKuvvhqrVq2KiDeChAULFsRxxx0XI0aMiL333js+8pGPxKOPPhrXXnttHHHEEbFhw4a47777YuLEiXHqqadGc3NzTJo0KYYNGxbXXXddNDc3x+zZs6OysjLuvffe3nhLAAAAMOD0WrDwwAMPxHHHHbfT9lmzZkVdXV1s3bo1vva1r8Wtt94azz//fOyxxx7xrne9K7785S/HYYcdFhERL7zwQlxyySVx7733xpvf/OY4+eST49prr40RI0YU++0AAADAgNRrwQIAAADQ95Xk7SYBAACAvkGwAAAAACQr+l0hmpub44UXXojhw4dHLpcr9ukBAACAXciyLDZv3hxjx46NsrLO5yQUPVh44YUXoqamptinBQAAAPK0bt26qK6u7nSfogcLw4cPj4g3iqusrCz26QEAAIBdaGhoiJqamtYxfGeKHiy0LH+orKwULAAAAEAJ60oLA80bAQAAgGSCBQAAACCZYAEAAABIJlgAAAAAkuUVLOyzzz6Ry+V2esyePbtQ9QEAAAAlLK+7QqxYsSKamppan//hD3+IE044Ic4888weLwwAAAAofXkFC6NGjWrz/Oqrr47x48fHe97znh4tCgAAAOgbknssbNmyJf77v/87zjvvvC7d1xIAAADof/KasbC9O++8M1555ZU499xzO92vsbExGhsbW583NDSknhIAAAAoMckzFmpra+Pkk0+OsWPHdrrf/Pnzo6qqqvVRU1OTekoAAACgxOSyLMvyfdFzzz0X++23X/z4xz+OmTNndrpvezMWampqYtOmTVFZWZl/xQAAAEBBNTQ0RFVVVZfG7klLIRYtWhSjR4+OU089dZf7VlRUREVFRcppAAAAgBKX91KI5ubmWLRoUcyaNSsGDUpu0QAAAAD0A3kHC7/85S9j7dq1cd555xWiHgAAAKAPyXvKwfve975IaMsAAAAA9EPJd4UAAAAAECwAAAAAyQQLAAAAQDLBAgAAAJBMsAAAAAAkEywAAAAAyQQLAAAAQDLBAlDSjjrqqBg0aFAcddRRvV0KAADQjkG9XQBAe8aMGRPr169vfb5ixYrI5XKRZVkvVgUAAOzIjAWg5ORyuTahwvYKOXPhkEMOibKysjjkkEMKdg4AAOhvzFgASsqYMWM6/fmTTz5ZkPPmcrnW///000+bHQEAAF1kxgJQUjqaqdDiHe94R4+fs6MZCmYuAADArgkWgJKy1157dfrz5cuX9/g5//SnP+W1HQAA+BfBAlBSXnzxxXa3T5o0qWBLEw466KC8tgMAAP+ixwJQcrIsa70rxF57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AAAAgGSCBQAAACCZYAEAAABIJlgAAAAAkgkWAAAAgGSCBQAAACCZYAEAAABIJlgAAAAAkgkWAAAAgGSCBQAAACCZYAEAAABIJlgAAAAAkgkWAAAAgGSCBQAAACCZYAEAAABIJlgAAAAAkgkWAAAAgGSCBQAAACCZYAEAAABIJlgAAAAAkgkWAAAAgGSCBQAAACCZYAEAAABIJlgAAAAAkgkWAAAAgGSCBQAAACCZYAEAAABIJlgAAAAAkgkWAAAAgGR5BQvz58+PSZMmxfDhw2P06NFx2mmnxTPPPFOo2gAAAIASl1ew8OCDD8bs2bPj17/+dfziF7+IrVu3xvve97547bXXClUfAAAAUMJyWZZlqS/esGFDjB49Oh588MF497vf3aXXNDQ0RFVVVWzatCkqKytTTw0AAAAUSD5j90HdOdGmTZsiImLEiBEd7tPY2BiNjY1tigMAAAD6h+Tmjc3NzTF37tyYPHlyHHrooR3uN3/+/Kiqqmp91NTUpJ4SAAAAKDHJSyE+9alPxc9//vN45JFHorq6usP92puxUFNTYykEAAAAlKiCL4W4+OKLY+nSpfHQQw91GipERFRUVERFRUXKaQAAAIASl1ewkGVZXHLJJXHHHXfEAw88EPvuu2+h6gIAAAD6gLyChdmzZ8f3v//9+MlPfhLDhw+P9evXR0REVVVV7LbbbgUpEAAAAChdefVYyOVy7W5ftGhRnHvuuV06httNAgAAQGkrWI+FxD6PAAAAQD+VfLtJAAAAAMECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACTLO1h46KGHYsaMGTF27NjI5XJx5513FqAsAAAAoC/IO1h47bXX4vDDD48bbrihEPUAAAAAfcigfF9w8sknx8knn1yIWgAAAIA+Ro8FAAAAIFneMxby1djYGI2Nja3PGxoaCn1KAAAAoEgKPmNh/vz5UVVV1fqoqakp9CkBAACAIil4sPD5z38+Nm3a1PpYt25doU8JAAAAFEnBl0JUVFRERUVFoU8DAAAA9IK8g4VXX301Vq1a1fr8L3/5S/zud7+LESNGxN57792jxQEAAAClLe9g4fHHH4/jjjuu9fm8efMiImLWrFlRV1fXY4UBAAAApS/vYGHatGmRZVkhagEAAAD6mII3bwQAAAD6L8ECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJBAsAAABAMsECAAAAkEywAAAAACQTLAAAAADJkoKFG264IfbZZ58YOnRoHH300bF8+fKergsAAADoA/IOFm677baYN29eXHXVVfHkk0/G4YcfHieeeGK89NJLhaivJJxwwgmx2267xQknnNDbpQAAdEldXV3MnDkz6urqersUAPq5XJZlWT4vOProo2PSpEnx3e9+NyIimpubo6amJi655JK44oordvn6hoaGqKqqik2bNkVlZWVa1UWUy+V22pbnRwYAUFQTJkyI1atXtz4fP358rFq1qhcrAqCvyWfsnteMhS1btsQTTzwR06dP/9cByspi+vTpsWzZsnZf09jYGA0NDW0efUVHMxTMXAAASlVdXV2bUCEiYvXq1WYuAFAweQULf/vb36KpqSn23HPPNtv33HPPWL9+fbuvmT9/flRVVbU+ampq0qstskceeSSv7QAAve2OO+5od/tPfvKTIlcCwEBR8LtCfP7zn49Nmza1PtatW1foU/aYKVOm5LUdAKC3nX766e1unzlzZpErAWCgyCtY2GOPPaK8vDz++te/ttn+17/+Nfbaa692X1NRURGVlZVtHn3FL37xi7y2AwD0tnPPPTfGjx/fZtv48ePj3HPP7Z2CAOj38goWhgwZEkceeWTcd999rduam5vjvvvui2OOOabHiysFWZbF9OnTY+jQoTF9+nSNGwGAkrdq1apYtGhRnHbaabFo0SKNGwEoqLzvCnHbbbfFrFmz4qabboqjjjoqrrvuuvjhD38Yf/rTn3bqvdCevnZXCAAAABho8hm7D8r34GeddVZs2LAhvvSlL8X69evj7W9/e9x9991dChUAAACA/iXvGQvdZcYCAAAAlLZ8xu4FvysEAAAA0H8JFgAAAIBkggUAAAAgmWABAAAASCZYAAAAAJIJFgAAAIBkggUAAAAgmWABAAAASCZYAAAAAJIJFgAAAIBkggUAAAAgmWABAAAASCZYAAAAAJIJFgAAAIBkggUAAAAgmWABAAAASCZYAAAAAJIJFgAAAIBkggUAAAAgmWABAAAASDao2CfMsiwiIhoaGop9agAAAKALWsbsLWP4zhQ9WNi8eXNERNTU1BT71AAAAEAeNm/eHFVVVZ3uk8u6Ej/0oObm5njhhRdi+PDhkcvlinnqPq2hoSFqampi3bp1UVlZ2dvlQMG55hloXPMMNK55BiLXPX1JlmWxefPmGDt2bJSVdd5FoegzFsrKyqK6urrYp+03Kisr/RFiQHHNM9C45hloXPMMRK57+opdzVRooXkjAAAAkEywAAAAACQTLPQRFRUVcdVVV0VFRUVvlwJF4ZpnoHHNM9C45hmIXPf0V0Vv3ggAAAD0H2YsAAAAAMkECwAAAEAywQIAAACQTLAAAAAAJBMslIgbbrgh9tlnnxg6dGgcffTRsXz58g73veWWW2Lq1Kmx++67x+677x7Tp0/vdH8oVflc99tbvHhx5HK5OO200wpbIPSwfK/5V155JWbPnh1jxoyJioqKOOCAA+JnP/tZkaqF7sv3mr/uuuviwAMPjN122y1qamri0ksvjddff71I1UL3PPTQQzFjxowYO3Zs5HK5uPPOO3f5mgceeCDe8Y53REVFRUyYMCHq6uoKXicUgmChBNx2220xb968uOqqq+LJJ5+Mww8/PE488cR46aWX2t3/gQceiHPOOSfuv//+WLZsWdTU1MT73ve+eP7554tcOaTL97pvsWbNmrjsssti6tSpRaoUeka+1/yWLVvihBNOiDVr1sSPfvSjeOaZZ+KWW26Jt771rUWuHNLke81///vfjyuuuCKuuuqqePrpp6O2tjZuu+22+H//7/8VuXJI89prr8Xhhx8eN9xwQ5f2/8tf/hKnnnpqHHfccfG73/0u5s6dGxdccEHcc889Ba4Uep7bTZaAo48+OiZNmhTf/e53IyKiubk5ampq4pJLLokrrrhil69vamqK3XffPb773e/Gxz72sUKXCz0i5bpvamqKd7/73XHeeefFww8/HK+88kqXvg2AUpDvNf+9730vvv3tb8ef/vSnGDx4cLHLhW7L95q/+OKL4+mnn4777ruvddtnP/vZ+M1vfhOPPPJI0eqGnpDL5eKOO+7odHbl5ZdfHnfddVf84Q9/aN129tlnxyuvvBJ33313EaqEnmPGQi/bsmVLPPHEEzF9+vTWbWVlZTF9+vRYtmxZl47xj3/8I7Zu3RojRowoVJnQo1Kv+6985SsxevToOP/884tRJvSYlGv+pz/9aRxzzDExe/bs2HPPPePQQw+Nb3zjG9HU1FSssiFZyjV/7LHHxhNPPNG6XOLZZ5+Nn/3sZ3HKKacUpWYotmXLlrX5NxIRceKJJ3Z5DAClZFBvFzDQ/e1vf4umpqbYc88922zfc889409/+lOXjnH55ZfH2LFjd/rDBKUq5bp/5JFHora2Nn73u98VoULoWSnX/LPPPhu/+tWv4sMf/nD87Gc/i1WrVsWnP/3p2Lp1a1x11VXFKBuSpVzz//Zv/xZ/+9vfYsqUKZFlWWzbti0++clPWgpBv7V+/fp2/400NDTEP//5z9htt916qTLInxkLfdzVV18dixcvjjvuuCOGDh3a2+VAQWzevDk++tGPxi233BJ77LFHb5cDRdHc3ByjR4+Om2++OY488sg466yz4gtf+EJ873vf6+3SoCAeeOCB+MY3vhH/8R//EU8++WT8+Mc/jrvuuiu++tWv9nZpAOyCGQu9bI899ojy8vL461//2mb7X//619hrr706fe0111wTV199dfzyl7+MiRMnFrJM6FH5XverV6+ONWvWxIwZM1q3NTc3R0TEoEGD4plnnonx48cXtmjohpS/9WPGjInBgwdHeXl567aDDz441q9fH1u2bIkhQ4YUtGbojpRr/sorr4yPfvSjccEFF0RExGGHHRavvfZaXHjhhfGFL3whysp8H0b/stdee7X7b6SystJsBfocf6F72ZAhQ+LII49s06ioubk57rvvvjjmmGM6fN23vvWt+OpXvxp33313vPOd7yxGqdBj8r3uDzrooHjqqafid7/7XevjAx/4QGsX5ZqammKWD3lL+Vs/efLkWLVqVWuIFhHx5z//OcaMGSNUoOSlXPP/+Mc/dgoPWoI1vcbpj4455pg2/0YiIn7xi190OgaAkpXR6xYvXpxVVFRkdXV12R//+MfswgsvzN7ylrdk69evz7Isyz760Y9mV1xxRev+V199dTZkyJDsRz/6Ufbiiy+2PjZv3txbbwHylu91v6NZs2ZlM2fOLFK10H35XvNr167Nhg8fnl188cXZM888ky1dujQbPXp09rWvfa233gLkJd9r/qqrrsqGDx+e/eAHP8ieffbZ7N57783Gjx+ffehDH+qttwB52bx5c/bb3/42++1vf5tFRLZgwYLst7/9bfbcc89lWZZlV1xxRfbRj360df9nn302e9Ob3pR97nOfy55++unshhtuyMrLy7O77767t94CJLMUogScddZZsWHDhvjSl74U69evj7e//e1x9913tzZzWbt2bZsE/8Ybb4wtW7bEGWec0eY4V111Vfz7v/97MUuHZPle99DX5XvN19TUxD333BOXXnppTJw4Md761rfGnDlz4vLLL++ttwB5yfea/+IXvxi5XC6++MUvxvPPPx+jRo2KGTNmxNe//vXeeguQl8cffzyOO+641ufz5s2LiIhZs2ZFXV1dvPjii7F27drWn++7775x1113xaWXXhrXX399VFdXx8KFC+PEE08seu3QXbksM7cMAAAASOPrQAAAACCZYAEAAABIJlgAAAAAkgkWAAAAgGSCBQAAACCZYAEAAABIJlgAAAAAkgkWAAAAoI956KGHYsaMGTF27NjI5XJx55135n2MLMvimmuuiQMOOCAqKirirW99a3z961/P+ziD8n4FAAAA0Ktee+21OPzww+O8886LD37wg0nHmDNnTtx7771xzTXXxGGHHRYbN26MjRs35n2cXJZlWVIFAAAAQK/L5XJxxx13xGmnnda6rbGxMb7whS/ED37wg3jllVfi0EMPjW9+85sxbdq0iIh4+umnY+LEifGHP/whDjzwwG6d31IIAAAA6GcuvvjiWLZsWSxevDh+//vfx5lnnhknnXRSrFy5MiIilixZEvvtt18sXbo09t1339hnn33iggsuSJqxIFgAAACAfmTt2rWxaNGiuP3222Pq1Kkxfvz4uOyyy2LKlCmxaNGiiIh49tln47nnnovbb789br311qirq4snnngizjjjjLzPp8cCAAAA9CNPPfVUNDU1xQEHHNBme2NjY4wcOTIiIpqbm6OxsTFuvfXW1v1qa2vjyCOPjGeeeSav5RGCBQAAAOhHXn311SgvL48nnngiysvL2/xs2LBhERExZsyYGDRoUJvw4eCDD46IN2Y8CBYAAABggDriiCOiqakpXnrppZg6dWq7+0yePDm2bdsWq1evjvHjx0dExJ///OeIiBg3blxe53NXCAAAAOhjXn311Vi1alVEvBEkLFiwII477rgYMWJE7L333vGRj3wkHn300bj22mvjiCOOiA0bNsR9990XEydOjFNPPTWam5tj0qRJMWzYsLjuuuuiubk5Zs+eHZWVlXHvvffmVYtgAQAAAPqYBx54II477ridts+aNSvq6upi69at8bWvfS1uvfXWeP7552OPPfaId73rXfHlL385DjvssIiIeOGFF+KSSy6Je++9N9785jfHySefHNdee22MGDEir1oECwAAAEAyt5sEAAAAkgkWAAAAgGSCBQAAACCZYAEAAABIJlgAAAAAkgkWAAAAgGSCBQAAACCZYAEAAABIJlgAAAAAkgkWAAAAgGSCBQAAACCZYAEAAABI9v8B1VTUS03CxKAAAAAASUVORK5CYII=", + "image/png": "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fE+/8sorB60+6ItLLrkkq/VuvPHGuPPOO+NjH/tYrF69utNjq1evjk2bNkVjY2PceeedMXPmzBg1alSndcrKyuKuu+4SOgCclBSYtra2JCKStra2fJdCShobG5OIyGqpq6vLd7m9qq2t7VRzbW1tvkvqk/nz53eqf/78+T2uf/fddyelpaVJRCSlpaXJ3XffnaNKoasZM2Z0+vudOHFi6q85ceLEnL9m2vbv35888sgjyf79+7s8dvp7RKYlSZJk27ZtWb+nZ7OuxTIYS2VlZdLY2JisWbMmaWxsTB555JGM67397W9Pbr755uTee+/NeBz05Vhqamrq1zZ6Og4BClW25++CB3Ju9erVGT/0x4wZ0+nnYvgy39zcnPH/0tzcnO/SstJdCNTY2Jhx/f3793eEDieXsrIyX5LIi+5OXnPx3lFXV5fU1NQURTjam97CxLq6um5P6srLyzvWu/rqq3s8ATx1v5x77rl5PyG1DP0lUzBeqJ9jQn2gWGV7/m6oBTnXXRfb++67L+rq6qKmpibq6uoGNEt8GjINR3jssccyrrtz585clZW1TMNBupsM7uGHH87YvmfPnmhvb+/UduLECZNnkRcPPPBAxvbDhw+nPuxi3bp18f3vfz+1OWhyNZyptbU1brjhho7jur29PVatWtXpddetWxcTJ07s9LyJEydGkiTxuc99rmOYS3e3Bp04cWKcf/758ZnPfKbjNfft25fOfwhOcf3113c5hiorK2PLli1RVlYWEQMfEjEYx2o2xyFA0ctNDpI9PR6Gh75278+37uotlh4P3Q0H0eOBYtZTd/2lS5em+rpXX311sm3btlS2n6srn83Nzd32QGtqauqy/um9PE4f5jJjxowubSNGjOiyTndd3SMiOf/885OLL74471fKC32ZO3duMnr06CTiV71ORo0alfeaCnXJ9LecJAMbEnHSYB2r3R0T3dUOUEgMtaDgnTrmspD1dnJe6HM89BaO9GeOh7KysiTiV6GD7qDk0+nzLZxc0goFMp1sD6ZchXunv2/19fW6C322bduWbNu2LVm6dGnyoQ99KOM6dXV1Xf6PEZFceumlSZL0PmRjuCwjRoxIxo8fn/zWb/1W8uY3vzmZMGFC8qEPfajH/bJ///7k5ptv7rSds846KykvL08+9KEPJfv3708uuOCCLn/Dp76nd3dMnVw2bdqU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5s6dG83NzT2uf99998Xs2bNjzJgx8Za3vCUeeuihHFVKtm677baorq6OM888MyZNmhRLly6NZ555psfnNDQ0dDk+x4wZk6OK6Ys//dM/7bKvZs+e3eNzHLfFIdP3ppKSklizZk3G9R23het73/teLF68OKZOnRolJSXxjW98o9PjSZLExo0b4+yzz44zzjgjFi5cGHv27Ol1u339zGbw9bRvX3vttbj55pvjLW95S7z+9a+PqVOnxgc/+MF44YUXetxmf97XC1VBBg/z58+PF198sdPy3//7f4/p06fHpZde2uNzr7/++k7P+8xnPpOjqumrW2+9tdO++uhHP9rj+h/72MeisbEx7rvvvnj00UfjhRdeiGXLluWoWrLx9NNPR3t7e9x1113x05/+NDZv3hxf/vKX44/+6I96fa5jt7B8/etfj3Xr1sWmTZvihz/8YVx88cWxaNGiOHToUMb1d+3aFe9///tj5cqV8aMf/SiWLl0aS5cujZ/85Cc5rpyePProo7FmzZr4wQ9+EN/+9rfjtddei3e9613xyiuv9Pi88vLyTsfnL37xixxVTF9dcMEFnfbV97///W7XddwWj5aWlk779dvf/nZERPzO7/xOt89x3BamV155JS6++OL44he/mPHxz3zmM/H5z38+vvzlL8fjjz8er3/962PRokVx7NixbrfZ189s0tHTvv33f//3+OEPfxgbNmyIH/7wh3H//ffHM888E1dffXWv2+3L+3pBS4rAq6++mkycODG59dZbe1zvN3/zN5ObbropN0UxIFVVVcnmzZuzXv/IkSPJyJEjk/vuu6+j7ec//3kSEcnu3btTqJDB8pnPfCaZPn16j+s4dgvPnDlzkjVr1nT8fOLEiWTq1KnJbbfdlnH93/3d301++7d/u1Pb3Llzk1WrVqVaJwNz6NChJCKSRx99tNt1tm3bllRUVOSuKPpt06ZNycUXX5z1+o7b4nXTTTclM2bMSNrb2zM+7rgtDhGRPPDAAx0/t7e3J1OmTEnuuOOOjrYjR44ko0ePTv7u7/6u2+309TOb9J2+bzNpbm5OIiL5xS9+0e06fX1fL2QF2ePhdN/85jfjX//1X+O6667rdd2vfOUr8YY3vCEuvPDCuOWWW+Lf//3fc1Ah/XH77bfHhAkT4q1vfWvccccd8Z//+Z/drvvkk0/Ga6+9FgsXLuxo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", "text/plain": [ "
" ] @@ -354,7 +411,7 @@ "source": [ "## Create a spatial plot\n", "fig, ax = plt.subplots(figsize=(13, 8))\n", - "ax.plot(locations.X, locations.Y, 'k.')" + "ax.plot(locations.Lon, locations.Lat, 'k.')" ] }, { @@ -384,17 +441,19 @@ " \n", " \n", " Locatie_MessageID\n", + " Lat\n", + " Lon\n", " Coordinatenstelsel\n", - " X\n", - " Y\n", " Naam\n", + " Omschrijving\n", " Parameter_Wat_Omschrijving\n", + " ProcesType\n", " Compartiment.Code\n", " Compartiment.Omschrijving\n", + " ...\n", + " Grootheid.Omschrijving\n", " Eenheid.Code\n", " Eenheid.Omschrijving\n", - " Grootheid.Code\n", - " Grootheid.Omschrijving\n", " Hoedanigheid.Code\n", " Hoedanigheid.Omschrijving\n", " Parameter.Code\n", @@ -424,179 +483,218 @@ " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " RIEDBG\n", - " 11039\n", - " 25831\n", - " 1.133985e+06\n", - " 5.460049e+06\n", - " Riedenburg\n", - " Waterhoogte Oppervlaktewater t.o.v. plaatselij...\n", + " viken\n", + " 16714\n", + " 56.149434\n", + " 12.565486\n", + " ETRS89\n", + " Viken\n", + " Viken\n", + " Waterhoogte berekend astronomisch in Oppervlak...\n", + " astronomisch\n", " OW\n", " Oppervlaktewater\n", + " ...\n", + " Waterhoogte berekend\n", " cm\n", " centimeter\n", - " WATHTE\n", - " Waterhoogte\n", - " PLAATSLR\n", - " t.o.v. plaatselijk referentievlak\n", + " NAP\n", + " t.o.v. Normaal Amsterdams Peil\n", " NVT\n", - " Waarde is niet van toepassing\n", " NVT\n", - " Niet van toepassing\n", - " RIEDBG\n", + " \n", + " \n", + " viken\n", " \n", " \n", - " BAMBG\n", - " 13481\n", - " 25831\n", - " 1.066035e+06\n", - " 5.555525e+06\n", - " Bamberg\n", - " Waterhoogte Oppervlaktewater t.o.v. plaatselij...\n", + " viken\n", + " 16714\n", + " 56.149434\n", + " 12.565486\n", + " ETRS89\n", + " Viken\n", + " Viken\n", + " Gemiddelde Waterhoogte in Oppervlaktewater t.o...\n", + " meting\n", " OW\n", " Oppervlaktewater\n", + " ...\n", + " Waterhoogte\n", " cm\n", " centimeter\n", - " WATHTE\n", - " Waterhoogte\n", - " PLAATSLR\n", - " t.o.v. plaatselijk referentievlak\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", - " Niet van toepassing\n", - " BAMBG\n", + " NAP\n", + " t.o.v. Normaal Amsterdams Peil\n", + " \n", + " \n", + " \n", + " \n", + " viken\n", " \n", " \n", - " STEINBCH\n", - " 11103\n", - " 25831\n", - " 9.715529e+05\n", - " 5.559332e+06\n", - " Steinbach\n", - " Waterhoogte Oppervlaktewater t.o.v. plaatselij...\n", + " ringhals\n", + " 17955\n", + " 57.249470\n", + " 12.115438\n", + " ETRS89\n", + " Ringhals\n", + " Ringhals\n", + " Gemiddelde Waterhoogte in Oppervlaktewater t.o...\n", + " meting\n", " OW\n", " Oppervlaktewater\n", + " ...\n", + " Waterhoogte\n", " cm\n", " centimeter\n", - " WATHTE\n", - " Waterhoogte\n", - " PLAATSLR\n", - " t.o.v. plaatselijk referentievlak\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", - " Niet van toepassing\n", - " STEINBCH\n", + " NAP\n", + " t.o.v. Normaal Amsterdams Peil\n", + " \n", + " \n", + " \n", + " \n", + " ringhals\n", " \n", " \n", - " KONSZ\n", - " 13512\n", - " 25831\n", - " 9.642014e+05\n", - " 5.295846e+06\n", - " Konstanz\n", - " Waterhoogte Oppervlaktewater t.o.v. plaatselij...\n", + " ringhals\n", + " 17955\n", + " 57.249470\n", + " 12.115438\n", + " ETRS89\n", + " Ringhals\n", + " Ringhals\n", + " Waterhoogte berekend astronomisch in Oppervlak...\n", + " astronomisch\n", " OW\n", " Oppervlaktewater\n", + " ...\n", + " Waterhoogte berekend\n", " cm\n", " centimeter\n", - " WATHTE\n", - " Waterhoogte\n", - " PLAATSLR\n", - " t.o.v. plaatselijk referentievlak\n", + " NAP\n", + " t.o.v. Normaal Amsterdams Peil\n", " NVT\n", - " Waarde is niet van toepassing\n", " NVT\n", - " Niet van toepassing\n", - " KONSZ\n", + " \n", + " \n", + " ringhals\n", " \n", " \n", - " SPEYER\n", - " 11067\n", - " 25831\n", - " 8.958191e+05\n", - " 5.477785e+06\n", - " Speyer\n", - " Waterhoogte Oppervlaktewater t.o.v. plaatselij...\n", + " goteborg.torshamnen\n", + " 8442\n", + " 57.682817\n", + " 11.798748\n", + " ETRS89\n", + " Goteborg, Torshamnen\n", + " Goteborg, Torshamnen\n", + " Gemiddelde Waterhoogte in Oppervlaktewater t.o...\n", + " meting\n", " OW\n", " Oppervlaktewater\n", + " ...\n", + " Waterhoogte\n", " cm\n", " centimeter\n", - " WATHTE\n", - " Waterhoogte\n", - " PLAATSLR\n", - " t.o.v. plaatselijk referentievlak\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", - " Niet van toepassing\n", - " SPEYER\n", + " NAP\n", + " t.o.v. Normaal Amsterdams Peil\n", + " \n", + " \n", + " \n", + " \n", + " goteborg.torshamnen\n", " \n", " \n", "\n", + "

5 rows × 21 columns

\n", "" ], "text/plain": [ - " Locatie_MessageID Coordinatenstelsel X Y \\\n", - "Code \n", - "RIEDBG 11039 25831 1.133985e+06 5.460049e+06 \n", - "BAMBG 13481 25831 1.066035e+06 5.555525e+06 \n", - "STEINBCH 11103 25831 9.715529e+05 5.559332e+06 \n", - "KONSZ 13512 25831 9.642014e+05 5.295846e+06 \n", - "SPEYER 11067 25831 8.958191e+05 5.477785e+06 \n", - "\n", - " Naam Parameter_Wat_Omschrijving \\\n", - "Code \n", - "RIEDBG Riedenburg Waterhoogte Oppervlaktewater t.o.v. plaatselij... \n", - "BAMBG Bamberg Waterhoogte Oppervlaktewater t.o.v. plaatselij... \n", - "STEINBCH Steinbach Waterhoogte Oppervlaktewater t.o.v. plaatselij... \n", - "KONSZ Konstanz Waterhoogte Oppervlaktewater t.o.v. plaatselij... \n", - "SPEYER Speyer Waterhoogte Oppervlaktewater t.o.v. plaatselij... \n", - "\n", - " Compartiment.Code Compartiment.Omschrijving Eenheid.Code \\\n", - "Code \n", - "RIEDBG OW Oppervlaktewater cm \n", - "BAMBG OW Oppervlaktewater cm \n", - "STEINBCH OW Oppervlaktewater cm \n", - "KONSZ OW Oppervlaktewater cm \n", - "SPEYER OW Oppervlaktewater cm \n", - "\n", - " Eenheid.Omschrijving Grootheid.Code Grootheid.Omschrijving \\\n", - "Code \n", - "RIEDBG centimeter WATHTE Waterhoogte \n", - "BAMBG centimeter WATHTE Waterhoogte \n", - "STEINBCH centimeter WATHTE Waterhoogte \n", - "KONSZ centimeter WATHTE Waterhoogte \n", - "SPEYER centimeter WATHTE Waterhoogte \n", - "\n", - " Hoedanigheid.Code Hoedanigheid.Omschrijving Parameter.Code \\\n", - "Code \n", - "RIEDBG PLAATSLR t.o.v. plaatselijk referentievlak NVT \n", - "BAMBG PLAATSLR t.o.v. plaatselijk referentievlak NVT \n", - "STEINBCH PLAATSLR t.o.v. plaatselijk referentievlak NVT \n", - "KONSZ PLAATSLR t.o.v. plaatselijk referentievlak NVT \n", - "SPEYER PLAATSLR t.o.v. plaatselijk referentievlak NVT \n", + " Locatie_MessageID Lat Lon \\\n", + "Code \n", + "viken 16714 56.149434 12.565486 \n", + "viken 16714 56.149434 12.565486 \n", + "ringhals 17955 57.249470 12.115438 \n", + "ringhals 17955 57.249470 12.115438 \n", + "goteborg.torshamnen 8442 57.682817 11.798748 \n", "\n", - " Parameter.Omschrijving Groepering.Code \\\n", - "Code \n", - "RIEDBG Waarde is niet van toepassing NVT \n", - "BAMBG Waarde is niet van toepassing NVT \n", - "STEINBCH Waarde is niet van toepassing NVT \n", - "KONSZ Waarde is niet van toepassing NVT \n", - "SPEYER Waarde is niet van toepassing NVT \n", + " Coordinatenstelsel Naam \\\n", + "Code \n", + "viken ETRS89 Viken \n", + "viken ETRS89 Viken \n", + "ringhals ETRS89 Ringhals \n", + "ringhals ETRS89 Ringhals \n", + "goteborg.torshamnen ETRS89 Goteborg, Torshamnen \n", "\n", - " Groepering.Omschrijving Code \n", + " Omschrijving \\\n", "Code \n", - "RIEDBG Niet van toepassing RIEDBG \n", - "BAMBG Niet van toepassing BAMBG \n", - "STEINBCH Niet van toepassing STEINBCH \n", - "KONSZ Niet van toepassing KONSZ \n", - "SPEYER Niet van toepassing SPEYER " + "viken Viken \n", + "viken Viken \n", + "ringhals Ringhals \n", + "ringhals Ringhals \n", + "goteborg.torshamnen Goteborg, Torshamnen \n", + "\n", + " Parameter_Wat_Omschrijving \\\n", + "Code \n", + "viken Waterhoogte berekend astronomisch in Oppervlak... \n", + "viken Gemiddelde Waterhoogte in Oppervlaktewater t.o... \n", + "ringhals Gemiddelde Waterhoogte in Oppervlaktewater t.o... \n", + "ringhals Waterhoogte berekend astronomisch in Oppervlak... \n", + "goteborg.torshamnen Gemiddelde Waterhoogte in Oppervlaktewater t.o... \n", + "\n", + " ProcesType Compartiment.Code Compartiment.Omschrijving \\\n", + "Code \n", + "viken astronomisch OW Oppervlaktewater \n", + "viken meting OW Oppervlaktewater \n", + "ringhals meting OW Oppervlaktewater \n", + "ringhals astronomisch OW Oppervlaktewater \n", + "goteborg.torshamnen meting OW Oppervlaktewater \n", + "\n", + " ... Grootheid.Omschrijving Eenheid.Code \\\n", + "Code ... \n", + "viken ... Waterhoogte berekend cm \n", + "viken ... Waterhoogte cm \n", + "ringhals ... Waterhoogte cm \n", + "ringhals ... Waterhoogte berekend cm \n", + "goteborg.torshamnen ... Waterhoogte cm \n", + "\n", + " Eenheid.Omschrijving Hoedanigheid.Code \\\n", + "Code \n", + "viken centimeter NAP \n", + "viken centimeter NAP \n", + "ringhals centimeter NAP \n", + "ringhals centimeter NAP \n", + "goteborg.torshamnen centimeter NAP \n", + "\n", + " Hoedanigheid.Omschrijving Parameter.Code \\\n", + "Code \n", + "viken t.o.v. Normaal Amsterdams Peil NVT \n", + "viken t.o.v. Normaal Amsterdams Peil \n", + "ringhals t.o.v. Normaal Amsterdams Peil \n", + "ringhals t.o.v. Normaal Amsterdams Peil NVT \n", + "goteborg.torshamnen t.o.v. Normaal Amsterdams Peil \n", + "\n", + " Parameter.Omschrijving Groepering.Code \\\n", + "Code \n", + "viken NVT \n", + "viken \n", + "ringhals \n", + "ringhals NVT \n", + "goteborg.torshamnen \n", + "\n", + " Groepering.Omschrijving Code \n", + "Code \n", + "viken viken \n", + "viken viken \n", + "ringhals ringhals \n", + "ringhals ringhals \n", + "goteborg.torshamnen goteborg.torshamnen \n", + "\n", + "[5 rows x 21 columns]" ] }, "execution_count": 6, @@ -607,7 +705,7 @@ "source": [ "# CHECK See what the data in the east is.\n", "# These is a reference river for water quality near Chernobyl. \n", - "locations.sort_values('X', ascending=False).head(n=5)" + "locations.sort_values('Lon', ascending=False).head(n=5)" ] }, { @@ -637,17 +735,19 @@ " \n", " \n", " Locatie_MessageID\n", + " Lat\n", + " Lon\n", " Coordinatenstelsel\n", - " X\n", - " Y\n", " Naam\n", + " Omschrijving\n", " Parameter_Wat_Omschrijving\n", + " ProcesType\n", " Compartiment.Code\n", " Compartiment.Omschrijving\n", + " ...\n", + " Grootheid.Omschrijving\n", " Eenheid.Code\n", " Eenheid.Omschrijving\n", - " Grootheid.Code\n", - " Grootheid.Omschrijving\n", " Hoedanigheid.Code\n", " Hoedanigheid.Omschrijving\n", " Parameter.Code\n", @@ -677,127 +777,218 @@ " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " HOEKVHLD\n", - " 10399\n", - " 25831\n", - " 576917.669784\n", - " 5.759136e+06\n", - " Hoek van Holland\n", - " Waterhoogte Oppervlaktewater t.o.v. Normaal Am...\n", + " ijmuiden.buitenhaven\n", + " 7258\n", + " 52.462326\n", + " 4.554823\n", + " ETRS89\n", + " IJmuiden, buitenhaven\n", + " IJmuiden, buitenhaven\n", + " Gemiddelde Waterhoogte in Oppervlaktewater t.o...\n", + " meting\n", " OW\n", " Oppervlaktewater\n", + " ...\n", + " Waterhoogte\n", " cm\n", " centimeter\n", - " WATHTE\n", + " NAP\n", + " t.o.v. Normaal Amsterdams Peil\n", + " \n", + " \n", + " \n", + " \n", + " ijmuiden.buitenhaven\n", + " \n", + " \n", + " ijmuiden.buitenhaven\n", + " 7258\n", + " 52.462326\n", + " 4.554823\n", + " ETRS89\n", + " IJmuiden, buitenhaven\n", + " IJmuiden, buitenhaven\n", + " Waterhoogte in Oppervlaktewater t.o.v. Normaal...\n", + " meting\n", + " OW\n", + " Oppervlaktewater\n", + " ...\n", " Waterhoogte\n", + " cm\n", + " centimeter\n", " NAP\n", " t.o.v. Normaal Amsterdams Peil\n", " NVT\n", - " Waarde is niet van toepassing\n", " NVT\n", - " Niet van toepassing\n", - " HOEKVHLD\n", + " \n", + " \n", + " ijmuiden.buitenhaven\n", " \n", " \n", - " SCHEVNGN\n", - " 10406\n", - " 25831\n", - " 586550.994421\n", - " 5.772806e+06\n", + " scheveningen\n", + " 2609\n", + " 52.099035\n", + " 4.263563\n", + " ETRS89\n", + " Scheveningen\n", " Scheveningen\n", - " Waterhoogte Oppervlaktewater t.o.v. Normaal Am...\n", + " Waterhoogte in Oppervlaktewater t.o.v. Normaal...\n", + " meting\n", " OW\n", " Oppervlaktewater\n", + " ...\n", + " Waterhoogte\n", " cm\n", " centimeter\n", - " WATHTE\n", - " Waterhoogte\n", " NAP\n", " t.o.v. Normaal Amsterdams Peil\n", " NVT\n", - " Waarde is niet van toepassing\n", " NVT\n", - " Niet van toepassing\n", - " SCHEVNGN\n", + " \n", + " \n", + " scheveningen\n", " \n", " \n", - " IJMDBTHVN\n", - " 10414\n", - " 25831\n", - " 605633.035699\n", - " 5.813598e+06\n", - " IJmuiden buitenhaven\n", - " Waterhoogte Oppervlaktewater t.o.v. Normaal Am...\n", + " hoekvanholland\n", + " 13603\n", + " 51.976899\n", + " 4.119827\n", + " ETRS89\n", + " Hoek van Holland\n", + " rechter oever kilometer 1030.1\n", + " Gemiddelde Waterhoogte in Oppervlaktewater t.o...\n", + " meting\n", " OW\n", " Oppervlaktewater\n", + " ...\n", + " Waterhoogte\n", " cm\n", " centimeter\n", - " WATHTE\n", + " NAP\n", + " t.o.v. Normaal Amsterdams Peil\n", + " \n", + " \n", + " \n", + " \n", + " hoekvanholland\n", + " \n", + " \n", + " hoekvanholland\n", + " 13603\n", + " 51.976899\n", + " 4.119827\n", + " ETRS89\n", + " Hoek van Holland\n", + " rechter oever kilometer 1030.1\n", + " Waterhoogte in Oppervlaktewater t.o.v. Normaal...\n", + " meting\n", + " OW\n", + " Oppervlaktewater\n", + " ...\n", " Waterhoogte\n", + " cm\n", + " centimeter\n", " NAP\n", " t.o.v. Normaal Amsterdams Peil\n", " NVT\n", - " Waarde is niet van toepassing\n", " NVT\n", - " Niet van toepassing\n", - " IJMDBTHVN\n", + " \n", + " \n", + " hoekvanholland\n", " \n", " \n", "\n", + "

5 rows × 21 columns

\n", "" ], "text/plain": [ - " Locatie_MessageID Coordinatenstelsel X Y \\\n", - "Code \n", - "HOEKVHLD 10399 25831 576917.669784 5.759136e+06 \n", - "SCHEVNGN 10406 25831 586550.994421 5.772806e+06 \n", - "IJMDBTHVN 10414 25831 605633.035699 5.813598e+06 \n", - "\n", - " Naam \\\n", - "Code \n", - "HOEKVHLD Hoek van Holland \n", - "SCHEVNGN Scheveningen \n", - "IJMDBTHVN IJmuiden buitenhaven \n", - "\n", - " Parameter_Wat_Omschrijving \\\n", + " Locatie_MessageID Lat Lon \\\n", "Code \n", - "HOEKVHLD Waterhoogte Oppervlaktewater t.o.v. Normaal Am... \n", - "SCHEVNGN Waterhoogte Oppervlaktewater t.o.v. Normaal Am... \n", - "IJMDBTHVN Waterhoogte Oppervlaktewater t.o.v. Normaal Am... \n", - "\n", - " Compartiment.Code Compartiment.Omschrijving Eenheid.Code \\\n", - "Code \n", - "HOEKVHLD OW Oppervlaktewater cm \n", - "SCHEVNGN OW Oppervlaktewater cm \n", - "IJMDBTHVN OW Oppervlaktewater cm \n", - "\n", - " Eenheid.Omschrijving Grootheid.Code Grootheid.Omschrijving \\\n", - "Code \n", - "HOEKVHLD centimeter WATHTE Waterhoogte \n", - "SCHEVNGN centimeter WATHTE Waterhoogte \n", - "IJMDBTHVN centimeter WATHTE Waterhoogte \n", + "ijmuiden.buitenhaven 7258 52.462326 4.554823 \n", + "ijmuiden.buitenhaven 7258 52.462326 4.554823 \n", + "scheveningen 2609 52.099035 4.263563 \n", + "hoekvanholland 13603 51.976899 4.119827 \n", + "hoekvanholland 13603 51.976899 4.119827 \n", + "\n", + " Coordinatenstelsel Naam \\\n", + "Code \n", + "ijmuiden.buitenhaven ETRS89 IJmuiden, buitenhaven \n", + "ijmuiden.buitenhaven ETRS89 IJmuiden, buitenhaven \n", + "scheveningen ETRS89 Scheveningen \n", + "hoekvanholland ETRS89 Hoek van Holland \n", + "hoekvanholland ETRS89 Hoek van Holland \n", + "\n", + " Omschrijving \\\n", + "Code \n", + "ijmuiden.buitenhaven IJmuiden, buitenhaven \n", + "ijmuiden.buitenhaven IJmuiden, buitenhaven \n", + "scheveningen Scheveningen \n", + "hoekvanholland rechter oever kilometer 1030.1 \n", + "hoekvanholland rechter oever kilometer 1030.1 \n", + "\n", + " Parameter_Wat_Omschrijving \\\n", + "Code \n", + "ijmuiden.buitenhaven Gemiddelde Waterhoogte in Oppervlaktewater t.o... \n", + "ijmuiden.buitenhaven Waterhoogte in Oppervlaktewater t.o.v. Normaal... \n", + "scheveningen Waterhoogte in Oppervlaktewater t.o.v. Normaal... \n", + "hoekvanholland Gemiddelde Waterhoogte in Oppervlaktewater t.o... \n", + "hoekvanholland Waterhoogte in Oppervlaktewater t.o.v. Normaal... \n", "\n", - " Hoedanigheid.Code Hoedanigheid.Omschrijving Parameter.Code \\\n", - "Code \n", - "HOEKVHLD NAP t.o.v. Normaal Amsterdams Peil NVT \n", - "SCHEVNGN NAP t.o.v. Normaal Amsterdams Peil NVT \n", - "IJMDBTHVN NAP t.o.v. Normaal Amsterdams Peil NVT \n", + " ProcesType Compartiment.Code Compartiment.Omschrijving \\\n", + "Code \n", + "ijmuiden.buitenhaven meting OW Oppervlaktewater \n", + "ijmuiden.buitenhaven meting OW Oppervlaktewater \n", + "scheveningen meting OW Oppervlaktewater \n", + "hoekvanholland meting OW Oppervlaktewater \n", + "hoekvanholland meting OW Oppervlaktewater \n", + "\n", + " ... Grootheid.Omschrijving Eenheid.Code \\\n", + "Code ... \n", + "ijmuiden.buitenhaven ... Waterhoogte cm \n", + "ijmuiden.buitenhaven ... Waterhoogte cm \n", + "scheveningen ... Waterhoogte cm \n", + "hoekvanholland ... Waterhoogte cm \n", + "hoekvanholland ... Waterhoogte cm \n", + "\n", + " Eenheid.Omschrijving Hoedanigheid.Code \\\n", + "Code \n", + "ijmuiden.buitenhaven centimeter NAP \n", + "ijmuiden.buitenhaven centimeter NAP \n", + "scheveningen centimeter NAP \n", + "hoekvanholland centimeter NAP \n", + "hoekvanholland centimeter NAP \n", + "\n", + " Hoedanigheid.Omschrijving Parameter.Code \\\n", + "Code \n", + "ijmuiden.buitenhaven t.o.v. Normaal Amsterdams Peil \n", + "ijmuiden.buitenhaven t.o.v. Normaal Amsterdams Peil NVT \n", + "scheveningen t.o.v. Normaal Amsterdams Peil NVT \n", + "hoekvanholland t.o.v. Normaal Amsterdams Peil \n", + "hoekvanholland t.o.v. Normaal Amsterdams Peil NVT \n", + "\n", + " Parameter.Omschrijving Groepering.Code \\\n", + "Code \n", + "ijmuiden.buitenhaven \n", + "ijmuiden.buitenhaven NVT \n", + "scheveningen NVT \n", + "hoekvanholland \n", + "hoekvanholland NVT \n", + "\n", + " Groepering.Omschrijving Code \n", + "Code \n", + "ijmuiden.buitenhaven ijmuiden.buitenhaven \n", + "ijmuiden.buitenhaven ijmuiden.buitenhaven \n", + "scheveningen scheveningen \n", + "hoekvanholland hoekvanholland \n", + "hoekvanholland hoekvanholland \n", "\n", - " Parameter.Omschrijving Groepering.Code \\\n", - "Code \n", - "HOEKVHLD Waarde is niet van toepassing NVT \n", - "SCHEVNGN Waarde is niet van toepassing NVT \n", - "IJMDBTHVN Waarde is niet van toepassing NVT \n", - "\n", - " Groepering.Omschrijving Code \n", - "Code \n", - "HOEKVHLD Niet van toepassing HOEKVHLD \n", - "SCHEVNGN Niet van toepassing SCHEVNGN \n", - "IJMDBTHVN Niet van toepassing IJMDBTHVN " + "[5 rows x 21 columns]" ] }, "execution_count": 7, @@ -806,11 +997,12 @@ } ], "source": [ - "bool_stations = locations.index.isin(['HOEKVHLD', 'IJMDBTHVN','SCHEVNGN'])\n", - "bool_grootheid = locations['Grootheid.Code'].isin(['WATHTE']) # measured (WATHTE) versus computed/astro\n", - "bool_groepering = locations['Groepering.Code'].isin(['NVT']) # timeseries (NVT) versus extremes\n", + "bool_stations = locations.index.isin(['hoekvanholland', 'ijmuiden.buitenhaven', 'scheveningen'])\n", + "bool_procestype = locations['ProcesType'].isin(['meting']) # meting/astronomisch/verwachting\n", + "bool_grootheid = locations['Grootheid.Code'].isin(['WATHTE']) # waterlevel (WATHTE)\n", + "bool_groepering = locations['Groepering.Code'].isin(['']) # timeseries (NVT) versus extremes\n", "bool_hoedanigheid = locations['Hoedanigheid.Code'].isin(['NAP']) # vertical reference (NAP/MSL)\n", - "selected = locations.loc[bool_stations & bool_grootheid & bool_groepering & bool_hoedanigheid]\n", + "selected = locations.loc[bool_stations & bool_procestype & bool_grootheid & bool_groepering & bool_hoedanigheid]\n", "selected" ] }, @@ -841,17 +1033,19 @@ " \n", " \n", " Locatie_MessageID\n", + " Lat\n", + " Lon\n", " Coordinatenstelsel\n", - " X\n", - " Y\n", " Naam\n", + " Omschrijving\n", " Parameter_Wat_Omschrijving\n", + " ProcesType\n", " Compartiment.Code\n", " Compartiment.Omschrijving\n", + " ...\n", + " Grootheid.Omschrijving\n", " Eenheid.Code\n", " Eenheid.Omschrijving\n", - " Grootheid.Code\n", - " Grootheid.Omschrijving\n", " Hoedanigheid.Code\n", " Hoedanigheid.Omschrijving\n", " Parameter.Code\n", @@ -881,187 +1075,242 @@ " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " ROTTMPT3\n", - " 9486\n", - " 25831\n", - " 735924.084551\n", - " 5.941073e+06\n", - " Rottumerplaat 3 km uit de kust\n", - " Korrelgroottefractie Bodem/Sediment diameter g...\n", - " BS\n", - " Bodem/Sediment\n", - " %\n", - " procent\n", - " KGF\n", - " Korrelgroottefractie\n", - " Dg0016dg\n", - " diameter groter dan 16 um / drooggewicht\n", - " NVT\n", - " Waarde is niet van toepassing\n", + " terschelling.50kmuitdekust\n", + " 9772\n", + " 53.766773\n", + " 4.765613\n", + " ETRS89\n", + " Terschelling, 50 km uit de kust\n", + " Terschelling, 50 km uit de kust\n", + " Gemiddelde Temperatuur in Oppervlaktewater in oC\n", + " meting\n", + " OW\n", + " Oppervlaktewater\n", + " ...\n", + " Temperatuur\n", + " oC\n", + " graad Celsius\n", " NVT\n", " Niet van toepassing\n", - " ROTTMPT3\n", + " \n", + " \n", + " \n", + " \n", + " terschelling.50kmuitdekust\n", " \n", " \n", - " SCHOUWN10\n", - " 9510\n", - " 25831\n", - " 534120.858324\n", - " 5.729921e+06\n", - " Schouwen 10 km uit de kust\n", - " Korrelgroottefractie Bodem/Sediment diameter g...\n", - " BS\n", - " Bodem/Sediment\n", - " %\n", - " procent\n", - " KGF\n", - " Korrelgroottefractie\n", - " Dg0016dg\n", - " diameter groter dan 16 um / drooggewicht\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", - " Niet van toepassing\n", - " SCHOUWN10\n", + " rottumerplaat.70kmuitdekust\n", + " 2286\n", + " 54.117356\n", + " 6.212863\n", + " ETRS89\n", + " Rottumerplaat, 70 km uit de kust\n", + " Rottumerplaat, 70 km uit de kust\n", + " Gemiddelde Windrichting in Lucht t.o.v. ware N...\n", + " meting\n", + " LT\n", + " Lucht\n", + " ...\n", + " Windrichting\n", + " graad\n", + " graad\n", + " WARNDN\n", + " t.o.v. ware Noorden\n", + " \n", + " \n", + " \n", + " \n", + " rottumerplaat.70kmuitdekust\n", " \n", " \n", - " TERSLG235\n", - " 9518\n", - " 25831\n", - " 509938.998556\n", - " 6.113888e+06\n", - " Terschelling 235 km uit de kust\n", - " Korrelgroottefractie Bodem/Sediment diameter g...\n", - " BS\n", - " Bodem/Sediment\n", - " %\n", - " procent\n", - " KGF\n", - " Korrelgroottefractie\n", - " Dg0016dg\n", - " diameter groter dan 16 um / drooggewicht\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", - " Niet van toepassing\n", - " TERSLG235\n", + " goeree20kmuitdekust\n", + " 15290\n", + " 51.953368\n", + " 3.720361\n", + " ETRS89\n", + " Goeree 20 km uit de kust\n", + " Goeree 20 km uit de kust\n", + " (massa)Concentratie fosfor totaal in Oppervlak...\n", + " meting\n", + " OW\n", + " Oppervlaktewater\n", + " ...\n", + " (massa)Concentratie\n", + " mg/l\n", + " milligram per liter\n", + " pg\n", + " particulair gebonden\n", + " Ptot\n", + " fosfor totaal\n", + " \n", + " \n", + " goeree20kmuitdekust\n", " \n", " \n", - " WALCRN2\n", - " 9526\n", - " 25831\n", - " 528394.396027\n", - " 5.710854e+06\n", - " Walcheren 2 km uit de kust\n", - " Korrelgroottefractie Bodem/Sediment diameter g...\n", - " BS\n", - " Bodem/Sediment\n", - " %\n", - " procent\n", - " KGF\n", - " Korrelgroottefractie\n", - " Dg0016dg\n", - " diameter groter dan 16 um / drooggewicht\n", - " NVT\n", - " Waarde is niet van toepassing\n", + " terschelling.100kmuitdekust\n", + " 9376\n", + " 54.148726\n", + " 4.340590\n", + " ETRS89\n", + " Terschelling, 100 km uit de kust\n", + " Terschelling, 100 km uit de kust\n", + " (massa)Concentratie perfluorhexaanzuur in Oppe...\n", + " meting\n", + " OW\n", + " Oppervlaktewater\n", + " ...\n", + " (massa)Concentratie\n", + " ug/l\n", + " microgram per liter\n", " NVT\n", " Niet van toepassing\n", - " WALCRN2\n", + " PFHxA\n", + " perfluorhexaanzuur\n", + " \n", + " \n", + " terschelling.100kmuitdekust\n", " \n", " \n", - " GOERE6\n", - " 9542\n", - " 25831\n", - " 560056.490959\n", - " 5.746818e+06\n", - " Goeree 6 km uit de kust\n", - " Korrelgroottefractie Bodem/Sediment diameter g...\n", - " BS\n", - " Bodem/Sediment\n", - " %\n", - " procent\n", - " KGF\n", - " Korrelgroottefractie\n", - " Dg0016dg\n", - " diameter groter dan 16 um / drooggewicht\n", - " NVT\n", - " Waarde is niet van toepassing\n", + " appelzak.2kmuitdekust\n", + " 9101\n", + " 51.385216\n", + " 3.350962\n", + " ETRS89\n", + " Appelzak, 2 km uit de kust\n", + " Appelzak, 2 km uit de kust\n", + " (massa)Concentratie cadmium in Oppervlaktewate...\n", + " meting\n", + " OW\n", + " Oppervlaktewater\n", + " ...\n", + " (massa)Concentratie\n", + " ug/l\n", + " microgram per liter\n", " NVT\n", " Niet van toepassing\n", - " GOERE6\n", + " Cd\n", + " cadmium\n", + " \n", + " \n", + " appelzak.2kmuitdekust\n", " \n", " \n", "\n", + "

5 rows × 21 columns

\n", "" ], "text/plain": [ - " Locatie_MessageID Coordinatenstelsel X Y \\\n", - "Code \n", - "ROTTMPT3 9486 25831 735924.084551 5.941073e+06 \n", - "SCHOUWN10 9510 25831 534120.858324 5.729921e+06 \n", - "TERSLG235 9518 25831 509938.998556 6.113888e+06 \n", - "WALCRN2 9526 25831 528394.396027 5.710854e+06 \n", - "GOERE6 9542 25831 560056.490959 5.746818e+06 \n", - "\n", - " Naam \\\n", - "Code \n", - "ROTTMPT3 Rottumerplaat 3 km uit de kust \n", - "SCHOUWN10 Schouwen 10 km uit de kust \n", - "TERSLG235 Terschelling 235 km uit de kust \n", - "WALCRN2 Walcheren 2 km uit de kust \n", - "GOERE6 Goeree 6 km uit de kust \n", - "\n", - " Parameter_Wat_Omschrijving \\\n", - "Code \n", - "ROTTMPT3 Korrelgroottefractie Bodem/Sediment diameter g... \n", - "SCHOUWN10 Korrelgroottefractie Bodem/Sediment diameter g... \n", - "TERSLG235 Korrelgroottefractie Bodem/Sediment diameter g... \n", - "WALCRN2 Korrelgroottefractie Bodem/Sediment diameter g... \n", - "GOERE6 Korrelgroottefractie Bodem/Sediment diameter g... \n", - "\n", - " Compartiment.Code Compartiment.Omschrijving Eenheid.Code \\\n", + " Locatie_MessageID Lat Lon \\\n", + "Code \n", + "terschelling.50kmuitdekust 9772 53.766773 4.765613 \n", + "rottumerplaat.70kmuitdekust 2286 54.117356 6.212863 \n", + "goeree20kmuitdekust 15290 51.953368 3.720361 \n", + "terschelling.100kmuitdekust 9376 54.148726 4.340590 \n", + "appelzak.2kmuitdekust 9101 51.385216 3.350962 \n", + "\n", + " Coordinatenstelsel \\\n", + "Code \n", + "terschelling.50kmuitdekust ETRS89 \n", + "rottumerplaat.70kmuitdekust ETRS89 \n", + "goeree20kmuitdekust ETRS89 \n", + "terschelling.100kmuitdekust ETRS89 \n", + "appelzak.2kmuitdekust ETRS89 \n", + "\n", + " Naam \\\n", + "Code \n", + "terschelling.50kmuitdekust Terschelling, 50 km uit de kust \n", + "rottumerplaat.70kmuitdekust Rottumerplaat, 70 km uit de kust \n", + "goeree20kmuitdekust Goeree 20 km uit de kust \n", + "terschelling.100kmuitdekust Terschelling, 100 km uit de kust \n", + "appelzak.2kmuitdekust Appelzak, 2 km uit de kust \n", + "\n", + " Omschrijving \\\n", + "Code \n", + "terschelling.50kmuitdekust Terschelling, 50 km uit de kust \n", + "rottumerplaat.70kmuitdekust Rottumerplaat, 70 km uit de kust \n", + "goeree20kmuitdekust Goeree 20 km uit de kust \n", + "terschelling.100kmuitdekust Terschelling, 100 km uit de kust \n", + "appelzak.2kmuitdekust Appelzak, 2 km uit de kust \n", + "\n", + " Parameter_Wat_Omschrijving \\\n", + "Code \n", + "terschelling.50kmuitdekust Gemiddelde Temperatuur in Oppervlaktewater in oC \n", + "rottumerplaat.70kmuitdekust Gemiddelde Windrichting in Lucht t.o.v. ware N... \n", + "goeree20kmuitdekust (massa)Concentratie fosfor totaal in Oppervlak... \n", + "terschelling.100kmuitdekust (massa)Concentratie perfluorhexaanzuur in Oppe... \n", + "appelzak.2kmuitdekust (massa)Concentratie cadmium in Oppervlaktewate... \n", + "\n", + " ProcesType Compartiment.Code \\\n", + "Code \n", + "terschelling.50kmuitdekust meting OW \n", + "rottumerplaat.70kmuitdekust meting LT \n", + "goeree20kmuitdekust meting OW \n", + "terschelling.100kmuitdekust meting OW \n", + "appelzak.2kmuitdekust meting OW \n", + "\n", + " Compartiment.Omschrijving ... \\\n", + "Code ... \n", + "terschelling.50kmuitdekust Oppervlaktewater ... \n", + "rottumerplaat.70kmuitdekust Lucht ... \n", + "goeree20kmuitdekust Oppervlaktewater ... \n", + "terschelling.100kmuitdekust Oppervlaktewater ... \n", + "appelzak.2kmuitdekust Oppervlaktewater ... \n", + "\n", + " Grootheid.Omschrijving Eenheid.Code \\\n", + "Code \n", + "terschelling.50kmuitdekust Temperatuur oC \n", + "rottumerplaat.70kmuitdekust Windrichting graad \n", + "goeree20kmuitdekust (massa)Concentratie mg/l \n", + "terschelling.100kmuitdekust (massa)Concentratie ug/l \n", + "appelzak.2kmuitdekust (massa)Concentratie ug/l \n", + "\n", + " Eenheid.Omschrijving Hoedanigheid.Code \\\n", "Code \n", - "ROTTMPT3 BS Bodem/Sediment % \n", - "SCHOUWN10 BS Bodem/Sediment % \n", - "TERSLG235 BS Bodem/Sediment % \n", - "WALCRN2 BS Bodem/Sediment % \n", - "GOERE6 BS Bodem/Sediment % \n", + "terschelling.50kmuitdekust graad Celsius NVT \n", + "rottumerplaat.70kmuitdekust graad WARNDN \n", + "goeree20kmuitdekust milligram per liter pg \n", + "terschelling.100kmuitdekust microgram per liter NVT \n", + "appelzak.2kmuitdekust microgram per liter NVT \n", "\n", - " Eenheid.Omschrijving Grootheid.Code Grootheid.Omschrijving \\\n", + " Hoedanigheid.Omschrijving Parameter.Code \\\n", "Code \n", - "ROTTMPT3 procent KGF Korrelgroottefractie \n", - "SCHOUWN10 procent KGF Korrelgroottefractie \n", - "TERSLG235 procent KGF Korrelgroottefractie \n", - "WALCRN2 procent KGF Korrelgroottefractie \n", - "GOERE6 procent KGF Korrelgroottefractie \n", + "terschelling.50kmuitdekust Niet van toepassing \n", + "rottumerplaat.70kmuitdekust t.o.v. ware Noorden \n", + "goeree20kmuitdekust particulair gebonden Ptot \n", + "terschelling.100kmuitdekust Niet van toepassing PFHxA \n", + "appelzak.2kmuitdekust Niet van toepassing Cd \n", "\n", - " Hoedanigheid.Code Hoedanigheid.Omschrijving \\\n", - "Code \n", - "ROTTMPT3 Dg0016dg diameter groter dan 16 um / drooggewicht \n", - "SCHOUWN10 Dg0016dg diameter groter dan 16 um / drooggewicht \n", - "TERSLG235 Dg0016dg diameter groter dan 16 um / drooggewicht \n", - "WALCRN2 Dg0016dg diameter groter dan 16 um / drooggewicht \n", - "GOERE6 Dg0016dg diameter groter dan 16 um / drooggewicht \n", + " Parameter.Omschrijving Groepering.Code \\\n", + "Code \n", + "terschelling.50kmuitdekust \n", + "rottumerplaat.70kmuitdekust \n", + "goeree20kmuitdekust fosfor totaal \n", + "terschelling.100kmuitdekust perfluorhexaanzuur \n", + "appelzak.2kmuitdekust cadmium \n", + "\n", + " Groepering.Omschrijving \\\n", + "Code \n", + "terschelling.50kmuitdekust \n", + "rottumerplaat.70kmuitdekust \n", + "goeree20kmuitdekust \n", + "terschelling.100kmuitdekust \n", + "appelzak.2kmuitdekust \n", + "\n", + " Code \n", + "Code \n", + "terschelling.50kmuitdekust terschelling.50kmuitdekust \n", + "rottumerplaat.70kmuitdekust rottumerplaat.70kmuitdekust \n", + "goeree20kmuitdekust goeree20kmuitdekust \n", + "terschelling.100kmuitdekust terschelling.100kmuitdekust \n", + "appelzak.2kmuitdekust appelzak.2kmuitdekust \n", "\n", - " Parameter.Code Parameter.Omschrijving Groepering.Code \\\n", - "Code \n", - "ROTTMPT3 NVT Waarde is niet van toepassing NVT \n", - "SCHOUWN10 NVT Waarde is niet van toepassing NVT \n", - "TERSLG235 NVT Waarde is niet van toepassing NVT \n", - "WALCRN2 NVT Waarde is niet van toepassing NVT \n", - "GOERE6 NVT Waarde is niet van toepassing NVT \n", - "\n", - " Groepering.Omschrijving Code \n", - "Code \n", - "ROTTMPT3 Niet van toepassing ROTTMPT3 \n", - "SCHOUWN10 Niet van toepassing SCHOUWN10 \n", - "TERSLG235 Niet van toepassing TERSLG235 \n", - "WALCRN2 Niet van toepassing WALCRN2 \n", - "GOERE6 Niet van toepassing GOERE6 " + "[5 rows x 21 columns]" ] }, "execution_count": 8, @@ -1102,17 +1351,19 @@ " \n", " \n", " Locatie_MessageID\n", + " Lat\n", + " Lon\n", " Coordinatenstelsel\n", - " X\n", - " Y\n", " Naam\n", + " Omschrijving\n", " Parameter_Wat_Omschrijving\n", + " ProcesType\n", " Compartiment.Code\n", " Compartiment.Omschrijving\n", + " ...\n", + " Grootheid.Omschrijving\n", " Eenheid.Code\n", " Eenheid.Omschrijving\n", - " Grootheid.Code\n", - " Grootheid.Omschrijving\n", " Hoedanigheid.Code\n", " Hoedanigheid.Omschrijving\n", " Parameter.Code\n", @@ -1142,266 +1393,138 @@ " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " SCHEVNGN\n", - " 10406\n", - " 25831\n", - " 586550.994421\n", - " 5.772806e+06\n", + " scheveningen\n", + " 2609\n", + " 52.099035\n", + " 4.263563\n", + " ETRS89\n", " Scheveningen\n", - " Waterhoogte berekend Oppervlaktewater t.o.v. N...\n", - " OW\n", - " Oppervlaktewater\n", - " cm\n", - " centimeter\n", - " WATHTBRKD\n", - " Waterhoogte berekend\n", - " NAP\n", - " t.o.v. Normaal Amsterdams Peil\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " GETETBRKD2\n", - " Getijextreem berekend\n", - " SCHEVNGN\n", - " \n", - " \n", - " SCHEVNGN\n", - " 10406\n", - " 25831\n", - " 586550.994421\n", - " 5.772806e+06\n", " Scheveningen\n", - " Waterhoogte berekend Oppervlaktewater t.o.v. N...\n", + " Waterhoogte in Oppervlaktewater t.o.v. Normaal...\n", + " meting\n", " OW\n", " Oppervlaktewater\n", + " ...\n", + " Waterhoogte\n", " cm\n", " centimeter\n", - " WATHTBRKD\n", - " Waterhoogte berekend\n", " NAP\n", " t.o.v. Normaal Amsterdams Peil\n", " NVT\n", - " Waarde is niet van toepassing\n", " NVT\n", - " Niet van toepassing\n", - " SCHEVNGN\n", + " \n", + " \n", + " scheveningen\n", " \n", " \n", - " SCHEVNGN\n", - " 10406\n", - " 25831\n", - " 586550.994421\n", - " 5.772806e+06\n", + " scheveningen\n", + " 2609\n", + " 52.099035\n", + " 4.263563\n", + " ETRS89\n", " Scheveningen\n", - " Waterhoogte Oppervlaktewater t.o.v. Normaal Am...\n", - " OW\n", - " Oppervlaktewater\n", - " cm\n", - " centimeter\n", - " WATHTE\n", - " Waterhoogte\n", - " NAP\n", - " t.o.v. Normaal Amsterdams Peil\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " GETETM2\n", - " Getijextremen\n", - " SCHEVNGN\n", - " \n", - " \n", - " SCHEVNGN\n", - " 10406\n", - " 25831\n", - " 586550.994421\n", - " 5.772806e+06\n", " Scheveningen\n", - " Waterhoogte Oppervlaktewater t.o.v. Normaal Am...\n", + " Waterhoogte astronomisch in Oppervlaktewater t...\n", + " astronomisch\n", " OW\n", " Oppervlaktewater\n", - " cm\n", - " centimeter\n", - " WATHTE\n", + " ...\n", " Waterhoogte\n", - " NAP\n", - " t.o.v. Normaal Amsterdams Peil\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", - " Niet van toepassing\n", - " SCHEVNGN\n", - " \n", - " \n", - " SCHEVNGN\n", - " 10406\n", - " 25831\n", - " 586550.994421\n", - " 5.772806e+06\n", - " Scheveningen\n", - " Waterhoogte astronomisch Oppervlaktewater t.o....\n", - " OW\n", - " Oppervlaktewater\n", " cm\n", " centimeter\n", - " WATHTEASTRO\n", - " Waterhoogte astronomisch\n", " NAP\n", " t.o.v. Normaal Amsterdams Peil\n", " NVT\n", - " Waarde is niet van toepassing\n", " NVT\n", - " Niet van toepassing\n", - " SCHEVNGN\n", + " GETETBRKD2\n", + " Getijextreem berekend\n", + " scheveningen\n", " \n", " \n", - " SCHEVNGN\n", - " 10406\n", - " 25831\n", - " 586550.994421\n", - " 5.772806e+06\n", + " scheveningen\n", + " 2609\n", + " 52.099035\n", + " 4.263563\n", + " ETRS89\n", " Scheveningen\n", - " Levendigheid Oppervlaktewater cm2\n", - " OW\n", - " Oppervlaktewater\n", - " cm2\n", - " vierkante centimeter\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", - " niet van toepassing\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", - " Niet van toepassing\n", - " SCHEVNGN\n", - " \n", - " \n", - " SCHEVNGN\n", - " 10406\n", - " 25831\n", - " 586550.994421\n", - " 5.772806e+06\n", " Scheveningen\n", - " Getijextreemtype Oppervlaktewater\n", + " Getijextreemtype astronomisch in Oppervlaktewater\n", + " astronomisch\n", " OW\n", " Oppervlaktewater\n", + " ...\n", + " \n", " DIMSLS\n", " dimensieloos\n", " NVT\n", - " Waarde is niet van toepassing\n", + " Niet van toepassing\n", " NVT\n", - " niet van toepassing\n", " NVT\n", - " Waarde is niet van toepassing\n", " GETETBRKD2\n", " Getijextreem berekend\n", - " SCHEVNGN\n", - " \n", - " \n", - " SCHEVNGN\n", - " 10406\n", - " 25831\n", - " 586550.994421\n", - " 5.772806e+06\n", - " Scheveningen\n", - " Getijextreemtype Oppervlaktewater\n", - " OW\n", - " Oppervlaktewater\n", - " DIMSLS\n", - " dimensieloos\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", - " niet van toepassing\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " GETETM2\n", - " Getijextremen\n", - " SCHEVNGN\n", + " scheveningen\n", " \n", " \n", "\n", + "

3 rows × 21 columns

\n", "" ], "text/plain": [ - " Locatie_MessageID Coordinatenstelsel X Y \\\n", + " Locatie_MessageID Lat Lon Coordinatenstelsel \\\n", + "Code \n", + "scheveningen 2609 52.099035 4.263563 ETRS89 \n", + "scheveningen 2609 52.099035 4.263563 ETRS89 \n", + "scheveningen 2609 52.099035 4.263563 ETRS89 \n", + "\n", + " Naam Omschrijving \\\n", + "Code \n", + "scheveningen Scheveningen Scheveningen \n", + "scheveningen Scheveningen Scheveningen \n", + "scheveningen Scheveningen Scheveningen \n", + "\n", + " Parameter_Wat_Omschrijving ProcesType \\\n", + "Code \n", + "scheveningen Waterhoogte in Oppervlaktewater t.o.v. Normaal... meting \n", + "scheveningen Waterhoogte astronomisch in Oppervlaktewater t... astronomisch \n", + "scheveningen Getijextreemtype astronomisch in Oppervlaktewater astronomisch \n", + "\n", + " Compartiment.Code Compartiment.Omschrijving ... \\\n", + "Code ... \n", + "scheveningen OW Oppervlaktewater ... \n", + "scheveningen OW Oppervlaktewater ... \n", + "scheveningen OW Oppervlaktewater ... \n", + "\n", + " Grootheid.Omschrijving Eenheid.Code Eenheid.Omschrijving \\\n", + "Code \n", + "scheveningen Waterhoogte cm centimeter \n", + "scheveningen Waterhoogte cm centimeter \n", + "scheveningen DIMSLS dimensieloos \n", + "\n", + " Hoedanigheid.Code Hoedanigheid.Omschrijving Parameter.Code \\\n", + "Code \n", + "scheveningen NAP t.o.v. Normaal Amsterdams Peil NVT \n", + "scheveningen NAP t.o.v. Normaal Amsterdams Peil NVT \n", + "scheveningen NVT Niet van toepassing NVT \n", + "\n", + " Parameter.Omschrijving Groepering.Code Groepering.Omschrijving \\\n", "Code \n", - "SCHEVNGN 10406 25831 586550.994421 5.772806e+06 \n", - "SCHEVNGN 10406 25831 586550.994421 5.772806e+06 \n", - "SCHEVNGN 10406 25831 586550.994421 5.772806e+06 \n", - "SCHEVNGN 10406 25831 586550.994421 5.772806e+06 \n", - "SCHEVNGN 10406 25831 586550.994421 5.772806e+06 \n", - "SCHEVNGN 10406 25831 586550.994421 5.772806e+06 \n", - "SCHEVNGN 10406 25831 586550.994421 5.772806e+06 \n", - "SCHEVNGN 10406 25831 586550.994421 5.772806e+06 \n", - "\n", - " Naam Parameter_Wat_Omschrijving \\\n", - "Code \n", - "SCHEVNGN Scheveningen Waterhoogte berekend Oppervlaktewater t.o.v. N... \n", - "SCHEVNGN Scheveningen Waterhoogte berekend Oppervlaktewater t.o.v. N... \n", - "SCHEVNGN Scheveningen Waterhoogte Oppervlaktewater t.o.v. Normaal Am... \n", - "SCHEVNGN Scheveningen Waterhoogte Oppervlaktewater t.o.v. Normaal Am... \n", - "SCHEVNGN Scheveningen Waterhoogte astronomisch Oppervlaktewater t.o.... \n", - "SCHEVNGN Scheveningen Levendigheid Oppervlaktewater cm2 \n", - "SCHEVNGN Scheveningen Getijextreemtype Oppervlaktewater \n", - "SCHEVNGN Scheveningen Getijextreemtype Oppervlaktewater \n", - "\n", - " Compartiment.Code Compartiment.Omschrijving Eenheid.Code \\\n", - "Code \n", - "SCHEVNGN OW Oppervlaktewater cm \n", - "SCHEVNGN OW Oppervlaktewater cm \n", - "SCHEVNGN OW Oppervlaktewater cm \n", - "SCHEVNGN OW Oppervlaktewater cm \n", - "SCHEVNGN OW Oppervlaktewater cm \n", - "SCHEVNGN OW Oppervlaktewater cm2 \n", - "SCHEVNGN OW Oppervlaktewater DIMSLS \n", - "SCHEVNGN OW Oppervlaktewater DIMSLS \n", - "\n", - " Eenheid.Omschrijving Grootheid.Code Grootheid.Omschrijving \\\n", - "Code \n", - "SCHEVNGN centimeter WATHTBRKD Waterhoogte berekend \n", - "SCHEVNGN centimeter WATHTBRKD Waterhoogte berekend \n", - "SCHEVNGN centimeter WATHTE Waterhoogte \n", - "SCHEVNGN centimeter WATHTE Waterhoogte \n", - "SCHEVNGN centimeter WATHTEASTRO Waterhoogte astronomisch \n", - "SCHEVNGN vierkante centimeter NVT Waarde is niet van toepassing \n", - "SCHEVNGN dimensieloos NVT Waarde is niet van toepassing \n", - "SCHEVNGN dimensieloos NVT Waarde is niet van toepassing \n", - "\n", - " Hoedanigheid.Code Hoedanigheid.Omschrijving Parameter.Code \\\n", - "Code \n", - "SCHEVNGN NAP t.o.v. Normaal Amsterdams Peil NVT \n", - "SCHEVNGN NAP t.o.v. Normaal Amsterdams Peil NVT \n", - "SCHEVNGN NAP t.o.v. Normaal Amsterdams Peil NVT \n", - "SCHEVNGN NAP t.o.v. Normaal Amsterdams Peil NVT \n", - "SCHEVNGN NAP t.o.v. Normaal Amsterdams Peil NVT \n", - "SCHEVNGN NVT niet van toepassing NVT \n", - "SCHEVNGN NVT niet van toepassing NVT \n", - "SCHEVNGN NVT niet van toepassing NVT \n", - "\n", - " Parameter.Omschrijving Groepering.Code \\\n", - "Code \n", - "SCHEVNGN Waarde is niet van toepassing GETETBRKD2 \n", - "SCHEVNGN Waarde is niet van toepassing NVT \n", - "SCHEVNGN Waarde is niet van toepassing GETETM2 \n", - "SCHEVNGN Waarde is niet van toepassing NVT \n", - "SCHEVNGN Waarde is niet van toepassing NVT \n", - "SCHEVNGN Waarde is niet van toepassing NVT \n", - "SCHEVNGN Waarde is niet van toepassing GETETBRKD2 \n", - "SCHEVNGN Waarde is niet van toepassing GETETM2 \n", - "\n", - " Groepering.Omschrijving Code \n", - "Code \n", - "SCHEVNGN Getijextreem berekend SCHEVNGN \n", - "SCHEVNGN Niet van toepassing SCHEVNGN \n", - "SCHEVNGN Getijextremen SCHEVNGN \n", - "SCHEVNGN Niet van toepassing SCHEVNGN \n", - "SCHEVNGN Niet van toepassing SCHEVNGN \n", - "SCHEVNGN Niet van toepassing SCHEVNGN \n", - "SCHEVNGN Getijextreem berekend SCHEVNGN \n", - "SCHEVNGN Getijextremen SCHEVNGN " + "scheveningen NVT \n", + "scheveningen NVT GETETBRKD2 Getijextreem berekend \n", + "scheveningen NVT GETETBRKD2 Getijextreem berekend \n", + "\n", + " Code \n", + "Code \n", + "scheveningen scheveningen \n", + "scheveningen scheveningen \n", + "scheveningen scheveningen \n", + "\n", + "[3 rows x 21 columns]" ] }, "execution_count": 9, @@ -1411,7 +1534,7 @@ ], "source": [ "# multiple parameters avaialble per location, each combination is a row\n", - "selected = locations.loc['SCHEVNGN']\n", + "selected = locations.loc['scheveningen']\n", "selected" ] }, @@ -1442,17 +1565,19 @@ " \n", " \n", " Locatie_MessageID\n", + " Lat\n", + " Lon\n", " Coordinatenstelsel\n", - " X\n", - " Y\n", " Naam\n", + " Omschrijving\n", " Parameter_Wat_Omschrijving\n", + " ProcesType\n", " Compartiment.Code\n", " Compartiment.Omschrijving\n", + " ...\n", + " Grootheid.Omschrijving\n", " Eenheid.Code\n", " Eenheid.Omschrijving\n", - " Grootheid.Code\n", - " Grootheid.Omschrijving\n", " Hoedanigheid.Code\n", " Hoedanigheid.Omschrijving\n", " Parameter.Code\n", @@ -1482,63 +1607,106 @@ " \n", " \n", " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " SCHEVNGN\n", - " 10406\n", - " 25831\n", - " 586550.994421\n", - " 5.772806e+06\n", - " Scheveningen\n", - " Waterhoogte Oppervlaktewater t.o.v. Normaal Am...\n", + " ameland.nes\n", + " 6955\n", + " 53.429766\n", + " 5.759448\n", + " ETRS89\n", + " Ameland, Nes\n", + " Ameland, Nes\n", + " Waterhoogte in Oppervlaktewater t.o.v. Normaal...\n", + " meting\n", " OW\n", " Oppervlaktewater\n", + " ...\n", + " Waterhoogte\n", " cm\n", " centimeter\n", - " WATHTE\n", - " Waterhoogte\n", " NAP\n", " t.o.v. Normaal Amsterdams Peil\n", " NVT\n", - " Waarde is niet van toepassing\n", " NVT\n", - " Niet van toepassing\n", - " SCHEVNGN\n", + " \n", + " \n", + " ameland.nes\n", + " \n", + " \n", + " ameland.nes\n", + " 6955\n", + " 53.429766\n", + " 5.759448\n", + " ETRS89\n", + " Ameland, Nes\n", + " Ameland, Nes\n", + " Gemiddelde Waterhoogte in Oppervlaktewater t.o...\n", + " meting\n", + " OW\n", + " Oppervlaktewater\n", + " ...\n", + " Waterhoogte\n", + " cm\n", + " centimeter\n", + " NAP\n", + " t.o.v. Normaal Amsterdams Peil\n", + " \n", + " \n", + " \n", + " \n", + " ameland.nes\n", " \n", " \n", "\n", + "

2 rows × 21 columns

\n", "" ], "text/plain": [ - " Locatie_MessageID Coordinatenstelsel X Y \\\n", - "Code \n", - "SCHEVNGN 10406 25831 586550.994421 5.772806e+06 \n", + " Locatie_MessageID Lat Lon Coordinatenstelsel \\\n", + "Code \n", + "ameland.nes 6955 53.429766 5.759448 ETRS89 \n", + "ameland.nes 6955 53.429766 5.759448 ETRS89 \n", "\n", - " Naam Parameter_Wat_Omschrijving \\\n", + " Naam Omschrijving \\\n", + "Code \n", + "ameland.nes Ameland, Nes Ameland, Nes \n", + "ameland.nes Ameland, Nes Ameland, Nes \n", + "\n", + " Parameter_Wat_Omschrijving ProcesType \\\n", "Code \n", - "SCHEVNGN Scheveningen Waterhoogte Oppervlaktewater t.o.v. Normaal Am... \n", + "ameland.nes Waterhoogte in Oppervlaktewater t.o.v. Normaal... meting \n", + "ameland.nes Gemiddelde Waterhoogte in Oppervlaktewater t.o... meting \n", "\n", - " Compartiment.Code Compartiment.Omschrijving Eenheid.Code \\\n", - "Code \n", - "SCHEVNGN OW Oppervlaktewater cm \n", + " Compartiment.Code Compartiment.Omschrijving ... \\\n", + "Code ... \n", + "ameland.nes OW Oppervlaktewater ... \n", + "ameland.nes OW Oppervlaktewater ... \n", "\n", - " Eenheid.Omschrijving Grootheid.Code Grootheid.Omschrijving \\\n", - "Code \n", - "SCHEVNGN centimeter WATHTE Waterhoogte \n", + " Grootheid.Omschrijving Eenheid.Code Eenheid.Omschrijving \\\n", + "Code \n", + "ameland.nes Waterhoogte cm centimeter \n", + "ameland.nes Waterhoogte cm centimeter \n", "\n", - " Hoedanigheid.Code Hoedanigheid.Omschrijving Parameter.Code \\\n", - "Code \n", - "SCHEVNGN NAP t.o.v. Normaal Amsterdams Peil NVT \n", + " Hoedanigheid.Code Hoedanigheid.Omschrijving Parameter.Code \\\n", + "Code \n", + "ameland.nes NAP t.o.v. Normaal Amsterdams Peil NVT \n", + "ameland.nes NAP t.o.v. Normaal Amsterdams Peil \n", "\n", - " Parameter.Omschrijving Groepering.Code \\\n", - "Code \n", - "SCHEVNGN Waarde is niet van toepassing NVT \n", + " Parameter.Omschrijving Groepering.Code Groepering.Omschrijving \\\n", + "Code \n", + "ameland.nes NVT \n", + "ameland.nes \n", "\n", - " Groepering.Omschrijving Code \n", - "Code \n", - "SCHEVNGN Niet van toepassing SCHEVNGN " + " Code \n", + "Code \n", + "ameland.nes ameland.nes \n", + "ameland.nes ameland.nes \n", + "\n", + "[2 rows x 21 columns]" ] }, "execution_count": 10, @@ -1548,12 +1716,14 @@ ], "source": [ "# subset to a single location/measurement location (waterhoogte timeseries for Scheveningen)\n", - "bool_stations = locations.index.isin(['SCHEVNGN'])\n", - "# measured (WATHTE) versus computed/astro\n", + "bool_stations = locations.index.isin(['ameland.nes'])\n", + "# meting/astronomisch/verwachting\n", + "bool_procestype = locations['ProcesType'].isin(['meting'])\n", + "# waterlevel/waterhoogte (WATHTE)\n", "bool_grootheid = locations['Grootheid.Code'].isin(['WATHTE'])\n", "# timeseries (NVT) versus extremes\n", - "bool_groepering = locations['Groepering.Code'].isin(['NVT'])\n", - "selected = locations.loc[bool_stations & bool_grootheid & bool_groepering]\n", + "bool_groepering = locations['Groepering.Code'].isin([''])\n", + "selected = locations.loc[bool_stations & bool_procestype & bool_grootheid & bool_groepering]\n", "selected" ] }, @@ -1566,16 +1736,16 @@ "name": "stderr", "output_type": "stream", "text": [ - " 0%| | 0/9 [00:00" ] @@ -1641,27 +1811,27 @@ " \n", " \n", " \n", - " WaarnemingMetadata.StatuswaardeLijst\n", - " WaarnemingMetadata.BemonsteringshoogteLijst\n", - " WaarnemingMetadata.ReferentievlakLijst\n", - " WaarnemingMetadata.OpdrachtgevendeInstantieLijst\n", - " WaarnemingMetadata.KwaliteitswaardecodeLijst\n", - " AquoMetadata_MessageID\n", - " Parameter_Wat_Omschrijving\n", - " BemonsteringsApparaat.Code\n", - " BemonsteringsApparaat.Omschrijving\n", - " BemonsteringsMethode.Code\n", + " WaarnemingMetadata.Statuswaarde\n", + " WaarnemingMetadata.Bemonsteringshoogte\n", + " WaarnemingMetadata.Referentievlak\n", + " WaarnemingMetadata.OpdrachtgevendeInstantie\n", + " WaarnemingMetadata.Kwaliteitswaardecode\n", + " Compartiment.Code\n", + " Compartiment.Omschrijving\n", + " Grootheid.Code\n", + " Grootheid.Omschrijving\n", + " Eenheid.Code\n", " ...\n", - " WaardeBepalingsmethode.Omschrijving\n", - " WaardeBewerkingsmethode.Code\n", - " WaardeBewerkingsmethode.Omschrijving\n", - " Meetwaarde.Waarde_Numeriek\n", + " WaardeBewerkingsMethode.Omschrijving\n", + " Parameter_Wat_Omschrijving\n", + " ProcesType\n", " Meetwaarde.Waarde_Alfanumeriek\n", + " Meetwaarde.Waarde_Numeriek\n", " Code\n", " Coordinatenstelsel\n", " Naam\n", - " X\n", - " Y\n", + " Lon\n", + " Lat\n", " \n", " \n", " time\n", @@ -1690,124 +1860,124 @@ " \n", " \n", " \n", - " 2019-05-01 02:00:00+01:00\n", - " Gecontroleerd\n", + " 2019-05-01 01:00:00+01:00\n", + " Ongecontroleerd\n", " -999999999\n", " NVT\n", " RIKZMON_WAT\n", " 00\n", - " 2573\n", - " Waterhoogte Oppervlaktewater t.o.v. Normaal Am...\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", + " OW\n", + " Oppervlaktewater\n", + " WATHTE\n", + " Waterhoogte\n", + " cm\n", " ...\n", - " Rekenkundig gemiddelde waarde over vorige 5 en...\n", - " NVT\n", " Niet van toepassing\n", - " 44.0\n", - " 44\n", - " SCHEVNGN\n", - " 25831\n", - " Scheveningen\n", - " 586550.994421\n", - " 5.772806e+06\n", + " Waterhoogte astronomisch in Oppervlaktewater t...\n", + " astronomisch\n", + " -103\n", + " -103.0\n", + " ameland.nes\n", + " ETRS89\n", + " Ameland, Nes\n", + " 5.759448\n", + " 53.429766\n", " \n", " \n", - " 2019-05-01 02:10:00+01:00\n", - " Gecontroleerd\n", + " 2019-05-01 01:10:00+01:00\n", + " Ongecontroleerd\n", " -999999999\n", " NVT\n", " RIKZMON_WAT\n", " 00\n", - " 2573\n", - " Waterhoogte Oppervlaktewater t.o.v. Normaal Am...\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", + " OW\n", + " Oppervlaktewater\n", + " WATHTE\n", + " Waterhoogte\n", + " cm\n", " ...\n", - " Rekenkundig gemiddelde waarde over vorige 5 en...\n", - " NVT\n", " Niet van toepassing\n", - " 41.0\n", - " 41\n", - " SCHEVNGN\n", - " 25831\n", - " Scheveningen\n", - " 586550.994421\n", - " 5.772806e+06\n", + " Waterhoogte astronomisch in Oppervlaktewater t...\n", + " astronomisch\n", + " -106\n", + " -106.0\n", + " ameland.nes\n", + " ETRS89\n", + " Ameland, Nes\n", + " 5.759448\n", + " 53.429766\n", " \n", " \n", - " 2019-05-01 02:20:00+01:00\n", - " Gecontroleerd\n", + " 2019-05-01 01:20:00+01:00\n", + " Ongecontroleerd\n", " -999999999\n", " NVT\n", " RIKZMON_WAT\n", " 00\n", - " 2573\n", - " Waterhoogte Oppervlaktewater t.o.v. Normaal Am...\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", + " OW\n", + " Oppervlaktewater\n", + " WATHTE\n", + " Waterhoogte\n", + " cm\n", " ...\n", - " Rekenkundig gemiddelde waarde over vorige 5 en...\n", - " NVT\n", " Niet van toepassing\n", - " 36.0\n", - " 36\n", - " SCHEVNGN\n", - " 25831\n", - " Scheveningen\n", - " 586550.994421\n", - " 5.772806e+06\n", + " Waterhoogte astronomisch in Oppervlaktewater t...\n", + " astronomisch\n", + " -108\n", + " -108.0\n", + " ameland.nes\n", + " ETRS89\n", + " Ameland, Nes\n", + " 5.759448\n", + " 53.429766\n", " \n", " \n", - " 2019-05-01 02:30:00+01:00\n", - " Gecontroleerd\n", + " 2019-05-01 01:30:00+01:00\n", + " Ongecontroleerd\n", " -999999999\n", " NVT\n", " RIKZMON_WAT\n", " 00\n", - " 2573\n", - " Waterhoogte Oppervlaktewater t.o.v. Normaal Am...\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", + " OW\n", + " Oppervlaktewater\n", + " WATHTE\n", + " Waterhoogte\n", + " cm\n", " ...\n", - " Rekenkundig gemiddelde waarde over vorige 5 en...\n", - " NVT\n", " Niet van toepassing\n", - " 31.0\n", - " 31\n", - " SCHEVNGN\n", - " 25831\n", - " Scheveningen\n", - " 586550.994421\n", - " 5.772806e+06\n", + " Waterhoogte astronomisch in Oppervlaktewater t...\n", + " astronomisch\n", + " -108\n", + " -108.0\n", + " ameland.nes\n", + " ETRS89\n", + " Ameland, Nes\n", + " 5.759448\n", + " 53.429766\n", " \n", " \n", - " 2019-05-01 02:40:00+01:00\n", - " Gecontroleerd\n", + " 2019-05-01 01:40:00+01:00\n", + " Ongecontroleerd\n", " -999999999\n", " NVT\n", " RIKZMON_WAT\n", " 00\n", - " 2573\n", - " Waterhoogte Oppervlaktewater t.o.v. Normaal Am...\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", + " OW\n", + " Oppervlaktewater\n", + " WATHTE\n", + " Waterhoogte\n", + " cm\n", " ...\n", - " Rekenkundig gemiddelde waarde over vorige 5 en...\n", - " NVT\n", " Niet van toepassing\n", - " 25.0\n", - " 25\n", - " SCHEVNGN\n", - " 25831\n", - " Scheveningen\n", - " 586550.994421\n", - " 5.772806e+06\n", + " Waterhoogte astronomisch in Oppervlaktewater t...\n", + " astronomisch\n", + " -108\n", + " -108.0\n", + " ameland.nes\n", + " ETRS89\n", + " Ameland, Nes\n", + " 5.759448\n", + " 53.429766\n", " \n", " \n", " ...\n", @@ -1835,369 +2005,313 @@ " \n", " \n", " 2020-02-01 00:20:00+01:00\n", - " Gecontroleerd\n", + " Ongecontroleerd\n", " -999999999\n", " NVT\n", " RIKZMON_WAT\n", " 00\n", - " 2573\n", - " Waterhoogte Oppervlaktewater t.o.v. Normaal Am...\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", + " OW\n", + " Oppervlaktewater\n", + " WATHTE\n", + " Waterhoogte\n", + " cm\n", " ...\n", - " Rekenkundig gemiddelde waarde over vorige 5 en...\n", - " NVT\n", " Niet van toepassing\n", - " -21.0\n", - " -21\n", - " SCHEVNGN\n", - " 25831\n", - " Scheveningen\n", - " 586550.994421\n", - " 5.772806e+06\n", + " Waterhoogte astronomisch in Oppervlaktewater t...\n", + " astronomisch\n", + " 81\n", + " 81.0\n", + " ameland.nes\n", + " ETRS89\n", + " Ameland, Nes\n", + " 5.759448\n", + " 53.429766\n", " \n", " \n", " 2020-02-01 00:30:00+01:00\n", - " Gecontroleerd\n", + " Ongecontroleerd\n", " -999999999\n", " NVT\n", " RIKZMON_WAT\n", " 00\n", - " 2573\n", - " Waterhoogte Oppervlaktewater t.o.v. Normaal Am...\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", + " OW\n", + " Oppervlaktewater\n", + " WATHTE\n", + " Waterhoogte\n", + " cm\n", " ...\n", - " Rekenkundig gemiddelde waarde over vorige 5 en...\n", - " NVT\n", " Niet van toepassing\n", - " -21.0\n", - " -21\n", - " SCHEVNGN\n", - " 25831\n", - " Scheveningen\n", - " 586550.994421\n", - " 5.772806e+06\n", + " Waterhoogte astronomisch in Oppervlaktewater t...\n", + " astronomisch\n", + " 85\n", + " 85.0\n", + " ameland.nes\n", + " ETRS89\n", + " Ameland, Nes\n", + " 5.759448\n", + " 53.429766\n", " \n", " \n", " 2020-02-01 00:40:00+01:00\n", - " Gecontroleerd\n", + " Ongecontroleerd\n", " -999999999\n", " NVT\n", " RIKZMON_WAT\n", " 00\n", - " 2573\n", - " Waterhoogte Oppervlaktewater t.o.v. Normaal Am...\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", + " OW\n", + " Oppervlaktewater\n", + " WATHTE\n", + " Waterhoogte\n", + " cm\n", " ...\n", - " Rekenkundig gemiddelde waarde over vorige 5 en...\n", - " NVT\n", " Niet van toepassing\n", - " -23.0\n", - " -23\n", - " SCHEVNGN\n", - " 25831\n", - " Scheveningen\n", - " 586550.994421\n", - " 5.772806e+06\n", + " Waterhoogte astronomisch in Oppervlaktewater t...\n", + " astronomisch\n", + " 89\n", + " 89.0\n", + " ameland.nes\n", + " ETRS89\n", + " Ameland, Nes\n", + " 5.759448\n", + " 53.429766\n", " \n", " \n", " 2020-02-01 00:50:00+01:00\n", - " Gecontroleerd\n", + " Ongecontroleerd\n", " -999999999\n", " NVT\n", " RIKZMON_WAT\n", " 00\n", - " 2573\n", - " Waterhoogte Oppervlaktewater t.o.v. Normaal Am...\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", + " OW\n", + " Oppervlaktewater\n", + " WATHTE\n", + " Waterhoogte\n", + " cm\n", " ...\n", - " Rekenkundig gemiddelde waarde over vorige 5 en...\n", - " NVT\n", " Niet van toepassing\n", - " -22.0\n", - " -22\n", - " SCHEVNGN\n", - " 25831\n", - " Scheveningen\n", - " 586550.994421\n", - " 5.772806e+06\n", + " Waterhoogte astronomisch in Oppervlaktewater t...\n", + " astronomisch\n", + " 93\n", + " 93.0\n", + " ameland.nes\n", + " ETRS89\n", + " Ameland, Nes\n", + " 5.759448\n", + " 53.429766\n", " \n", " \n", " 2020-02-01 01:00:00+01:00\n", - " Gecontroleerd\n", + " Ongecontroleerd\n", " -999999999\n", " NVT\n", " RIKZMON_WAT\n", " 00\n", - " 2573\n", - " Waterhoogte Oppervlaktewater t.o.v. Normaal Am...\n", - " NVT\n", - " Waarde is niet van toepassing\n", - " NVT\n", + " OW\n", + " Oppervlaktewater\n", + " WATHTE\n", + " Waterhoogte\n", + " cm\n", " ...\n", - " Rekenkundig gemiddelde waarde over vorige 5 en...\n", - " NVT\n", " Niet van toepassing\n", - " -26.0\n", - " -26\n", - " SCHEVNGN\n", - " 25831\n", - " Scheveningen\n", - " 586550.994421\n", - " 5.772806e+06\n", + " Waterhoogte astronomisch in Oppervlaktewater t...\n", + " astronomisch\n", + " 96\n", + " 96.0\n", + " ameland.nes\n", + " ETRS89\n", + " Ameland, Nes\n", + " 5.759448\n", + " 53.429766\n", " \n", " \n", "\n", - "

39739 rows × 53 columns

\n", + "

39745 rows × 48 columns

\n", "" ], "text/plain": [ - " WaarnemingMetadata.StatuswaardeLijst \\\n", - "time \n", - "2019-05-01 02:00:00+01:00 Gecontroleerd \n", - "2019-05-01 02:10:00+01:00 Gecontroleerd \n", - "2019-05-01 02:20:00+01:00 Gecontroleerd \n", - "2019-05-01 02:30:00+01:00 Gecontroleerd \n", - "2019-05-01 02:40:00+01:00 Gecontroleerd \n", - "... ... \n", - "2020-02-01 00:20:00+01:00 Gecontroleerd \n", - "2020-02-01 00:30:00+01:00 Gecontroleerd \n", - "2020-02-01 00:40:00+01:00 Gecontroleerd \n", - "2020-02-01 00:50:00+01:00 Gecontroleerd \n", - "2020-02-01 01:00:00+01:00 Gecontroleerd \n", - "\n", - " WaarnemingMetadata.BemonsteringshoogteLijst \\\n", - "time \n", - "2019-05-01 02:00:00+01:00 -999999999 \n", - "2019-05-01 02:10:00+01:00 -999999999 \n", - "2019-05-01 02:20:00+01:00 -999999999 \n", - "2019-05-01 02:30:00+01:00 -999999999 \n", - "2019-05-01 02:40:00+01:00 -999999999 \n", - "... ... \n", - "2020-02-01 00:20:00+01:00 -999999999 \n", - "2020-02-01 00:30:00+01:00 -999999999 \n", - "2020-02-01 00:40:00+01:00 -999999999 \n", - "2020-02-01 00:50:00+01:00 -999999999 \n", - "2020-02-01 01:00:00+01:00 -999999999 \n", - "\n", - " WaarnemingMetadata.ReferentievlakLijst \\\n", + " WaarnemingMetadata.Statuswaarde \\\n", + "time \n", + "2019-05-01 01:00:00+01:00 Ongecontroleerd \n", + "2019-05-01 01:10:00+01:00 Ongecontroleerd \n", + "2019-05-01 01:20:00+01:00 Ongecontroleerd \n", + "2019-05-01 01:30:00+01:00 Ongecontroleerd \n", + "2019-05-01 01:40:00+01:00 Ongecontroleerd \n", + "... ... \n", + "2020-02-01 00:20:00+01:00 Ongecontroleerd \n", + "2020-02-01 00:30:00+01:00 Ongecontroleerd \n", + "2020-02-01 00:40:00+01:00 Ongecontroleerd \n", + "2020-02-01 00:50:00+01:00 Ongecontroleerd \n", + "2020-02-01 01:00:00+01:00 Ongecontroleerd \n", + "\n", + " WaarnemingMetadata.Bemonsteringshoogte \\\n", "time \n", - "2019-05-01 02:00:00+01:00 NVT \n", - "2019-05-01 02:10:00+01:00 NVT \n", - "2019-05-01 02:20:00+01:00 NVT \n", - "2019-05-01 02:30:00+01:00 NVT \n", - "2019-05-01 02:40:00+01:00 NVT \n", + "2019-05-01 01:00:00+01:00 -999999999 \n", + "2019-05-01 01:10:00+01:00 -999999999 \n", + "2019-05-01 01:20:00+01:00 -999999999 \n", + "2019-05-01 01:30:00+01:00 -999999999 \n", + "2019-05-01 01:40:00+01:00 -999999999 \n", "... ... \n", - "2020-02-01 00:20:00+01:00 NVT \n", - "2020-02-01 00:30:00+01:00 NVT \n", - "2020-02-01 00:40:00+01:00 NVT \n", - "2020-02-01 00:50:00+01:00 NVT \n", - "2020-02-01 01:00:00+01:00 NVT \n", - "\n", - " WaarnemingMetadata.OpdrachtgevendeInstantieLijst \\\n", - "time \n", - "2019-05-01 02:00:00+01:00 RIKZMON_WAT \n", - "2019-05-01 02:10:00+01:00 RIKZMON_WAT \n", - "2019-05-01 02:20:00+01:00 RIKZMON_WAT \n", - "2019-05-01 02:30:00+01:00 RIKZMON_WAT \n", - "2019-05-01 02:40:00+01:00 RIKZMON_WAT \n", - "... ... \n", - "2020-02-01 00:20:00+01:00 RIKZMON_WAT \n", - "2020-02-01 00:30:00+01:00 RIKZMON_WAT \n", - "2020-02-01 00:40:00+01:00 RIKZMON_WAT \n", - "2020-02-01 00:50:00+01:00 RIKZMON_WAT \n", - "2020-02-01 01:00:00+01:00 RIKZMON_WAT \n", - "\n", - " WaarnemingMetadata.KwaliteitswaardecodeLijst \\\n", - "time \n", - "2019-05-01 02:00:00+01:00 00 \n", - "2019-05-01 02:10:00+01:00 00 \n", - "2019-05-01 02:20:00+01:00 00 \n", - "2019-05-01 02:30:00+01:00 00 \n", - "2019-05-01 02:40:00+01:00 00 \n", - "... ... \n", - "2020-02-01 00:20:00+01:00 00 \n", - "2020-02-01 00:30:00+01:00 00 \n", - "2020-02-01 00:40:00+01:00 00 \n", - "2020-02-01 00:50:00+01:00 00 \n", - "2020-02-01 01:00:00+01:00 00 \n", - "\n", - " AquoMetadata_MessageID \\\n", - "time \n", - "2019-05-01 02:00:00+01:00 2573 \n", - "2019-05-01 02:10:00+01:00 2573 \n", - "2019-05-01 02:20:00+01:00 2573 \n", - "2019-05-01 02:30:00+01:00 2573 \n", - "2019-05-01 02:40:00+01:00 2573 \n", - "... ... \n", - "2020-02-01 00:20:00+01:00 2573 \n", - "2020-02-01 00:30:00+01:00 2573 \n", - "2020-02-01 00:40:00+01:00 2573 \n", - "2020-02-01 00:50:00+01:00 2573 \n", - "2020-02-01 01:00:00+01:00 2573 \n", + "2020-02-01 00:20:00+01:00 -999999999 \n", + "2020-02-01 00:30:00+01:00 -999999999 \n", + "2020-02-01 00:40:00+01:00 -999999999 \n", + "2020-02-01 00:50:00+01:00 -999999999 \n", + "2020-02-01 01:00:00+01:00 -999999999 \n", + "\n", + " WaarnemingMetadata.Referentievlak \\\n", + "time \n", + "2019-05-01 01:00:00+01:00 NVT \n", + "2019-05-01 01:10:00+01:00 NVT \n", + "2019-05-01 01:20:00+01:00 NVT \n", + "2019-05-01 01:30:00+01:00 NVT \n", + "2019-05-01 01:40:00+01:00 NVT \n", + "... ... \n", + "2020-02-01 00:20:00+01:00 NVT \n", + "2020-02-01 00:30:00+01:00 NVT \n", + "2020-02-01 00:40:00+01:00 NVT \n", + "2020-02-01 00:50:00+01:00 NVT \n", + "2020-02-01 01:00:00+01:00 NVT \n", + "\n", + " WaarnemingMetadata.OpdrachtgevendeInstantie \\\n", + "time \n", + "2019-05-01 01:00:00+01:00 RIKZMON_WAT \n", + "2019-05-01 01:10:00+01:00 RIKZMON_WAT \n", + "2019-05-01 01:20:00+01:00 RIKZMON_WAT \n", + "2019-05-01 01:30:00+01:00 RIKZMON_WAT \n", + "2019-05-01 01:40:00+01:00 RIKZMON_WAT \n", + "... ... \n", + "2020-02-01 00:20:00+01:00 RIKZMON_WAT \n", + "2020-02-01 00:30:00+01:00 RIKZMON_WAT \n", + "2020-02-01 00:40:00+01:00 RIKZMON_WAT \n", + "2020-02-01 00:50:00+01:00 RIKZMON_WAT \n", + "2020-02-01 01:00:00+01:00 RIKZMON_WAT \n", + "\n", + " WaarnemingMetadata.Kwaliteitswaardecode \\\n", + "time \n", + "2019-05-01 01:00:00+01:00 00 \n", + "2019-05-01 01:10:00+01:00 00 \n", + "2019-05-01 01:20:00+01:00 00 \n", + "2019-05-01 01:30:00+01:00 00 \n", + "2019-05-01 01:40:00+01:00 00 \n", + "... ... \n", + "2020-02-01 00:20:00+01:00 00 \n", + "2020-02-01 00:30:00+01:00 00 \n", + "2020-02-01 00:40:00+01:00 00 \n", + "2020-02-01 00:50:00+01:00 00 \n", + "2020-02-01 01:00:00+01:00 00 \n", + "\n", + " Compartiment.Code Compartiment.Omschrijving \\\n", + "time \n", + "2019-05-01 01:00:00+01:00 OW Oppervlaktewater \n", + "2019-05-01 01:10:00+01:00 OW Oppervlaktewater \n", + "2019-05-01 01:20:00+01:00 OW Oppervlaktewater \n", + "2019-05-01 01:30:00+01:00 OW Oppervlaktewater \n", + "2019-05-01 01:40:00+01:00 OW Oppervlaktewater \n", + "... ... ... \n", + "2020-02-01 00:20:00+01:00 OW Oppervlaktewater \n", + "2020-02-01 00:30:00+01:00 OW Oppervlaktewater \n", + "2020-02-01 00:40:00+01:00 OW Oppervlaktewater \n", + "2020-02-01 00:50:00+01:00 OW Oppervlaktewater \n", + "2020-02-01 01:00:00+01:00 OW Oppervlaktewater \n", + "\n", + " Grootheid.Code Grootheid.Omschrijving Eenheid.Code \\\n", + "time \n", + "2019-05-01 01:00:00+01:00 WATHTE Waterhoogte cm \n", + "2019-05-01 01:10:00+01:00 WATHTE Waterhoogte cm \n", + "2019-05-01 01:20:00+01:00 WATHTE Waterhoogte cm \n", + "2019-05-01 01:30:00+01:00 WATHTE Waterhoogte cm \n", + "2019-05-01 01:40:00+01:00 WATHTE Waterhoogte cm \n", + "... ... ... ... \n", + "2020-02-01 00:20:00+01:00 WATHTE Waterhoogte cm \n", + "2020-02-01 00:30:00+01:00 WATHTE Waterhoogte cm \n", + "2020-02-01 00:40:00+01:00 WATHTE Waterhoogte cm \n", + "2020-02-01 00:50:00+01:00 WATHTE Waterhoogte cm \n", + "2020-02-01 01:00:00+01:00 WATHTE Waterhoogte cm \n", + "\n", + " ... WaardeBewerkingsMethode.Omschrijving \\\n", + "time ... \n", + "2019-05-01 01:00:00+01:00 ... Niet van toepassing \n", + "2019-05-01 01:10:00+01:00 ... Niet van toepassing \n", + "2019-05-01 01:20:00+01:00 ... Niet van toepassing \n", + "2019-05-01 01:30:00+01:00 ... Niet van toepassing \n", + "2019-05-01 01:40:00+01:00 ... Niet van toepassing \n", + "... ... ... \n", + "2020-02-01 00:20:00+01:00 ... Niet van toepassing \n", + "2020-02-01 00:30:00+01:00 ... Niet van toepassing \n", + "2020-02-01 00:40:00+01:00 ... Niet van toepassing \n", + "2020-02-01 00:50:00+01:00 ... Niet van toepassing \n", + "2020-02-01 01:00:00+01:00 ... Niet van toepassing \n", "\n", " Parameter_Wat_Omschrijving \\\n", "time \n", - "2019-05-01 02:00:00+01:00 Waterhoogte Oppervlaktewater t.o.v. Normaal Am... \n", - "2019-05-01 02:10:00+01:00 Waterhoogte Oppervlaktewater t.o.v. Normaal Am... \n", - "2019-05-01 02:20:00+01:00 Waterhoogte Oppervlaktewater t.o.v. Normaal Am... \n", - "2019-05-01 02:30:00+01:00 Waterhoogte Oppervlaktewater t.o.v. Normaal Am... \n", - "2019-05-01 02:40:00+01:00 Waterhoogte Oppervlaktewater t.o.v. Normaal Am... \n", - "... ... \n", - "2020-02-01 00:20:00+01:00 Waterhoogte Oppervlaktewater t.o.v. Normaal Am... \n", - "2020-02-01 00:30:00+01:00 Waterhoogte Oppervlaktewater t.o.v. Normaal Am... \n", - "2020-02-01 00:40:00+01:00 Waterhoogte Oppervlaktewater t.o.v. Normaal Am... \n", - "2020-02-01 00:50:00+01:00 Waterhoogte Oppervlaktewater t.o.v. Normaal Am... \n", - "2020-02-01 01:00:00+01:00 Waterhoogte Oppervlaktewater t.o.v. Normaal Am... \n", - "\n", - " BemonsteringsApparaat.Code \\\n", - "time \n", - "2019-05-01 02:00:00+01:00 NVT \n", - "2019-05-01 02:10:00+01:00 NVT \n", - "2019-05-01 02:20:00+01:00 NVT \n", - "2019-05-01 02:30:00+01:00 NVT \n", - "2019-05-01 02:40:00+01:00 NVT \n", - "... ... \n", - "2020-02-01 00:20:00+01:00 NVT \n", - "2020-02-01 00:30:00+01:00 NVT \n", - "2020-02-01 00:40:00+01:00 NVT \n", - "2020-02-01 00:50:00+01:00 NVT \n", - "2020-02-01 01:00:00+01:00 NVT \n", - "\n", - " BemonsteringsApparaat.Omschrijving \\\n", - "time \n", - "2019-05-01 02:00:00+01:00 Waarde is niet van toepassing \n", - "2019-05-01 02:10:00+01:00 Waarde is niet van toepassing \n", - "2019-05-01 02:20:00+01:00 Waarde is niet van toepassing \n", - "2019-05-01 02:30:00+01:00 Waarde is niet van toepassing \n", - "2019-05-01 02:40:00+01:00 Waarde is niet van toepassing \n", - "... ... \n", - "2020-02-01 00:20:00+01:00 Waarde is niet van toepassing \n", - "2020-02-01 00:30:00+01:00 Waarde is niet van toepassing \n", - "2020-02-01 00:40:00+01:00 Waarde is niet van toepassing \n", - "2020-02-01 00:50:00+01:00 Waarde is niet van toepassing \n", - "2020-02-01 01:00:00+01:00 Waarde is niet van toepassing \n", - "\n", - " BemonsteringsMethode.Code ... \\\n", - "time ... \n", - "2019-05-01 02:00:00+01:00 NVT ... \n", - "2019-05-01 02:10:00+01:00 NVT ... \n", - "2019-05-01 02:20:00+01:00 NVT ... \n", - "2019-05-01 02:30:00+01:00 NVT ... \n", - "2019-05-01 02:40:00+01:00 NVT ... \n", - "... ... ... \n", - "2020-02-01 00:20:00+01:00 NVT ... \n", - "2020-02-01 00:30:00+01:00 NVT ... \n", - "2020-02-01 00:40:00+01:00 NVT ... \n", - "2020-02-01 00:50:00+01:00 NVT ... \n", - "2020-02-01 01:00:00+01:00 NVT ... \n", - "\n", - " WaardeBepalingsmethode.Omschrijving \\\n", - "time \n", - "2019-05-01 02:00:00+01:00 Rekenkundig gemiddelde waarde over vorige 5 en... \n", - "2019-05-01 02:10:00+01:00 Rekenkundig gemiddelde waarde over vorige 5 en... \n", - "2019-05-01 02:20:00+01:00 Rekenkundig gemiddelde waarde over vorige 5 en... \n", - "2019-05-01 02:30:00+01:00 Rekenkundig gemiddelde waarde over vorige 5 en... \n", - "2019-05-01 02:40:00+01:00 Rekenkundig gemiddelde waarde over vorige 5 en... \n", + "2019-05-01 01:00:00+01:00 Waterhoogte astronomisch in Oppervlaktewater t... \n", + "2019-05-01 01:10:00+01:00 Waterhoogte astronomisch in Oppervlaktewater t... \n", + "2019-05-01 01:20:00+01:00 Waterhoogte astronomisch in Oppervlaktewater t... \n", + "2019-05-01 01:30:00+01:00 Waterhoogte astronomisch in Oppervlaktewater t... \n", + "2019-05-01 01:40:00+01:00 Waterhoogte astronomisch in Oppervlaktewater t... \n", "... ... \n", - "2020-02-01 00:20:00+01:00 Rekenkundig gemiddelde waarde over vorige 5 en... \n", - "2020-02-01 00:30:00+01:00 Rekenkundig gemiddelde waarde over vorige 5 en... \n", - "2020-02-01 00:40:00+01:00 Rekenkundig gemiddelde waarde over vorige 5 en... \n", - "2020-02-01 00:50:00+01:00 Rekenkundig gemiddelde waarde over vorige 5 en... \n", - "2020-02-01 01:00:00+01:00 Rekenkundig gemiddelde waarde over vorige 5 en... \n", - "\n", - " WaardeBewerkingsmethode.Code \\\n", - "time \n", - "2019-05-01 02:00:00+01:00 NVT \n", - "2019-05-01 02:10:00+01:00 NVT \n", - "2019-05-01 02:20:00+01:00 NVT \n", - "2019-05-01 02:30:00+01:00 NVT \n", - "2019-05-01 02:40:00+01:00 NVT \n", - "... ... \n", - "2020-02-01 00:20:00+01:00 NVT \n", - "2020-02-01 00:30:00+01:00 NVT \n", - "2020-02-01 00:40:00+01:00 NVT \n", - "2020-02-01 00:50:00+01:00 NVT \n", - "2020-02-01 01:00:00+01:00 NVT \n", - "\n", - " WaardeBewerkingsmethode.Omschrijving \\\n", - "time \n", - "2019-05-01 02:00:00+01:00 Niet van toepassing \n", - "2019-05-01 02:10:00+01:00 Niet van toepassing \n", - "2019-05-01 02:20:00+01:00 Niet van toepassing \n", - "2019-05-01 02:30:00+01:00 Niet van toepassing \n", - "2019-05-01 02:40:00+01:00 Niet van toepassing \n", - "... ... \n", - "2020-02-01 00:20:00+01:00 Niet van toepassing \n", - "2020-02-01 00:30:00+01:00 Niet van toepassing \n", - "2020-02-01 00:40:00+01:00 Niet van toepassing \n", - "2020-02-01 00:50:00+01:00 Niet van toepassing \n", - "2020-02-01 01:00:00+01:00 Niet van toepassing \n", - "\n", - " Meetwaarde.Waarde_Numeriek \\\n", - "time \n", - "2019-05-01 02:00:00+01:00 44.0 \n", - "2019-05-01 02:10:00+01:00 41.0 \n", - "2019-05-01 02:20:00+01:00 36.0 \n", - "2019-05-01 02:30:00+01:00 31.0 \n", - "2019-05-01 02:40:00+01:00 25.0 \n", - "... ... \n", - "2020-02-01 00:20:00+01:00 -21.0 \n", - "2020-02-01 00:30:00+01:00 -21.0 \n", - "2020-02-01 00:40:00+01:00 -23.0 \n", - "2020-02-01 00:50:00+01:00 -22.0 \n", - "2020-02-01 01:00:00+01:00 -26.0 \n", - "\n", - " Meetwaarde.Waarde_Alfanumeriek Code \\\n", - "time \n", - "2019-05-01 02:00:00+01:00 44 SCHEVNGN \n", - "2019-05-01 02:10:00+01:00 41 SCHEVNGN \n", - "2019-05-01 02:20:00+01:00 36 SCHEVNGN \n", - "2019-05-01 02:30:00+01:00 31 SCHEVNGN \n", - "2019-05-01 02:40:00+01:00 25 SCHEVNGN \n", - "... ... ... \n", - "2020-02-01 00:20:00+01:00 -21 SCHEVNGN \n", - "2020-02-01 00:30:00+01:00 -21 SCHEVNGN \n", - "2020-02-01 00:40:00+01:00 -23 SCHEVNGN \n", - "2020-02-01 00:50:00+01:00 -22 SCHEVNGN \n", - "2020-02-01 01:00:00+01:00 -26 SCHEVNGN \n", - "\n", - " Coordinatenstelsel Naam X \\\n", - "time \n", - "2019-05-01 02:00:00+01:00 25831 Scheveningen 586550.994421 \n", - "2019-05-01 02:10:00+01:00 25831 Scheveningen 586550.994421 \n", - "2019-05-01 02:20:00+01:00 25831 Scheveningen 586550.994421 \n", - "2019-05-01 02:30:00+01:00 25831 Scheveningen 586550.994421 \n", - "2019-05-01 02:40:00+01:00 25831 Scheveningen 586550.994421 \n", - "... ... ... ... \n", - "2020-02-01 00:20:00+01:00 25831 Scheveningen 586550.994421 \n", - "2020-02-01 00:30:00+01:00 25831 Scheveningen 586550.994421 \n", - "2020-02-01 00:40:00+01:00 25831 Scheveningen 586550.994421 \n", - "2020-02-01 00:50:00+01:00 25831 Scheveningen 586550.994421 \n", - "2020-02-01 01:00:00+01:00 25831 Scheveningen 586550.994421 \n", - "\n", - " Y \n", - "time \n", - "2019-05-01 02:00:00+01:00 5.772806e+06 \n", - "2019-05-01 02:10:00+01:00 5.772806e+06 \n", - "2019-05-01 02:20:00+01:00 5.772806e+06 \n", - "2019-05-01 02:30:00+01:00 5.772806e+06 \n", - "2019-05-01 02:40:00+01:00 5.772806e+06 \n", - "... ... \n", - "2020-02-01 00:20:00+01:00 5.772806e+06 \n", - "2020-02-01 00:30:00+01:00 5.772806e+06 \n", - "2020-02-01 00:40:00+01:00 5.772806e+06 \n", - "2020-02-01 00:50:00+01:00 5.772806e+06 \n", - "2020-02-01 01:00:00+01:00 5.772806e+06 \n", - "\n", - "[39739 rows x 53 columns]" + "2020-02-01 00:20:00+01:00 Waterhoogte astronomisch in Oppervlaktewater t... \n", + "2020-02-01 00:30:00+01:00 Waterhoogte astronomisch in Oppervlaktewater t... \n", + "2020-02-01 00:40:00+01:00 Waterhoogte astronomisch in Oppervlaktewater t... \n", + "2020-02-01 00:50:00+01:00 Waterhoogte astronomisch in Oppervlaktewater t... \n", + "2020-02-01 01:00:00+01:00 Waterhoogte astronomisch in Oppervlaktewater t... \n", + "\n", + " ProcesType Meetwaarde.Waarde_Alfanumeriek \\\n", + "time \n", + "2019-05-01 01:00:00+01:00 astronomisch -103 \n", + "2019-05-01 01:10:00+01:00 astronomisch -106 \n", + "2019-05-01 01:20:00+01:00 astronomisch -108 \n", + "2019-05-01 01:30:00+01:00 astronomisch -108 \n", + "2019-05-01 01:40:00+01:00 astronomisch -108 \n", + "... ... ... \n", + "2020-02-01 00:20:00+01:00 astronomisch 81 \n", + "2020-02-01 00:30:00+01:00 astronomisch 85 \n", + "2020-02-01 00:40:00+01:00 astronomisch 89 \n", + "2020-02-01 00:50:00+01:00 astronomisch 93 \n", + "2020-02-01 01:00:00+01:00 astronomisch 96 \n", + "\n", + " Meetwaarde.Waarde_Numeriek Code \\\n", + "time \n", + "2019-05-01 01:00:00+01:00 -103.0 ameland.nes \n", + "2019-05-01 01:10:00+01:00 -106.0 ameland.nes \n", + "2019-05-01 01:20:00+01:00 -108.0 ameland.nes \n", + "2019-05-01 01:30:00+01:00 -108.0 ameland.nes \n", + "2019-05-01 01:40:00+01:00 -108.0 ameland.nes \n", + "... ... ... \n", + "2020-02-01 00:20:00+01:00 81.0 ameland.nes \n", + "2020-02-01 00:30:00+01:00 85.0 ameland.nes \n", + "2020-02-01 00:40:00+01:00 89.0 ameland.nes \n", + "2020-02-01 00:50:00+01:00 93.0 ameland.nes \n", + "2020-02-01 01:00:00+01:00 96.0 ameland.nes \n", + "\n", + " Coordinatenstelsel Naam Lon \\\n", + "time \n", + "2019-05-01 01:00:00+01:00 ETRS89 Ameland, Nes 5.759448 \n", + "2019-05-01 01:10:00+01:00 ETRS89 Ameland, Nes 5.759448 \n", + "2019-05-01 01:20:00+01:00 ETRS89 Ameland, Nes 5.759448 \n", + "2019-05-01 01:30:00+01:00 ETRS89 Ameland, Nes 5.759448 \n", + "2019-05-01 01:40:00+01:00 ETRS89 Ameland, Nes 5.759448 \n", + "... ... ... ... \n", + "2020-02-01 00:20:00+01:00 ETRS89 Ameland, Nes 5.759448 \n", + "2020-02-01 00:30:00+01:00 ETRS89 Ameland, Nes 5.759448 \n", + "2020-02-01 00:40:00+01:00 ETRS89 Ameland, Nes 5.759448 \n", + "2020-02-01 00:50:00+01:00 ETRS89 Ameland, Nes 5.759448 \n", + "2020-02-01 01:00:00+01:00 ETRS89 Ameland, Nes 5.759448 \n", + "\n", + " Lat \n", + "time \n", + "2019-05-01 01:00:00+01:00 53.429766 \n", + "2019-05-01 01:10:00+01:00 53.429766 \n", + "2019-05-01 01:20:00+01:00 53.429766 \n", + "2019-05-01 01:30:00+01:00 53.429766 \n", + "2019-05-01 01:40:00+01:00 53.429766 \n", + "... ... \n", + "2020-02-01 00:20:00+01:00 53.429766 \n", + "2020-02-01 00:30:00+01:00 53.429766 \n", + "2020-02-01 00:40:00+01:00 53.429766 \n", + "2020-02-01 00:50:00+01:00 53.429766 \n", + "2020-02-01 01:00:00+01:00 53.429766 \n", + "\n", + "[39745 rows x 48 columns]" ] }, "execution_count": 13, @@ -2255,6 +2369,7 @@ "}\n", "\n", "html[theme=dark],\n", + "html[data-theme=dark],\n", "body[data-theme=dark],\n", "body.vscode-dark {\n", " --xr-font-color0: rgba(255, 255, 255, 1);\n", @@ -2587,72 +2702,84 @@ " stroke: currentColor;\n", " fill: currentColor;\n", "}\n", - "
<xarray.Dataset> Size: 2MB\n",
-       "Dimensions:                                       (time: 39739)\n",
+       "
<xarray.Dataset> Size: 3MB\n",
+       "Dimensions:                                  (time: 39745)\n",
        "Coordinates:\n",
-       "  * time                                          (time) datetime64[ns] 318kB ...\n",
+       "  * time                                     (time) datetime64[ns] 318kB 2019...\n",
        "Data variables:\n",
-       "    WaarnemingMetadata.StatuswaardeLijst          (time) object 318kB 'Gecont...\n",
-       "    WaarnemingMetadata.KwaliteitswaardecodeLijst  (time) object 318kB '00' .....\n",
-       "    MeetApparaat.Code                             (time) object 318kB '127' ....\n",
-       "    WaardeBepalingsmethode.Code                   (time) object 318kB 'other:...\n",
-       "    Meetwaarde.Waarde_Numeriek                    (time) float64 318kB 44.0 ....\n",
-       "Attributes: (12/27)\n",
-       "    BemonsteringsApparaat.Code:                        NVT\n",
-       "    BemonsteringsMethode.Code:                         NVT\n",
-       "    BioTaxon.Code:                                     NVT\n",
-       "    BioTaxon_Compartiment.Code:                        NVT\n",
-       "    MonsterBewerkingsMethode.Code:                     NVT\n",
-       "    Orgaan.Code:                                       NVT\n",
-       "    ...                                                ...\n",
-       "    Hoedanigheid.Code:                                 NAP\n",
-       "    Code:                                              SCHEVNGN\n",
-       "    Naam:                                              Scheveningen\n",
-       "    Coordinatenstelsel:                                25831\n",
-       "    X:                                                 586550.994420996\n",
-       "    Y:                                                 5772806.43069697
  • Parameter.Code :
    NVT
    BioTaxon.Code :
    NVT
    Orgaan.Code :
    NVT
    Typering.Code :
    NVT
    WaardeBewerkingsMethode.Code :
    NVT
    WaarnemingMetadata.OpdrachtgevendeInstantie :
    RIKZMON_WAT
    WaarnemingMetadata.Bemonsteringshoogte :
    -999999999
    WaarnemingMetadata.Referentievlak :
    NVT
    BioTaxonType.Code :
    BemonsteringsSoort.Code :
    Compartiment.Code :
    OW
    Eenheid.Code :
    cm
    Grootheid.Code :
    WATHTE
    Hoedanigheid.Code :
    NAP
    Code :
    ameland.nes
    Naam :
    Ameland, Nes
    Coordinatenstelsel :
    ETRS89
    Lon :
    5.759448
    Lat :
    53.429766
  • " ], "text/plain": [ - " Size: 2MB\n", - "Dimensions: (time: 39739)\n", + " Size: 3MB\n", + "Dimensions: (time: 39745)\n", "Coordinates:\n", - " * time (time) datetime64[ns] 318kB ...\n", + " * time (time) datetime64[ns] 318kB 2019...\n", "Data variables:\n", - " WaarnemingMetadata.StatuswaardeLijst (time) object 318kB 'Gecont...\n", - " WaarnemingMetadata.KwaliteitswaardecodeLijst (time) object 318kB '00' .....\n", - " MeetApparaat.Code (time) object 318kB '127' ....\n", - " WaardeBepalingsmethode.Code (time) object 318kB 'other:...\n", - " Meetwaarde.Waarde_Numeriek (time) float64 318kB 44.0 ....\n", - "Attributes: (12/27)\n", - " BemonsteringsApparaat.Code: NVT\n", - " BemonsteringsMethode.Code: NVT\n", - " BioTaxon.Code: NVT\n", - " BioTaxon_Compartiment.Code: NVT\n", - " MonsterBewerkingsMethode.Code: NVT\n", - " Orgaan.Code: NVT\n", - " ... ...\n", - " Hoedanigheid.Code: NAP\n", - " Code: SCHEVNGN\n", - " Naam: Scheveningen\n", - " Coordinatenstelsel: 25831\n", - " X: 586550.994420996\n", - " Y: 5772806.43069697" + " WaarnemingMetadata.Statuswaarde (time) object 318kB 'Ongecontrol...\n", + " WaarnemingMetadata.Kwaliteitswaardecode (time) object 318kB '00' ... '00'\n", + " Groepering.Code (time) object 318kB '' '' ... '' ''\n", + " BemonsteringsApparaat.Code (time) object 318kB '' '' ... '' ''\n", + " BemonsteringsMethode.Code (time) object 318kB '' '' ... '' ''\n", + " MeetApparaat.Code (time) object 318kB '8000' ... '...\n", + " WaardeBepalingsMethode.Code (time) object 318kB 'other:F012'...\n", + " WaardeBepalingsTechniek.Code (time) object 318kB '' '' ... '' ''\n", + " ProcesType (time) object 318kB 'astronomisc...\n", + " Meetwaarde.Waarde_Numeriek (time) float64 318kB -103.0 ... ...\n", + "Attributes: (12/19)\n", + " Parameter.Code: NVT\n", + " BioTaxon.Code: NVT\n", + " Orgaan.Code: NVT\n", + " Typering.Code: NVT\n", + " WaardeBewerkingsMethode.Code: NVT\n", + " WaarnemingMetadata.OpdrachtgevendeInstantie: RIKZMON_WAT\n", + " ... ...\n", + " Hoedanigheid.Code: NAP\n", + " Code: ameland.nes\n", + " Naam: Ameland, Nes\n", + " Coordinatenstelsel: ETRS89\n", + " Lon: 5.759448\n", + " Lat: 53.429766" ] }, "execution_count": 14, @@ -2661,12 +2788,10 @@ } ], "source": [ - "drop_if_constant = [\"WaarnemingMetadata.OpdrachtgevendeInstantieLijst\",\n", - " \"WaarnemingMetadata.BemonsteringshoogteLijst\",\n", - " \"WaarnemingMetadata.ReferentievlakLijst\",\n", - " \"AquoMetadata_MessageID\", \n", - " \"BioTaxonType\",\n", - " \"BemonsteringsSoort.Code\", \n", + "drop_if_constant = [\"WaarnemingMetadata.OpdrachtgevendeInstantie\",\n", + " \"WaarnemingMetadata.Bemonsteringshoogte\",\n", + " \"WaarnemingMetadata.Referentievlak\",\n", + " \"BioTaxonType.Code\", \"BemonsteringsSoort.Code\", \n", " \"Compartiment.Code\", \"Eenheid.Code\", \"Grootheid.Code\", \"Hoedanigheid.Code\",\n", " ]\n", "ds = ddlpy.dataframe_to_xarray(measurements, drop_if_constant=drop_if_constant)\n", @@ -2697,7 +2822,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.6" + "version": "3.11.9" } }, "nbformat": 4,