Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions dataretrieval/nwis.py
Original file line number Diff line number Diff line change
Expand Up @@ -460,6 +460,13 @@ def get_gwlevels(

if datetime_index is True:
df = format_datetime(df, "lev_dt", "lev_tm", "lev_tz_cd")

# Filter by kwarg parameterCd because the service doesn't do it
if "parameterCd" in kwargs:
pcodes = kwargs["parameterCd"]
if isinstance(pcodes, str):
pcodes = [pcodes]
df = df[df["parameter_cd"].isin(pcodes)]

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

Expand Down
23 changes: 23 additions & 0 deletions tests/nwis_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
get_record,
preformat_peaks_response,
what_sites,
get_gwlevels
)

START_DATE = "2018-01-24"
Expand Down Expand Up @@ -296,3 +297,25 @@ def test_set_metadata_info_countyCd(self):
md = NWIS_Metadata(response, countyCd="01001")
# assert that site_info is implemented
assert md.site_info

class Testgwlevels:
"""Tests of get_gwlevels function

Notes
-----
- gwlevels moved to a new web service endpoint in 2024
- The new endpoint has quirks and doesn't recognize the
parameterCd kwarg advertisted by the service.
"""
def test_gwlevels_one_parameterCd(self):
pcode = "72019"
df,_ = get_gwlevels(sites="434400121275801", start = "2010-01-01", parameterCd=pcode)
assert set(df['parameter_cd'].unique().tolist()) == set([pcode])

def test_gwlevels_two_parameterCds(self):
pcode = ["72019", "62610"]
df,_ = get_gwlevels(sites="434400121275801", start = "2010-01-01", parameterCd=pcode)
assert set(df['parameter_cd'].unique().tolist()) == set(pcode)



Loading