Retrieve DDL measurements#
[1]:
import matplotlib.pyplot as plt
import ddlpy
# enabling debug logging so we can see what happens in the background
import logging
logging.basicConfig()
logging.getLogger("ddlpy").setLevel(logging.DEBUG)
Get a list of all known locations#
The method locations gets a list of all known measurement locations by sending a request.
[2]:
locations = ddlpy.locations()
DEBUG:ddlpy.ddlpy:Requesting at https://ddapi20-waterwebservices.rijkswaterstaat.nl/METADATASERVICES/OphalenCatalogus with request: {"CatalogusFilter": {"Eenheden": true, "Grootheden": true, "Hoedanigheden": true, "Groeperingen": true, "Parameters": true, "ProcesTypes": true, "Compartimenten": true}}
[3]:
locations.to_json(r'locations.json', orient='records')
[4]:
## also add code as a variable
locations['Code'] = locations.index
locations.head()
[4]:
| Locatie_MessageID | Lat | Lon | Coordinatenstelsel | Naam | Omschrijving | Parameter_Wat_Omschrijving | ProcesType | Compartiment.Code | Compartiment.Omschrijving | ... | Grootheid.Omschrijving | Eenheid.Code | Eenheid.Omschrijving | Hoedanigheid.Code | Hoedanigheid.Omschrijving | Parameter.Code | Parameter.Omschrijving | Groepering.Code | Groepering.Omschrijving | Code | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Code | |||||||||||||||||||||
| steenbergen.roosendaalsevliet | 5779 | 51.641197 | 4.242284 | ETRS89 | Steenbergen, Roosendaalsevliet | Steenbergen, Roosendaalsevliet | (massa)Concentratie som benzo(b)fluorantheen e... | meting | OW | Oppervlaktewater | ... | (massa)Concentratie | ug/l | microgram per liter | NVT | NVT | sBbjF | som benzo(b)fluorantheen en benzo(j)fluorantheen | steenbergen.roosendaalsevliet | ||
| terschelling.135kmuitdekust | 2686 | 54.414843 | 4.039740 | ETRS89 | Terschelling, 135 km uit de kust | Terschelling, 135 km uit de kust | (massa)Concentratie stikstof Kjeldahl in Opper... | meting | OW | Oppervlaktewater | ... | (massa)Concentratie | mg/l | milligram per liter | N | uitgedrukt in stikstof | NKj | stikstof Kjeldahl | terschelling.135kmuitdekust | ||
| oesterdam | 14474 | 51.473934 | 4.227061 | ETRS89 | Oesterdam | Oesterdam | (massa)Concentratie waterstofcarbonaat in Oppe... | meting | OW | Oppervlaktewater | ... | (massa)Concentratie | mg/l | milligram per liter | NVT | NVT | HCO3 | waterstofcarbonaat | oesterdam | ||
| noordwijk.50kmuitdekust | 10498 | 52.480053 | 3.785347 | ETRS89 | Noordwijk, 50 km uit de kust | Noordwijk, 50 km uit de kust | Geleidendheid in Oppervlaktewater in mS/m | meting | OW | Oppervlaktewater | ... | Geleidendheid | mS/m | millisiemens per meter | NVT | NVT | NVT | NVT | noordwijk.50kmuitdekust | ||
| brakel | 10578 | 51.826764 | 5.104336 | ETRS89 | Brakel | Andelse Maas | (massa)Concentratie som methyleenblauwactieve ... | meting | OW | Oppervlaktewater | ... | (massa)Concentratie | mg/l | milligram per liter | NVT | NVT | sMBAS | som methyleenblauwactieve stoffen anionactief | brakel |
5 rows × 21 columns
Validate#
Check if data is in the domain of the Netherlands. It also includes data of the North Sea.
[5]:
## Create a spatial plot
fig, ax = plt.subplots(figsize=(13, 8))
ax.plot(locations.Lon, locations.Lat, 'k.')
[5]:
[<matplotlib.lines.Line2D at 0x2888e6033e0>]
[6]:
# CHECK See what the data in the east is.
# These is a reference river for water quality near Chernobyl.
locations.sort_values('Lon', ascending=False).head(n=5)
[6]:
| Locatie_MessageID | Lat | Lon | Coordinatenstelsel | Naam | Omschrijving | Parameter_Wat_Omschrijving | ProcesType | Compartiment.Code | Compartiment.Omschrijving | ... | Grootheid.Omschrijving | Eenheid.Code | Eenheid.Omschrijving | Hoedanigheid.Code | Hoedanigheid.Omschrijving | Parameter.Code | Parameter.Omschrijving | Groepering.Code | Groepering.Omschrijving | Code | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Code | |||||||||||||||||||||
| riedenburg | 9108 | 48.966667 | 11.666667 | ETRS89 | Riedenburg | Riedenburg | Etmaalgemiddelde Waterhoogte in Oppervlaktewat... | meting | OW | Oppervlaktewater | ... | Waterhoogte | cm | centimeter | NAP | t.o.v. Normaal Amsterdams Peil | NVT | NVT | riedenburg | ||
| riedenburg | 9108 | 48.966667 | 11.666667 | ETRS89 | Riedenburg | Riedenburg | Waterhoogte in Oppervlaktewater t.o.v. plaatse... | meting | OW | Oppervlaktewater | ... | Waterhoogte | cm | centimeter | PLAATSLR | t.o.v. plaatselijk referentievlak | NVT | NVT | riedenburg | ||
| bamberg | 10201 | 49.883333 | 10.883333 | ETRS89 | Bamberg | Bamberg | Waterhoogte in Oppervlaktewater t.o.v. plaatse... | meting | OW | Oppervlaktewater | ... | Waterhoogte | cm | centimeter | PLAATSLR | t.o.v. plaatselijk referentievlak | NVT | NVT | bamberg | ||
| bamberg | 10201 | 49.883333 | 10.883333 | ETRS89 | Bamberg | Bamberg | Etmaalgemiddelde Waterhoogte in Oppervlaktewat... | meting | OW | Oppervlaktewater | ... | Waterhoogte | cm | centimeter | NAP | t.o.v. Normaal Amsterdams Peil | NVT | NVT | bamberg | ||
| steinbach | 10205 | 49.999199 | 9.582227 | ETRS89 | Steinbach | Steinbach | Waterhoogte in Oppervlaktewater t.o.v. plaatse... | meting | OW | Oppervlaktewater | ... | Waterhoogte | cm | centimeter | PLAATSLR | t.o.v. plaatselijk referentievlak | NVT | NVT | steinbach |
5 rows × 21 columns
[ ]:
bool_stations = locations.index.isin(['hoekvanholland', 'ijmuiden.buitenhaven', 'scheveningen'])
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 ("") versus extremes (GETETM2/GETETMSL2/GETETBRKD2/GETETBRKDMSL2)
bool_hoedanigheid = locations['Hoedanigheid.Code'].isin(['NAP']) # vertical reference (NAP/MSL)
selected = locations.loc[bool_stations & bool_procestype & bool_grootheid & bool_groepering & bool_hoedanigheid]
selected
| Locatie_MessageID | Lat | Lon | Coordinatenstelsel | Naam | Omschrijving | Parameter_Wat_Omschrijving | ProcesType | Compartiment.Code | Compartiment.Omschrijving | ... | Grootheid.Omschrijving | Eenheid.Code | Eenheid.Omschrijving | Hoedanigheid.Code | Hoedanigheid.Omschrijving | Parameter.Code | Parameter.Omschrijving | Groepering.Code | Groepering.Omschrijving | Code | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Code | |||||||||||||||||||||
| ijmuiden.buitenhaven | 13729 | 52.463000 | 4.555000 | ETRS89 | IJmuiden, buitenhaven | IJmuiden, buitenhaven | Etmaalgemiddelde Waterhoogte in Oppervlaktewat... | meting | OW | Oppervlaktewater | ... | Waterhoogte | cm | centimeter | NAP | t.o.v. Normaal Amsterdams Peil | NVT | NVT | ijmuiden.buitenhaven | ||
| hoekvanholland | 1319 | 51.976899 | 4.119827 | ETRS89 | Hoek van Holland | rechter oever kilometer 1030.1 | Etmaalgemiddelde Waterhoogte in Oppervlaktewat... | meting | OW | Oppervlaktewater | ... | Waterhoogte | cm | centimeter | NAP | t.o.v. Normaal Amsterdams Peil | NVT | NVT | hoekvanholland | ||
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Etmaalgemiddelde Waterhoogte in Oppervlaktewat... | meting | OW | Oppervlaktewater | ... | Waterhoogte | cm | centimeter | NAP | t.o.v. Normaal Amsterdams Peil | NVT | NVT | scheveningen |
3 rows × 21 columns
[8]:
names = 'uit de kust'
selected = locations[locations.Naam.str.contains(names)].head()
selected
[8]:
| Locatie_MessageID | Lat | Lon | Coordinatenstelsel | Naam | Omschrijving | Parameter_Wat_Omschrijving | ProcesType | Compartiment.Code | Compartiment.Omschrijving | ... | Grootheid.Omschrijving | Eenheid.Code | Eenheid.Omschrijving | Hoedanigheid.Code | Hoedanigheid.Omschrijving | Parameter.Code | Parameter.Omschrijving | Groepering.Code | Groepering.Omschrijving | Code | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Code | |||||||||||||||||||||
| terschelling.135kmuitdekust | 2686 | 54.414843 | 4.039740 | ETRS89 | Terschelling, 135 km uit de kust | Terschelling, 135 km uit de kust | (massa)Concentratie stikstof Kjeldahl in Opper... | meting | OW | Oppervlaktewater | ... | (massa)Concentratie | mg/l | milligram per liter | N | uitgedrukt in stikstof | NKj | stikstof Kjeldahl | terschelling.135kmuitdekust | ||
| noordwijk.50kmuitdekust | 10498 | 52.480053 | 3.785347 | ETRS89 | Noordwijk, 50 km uit de kust | Noordwijk, 50 km uit de kust | Geleidendheid in Oppervlaktewater in mS/m | meting | OW | Oppervlaktewater | ... | Geleidendheid | mS/m | millisiemens per meter | NVT | NVT | NVT | NVT | noordwijk.50kmuitdekust | ||
| egmondaanzee.1kmuitdekust | 7858 | 52.620063 | 4.607176 | ETRS89 | Egmond aan Zee, 1 km uit de kust | Egmond aan Zee, 1 km uit de kust | Massafractie monobutyltin (kation) in Bodem/Se... | meting | BS | Bodem/Sediment | ... | Massafractie | ug/kg | microgram per kilogram | dg | t.o.v. drooggewicht | MC4ySn | monobutyltin (kation) | egmondaanzee.1kmuitdekust | ||
| noordwijk.70kmuitdekust | 13826 | 52.585331 | 3.530060 | ETRS89 | Noordwijk, 70 km uit de kust | Noordwijk, 70 km uit de kust | (massa)Concentratie trans-heptachloorepoxide i... | meting | OW | Oppervlaktewater | ... | (massa)Concentratie | ug/l | microgram per liter | NVT | NVT | tHpClepO | trans-heptachloorepoxide | noordwijk.70kmuitdekust | ||
| noordwijk.10kmuitdekust.flachsee | 17911 | 52.290014 | 4.305106 | ETRS89 | Noordwijk, 10 km uit de kust Flachsee | Flachseemeting | Massafractie Gloeiverlies in Zwevende stof t.o... | meting | ZS | Zwevende stof | ... | Massafractie | % | procent | dg | t.o.v. drooggewicht | GV | Gloeiverlies | noordwijk.10kmuitdekust.flachsee |
5 rows × 21 columns
[9]:
# multiple parameters avaialble per location, each combination is a row
selected = locations.loc['scheveningen']
selected
[9]:
| Locatie_MessageID | Lat | Lon | Coordinatenstelsel | Naam | Omschrijving | Parameter_Wat_Omschrijving | ProcesType | Compartiment.Code | Compartiment.Omschrijving | ... | Grootheid.Omschrijving | Eenheid.Code | Eenheid.Omschrijving | Hoedanigheid.Code | Hoedanigheid.Omschrijving | Parameter.Code | Parameter.Omschrijving | Groepering.Code | Groepering.Omschrijving | Code | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Code | |||||||||||||||||||||
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Percentielen per etmaal Levendigheid 90 percen... | meting | OW | Oppervlaktewater | ... | 90 percentiel van de levendigheid | cm2 | vierkante centimeter | NVT | NVT | NVT | NVT | LEVDHD5 | Levendigheid | scheveningen |
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Versie | meting | NT | Niet van toepassing | ... | Versie | DIMSLS | dimensieloos | NVT | NVT | NVT | NVT | SLOTGMDDE | Slotgemiddelden | scheveningen |
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Slotgemiddelde hoogwater in Oppervlaktewater B... | meting | OW | Oppervlaktewater | ... | Slotgemiddelde hoogwater | cm | centimeter | SPRINGTY | Bij springtij | NVT | NVT | SLOTGMDDE | Slotgemiddelden | scheveningen |
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Etmaalgemiddelde Getijextreemtype in Oppervlak... | meting | OW | Oppervlaktewater | ... | NVT | DIMSLS | dimensieloos | NVT | NVT | NVT | NVT | GETETM2 | Getijextremen | scheveningen |
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Slotgemiddelde waterstand in Oppervlaktewater ... | meting | OW | Oppervlaktewater | ... | Slotgemiddelde waterstand | cm | centimeter | NVT | NVT | NVT | NVT | SLOTGMDDE | Slotgemiddelden | scheveningen |
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Waterhoogte astronomisch in Oppervlaktewater t... | astronomisch | OW | Oppervlaktewater | ... | Waterhoogte | cm | centimeter | NAP | t.o.v. Normaal Amsterdams Peil | NVT | NVT | GETETBRKD2 | Getijextreem berekend | scheveningen |
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Percentielen per etmaal Levendigheid 70 percen... | meting | OW | Oppervlaktewater | ... | 70 percentiel van de levendigheid | cm2 | vierkante centimeter | NVT | NVT | NVT | NVT | LEVDHD5 | Levendigheid | scheveningen |
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Levendigheid in Oppervlaktewater in cm2 | meting | OW | Oppervlaktewater | ... | NVT | cm2 | vierkante centimeter | NVT | NVT | NVT | NVT | scheveningen | ||
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Etmaalgemiddelde Waterhoogte in Oppervlaktewat... | meting | OW | Oppervlaktewater | ... | Waterhoogte | cm | centimeter | NAP | t.o.v. Normaal Amsterdams Peil | NVT | NVT | GETETM2 | Getijextremen | scheveningen |
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Percentielen per etmaal Levendigheid 80 percen... | meting | OW | Oppervlaktewater | ... | 80 percentiel van de levendigheid | cm2 | vierkante centimeter | NVT | NVT | NVT | NVT | LEVDHD5 | Levendigheid | scheveningen |
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Getijextreemtype astronomisch in Oppervlaktewater | astronomisch | OW | Oppervlaktewater | ... | NVT | DIMSLS | dimensieloos | NVT | NVT | NVT | NVT | GETETBRKD2 | Getijextreem berekend | scheveningen |
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Waterhoogte verwachting in Oppervlaktewater t.... | verwachting | OW | Oppervlaktewater | ... | Waterhoogte | cm | centimeter | NAP | t.o.v. Normaal Amsterdams Peil | NVT | NVT | scheveningen | ||
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Slotgemiddelde laagwater in Oppervlaktewater B... | meting | OW | Oppervlaktewater | ... | Slotgemiddelde laagwater | cm | centimeter | DOODTIJ | Bij doodtij | NVT | NVT | SLOTGMDDE | Slotgemiddelden | scheveningen |
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Slotgemiddelde hoogwater in Oppervlaktewater i... | meting | OW | Oppervlaktewater | ... | Slotgemiddelde hoogwater | cm | centimeter | NVT | NVT | NVT | NVT | SLOTGMDDE | Slotgemiddelden | scheveningen |
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Slotgemiddelde laagwater in Oppervlaktewater i... | meting | OW | Oppervlaktewater | ... | Slotgemiddelde laagwater | cm | centimeter | NVT | NVT | NVT | NVT | SLOTGMDDE | Slotgemiddelden | scheveningen |
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Percentielen per etmaal Levendigheid in Opperv... | meting | OW | Oppervlaktewater | ... | NVT | cm2 | vierkante centimeter | NVT | NVT | NVT | NVT | LEVDHD5 | Levendigheid | scheveningen |
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Slotgemiddelde hoogwater in Oppervlaktewater B... | meting | OW | Oppervlaktewater | ... | Slotgemiddelde hoogwater | cm | centimeter | DOODTIJ | Bij doodtij | NVT | NVT | SLOTGMDDE | Slotgemiddelden | scheveningen |
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Waterhoogte astronomisch in Oppervlaktewater t... | astronomisch | OW | Oppervlaktewater | ... | Waterhoogte | cm | centimeter | NAP | t.o.v. Normaal Amsterdams Peil | NVT | NVT | scheveningen | ||
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Slotgemiddelde laagwater in Oppervlaktewater B... | meting | OW | Oppervlaktewater | ... | Slotgemiddelde laagwater | cm | centimeter | SPRINGTY | Bij springtij | NVT | NVT | SLOTGMDDE | Slotgemiddelden | scheveningen |
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Etmaalgemiddelde Waterhoogte in Oppervlaktewat... | meting | OW | Oppervlaktewater | ... | Waterhoogte | cm | centimeter | NAP | t.o.v. Normaal Amsterdams Peil | NVT | NVT | scheveningen | ||
| scheveningen | 13179 | 52.099035 | 4.263563 | ETRS89 | Scheveningen | Scheveningen | Percentielen per etmaal Levendigheid 50 percen... | meting | OW | Oppervlaktewater | ... | 50 percentiel van de levendigheid | cm2 | vierkante centimeter | NVT | NVT | NVT | NVT | LEVDHD5 | Levendigheid | scheveningen |
21 rows × 21 columns
[ ]:
# subset to a single location/measurement location (waterhoogte timeseries for Scheveningen)
bool_stations = locations.index.isin(['ameland.nes'])
# meting/astronomisch/verwachting
bool_procestype = locations['ProcesType'].isin(['meting'])
# waterlevel/waterhoogte (WATHTE)
bool_grootheid = locations['Grootheid.Code'].isin(['WATHTE'])
# timeseries ("") versus extremes (GETETM2/GETETMSL2/GETETBRKD2/GETETBRKDMSL2)
bool_groepering = locations['Groepering.Code'].isin([''])
selected = locations.loc[bool_stations & bool_procestype & bool_grootheid & bool_groepering]
selected
| Locatie_MessageID | Lat | Lon | Coordinatenstelsel | Naam | Omschrijving | Parameter_Wat_Omschrijving | ProcesType | Compartiment.Code | Compartiment.Omschrijving | ... | Grootheid.Omschrijving | Eenheid.Code | Eenheid.Omschrijving | Hoedanigheid.Code | Hoedanigheid.Omschrijving | Parameter.Code | Parameter.Omschrijving | Groepering.Code | Groepering.Omschrijving | Code | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Code | |||||||||||||||||||||
| ameland.nes | 6200 | 53.429766 | 5.759448 | ETRS89 | Ameland, Nes | Ameland, Nes | Etmaalgemiddelde Waterhoogte in Oppervlaktewat... | meting | OW | Oppervlaktewater | ... | Waterhoogte | cm | centimeter | NAP | t.o.v. Normaal Amsterdams Peil | NVT | NVT | ameland.nes |
1 rows × 21 columns
[11]:
# if we pass one row to the measurements function you can get all the measurements
measurements = ddlpy.measurements(selected.iloc[0], "2019-05-01", "2020-02-01")
0%| | 0/9 [00:00<?, ?it/s]DEBUG:ddlpy.ddlpy:Requesting at https://ddapi20-waterwebservices.rijkswaterstaat.nl/ONLINEWAARNEMINGENSERVICES/OphalenWaarnemingen with request: {"AquoPlusWaarnemingMetadata": {"AquoMetadata": {"Compartiment": {"Code": "OW"}, "Grootheid": {"Code": "WATHTE"}, "Eenheid": {"Code": "cm"}, "Hoedanigheid": {"Code": "NAP"}, "Parameter": {"Code": "NVT"}, "Groepering": {"Code": ""}, "ProcesType": "meting"}}, "Locatie": {"Code": "ameland.nes"}, "Periode": {"Begindatumtijd": "2019-05-01T00:00:00.000+00:00", "Einddatumtijd": "2019-06-01T00:00:00.000+00:00"}}
11%|█████████▎ | 1/9 [00:00<00:06, 1.33it/s]DEBUG:ddlpy.ddlpy:Requesting at https://ddapi20-waterwebservices.rijkswaterstaat.nl/ONLINEWAARNEMINGENSERVICES/OphalenWaarnemingen with request: {"AquoPlusWaarnemingMetadata": {"AquoMetadata": {"Compartiment": {"Code": "OW"}, "Grootheid": {"Code": "WATHTE"}, "Eenheid": {"Code": "cm"}, "Hoedanigheid": {"Code": "NAP"}, "Parameter": {"Code": "NVT"}, "Groepering": {"Code": ""}, "ProcesType": "meting"}}, "Locatie": {"Code": "ameland.nes"}, "Periode": {"Begindatumtijd": "2019-06-01T00:00:00.000+00:00", "Einddatumtijd": "2019-07-01T00:00:00.000+00:00"}}
22%|██████████████████▋ | 2/9 [00:01<00:05, 1.34it/s]DEBUG:ddlpy.ddlpy:Requesting at https://ddapi20-waterwebservices.rijkswaterstaat.nl/ONLINEWAARNEMINGENSERVICES/OphalenWaarnemingen with request: {"AquoPlusWaarnemingMetadata": {"AquoMetadata": {"Compartiment": {"Code": "OW"}, "Grootheid": {"Code": "WATHTE"}, "Eenheid": {"Code": "cm"}, "Hoedanigheid": {"Code": "NAP"}, "Parameter": {"Code": "NVT"}, "Groepering": {"Code": ""}, "ProcesType": "meting"}}, "Locatie": {"Code": "ameland.nes"}, "Periode": {"Begindatumtijd": "2019-07-01T00:00:00.000+00:00", "Einddatumtijd": "2019-08-01T00:00:00.000+00:00"}}
33%|████████████████████████████ | 3/9 [00:02<00:04, 1.24it/s]DEBUG:ddlpy.ddlpy:Requesting at https://ddapi20-waterwebservices.rijkswaterstaat.nl/ONLINEWAARNEMINGENSERVICES/OphalenWaarnemingen with request: {"AquoPlusWaarnemingMetadata": {"AquoMetadata": {"Compartiment": {"Code": "OW"}, "Grootheid": {"Code": "WATHTE"}, "Eenheid": {"Code": "cm"}, "Hoedanigheid": {"Code": "NAP"}, "Parameter": {"Code": "NVT"}, "Groepering": {"Code": ""}, "ProcesType": "meting"}}, "Locatie": {"Code": "ameland.nes"}, "Periode": {"Begindatumtijd": "2019-08-01T00:00:00.000+00:00", "Einddatumtijd": "2019-09-01T00:00:00.000+00:00"}}
44%|█████████████████████████████████████▎ | 4/9 [00:03<00:03, 1.27it/s]DEBUG:ddlpy.ddlpy:Requesting at https://ddapi20-waterwebservices.rijkswaterstaat.nl/ONLINEWAARNEMINGENSERVICES/OphalenWaarnemingen with request: {"AquoPlusWaarnemingMetadata": {"AquoMetadata": {"Compartiment": {"Code": "OW"}, "Grootheid": {"Code": "WATHTE"}, "Eenheid": {"Code": "cm"}, "Hoedanigheid": {"Code": "NAP"}, "Parameter": {"Code": "NVT"}, "Groepering": {"Code": ""}, "ProcesType": "meting"}}, "Locatie": {"Code": "ameland.nes"}, "Periode": {"Begindatumtijd": "2019-09-01T00:00:00.000+00:00", "Einddatumtijd": "2019-10-01T00:00:00.000+00:00"}}
56%|██████████████████████████████████████████████▋ | 5/9 [00:04<00:03, 1.21it/s]DEBUG:ddlpy.ddlpy:Requesting at https://ddapi20-waterwebservices.rijkswaterstaat.nl/ONLINEWAARNEMINGENSERVICES/OphalenWaarnemingen with request: {"AquoPlusWaarnemingMetadata": {"AquoMetadata": {"Compartiment": {"Code": "OW"}, "Grootheid": {"Code": "WATHTE"}, "Eenheid": {"Code": "cm"}, "Hoedanigheid": {"Code": "NAP"}, "Parameter": {"Code": "NVT"}, "Groepering": {"Code": ""}, "ProcesType": "meting"}}, "Locatie": {"Code": "ameland.nes"}, "Periode": {"Begindatumtijd": "2019-10-01T00:00:00.000+00:00", "Einddatumtijd": "2019-11-01T00:00:00.000+00:00"}}
67%|████████████████████████████████████████████████████████ | 6/9 [00:04<00:02, 1.20it/s]DEBUG:ddlpy.ddlpy:Requesting at https://ddapi20-waterwebservices.rijkswaterstaat.nl/ONLINEWAARNEMINGENSERVICES/OphalenWaarnemingen with request: {"AquoPlusWaarnemingMetadata": {"AquoMetadata": {"Compartiment": {"Code": "OW"}, "Grootheid": {"Code": "WATHTE"}, "Eenheid": {"Code": "cm"}, "Hoedanigheid": {"Code": "NAP"}, "Parameter": {"Code": "NVT"}, "Groepering": {"Code": ""}, "ProcesType": "meting"}}, "Locatie": {"Code": "ameland.nes"}, "Periode": {"Begindatumtijd": "2019-11-01T00:00:00.000+00:00", "Einddatumtijd": "2019-12-01T00:00:00.000+00:00"}}
78%|█████████████████████████████████████████████████████████████████▎ | 7/9 [00:05<00:01, 1.29it/s]DEBUG:ddlpy.ddlpy:Requesting at https://ddapi20-waterwebservices.rijkswaterstaat.nl/ONLINEWAARNEMINGENSERVICES/OphalenWaarnemingen with request: {"AquoPlusWaarnemingMetadata": {"AquoMetadata": {"Compartiment": {"Code": "OW"}, "Grootheid": {"Code": "WATHTE"}, "Eenheid": {"Code": "cm"}, "Hoedanigheid": {"Code": "NAP"}, "Parameter": {"Code": "NVT"}, "Groepering": {"Code": ""}, "ProcesType": "meting"}}, "Locatie": {"Code": "ameland.nes"}, "Periode": {"Begindatumtijd": "2019-12-01T00:00:00.000+00:00", "Einddatumtijd": "2020-01-01T00:00:00.000+00:00"}}
89%|██████████████████████████████████████████████████████████████████████████▋ | 8/9 [00:06<00:00, 1.25it/s]DEBUG:ddlpy.ddlpy:Requesting at https://ddapi20-waterwebservices.rijkswaterstaat.nl/ONLINEWAARNEMINGENSERVICES/OphalenWaarnemingen with request: {"AquoPlusWaarnemingMetadata": {"AquoMetadata": {"Compartiment": {"Code": "OW"}, "Grootheid": {"Code": "WATHTE"}, "Eenheid": {"Code": "cm"}, "Hoedanigheid": {"Code": "NAP"}, "Parameter": {"Code": "NVT"}, "Groepering": {"Code": ""}, "ProcesType": "meting"}}, "Locatie": {"Code": "ameland.nes"}, "Periode": {"Begindatumtijd": "2020-01-01T00:00:00.000+00:00", "Einddatumtijd": "2020-02-01T00:00:00.000+00:00"}}
100%|████████████████████████████████████████████████████████████████████████████████████| 9/9 [00:07<00:00, 1.25it/s]
DEBUG:ddlpy.ddlpy:8 duplicated values dropped
[12]:
measurements.plot(y='Meetwaarde.Waarde_Numeriek', linewidth=0.5, figsize=(12, 6))
[12]:
<Axes: xlabel='time'>
[13]:
measurements
[13]:
| WaarnemingMetadata.Statuswaarde | WaarnemingMetadata.Bemonsteringshoogte | WaarnemingMetadata.Referentievlak | WaarnemingMetadata.OpdrachtgevendeInstantie | WaarnemingMetadata.Kwaliteitswaardecode | Compartiment.Code | Compartiment.Omschrijving | Grootheid.Code | Grootheid.Omschrijving | Eenheid.Code | ... | WaardeBewerkingsMethode.Omschrijving | Parameter_Wat_Omschrijving | ProcesType | Meetwaarde.Waarde_Alfanumeriek | Meetwaarde.Waarde_Numeriek | Code | Coordinatenstelsel | Naam | Lon | Lat | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| time | |||||||||||||||||||||
| 2019-05-01 01:00:00+01:00 | Gecontroleerd | -999999999 | NVT | RIKZMON_WAT | 00 | OW | Oppervlaktewater | WATHTE | Waterhoogte | cm | ... | NVT | Waterhoogte in Oppervlaktewater t.o.v. Normaal... | meting | -123 | -123.0 | ameland.nes | ETRS89 | Ameland, Nes | 5.759448 | 53.429766 |
| 2019-05-01 01:10:00+01:00 | Gecontroleerd | -999999999 | NVT | RIKZMON_WAT | 00 | OW | Oppervlaktewater | WATHTE | Waterhoogte | cm | ... | NVT | Waterhoogte in Oppervlaktewater t.o.v. Normaal... | meting | -128 | -128.0 | ameland.nes | ETRS89 | Ameland, Nes | 5.759448 | 53.429766 |
| 2019-05-01 01:20:00+01:00 | Gecontroleerd | -999999999 | NVT | RIKZMON_WAT | 00 | OW | Oppervlaktewater | WATHTE | Waterhoogte | cm | ... | NVT | Waterhoogte in Oppervlaktewater t.o.v. Normaal... | meting | -131 | -131.0 | ameland.nes | ETRS89 | Ameland, Nes | 5.759448 | 53.429766 |
| 2019-05-01 01:30:00+01:00 | Gecontroleerd | -999999999 | NVT | RIKZMON_WAT | 00 | OW | Oppervlaktewater | WATHTE | Waterhoogte | cm | ... | NVT | Waterhoogte in Oppervlaktewater t.o.v. Normaal... | meting | -134 | -134.0 | ameland.nes | ETRS89 | Ameland, Nes | 5.759448 | 53.429766 |
| 2019-05-01 01:40:00+01:00 | Gecontroleerd | -999999999 | NVT | RIKZMON_WAT | 00 | OW | Oppervlaktewater | WATHTE | Waterhoogte | cm | ... | NVT | Waterhoogte in Oppervlaktewater t.o.v. Normaal... | meting | -135 | -135.0 | ameland.nes | ETRS89 | Ameland, Nes | 5.759448 | 53.429766 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 2020-02-01 00:20:00+01:00 | Gecontroleerd | -999999999 | NVT | RIKZMON_WAT | 00 | OW | Oppervlaktewater | WATHTE | Waterhoogte | cm | ... | NVT | Waterhoogte in Oppervlaktewater t.o.v. Normaal... | meting | 98 | 98.0 | ameland.nes | ETRS89 | Ameland, Nes | 5.759448 | 53.429766 |
| 2020-02-01 00:30:00+01:00 | Gecontroleerd | -999999999 | NVT | RIKZMON_WAT | 00 | OW | Oppervlaktewater | WATHTE | Waterhoogte | cm | ... | NVT | Waterhoogte in Oppervlaktewater t.o.v. Normaal... | meting | 102 | 102.0 | ameland.nes | ETRS89 | Ameland, Nes | 5.759448 | 53.429766 |
| 2020-02-01 00:40:00+01:00 | Gecontroleerd | -999999999 | NVT | RIKZMON_WAT | 00 | OW | Oppervlaktewater | WATHTE | Waterhoogte | cm | ... | NVT | Waterhoogte in Oppervlaktewater t.o.v. Normaal... | meting | 106 | 106.0 | ameland.nes | ETRS89 | Ameland, Nes | 5.759448 | 53.429766 |
| 2020-02-01 00:50:00+01:00 | Gecontroleerd | -999999999 | NVT | RIKZMON_WAT | 00 | OW | Oppervlaktewater | WATHTE | Waterhoogte | cm | ... | NVT | Waterhoogte in Oppervlaktewater t.o.v. Normaal... | meting | 109 | 109.0 | ameland.nes | ETRS89 | Ameland, Nes | 5.759448 | 53.429766 |
| 2020-02-01 01:00:00+01:00 | Gecontroleerd | -999999999 | NVT | RIKZMON_WAT | 00 | OW | Oppervlaktewater | WATHTE | Waterhoogte | cm | ... | NVT | Waterhoogte in Oppervlaktewater t.o.v. Normaal... | meting | 114 | 114.0 | ameland.nes | ETRS89 | Ameland, Nes | 5.759448 | 53.429766 |
39745 rows × 48 columns
Convert to xarray#
[14]:
# convert to xarray: constant columns are converted to attributes to save disk space, except the columns in always_preserve
always_preserve = [
'WaarnemingMetadata.Statuswaarde',
'WaarnemingMetadata.Kwaliteitswaardecode',
'Groepering.Code',
'WaardeBepalingsMethode.Code',
'Meetwaarde.Waarde_Numeriek',
]
ds = ddlpy.dataframe_to_xarray(measurements, always_preserve=always_preserve)
ds
[14]:
<xarray.Dataset> Size: 2MB
Dimensions: (time: 39745)
Coordinates:
* time (time) datetime64[ns] 318kB 2019...
Data variables:
WaarnemingMetadata.Statuswaarde (time) object 318kB 'Gecontrolee...
WaarnemingMetadata.Kwaliteitswaardecode (time) object 318kB '00' ... '00'
Groepering.Code (time) object 318kB '' '' ... '' ''
WaardeBepalingsMethode.Code (time) object 318kB 'other:F007'...
Meetwaarde.Waarde_Numeriek (time) float64 318kB -123.0 ... ...
Attributes: (12/43)
WaarnemingMetadata.Bemonsteringshoogte: -999999999
WaarnemingMetadata.Referentievlak: NVT
WaarnemingMetadata.OpdrachtgevendeInstantie: RIKZMON_WAT
Compartiment.Code: OW
Compartiment.Omschrijving: Oppervlaktewater
Grootheid.Code: WATHTE
... ...
Meetwaarde.Waarde_Alfanumeriek: -123
Code: ameland.nes
Coordinatenstelsel: ETRS89
Naam: Ameland, Nes
Lon: 5.759448
Lat: 53.429766[ ]: