pygridmet.pygridmet#
Access the GridMET database for both single single pixel and gridded queries.
Module Contents#
- pygridmet.pygridmet.get_bycoords(coords, dates, coords_id=None, crs=4326, variables=None, snow=False, snow_params=None, to_xarray=False, conn_timeout=1000, validate_filesize=True)#
Get point-data from the GridMET database at 1-km resolution.
- Parameters:
coords (
tuple
orlist
oftuples
) – Coordinates of the location(s) of interest as a tuple (x, y)dates (
tuple
orlist
, optional) – Start and end dates as a tuple (start, end) or a list of years[2001, 2010, ...]
.coords_id (
list
ofint
orstr
, optional) – A list of identifiers for the coordinates. This option only applies whento_xarray
is set toTrue
. If not provided, the coordinates will be enumerated.crs (
str
,int
, orpyproj.CRS
, optional) – The CRS of the input coordinates, defaults toEPSG:4326
.variables (
str
orlist
) – List of variables to be downloaded. The acceptable variables are:pr
,rmax
,rmin
,sph
,srad
,th
,tmmn
,tmmx
,vs
,bi
,fm100
,fm1000
,erc
,etr
,pet
, andvpd
. Descriptions can be found here. Defaults toNone
, i.e., all the variables are downloaded.snow (
bool
, optional) – Compute snowfall from precipitation and minimum temperature. Defaults toFalse
.snow_params (
dict
, optional) – Model-specific parameters as a dictionary that is passed to the snowfall function. These parameters are only used ifsnow
isTrue
. Two parameters are required:t_rain
(deg C) which is the threshold for temperature for considering rain andt_snow
(deg C) which is the threshold for temperature for considering snow. The default values are{'t_rain': 2.5, 't_snow': 0.6}
that are adopted from https://doi.org/10.5194/gmd-11-1077-2018.to_xarray (
bool
, optional) – Return the data as anxarray.Dataset
. Defaults toFalse
.conn_timeout (
int
, optional) – Connection timeout in seconds, defaults to 1000.validate_filesize (
bool
, optional) – When set toTrue
, the function checks the file size of the previously cached files and will re-download if the local filesize does not match that of the remote. Defaults toTrue
. Setting this toFalse
can be useful when you are sure that the cached files are not corrupted and just want to get the combined dataset more quickly. This is faster because it avoids web requests that are necessary for getting the file sizes.
- Returns:
pandas.DataFrame
orxarray.Dataset
– Daily climate data for a single or list of locations.- Return type:
Examples
>>> import pygridmet as gridmet >>> coords = (-1431147.7928, 318483.4618) >>> dates = ("2000-01-01", "2000-01-31") >>> clm = gridmet.get_bycoords( ... coords, ... dates, ... crs=3542, ... ) >>> clm["pr (mm)"].mean() 9.677
- pygridmet.pygridmet.get_bygeom(geometry, dates, crs=4326, variables=None, snow=False, snow_params=None, conn_timeout=1000, validate_filesize=True)#
Get gridded data from the GridMET database at 1-km resolution.
- Parameters:
geometry (
Polygon
ortuple
) – The geometry of the region of interest. It can be a shapely Polygon or a tuple of length 4 representing the bounding box (minx, miny, maxx, maxy).dates (
tuple
orlist
, optional) – Start and end dates as a tuple (start, end) or a list of years [2001, 2010, …].crs (
str
,int
, orpyproj.CRS
, optional) – The CRS of the input geometry, defaults to epsg:4326.variables (
str
orlist
) – List of variables to be downloaded. The acceptable variables are:pr
,rmax
,rmin
,sph
,srad
,th
,tmmn
,tmmx
,vs
,bi
,fm100
,fm1000
,erc
,etr
,pet
, andvpd
. Descriptions can be found here. Defaults toNone
, i.e., all the variables are downloaded.snow (
bool
, optional) – Compute snowfall from precipitation and minimum temperature. Defaults toFalse
.snow_params (
dict
, optional) – Model-specific parameters as a dictionary that is passed to the snowfall function. These parameters are only used ifsnow
isTrue
. Two parameters are required:t_rain
(deg C) which is the threshold for temperature for considering rain andt_snow
(deg C) which is the threshold for temperature for considering snow. The default values are{'t_rain': 2.5, 't_snow': 0.6}
that are adopted from https://doi.org/10.5194/gmd-11-1077-2018.conn_timeout (
int
, optional) – Connection timeout in seconds, defaults to 1000.validate_filesize (
bool
, optional) – When set toTrue
, the function checks the file size of the previously cached files and will re-download if the local filesize does not match that of the remote. Defaults toTrue
. Setting this toFalse
can be useful when you are sure that the cached files are not corrupted and just want to get the combined dataset more quickly. This is faster because it avoids web requests that are necessary for getting the file sizes.
- Returns:
xarray.Dataset
– Daily climate data within the target geometry.- Return type:
Examples
>>> from shapely import Polygon >>> import pygridmet as gridmet >>> geometry = Polygon( ... [[-69.77, 45.07], [-69.31, 45.07], [-69.31, 45.45], [-69.77, 45.45], [-69.77, 45.07]] ... ) >>> clm = gridmet.get_bygeom(geometry, 2010, variables="tmmn") >>> clm["tmmn"].mean().item() 274.167
- pygridmet.pygridmet.get_conus(years, variables=None, save_dir='clm_gridmet', conn_timeout=1000, validate_filesize=True)#
Get the entire CONUS data for the specified years and variables.
- Parameters:
variables (
str
orlist
, optional) – The variable(s) of interest, defaults toNone
which downloads all the variables.save_dir (
str
orPath
, optional) – The directory to store the downloaded data, defaults to./clm_gridmet
. The files are stored in the NetCDF format and the file names are based on the variable names and the years, e.g.,tmmn_2010.nc
.conn_timeout (
int
, optional) – Connection timeout in seconds, defaults to 1000.validate_filesize (
bool
, optional) – When set toTrue
, the function checks the file size of the previously cached files and will re-download if the local filesize does not match that of the remote. Defaults toTrue
. Setting this toFalse
can be useful when you are sure that the cached files are not corrupted and just want to get the combined dataset more quickly. This is faster because it avoids web requests that are necessary for getting the file sizes.
- Returns:
list
– A list of the downloaded files.- Return type:
list[pathlib.Path | None]
Examples
>>> import pygridmet as gridmet >>> filenames = gridmet.get_conus(2010, "tmmn")