From fe25fdc55b97bd97fc28d34db2abc21644f9cf5b Mon Sep 17 00:00:00 2001 From: OnnoEbbens Date: Mon, 23 Oct 2023 12:11:49 +0200 Subject: [PATCH 1/3] fix for bug when reading Waterinfo #162 --- hydropandas/io/waterinfo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hydropandas/io/waterinfo.py b/hydropandas/io/waterinfo.py index e1451257..d1f4bde4 100644 --- a/hydropandas/io/waterinfo.py +++ b/hydropandas/io/waterinfo.py @@ -46,7 +46,7 @@ def read_waterinfo_file( ) if index_cols is None: - index_cols = ["WAARNEMINGDATUM", "WAARNEMINGTIJD"] + index_cols = ["WAARNEMINGDATUM", "WAARNEMINGTIJD (MET/CET)"] if value_col is None: value_col = "NUMERIEKEWAARDE" From cc9de91b76693049fca2b2a5c16407862a8a63ef Mon Sep 17 00:00:00 2001 From: OnnoEbbens Date: Mon, 23 Oct 2023 13:25:25 +0200 Subject: [PATCH 2/3] update test --- tests/data/2023-waterinfo-test/20231023_017.csv | 1 + tests/data/waterinfo-test/20200128_044.csv | 1 - tests/data/waterinfo-test/20200128_045.csv | 1 - tests/test_001_to_from.py | 2 +- 4 files changed, 2 insertions(+), 3 deletions(-) create mode 100644 tests/data/2023-waterinfo-test/20231023_017.csv delete mode 100644 tests/data/waterinfo-test/20200128_044.csv delete mode 100644 tests/data/waterinfo-test/20200128_045.csv diff --git a/tests/data/2023-waterinfo-test/20231023_017.csv b/tests/data/2023-waterinfo-test/20231023_017.csv new file mode 100644 index 00000000..f76bd93b --- /dev/null +++ b/tests/data/2023-waterinfo-test/20231023_017.csv @@ -0,0 +1 @@ +MONSTER_IDENTIFICATIE;MEETPUNT_IDENTIFICATIE;LOCATIE_CODE;TYPERING_OMSCHRIJVING;TYPERING_CODE;GROOTHEID_OMSCHRIJVING;GROOTHEID_ CODE;PARAMETER_OMSCHRIJVING;PARAMETER_ CODE;CAS_NR;EENHEID_CODE;HOEDANIGHEID_OMSCHRIJVING;HOEDANIGHEID_CODE;COMPARTIMENT_OMSCHRIJVING;COMPARTIMENT_CODE;WAARDEBEWERKINGSMETHODE_OMSCHRIJVING;WAARDEBEWERKINGSMETHODE_CODE;WAARDEBEPALINGSMETHODE_OMSCHRIJVING;WAARDEBEPALINGSMETHODE_CODE;BEMONSTERINGSSOORT_OMSCHRIJVING;BEMONSTERINGSSOORT_CODE;WAARNEMINGDATUM;WAARNEMINGTIJD (MET/CET);LIMIETSYMBOOL;NUMERIEKEWAARDE;ALFANUMERIEKEWAARDE;KWALITEITSOORDEEL_CODE;REFERENTIE;NOTITIE_CODE;NOTITIE_OMSCHRIJVING;STATUSWAARDE;OPDRACHTGEVENDE_INSTANTIE;MEETAPPARAAT_OMSCHRIJVING;MEETAPPARAAT_CODE;BEMONSTERINGSAPPARAAT_OMSCHRIJVING;BEMONSTERINGSAPPARAAT_CODE;PLAATSBEPALINGSAPPARAAT_OMSCHRIJVING;PLAATSBEPALINGSAPPARAAT_CODE;BEMONSTERINGSHOOGTE;REFERENTIEVLAK;EPSG;X;Y;ORGAAN_OMSCHRIJVING;ORGAAN_CODE;TAXON_NAME;GROEPERING_OMSCHRIJVING;GROEPERING_CODE;GROEPERING_KANAAL;GROEPERING_TYPE ;Krimpen a/d Lek;KRIMPADLK;;;Waterhoogte;WATHTE;;;;cm;t.o.v. Normaal Amsterdams Peil;NAP;Oppervlaktewater;OW;;;Rekenkundig gemiddelde waarde over vorige 5 en volgende 5 minuten;other:F007;Steekbemonstering;SB;01-01-2022;00:00:00;;43;43;Normale waarde;;;;Gecontroleerd;RIKZMON_WAT;Vlotter;127;;;;;-999999999;NVT;25831;612093,755309996;5750138,05579548;;;;;;; ;Krimpen a/d Lek;KRIMPADLK;;;Waterhoogte;WATHTE;;;;cm;t.o.v. Normaal Amsterdams Peil;NAP;Oppervlaktewater;OW;;;Rekenkundig gemiddelde waarde over vorige 5 en volgende 5 minuten;other:F007;Steekbemonstering;SB;01-01-2022;00:10:00;;51;51;Normale waarde;;;;Gecontroleerd;RIKZMON_WAT;Vlotter;127;;;;;-999999999;NVT;25831;612093,755309996;5750138,05579548;;;;;;; ;Krimpen a/d Lek;KRIMPADLK;;;Waterhoogte;WATHTE;;;;cm;t.o.v. Normaal Amsterdams Peil;NAP;Oppervlaktewater;OW;;;Rekenkundig gemiddelde waarde over vorige 5 en volgende 5 minuten;other:F007;Steekbemonstering;SB;01-01-2022;00:20:00;;60;60;Normale waarde;;;;Gecontroleerd;RIKZMON_WAT;Vlotter;127;;;;;-999999999;NVT;25831;612093,755309996;5750138,05579548;;;;;;; ;Krimpen a/d Lek;KRIMPADLK;;;Waterhoogte;WATHTE;;;;cm;t.o.v. Normaal Amsterdams Peil;NAP;Oppervlaktewater;OW;;;Rekenkundig gemiddelde waarde over vorige 5 en volgende 5 minuten;other:F007;Steekbemonstering;SB;01-01-2022;00:30:00;;70;70;Normale waarde;;;;Gecontroleerd;RIKZMON_WAT;Vlotter;127;;;;;-999999999;NVT;25831;612093,755309996;5750138,05579548;;;;;;; ;Krimpen a/d Lek;KRIMPADLK;;;Waterhoogte;WATHTE;;;;cm;t.o.v. Normaal Amsterdams Peil;NAP;Oppervlaktewater;OW;;;Rekenkundig gemiddelde waarde over vorige 5 en volgende 5 minuten;other:F007;Steekbemonstering;SB;01-01-2022;00:40:00;;82;82;Normale waarde;;;;Gecontroleerd;RIKZMON_WAT;Vlotter;127;;;;;-999999999;NVT;25831;612093,755309996;5750138,05579548;;;;;;; \ No newline at end of file diff --git a/tests/data/waterinfo-test/20200128_044.csv b/tests/data/waterinfo-test/20200128_044.csv deleted file mode 100644 index cfa3cb28..00000000 --- a/tests/data/waterinfo-test/20200128_044.csv +++ /dev/null @@ -1 +0,0 @@ -MONSTER_IDENTIFICATIE;MEETPUNT_IDENTIFICATIE;TYPERING_OMSCHRIJVING;TYPERING_CODE;GROOTHEID_OMSCHRIJVING;GROOTHEID_ CODE;PARAMETER_OMSCHRIJVING;PARAMETER_ CODE;EENHEID_CODE;HOEDANIGHEID_OMSCHRIJVING;HOEDANIGHEID_CODE;COMPARTIMENT_OMSCHRIJVING;COMPARTIMENT_CODE;WAARDEBEWERKINGSMETHODE_OMSCHRIJVING;WAARDEBEWERKINGSMETHODE_CODE;WAARDEBEPALINGSMETHODE_OMSCHRIJVING;WAARDEBEPALINGSMETHODE_CODE;BEMONSTERINGSSOORT_OMSCHRIJVING;BEMONSTERINGSSOORT_CODE;WAARNEMINGDATUM;WAARNEMINGTIJD;LIMIETSYMBOOL;NUMERIEKEWAARDE;ALFANUMERIEKEWAARDE;KWALITEITSOORDEEL_CODE;STATUSWAARDE;OPDRACHTGEVENDE_INSTANTIE;MEETAPPARAAT_OMSCHRIJVING;MEETAPPARAAT_CODE;BEMONSTERINGSAPPARAAT_OMSCHRIJVING;BEMONSTERINGSAPPARAAT_CODE;PLAATSBEPALINGSAPPARAAT_OMSCHRIJVING;PLAATSBEPALINGSAPPARAAT_CODE;BEMONSTERINGSHOOGTE;REFERENTIEVLAK;EPSG;X;Y;ORGAAN_OMSCHRIJVING;ORGAAN_CODE;TAXON_NAME ;Dodewaard;;;Waterhoogte;WATHTE;;;cm;t.o.v. Normaal Amsterdams Peil;NAP;Oppervlaktewater;OW;;;Indompeling gedurende 1 minuut;other:F029;Rechtstreekse meting;01;01-01-1990;08:00:00;;628;;Normale waarde;Ongecontroleerd;ONXXREG_WAT;Peilschaal;124;;;;;-999999999;NVT;25831;680971,416970065;5753243,13572143;;; ;Dodewaard;;;Waterhoogte;WATHTE;;;cm;t.o.v. Normaal Amsterdams Peil;NAP;Oppervlaktewater;OW;;;Indompeling gedurende 1 minuut;other:F029;Rechtstreekse meting;01;02-01-1990;08:00:00;;602;;Normale waarde;Ongecontroleerd;ONXXREG_WAT;Peilschaal;124;;;;;-999999999;NVT;25831;680971,416970065;5753243,13572143;;; ;Dodewaard;;;Waterhoogte;WATHTE;;;cm;t.o.v. Normaal Amsterdams Peil;NAP;Oppervlaktewater;OW;;;Indompeling gedurende 1 minuut;other:F029;Rechtstreekse meting;01;03-01-1990;08:00:00;;572;;Normale waarde;Ongecontroleerd;ONXXREG_WAT;Peilschaal;124;;;;;-999999999;NVT;25831;680971,416970065;5753243,13572143;;; ;Dodewaard;;;Waterhoogte;WATHTE;;;cm;t.o.v. Normaal Amsterdams Peil;NAP;Oppervlaktewater;OW;;;Indompeling gedurende 1 minuut;other:F029;Rechtstreekse meting;01;04-01-1990;08:00:00;;550;;Normale waarde;Ongecontroleerd;ONXXREG_WAT;Peilschaal;124;;;;;-999999999;NVT;25831;680971,416970065;5753243,13572143;;; \ No newline at end of file diff --git a/tests/data/waterinfo-test/20200128_045.csv b/tests/data/waterinfo-test/20200128_045.csv deleted file mode 100644 index 284abff7..00000000 --- a/tests/data/waterinfo-test/20200128_045.csv +++ /dev/null @@ -1 +0,0 @@ -MONSTER_IDENTIFICATIE;MEETPUNT_IDENTIFICATIE;TYPERING_OMSCHRIJVING;TYPERING_CODE;GROOTHEID_OMSCHRIJVING;GROOTHEID_ CODE;PARAMETER_OMSCHRIJVING;PARAMETER_ CODE;EENHEID_CODE;HOEDANIGHEID_OMSCHRIJVING;HOEDANIGHEID_CODE;COMPARTIMENT_OMSCHRIJVING;COMPARTIMENT_CODE;WAARDEBEWERKINGSMETHODE_OMSCHRIJVING;WAARDEBEWERKINGSMETHODE_CODE;WAARDEBEPALINGSMETHODE_OMSCHRIJVING;WAARDEBEPALINGSMETHODE_CODE;BEMONSTERINGSSOORT_OMSCHRIJVING;BEMONSTERINGSSOORT_CODE;WAARNEMINGDATUM;WAARNEMINGTIJD;LIMIETSYMBOOL;NUMERIEKEWAARDE;ALFANUMERIEKEWAARDE;KWALITEITSOORDEEL_CODE;STATUSWAARDE;OPDRACHTGEVENDE_INSTANTIE;MEETAPPARAAT_OMSCHRIJVING;MEETAPPARAAT_CODE;BEMONSTERINGSAPPARAAT_OMSCHRIJVING;BEMONSTERINGSAPPARAAT_CODE;PLAATSBEPALINGSAPPARAAT_OMSCHRIJVING;PLAATSBEPALINGSAPPARAAT_CODE;BEMONSTERINGSHOOGTE;REFERENTIEVLAK;EPSG;X;Y;ORGAAN_OMSCHRIJVING;ORGAAN_CODE;TAXON_NAME ;Driel beneden;;;Waterhoogte;WATHTE;;;cm;t.o.v. Normaal Amsterdams Peil;NAP;Oppervlaktewater;OW;;;Rekenkundig gemiddelde waarde over vorige 10 minuten;other:F001;Rechtstreekse meting;01;01-01-1990;00:00:00;;717;;Normale waarde;Definitief;RIKZMON_WAT;Vlotter;127;;;;;-999999999;NVT;25831;692540,602099716;5760632,32322453;;; ;Driel beneden;;;Waterhoogte;WATHTE;;;cm;t.o.v. Normaal Amsterdams Peil;NAP;Oppervlaktewater;OW;;;Rekenkundig gemiddelde waarde over vorige 10 minuten;other:F001;Rechtstreekse meting;01;01-01-1990;01:00:00;;716;;Normale waarde;Definitief;RIKZMON_WAT;Vlotter;127;;;;;-999999999;NVT;25831;692540,602099716;5760632,32322453;;; ;Driel beneden;;;Waterhoogte;WATHTE;;;cm;t.o.v. Normaal Amsterdams Peil;NAP;Oppervlaktewater;OW;;;Rekenkundig gemiddelde waarde over vorige 10 minuten;other:F001;Rechtstreekse meting;01;01-01-1990;02:00:00;;715;;Normale waarde;Definitief;RIKZMON_WAT;Vlotter;127;;;;;-999999999;NVT;25831;692540,602099716;5760632,32322453;;; ;Driel beneden;;;Waterhoogte;WATHTE;;;cm;t.o.v. Normaal Amsterdams Peil;NAP;Oppervlaktewater;OW;;;Rekenkundig gemiddelde waarde over vorige 10 minuten;other:F001;Rechtstreekse meting;01;01-01-1990;03:00:00;;714;;Normale waarde;Definitief;RIKZMON_WAT;Vlotter;127;;;;;-999999999;NVT;25831;692540,602099716;5760632,32322453;;; \ No newline at end of file diff --git a/tests/test_001_to_from.py b/tests/test_001_to_from.py index fbcae2b1..06cdbddb 100644 --- a/tests/test_001_to_from.py +++ b/tests/test_001_to_from.py @@ -325,7 +325,7 @@ def test_knmi_collection_from_grid(): def test_waterinfo_from_dir(): - path = "./tests/data/waterinfo-test" + path = "./tests/data/2023-waterinfo-test" hpd.read_waterinfo(path) From 10d2ac7d168e973b4bef3a663e39993a6c08eefa Mon Sep 17 00:00:00 2001 From: OnnoEbbens Date: Tue, 31 Oct 2023 16:49:16 +0100 Subject: [PATCH 3/3] fix for both type of WAARNEMINGSTIJD --- hydropandas/io/waterinfo.py | 21 ++++++++++++++----- hydropandas/obs_collection.py | 3 ++- .../data/2023-waterinfo-test/20200128_044.csv | 1 + 3 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 tests/data/2023-waterinfo-test/20200128_044.csv diff --git a/hydropandas/io/waterinfo.py b/hydropandas/io/waterinfo.py index d1f4bde4..5c2aeef6 100644 --- a/hydropandas/io/waterinfo.py +++ b/hydropandas/io/waterinfo.py @@ -45,9 +45,6 @@ def read_waterinfo_file( "File type '{}' not supported!".format(os.path.splitext(path)[-1]) ) - if index_cols is None: - index_cols = ["WAARNEMINGDATUM", "WAARNEMINGTIJD (MET/CET)"] - if value_col is None: value_col = "NUMERIEKEWAARDE" @@ -66,11 +63,25 @@ def read_waterinfo_file( sep=";", decimal=",", encoding="ISO-8859-1", - parse_dates=[index_cols], dayfirst=True, - index_col="_".join(index_cols), ) + if index_cols is None: + index_cols = ["WAARNEMINGDATUM"] + if "WAARNEMINGTIJD (MET/CET)" in df.columns: + index_cols += ["WAARNEMINGTIJD (MET/CET)"] + elif "WAARNEMINGTIJD" in df.columns: + index_cols += ["WAARNEMINGTIJD"] + else: + raise KeyError( + "expected column with WAARNEMINGSTIJD but could not find one" + ) + + df.index = pd.to_datetime( + df[index_cols[0]] + " " + df[index_cols[1]], dayfirst=True + ) + df.drop(columns=index_cols, inplace=True) + # do some conversions df.loc[df[value_col] == 999999999, value_col] = np.NaN df[value_col] = df[value_col] / 100.0 diff --git a/hydropandas/obs_collection.py b/hydropandas/obs_collection.py index 8acb3cf9..035a809d 100644 --- a/hydropandas/obs_collection.py +++ b/hydropandas/obs_collection.py @@ -1954,7 +1954,8 @@ def to_pastastore( Name of the column in the Obs dataframe to be used. If None the first numeric column in the Obs Dataframe is used. kind : str, optional - The kind of series that is added to the pastastore + The kind of series that is added to the pastastore. Use 'oseries' + for observations and anything else for stresses. add_metadata : boolean, optional If True metadata from the observations added to the pastastore conn : pastastore.connectors or None, optional diff --git a/tests/data/2023-waterinfo-test/20200128_044.csv b/tests/data/2023-waterinfo-test/20200128_044.csv new file mode 100644 index 00000000..cfa3cb28 --- /dev/null +++ b/tests/data/2023-waterinfo-test/20200128_044.csv @@ -0,0 +1 @@ +MONSTER_IDENTIFICATIE;MEETPUNT_IDENTIFICATIE;TYPERING_OMSCHRIJVING;TYPERING_CODE;GROOTHEID_OMSCHRIJVING;GROOTHEID_ CODE;PARAMETER_OMSCHRIJVING;PARAMETER_ CODE;EENHEID_CODE;HOEDANIGHEID_OMSCHRIJVING;HOEDANIGHEID_CODE;COMPARTIMENT_OMSCHRIJVING;COMPARTIMENT_CODE;WAARDEBEWERKINGSMETHODE_OMSCHRIJVING;WAARDEBEWERKINGSMETHODE_CODE;WAARDEBEPALINGSMETHODE_OMSCHRIJVING;WAARDEBEPALINGSMETHODE_CODE;BEMONSTERINGSSOORT_OMSCHRIJVING;BEMONSTERINGSSOORT_CODE;WAARNEMINGDATUM;WAARNEMINGTIJD;LIMIETSYMBOOL;NUMERIEKEWAARDE;ALFANUMERIEKEWAARDE;KWALITEITSOORDEEL_CODE;STATUSWAARDE;OPDRACHTGEVENDE_INSTANTIE;MEETAPPARAAT_OMSCHRIJVING;MEETAPPARAAT_CODE;BEMONSTERINGSAPPARAAT_OMSCHRIJVING;BEMONSTERINGSAPPARAAT_CODE;PLAATSBEPALINGSAPPARAAT_OMSCHRIJVING;PLAATSBEPALINGSAPPARAAT_CODE;BEMONSTERINGSHOOGTE;REFERENTIEVLAK;EPSG;X;Y;ORGAAN_OMSCHRIJVING;ORGAAN_CODE;TAXON_NAME ;Dodewaard;;;Waterhoogte;WATHTE;;;cm;t.o.v. Normaal Amsterdams Peil;NAP;Oppervlaktewater;OW;;;Indompeling gedurende 1 minuut;other:F029;Rechtstreekse meting;01;01-01-1990;08:00:00;;628;;Normale waarde;Ongecontroleerd;ONXXREG_WAT;Peilschaal;124;;;;;-999999999;NVT;25831;680971,416970065;5753243,13572143;;; ;Dodewaard;;;Waterhoogte;WATHTE;;;cm;t.o.v. Normaal Amsterdams Peil;NAP;Oppervlaktewater;OW;;;Indompeling gedurende 1 minuut;other:F029;Rechtstreekse meting;01;02-01-1990;08:00:00;;602;;Normale waarde;Ongecontroleerd;ONXXREG_WAT;Peilschaal;124;;;;;-999999999;NVT;25831;680971,416970065;5753243,13572143;;; ;Dodewaard;;;Waterhoogte;WATHTE;;;cm;t.o.v. Normaal Amsterdams Peil;NAP;Oppervlaktewater;OW;;;Indompeling gedurende 1 minuut;other:F029;Rechtstreekse meting;01;03-01-1990;08:00:00;;572;;Normale waarde;Ongecontroleerd;ONXXREG_WAT;Peilschaal;124;;;;;-999999999;NVT;25831;680971,416970065;5753243,13572143;;; ;Dodewaard;;;Waterhoogte;WATHTE;;;cm;t.o.v. Normaal Amsterdams Peil;NAP;Oppervlaktewater;OW;;;Indompeling gedurende 1 minuut;other:F029;Rechtstreekse meting;01;04-01-1990;08:00:00;;550;;Normale waarde;Ongecontroleerd;ONXXREG_WAT;Peilschaal;124;;;;;-999999999;NVT;25831;680971,416970065;5753243,13572143;;; \ No newline at end of file