Skip to content

Commit 0e6167f

Browse files
authored
Merge pull request #180 from ehinman/fix-gwlevels-pcode
Fix gwlevels pcode
2 parents 4b3a3e8 + e43e2b9 commit 0e6167f

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

dataretrieval/nwis.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,13 @@ def get_gwlevels(
460460

461461
if datetime_index is True:
462462
df = format_datetime(df, "lev_dt", "lev_tm", "lev_tz_cd")
463+
464+
# Filter by kwarg parameterCd because the service doesn't do it
465+
if "parameterCd" in kwargs:
466+
pcodes = kwargs["parameterCd"]
467+
if isinstance(pcodes, str):
468+
pcodes = [pcodes]
469+
df = df[df["parameter_cd"].isin(pcodes)]
463470

464471
return format_response(df, **kwargs), NWIS_Metadata(response, **kwargs)
465472

tests/nwis_test.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
get_record,
1313
preformat_peaks_response,
1414
what_sites,
15+
get_gwlevels
1516
)
1617

1718
START_DATE = "2018-01-24"
@@ -296,3 +297,25 @@ def test_set_metadata_info_countyCd(self):
296297
md = NWIS_Metadata(response, countyCd="01001")
297298
# assert that site_info is implemented
298299
assert md.site_info
300+
301+
class Testgwlevels:
302+
"""Tests of get_gwlevels function
303+
304+
Notes
305+
-----
306+
- gwlevels moved to a new web service endpoint in 2024
307+
- The new endpoint has quirks and doesn't recognize the
308+
parameterCd kwarg advertisted by the service.
309+
"""
310+
def test_gwlevels_one_parameterCd(self):
311+
pcode = "72019"
312+
df,_ = get_gwlevels(sites="434400121275801", start = "2010-01-01", parameterCd=pcode)
313+
assert set(df['parameter_cd'].unique().tolist()) == set([pcode])
314+
315+
def test_gwlevels_two_parameterCds(self):
316+
pcode = ["72019", "62610"]
317+
df,_ = get_gwlevels(sites="434400121275801", start = "2010-01-01", parameterCd=pcode)
318+
assert set(df['parameter_cd'].unique().tolist()) == set(pcode)
319+
320+
321+

0 commit comments

Comments
 (0)