rex.renewable_resource.WindResource
- class WindResource(h5_file, unscale=True, str_decode=True, group=None, hsds=False, hsds_kwargs=None)[source]
Bases:
BaseResource
Class to handle Wind BaseResource .h5 files
See also
resource.BaseResource
Parent class
Examples
>>> file = '$TESTDATADIR/wtk/ri_100_wtk_2012.h5' >>> with WindResource(file) as res: >>> print(res.datasets) ['meta', 'pressure_0m', 'pressure_100m', 'pressure_200m', 'temperature_100m', 'temperature_80m', 'time_index', 'winddirection_100m', 'winddirection_80m', 'windspeed_100m', 'windspeed_80m']
WindResource can interpolate between available hub-heights (80 & 100)
>>> with WindResource(file) as res: >>> wspd_90m = res['windspeed_90m'] >>> >>> wspd_90m [[ 6.865 6.77 6.565 ... 8.65 8.62 8.415 ] [ 7.56 7.245 7.685 ... 5.9649997 5.8 6.2 ] [ 9.775 9.21 9.225 ... 7.12 7.495 7.675 ] ... [ 8.38 8.440001 8.85 ... 11.934999 12.139999 12.4 ] [ 9.900001 9.895 9.93 ... 12.825 12.86 12.965 ] [ 9.895 10.01 10.305 ... 14.71 14.79 14.764999 ]]
WindResource can also extrapolate beyond available hub-heights
>>> with WindResource(file) as res: >>> wspd_150m = res['windspeed_150m'] >>> >>> wspd_150m ExtrapolationWarning: 150 is outside the height range (80, 100). Extrapolation to be used. [[ 7.336291 7.2570405 7.0532546 ... 9.736436 9.713792 9.487364 ] [ 8.038219 7.687255 8.208041 ... 6.6909685 6.362647 6.668326 ] [10.5515785 9.804363 9.770399 ... 8.026898 8.468434 8.67222 ] ... [ 9.079792 9.170363 9.634542 ... 13.472508 13.7102585 14.004617 ] [10.710078 10.710078 10.698757 ... 14.468795 14.514081 14.6386175] [10.698757 10.857258 11.174257 ... 16.585903 16.676476 16.653833 ]]
- Parameters
h5_file (str) – Path to .h5 resource file
unscale (bool) – Boolean flag to automatically unscale variables on extraction
str_decode (bool) – Boolean flag to decode the bytestring meta data into normal strings. Setting this to False will speed up the meta data read.
group (str) – Group within .h5 resource file to open
hsds (bool, optional) – Boolean flag to use h5pyd to handle .h5 ‘files’ hosted on AWS behind HSDS, by default False
hsds_kwargs (dict, optional) – Dictionary of optional kwargs for h5pyd, e.g., bucket, username, password, by default None
Methods
circular_interp
(ts_1, h_1, ts_2, h_2, h)Circular interpolate/extrapolate time-series data to height h
close
()Close h5 instance
df_str_decode
(df)Decode a dataframe with byte string columns into ordinary str cols.
get_SAM_df
(site, height[, require_wind_dir, ...])Get SAM wind resource DataFrame for given site
get_attrs
([dset])Get h5 attributes either from file or dataset
get_dset_properties
(dset)Get dataset properties (shape, dtype, chunks)
get_meta_arr
(rec_name[, rows])Get a meta array by name (faster than DataFrame extraction).
get_nearest_h
(h, heights)Get two nearest h values in heights.
get_scale_factor
(dset)Get dataset scale factor
get_units
(dset)Get dataset units
linear_interp
(ts_1, h_1, ts_2, h_2, h)Linear interpolate/extrapolate time-series data to height h
monin_obukhov_extrapolation
(ts_1, h_1, z0, L, h)Monin-Obukhov extrapolation
open_dataset
(ds_name)Open resource dataset
power_law_interp
(ts_1, h_1, ts_2, h_2, h[, mean])Power-law interpolate/extrapolate time-series data to height h
preload_SAM
(h5_file, sites, hub_heights[, ...])Placeholder for classmethod that will pre-load project_points for SAM
shortest_angle
(a0, a1)Calculate the shortest angle distance between a0 and a1
stability_function
(zeta)Calculate stability function depending on sign of L (negative is unstable, positive is stable)
Attributes
ADD_ATTR
SCALE_ATTR
UNIT_ATTR
Dictionary of all dataset attributes
Dictionary of all dataset chunk sizes
(lat, lon) pairs
Get the version attribute of the data.
Datasets available
Datasets available
Dictionary of all dataset dtypes
Global (file) attributes
Groups available
Open h5py File instance.
Extract available heights for pressure, temperature, windspeed, precip, and winddirection variables.
Extract (latitude, longitude) pairs
Resource meta data DataFrame
Available resource datasets
Available resource datasets
Dictionary of all dataset scale factors
Resource shape (timesteps, sites) shape = (len(time_index), len(meta))
Dictionary of all dataset shapes
Resource DatetimeIndex
Dictionary of all dataset units
- property heights
Extract available heights for pressure, temperature, windspeed, precip, and winddirection variables. Used for interpolation/extrapolation.
- Returns
self._heights (dict) – Dictionary of available heights for: windspeed, winddirection, temperature, and pressure
- static get_nearest_h(h, heights)[source]
Get two nearest h values in heights. Determine if h is inside or outside the range of heights (requiring extrapolation instead of interpolation)
- Parameters
h (int | float) – Height value of interest
heights (list) – List of available heights
- Returns
nearest_h (list) – list of 1st and 2nd nearest height in heights
extrapolate (bool) – Flag as to whether h is inside or outside heights range
- classmethod monin_obukhov_extrapolation(ts_1, h_1, z0, L, h)[source]
Monin-Obukhov extrapolation
- Parameters
ts_1 (ndarray) – Time-series array at height h_1
- h_1int | float
Height corresponding to time-seris ts_1
- z0: int | float | ndarray
Roughness length
- Lndarray
time-series of Obukhov length (m; measure of stability)
- hint | float
Desired height
- Returns
ndarray – new wind speed from MO extrapolation.
- static stability_function(zeta)[source]
Calculate stability function depending on sign of L (negative is unstable, positive is stable)
- Parameters
zeta (ndarray) – Normalized length
- Returns
numpy.ndarray – stability measurements.
- static power_law_interp(ts_1, h_1, ts_2, h_2, h, mean=True)[source]
Power-law interpolate/extrapolate time-series data to height h
- Parameters
ts_1 (ndarray) – Time-series array at height h_1
h_1 (int | float) – Height corresponding to time-seris ts_1
ts_2 (ndarray) – Time-series array at height h_2
h_2 (int | float) – Height corresponding to time-seris ts_2
h (int | float) – Height of desired time-series
mean (bool) – Calculate average alpha versus point by point alpha
- Returns
out (ndarray) – Time-series array at height h
- static linear_interp(ts_1, h_1, ts_2, h_2, h)[source]
Linear interpolate/extrapolate time-series data to height h
- Parameters
ts_1 (ndarray) – Time-series array at height h_1
h_1 (int | float) – Height corresponding to time-seris ts_1
ts_2 (ndarray) – Time-series array at height h_2
h_2 (int | float) – Height corresponding to time-seris ts_2
h (int | float) – Height of desired time-series
- Returns
out (ndarray) – Time-series array at height h
- static shortest_angle(a0, a1)[source]
Calculate the shortest angle distance between a0 and a1
- Parameters
a0 (int | float) – angle 0 in degrees
a1 (int | float) – angle 1 in degrees
- Returns
da (int | float) – shortest angle distance between a0 and a1
- classmethod circular_interp(ts_1, h_1, ts_2, h_2, h)[source]
Circular interpolate/extrapolate time-series data to height h
- Parameters
ts_1 (ndarray) – Time-series array at height h_1
h_1 (int | float) – Height corresponding to time-seris ts_1
ts_2 (ndarray) – Time-series array at height h_2
h_2 (int | float) – Height corresponding to time-seris ts_2
h (int | float) – Height of desired time-series
- Returns
out (ndarray) – Time-series array at height h
- get_attrs(dset=None)[source]
Get h5 attributes either from file or dataset
- Parameters
dset (str) – Dataset to get attributes for, if None get file (global) attributes
- Returns
attrs (dict) – Dataset or file attributes
- get_dset_properties(dset)[source]
Get dataset properties (shape, dtype, chunks)
- Parameters
dset (str) – Dataset to get scale factor for
- Returns
shape (tuple) – Dataset array shape
dtype (str) – Dataset array dtype
chunks (tuple) – Dataset chunk size
- get_SAM_df(site, height, require_wind_dir=False, icing=False, add_header=False)[source]
Get SAM wind resource DataFrame for given site
- Parameters
site (int) – Site to extract SAM DataFrame for
height (int) – Hub height to extract SAM variables at
require_wind_dir (bool, optional) – Boolean flag as to whether wind direction will be loaded, by default False
icing (bool, optional) – Boolean flag to include relativehumitidy for icing calculation, by default False
add_header (bool, optional) – Add units and hub_height below variable names, needed for SAM .csv, by default False
- Returns
res_df (pandas.DataFrame) – time-series DataFrame of resource variables needed to run SAM
- classmethod preload_SAM(h5_file, sites, hub_heights, unscale=True, str_decode=True, group=None, hsds=False, hsds_kwargs=None, time_index_step=None, means=False, require_wind_dir=False, precip_rate=False, icing=False)[source]
Placeholder for classmethod that will pre-load project_points for SAM
- Parameters
h5_file (str) – h5_file to extract resource from
sites (list) – List of sites to be provided to SAM
hub_heights (int | float | list) – Hub heights to extract for SAM
unscale (bool) – Boolean flag to automatically unscale variables on extraction
str_decode (bool) – Boolean flag to decode the bytestring meta data into normal strings. Setting this to False will speed up the meta data read.
group (str) – Group within .h5 resource file to open
hsds (bool, optional) – Boolean flag to use h5pyd to handle .h5 ‘files’ hosted on AWS behind HSDS, by default False
hsds_kwargs (dict, optional) – Dictionary of optional kwargs for h5pyd, e.g., bucket, username, password, by default None
time_index_step (int, optional) – Step size for time_index, used to reduce temporal resolution, by default None
means (bool, optional) – Boolean flag to compute mean resource when res_array is set, by default False
require_wind_dir (bool, optional) – Boolean flag as to whether wind direction will be loaded, by default False
precip_rate (bool, optional) – Boolean flag as to whether precipitationrate_0m will be preloaded, by default False
icing (bool, optional) – Boolean flag as to whether icing is analyzed. This will preload relative humidity, by default False
- Returns
SAM_res (SAMResource) – Instance of SAMResource pre-loaded with Solar resource for sites in project_points
- property attrs
Dictionary of all dataset attributes
- Returns
attrs (dict)
- property chunks
Dictionary of all dataset chunk sizes
- Returns
chunks (dict)
- close()
Close h5 instance
- property coordinates
(lat, lon) pairs
- Returns
lat_lon (ndarray)
- Type
Coordinates
- property data_version
Get the version attribute of the data. None if not available.
- Returns
version (str | None)
- property datasets
Datasets available
- Returns
list
- static df_str_decode(df)
Decode a dataframe with byte string columns into ordinary str cols.
- Parameters
df (pd.DataFrame) – Dataframe with some columns being byte strings.
- Returns
df (pd.DataFrame) – DataFrame with str columns instead of byte str columns.
- property dsets
Datasets available
- Returns
list
- property dtypes
Dictionary of all dataset dtypes
- Returns
dtypes (dict)
- get_meta_arr(rec_name, rows=slice(None, None, None))
Get a meta array by name (faster than DataFrame extraction).
- Parameters
rec_name (str) – Named record from the meta data to retrieve.
rows (slice) – Rows of the record to extract.
- Returns
meta_arr (np.ndarray) – Extracted array from the meta data record name.
- get_scale_factor(dset)
Get dataset scale factor
- Parameters
dset (str) – Dataset to get scale factor for
- Returns
float – Dataset scale factor, used to unscale int values to floats
- get_units(dset)
Get dataset units
- Parameters
dset (str) – Dataset to get units for
- Returns
str – Dataset units, None if not defined
- property global_attrs
Global (file) attributes
- Returns
global_attrs (dict)
- property groups
Groups available
- Returns
groups (list) – List of groups
- property h5
Open h5py File instance. If _group is not None return open Group
- Returns
h5 (h5py.File | h5py.Group)
- property lat_lon
Extract (latitude, longitude) pairs
- Returns
lat_lon (ndarray)
- property meta
Resource meta data DataFrame
- Returns
meta (pandas.DataFrame)
- open_dataset(ds_name)
Open resource dataset
- Parameters
ds_name (str) – Dataset name to open
- Returns
ds (ResourceDataset) – Resource for open resource dataset
- property res_dsets
Available resource datasets
- Returns
list
- property resource_datasets
Available resource datasets
- Returns
list
- property scale_factors
Dictionary of all dataset scale factors
- Returns
scale_factors (dict)
- property shape
Resource shape (timesteps, sites) shape = (len(time_index), len(meta))
- Returns
shape (tuple)
- property shapes
Dictionary of all dataset shapes
- Returns
shapes (dict)
- property time_index
Resource DatetimeIndex
- Returns
time_index (pandas.DatetimeIndex)
- property units
Dictionary of all dataset units
- Returns
units (dict)