hydrotools.nwm_client.http module#
HTTP NWM Client#
This module provides classes that offer a convenient interface to retrieve National Water Model (NWM) data from generic webservers including NOMADS and python simple http servers.
Classes#
NWMDataService
- class hydrotools.nwm_client.http.NWMDataService(server: str, verify: str | None = None, max_processes: int | None = None, *, location_metadata_mapping: DataFrame | None = None, cache_path: str | Path = 'nwm_client.h5', cache_group: str = 'nwm_client')#
Bases:
object
An HTTP client class for NWM data. This NWMDataService class provides various methods for constructing requests, retrieving data, and parsing responses from the NWM dataset accessible from generic web servers.
- property cache_group: str#
- property cache_path: Path#
- property configurations: list#
- property crosswalk: DataFrame#
- get(configuration: str, reference_time: str, cache_data: bool = True) DataFrame #
Return streamflow data for a single model cycle in a pandas DataFrame.
Note: By default, only nwm sites codes with an associated USGS site are returned by NWMDataService.get. See NWMDataService’s location_metadata_mapping parameter to change this behavior.
- Parameters:
configuration (str, required) – Particular model simulation or forecast configuration. For a list of available configurations see NWMDataService.configurations
reference_time (str, required) – Model simulation or forecast issuance/reference time in YYYYmmddTHHZ format.
cache_data (bool, optional, default True) – If True use a local HDFStore to save retrieved data.
- Returns:
df – Simluted or forecasted streamflow data associated with a single run of the National Water Model.
- Return type:
pandas.DataFrame
Examples
>>> from hydrotools.nwm_client import http as nwm >>> model_data_service = nwm.NWMDataService() >>> forecast_data = model_data_service.get( ... configuration = "short_range", ... reference_time = "20210101T01Z" ... )
- get_DataFrame(*args, streamflow_only: bool = True, **kwargs) DataFrame #
Retrieve a blob from the data service as pandas.DataFrame
- Parameters:
args – Positional arguments passed to get_Dataset
streamflow_only (bool, optional, default True) – Only return streamflow and omit other variables.
kwargs – Keyword arguments passed to get_Dataset
- Returns:
df – The data stored in the blob.
- Return type:
pandas.DataFrame
- get_Dataset(blob_url: str, feature_id_filter: _SupportsArray[dtype] | _NestedSequence[_SupportsArray[dtype]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes] = True) Dataset #
Retrieve a blob from the data service as xarray.Dataset
- Parameters:
blob_url (str, required) – Name of blob to retrieve.
feature_id_filter (bool or array-like, optional, default False) – If True, filter data using default list of feature ids (USGS gaging locations). Alternatively, limit data returned to feature ids in feature_id_filter list.
- Returns:
ds – The data stored in the blob.
- Return type:
xarray.Dataset
- get_blob(blob_url: str) bytes #
Retrieve a blob from the data service as bytes.
- Parameters:
blob_url (str, required) – Name of blob to retrieve.
- Returns:
data – The data stored in the blob.
- Return type:
bytes
- get_cycle(configuration: str, reference_time: str) DataFrame #
Return streamflow data for a single model cycle in a pandas DataFrame.
- Parameters:
configuration (str, required) – Particular model simulation or forecast configuration. For a list of available configurations see NWMDataService.configurations
reference_time (str, required) – Model simulation or forecast issuance/reference time in YYYYmmddTHHZ format.
- Returns:
df – Simluted or forecasted streamflow data associated with a single run of the National Water Model.
- Return type:
pandas.DataFrame
Examples
>>> from hydrotools.nwm_client import http as nwm >>> model_data_service = nwm.NWMDataService() >>> forecast_data = model_data_service.get( ... configuration = "short_range", ... reference_time = "20210101T01Z" ... )
- list_blobs(configuration: str, reference_time: str, must_contain: str = 'channel_rt') list #
List available blobs with provided parameters.
- Parameters:
configuration (str, required) – Particular model simulation or forecast configuration. For a list of available configurations see NWMDataService.configurations
reference_time (str, required) – Model simulation or forecast issuance/reference time in YYYYmmddTHHZ format.
must_contain (str, optional, default 'channel_rt') – Optional substring found in each blob name.
- Returns:
blob_list – A list of blob names that satisfy the criteria set by the parameters.
- Return type:
list
Examples
>>> from hydrotools.nwm_client import http as nwm >>> model_data_service = nwm.NWMDataService() >>> blob_list = model_data_service.list_blobs( ... configuration = "short_range", ... reference_time = "20210101T01Z" ... )
- property max_processes: int#
- property server: str#
- property verify: str#