Skip to content

Commit 267d925

Browse files
committed
remove get_pmcodes, gwlevels, measurements from functions
1 parent 4dc9f6a commit 267d925

3 files changed

Lines changed: 18 additions & 482 deletions

File tree

dataretrieval/nwis.py

Lines changed: 16 additions & 229 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,7 @@
3737

3838
WATERSERVICES_SERVICES = ["dv", "iv", "site", "stat"]
3939
WATERDATA_SERVICES = [
40-
"gwlevels",
41-
"measurements",
4240
"peaks",
43-
"pmcodes",
4441
"water_use",
4542
"ratings",
4643
]
@@ -152,54 +149,15 @@ def get_discharge_measurements(
152149
**kwargs,
153150
) -> Tuple[pd.DataFrame, BaseMetadata]:
154151
"""
155-
Get discharge measurements from the waterdata service.
156-
157-
Parameters
158-
----------
159-
sites: string or list of strings, optional, default is None
160-
start: string, optional, default is None
161-
Supply date in the format: YYYY-MM-DD
162-
end: string, optional, default is None
163-
Supply date in the format: YYYY-MM-DD
164-
ssl_check: bool, optional
165-
If True, check SSL certificates, if False, do not check SSL,
166-
default is True
167-
**kwargs: optional
168-
If supplied, will be used as query parameters
169-
170-
Returns
171-
-------
172-
df: ``pandas.DataFrame``
173-
Times series data from the NWIS JSON
174-
md: :obj:`dataretrieval.utils.Metadata`
175-
A custom metadata object
176-
177-
Examples
178-
--------
179-
.. doctest::
180-
181-
>>> # Get discharge measurements for site 05114000
182-
>>> df, md = dataretrieval.nwis.get_discharge_measurements(
183-
... sites="05114000", start="2000-01-01", end="2000-01-30"
184-
... )
185-
186-
>>> # Get discharge measurements for sites in Alaska
187-
>>> df, md = dataretrieval.nwis.get_discharge_measurements(
188-
... start="2012-01-09", end="2012-01-10", stateCd="AK"
189-
... )
152+
Get discharge measurements from the waterdata service -
153+
deprecated, use `get_field_measurements()` in the waterdata
154+
module.
190155
191156
"""
192-
_check_sites_value_types(sites)
193-
194-
kwargs["site_no"] = kwargs.pop("site_no", sites)
195-
kwargs["begin_date"] = kwargs.pop("begin_date", start)
196-
kwargs["end_date"] = kwargs.pop("end_date", end)
197-
198-
if "format" not in kwargs:
199-
kwargs["format"] = "rdb"
157+
raise NameError(
158+
"`nwis.get_discharge_measurements` has been replaced with `waterdata.get_field_measurements`."
159+
)
200160

201-
response = query_waterdata("measurements", ssl_check=ssl_check, **kwargs)
202-
return _read_rdb(response.text), NWIS_Metadata(response, **kwargs)
203161

204162

205163
def get_discharge_peaks(
@@ -281,78 +239,15 @@ def get_gwlevels(
281239
**kwargs,
282240
) -> Tuple[pd.DataFrame, BaseMetadata]:
283241
"""
284-
Queries the groundwater level service from waterservices
285-
286-
Parameters
287-
----------
288-
sites: string or list of strings, optional, default is None
289-
If the waterdata parameter site_no is supplied, it will overwrite the
290-
sites parameter
291-
start: string, optional, default is '1851-01-01'
292-
If the waterdata parameter begin_date is supplied, it will overwrite
293-
the start parameter
294-
end: string, optional, default is None
295-
If the waterdata parameter end_date is supplied, it will overwrite the
296-
end parameter (YYYY-MM-DD)
297-
multi_index: bool, optional
298-
If False, a dataframe with a single-level index (datetime) is returned,
299-
default is True
300-
datetime_index : bool, optional
301-
If True, create a datetime index, default is True
302-
ssl_check: bool, optional
303-
If True, check SSL certificates, if False, do not check SSL,
304-
default is True
305-
**kwargs: optional
306-
If supplied, will be used as query parameters
307-
308-
Returns
309-
-------
310-
df: ``pandas.DataFrame``
311-
Times series data from the NWIS JSON
312-
md: :obj:`dataretrieval.utils.Metadata`
313-
A custom metadata object
314-
315-
Examples
316-
--------
317-
.. doctest::
318-
319-
>>> # Get groundwater levels for site 434400121275801
320-
>>> df, md = dataretrieval.nwis.get_gwlevels(sites="434400121275801")
242+
Queries the groundwater level service from waterservices -
243+
deprecated, use `get_field_measurements()` in the waterdata
244+
module.
321245
322246
"""
323-
_check_sites_value_types(sites)
324-
325-
# Make kwargs backwards compatible with waterservices
326-
# vocabulary
327-
if "startDT" in kwargs:
328-
kwargs["begin_date"] = kwargs.pop("startDT")
329-
if "endDT" in kwargs:
330-
kwargs["end_date"] = kwargs.pop("endDT")
331-
if "sites" in kwargs:
332-
kwargs["site_no"] = kwargs.pop("sites")
333-
if "stateCd" in kwargs:
334-
kwargs["state_cd"] = kwargs.pop("stateCd")
335-
336-
kwargs["begin_date"] = kwargs.pop("begin_date", start)
337-
kwargs["end_date"] = kwargs.pop("end_date", end)
338-
kwargs["site_no"] = kwargs.pop("site_no", sites)
339-
kwargs["multi_index"] = multi_index
340-
341-
response = query_waterdata("gwlevels", format="rdb", ssl_check=ssl_check, **kwargs)
342-
343-
df = _read_rdb(response.text)
344-
345-
if datetime_index is True:
346-
df = format_datetime(df, "lev_dt", "lev_tm", "lev_tz_cd")
347-
348-
# Filter by kwarg parameterCd because the service doesn't do it
349-
if "parameterCd" in kwargs:
350-
pcodes = kwargs["parameterCd"]
351-
if isinstance(pcodes, str):
352-
pcodes = [pcodes]
353-
df = df[df["parameter_cd"].isin(pcodes)]
247+
raise NameError(
248+
"`nwis.get_gwlevels` has been replaced with `waterdata.get_field_measurements()`."
249+
)
354250

355-
return format_response(df, **kwargs), NWIS_Metadata(response, **kwargs)
356251

357252

358253
def get_stats(
@@ -785,78 +680,15 @@ def get_pmcodes(
785680
ssl_check: bool = True,
786681
) -> Tuple[pd.DataFrame, BaseMetadata]:
787682
"""
788-
Return a ``pandas.DataFrame`` containing all NWIS parameter codes.
789-
790-
Parameters
791-
----------
792-
parameterCd: string or list of strings, default is 'All'
793-
Accepts parameter codes or names
794-
partial: bool, optional
795-
Default is True (partial querying). If False, the function will query
796-
only exact matches, default is True
797-
ssl_check: bool, optional
798-
If True, check SSL certificates, if False, do not check SSL,
799-
default is True
800-
801-
Returns
802-
-------
803-
df: ``pandas.DataFrame``
804-
Data retrieved from the NWIS web service.
805-
md: :obj:`dataretrieval.utils.Metadata`
806-
A custom metadata object
807-
808-
Examples
809-
--------
810-
.. doctest::
811-
812-
>>> # Get information about the '00060' pcode
813-
>>> df, md = dataretrieval.nwis.get_pmcodes(
814-
... parameterCd="00060", partial=False
815-
... )
816-
817-
>>> # Get information about all 'Discharge' pcodes
818-
>>> df, md = dataretrieval.nwis.get_pmcodes(
819-
... parameterCd="Discharge", partial=True
820-
... )
683+
Return a ``pandas.DataFrame`` containing all NWIS parameter codes -
684+
deprecated, use `get_reference_table(collection="parameter-codes")`.
821685
822686
"""
823687

824-
payload = {"fmt": "rdb"}
825-
url = PARAMCODES_URL
826-
827-
if isinstance(parameterCd, str): # when a single code or name is given
828-
if parameterCd.lower() == "all":
829-
payload.update({"group_cd": "%"})
830-
url = ALLPARAMCODES_URL
831-
response = query(url, payload, ssl_check=ssl_check)
832-
return _read_rdb(response.text), NWIS_Metadata(response)
833-
834-
else:
835-
parameterCd = [parameterCd]
836-
837-
if not isinstance(parameterCd, list):
838-
raise TypeError(
839-
"Parameter information (code or name) must be type string or list"
688+
raise NameError(
689+
"`nwis.get_pmcodes` has been replaced with `get_reference_table(collection='parameter-codes')`."
840690
)
841691

842-
# Querying with a list of parameters names, codes, or mixed
843-
return_list = []
844-
for param in parameterCd:
845-
if isinstance(param, str):
846-
if partial:
847-
param = f"%{param}%"
848-
payload.update({"parm_nm_cd": param})
849-
response = query(url, payload, ssl_check=ssl_check)
850-
if len(response.text.splitlines()) < 10: # empty query
851-
raise TypeError(
852-
"One of the parameter codes or names entered does not"
853-
"return any information, please try a different value"
854-
)
855-
return_list.append(_read_rdb(response.text))
856-
else:
857-
raise TypeError("Parameter information (code or name) must be type string")
858-
return pd.concat(return_list), NWIS_Metadata(response)
859-
860692

861693
def get_water_use(
862694
years: Union[str, List[str]] = "ALL",
@@ -1075,10 +907,7 @@ def get_record(
1075907
- 'iv' : instantaneous data
1076908
- 'dv' : daily mean data
1077909
- 'site' : site description
1078-
- 'measurements' : discharge measurements
1079910
- 'peaks': discharge peaks
1080-
- 'gwlevels': groundwater levels
1081-
- 'pmcodes': get parameter codes
1082911
- 'water_use': get water use data
1083912
- 'ratings': get rating table
1084913
- 'stat': get statistics
@@ -1105,24 +934,9 @@ def get_record(
1105934
>>> # Get site description for site 01585200
1106935
>>> df = dataretrieval.nwis.get_record(sites="01585200", service="site")
1107936
1108-
>>> # Get discharge measurements for site 01585200
1109-
>>> df = dataretrieval.nwis.get_record(
1110-
... sites="01585200", service="measurements"
1111-
... )
1112-
1113937
>>> # Get discharge peaks for site 01585200
1114938
>>> df = dataretrieval.nwis.get_record(sites="01585200", service="peaks")
1115939
1116-
>>> # Get latest groundwater level for site 434400121275801
1117-
>>> df = dataretrieval.nwis.get_record(
1118-
... sites="434400121275801", service="gwlevels"
1119-
... )
1120-
1121-
>>> # Get information about the discharge parameter code
1122-
>>> df = dataretrieval.nwis.get_record(
1123-
... service="pmcodes", parameterCd="00060"
1124-
... )
1125-
1126940
>>> # Get water use data for livestock nationally in 2010
1127941
>>> df = dataretrieval.nwis.get_record(
1128942
... service="water_use", years="2010", categories="L"
@@ -1171,12 +985,6 @@ def get_record(
1171985
df, _ = get_info(sites=sites, ssl_check=ssl_check, **kwargs)
1172986
return df
1173987

1174-
elif service == "measurements":
1175-
df, _ = get_discharge_measurements(
1176-
site_no=sites, begin_date=start, end_date=end, ssl_check=ssl_check, **kwargs
1177-
)
1178-
return df
1179-
1180988
elif service == "peaks":
1181989
df, _ = get_discharge_peaks(
1182990
site_no=sites,
@@ -1188,22 +996,6 @@ def get_record(
1188996
)
1189997
return df
1190998

1191-
elif service == "gwlevels":
1192-
df, _ = get_gwlevels(
1193-
sites=sites,
1194-
startDT=start,
1195-
endDT=end,
1196-
multi_index=multi_index,
1197-
datetime_index=datetime_index,
1198-
ssl_check=ssl_check,
1199-
**kwargs,
1200-
)
1201-
return df
1202-
1203-
elif service == "pmcodes":
1204-
df, _ = get_pmcodes(ssl_check=ssl_check, **kwargs)
1205-
return df
1206-
1207999
elif service == "water_use":
12081000
df, _ = get_water_use(state=state, ssl_check=ssl_check, **kwargs)
12091001
return df
@@ -1461,8 +1253,3 @@ def site_info(self) -> Optional[Tuple[pd.DataFrame, BaseMetadata]]:
14611253
else:
14621254
return None # don't set metadata site_info attribute
14631255

1464-
@property
1465-
def variable_info(self) -> Optional[Tuple[pd.DataFrame, BaseMetadata]]:
1466-
# define variable_info metadata based on parameterCd if available
1467-
if "parameterCd" in self._parameters:
1468-
return get_pmcodes(parameterCd=self._parameters["parameterCd"])

0 commit comments

Comments
 (0)