3737
3838WATERSERVICES_SERVICES = ["dv" , "iv" , "site" , "stat" ]
3939WATERDATA_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
205163def 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
358253def 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
861693def 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