reV.config.sam_config.SAMConfig
- class SAMConfig(SAM_configs)[source]
Bases:
BaseConfig
Class to handle the SAM section of config input.
- Parameters:
SAM_configs (dict) – Keys are config ID’s, values are filepaths to the SAM configs.
Methods
check_files
(flist)Make sure all files in the input file list exist.
check_overwrite_keys
(primary_key, ...)Check for overwrite keys and raise a ConfigError if present
clear
()copy
()fromkeys
([value])Create a new dictionary with keys from iterable and values set to value.
get
(key[, default])Return the value for key if key is in the dictionary, else default.
items
()keys
()pop
(k[,d])If key is not found, d is returned if given, otherwise KeyError is raised
popitem
()Remove and return a (key, value) pair as a 2-tuple.
resolve_path
(path)Resolve a file path represented by the input string.
set_self_dict
(dictlike)Save a dict-like variable as object instance dictionary items.
setdefault
(key[, default])Insert key with a value of default if key is not in the dictionary.
str_replace_and_resolve
(d, str_rep)Perform a deep string replacement and path resolve in d.
update
([E, ]**F)If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]
values
()Attributes
Required keys for config
Mapping of config inputs (keys) to desired replacements (values) in addition to relative file paths as demarcated by ./ and ../
Get a boolean for whether bifacial solar analysis is being run.
Get a boolean for whether solar resource requires clearsky irrad.
Get the directory that the config file is in.
List of valid config keys
Resolution to downscale NSRDB resource to.
Get a boolean for whether wind generation is considering icing.
Get the SAM input file(s) (JSON/JSON5/YAML/TOML) and return as a dictionary.
Get user-specified "log_level" (DEBUG, INFO, WARNING, etc...).
Get the job name, defaults to 'rev'.
Step size for time_index for SAM profile output resolution
- property clearsky
Get a boolean for whether solar resource requires clearsky irrad.
- Returns:
clearsky (bool) – Flag set in the SAM config input with key “clearsky” for solar analysis to process generation for clearsky irradiance. Defaults to False (normal all-sky irradiance).
- property bifacial
Get a boolean for whether bifacial solar analysis is being run.
- Returns:
bifacial (bool) – Flag set in the SAM config input with key “bifaciality” for solar analysis to analyze bifacial PV panels. Will require albedo input. Defaults to False (no bifacial panels is default).
- property icing
Get a boolean for whether wind generation is considering icing.
- Returns:
_icing (bool) – Flag for whether wind generation is considering icing effects. Based on whether SAM input json has “en_icing_cutoff” == 1.
- property time_index_step
Step size for time_index for SAM profile output resolution
- Returns:
int | None – Step size for time_index, used to reduce temporal resolution
- property downscale
Resolution to downscale NSRDB resource to.
- Returns:
dict | None – Option for NSRDB resource downscaling to higher temporal resolution. The config expects a str entry in the Pandas frequency format, e.g. ‘5min’ or a dict of downscaling kwargs such as {‘frequency’: ‘5min’, ‘variability_kwargs’: {‘var_frac’: 0.05, ‘distribution’: ‘uniform’}}. A str entry will be converted to a kwarg dict for the output of this property e.g. ‘5min’ -> {‘frequency’: ‘5min’}
- property inputs
Get the SAM input file(s) (JSON/JSON5/YAML/TOML) and return as a dictionary.
- Parameters:
_inputs (dict) – The keys of this dictionary are the “configuration ID’s”. The values are the imported json SAM input dictionaries.
- REQUIREMENTS = ()
Required keys for config
- STR_REP = {'REVDIR': '/home/runner/work/reV/reV/reV', 'TESTDATADIR': '/home/runner/work/reV/reV/tests/data'}
Mapping of config inputs (keys) to desired replacements (values) in addition to relative file paths as demarcated by ./ and ../
- static check_files(flist)
Make sure all files in the input file list exist.
- Parameters:
flist (list) – List of files (with paths) to check existance of.
- check_overwrite_keys(primary_key, *overwrite_keys)
Check for overwrite keys and raise a ConfigError if present
- Parameters:
primary_key (str) – Primary key that overwrites overwrite_keys, used for error message
overwrite_keys (str) – Key(s) to overwrite
- clear() None. Remove all items from D.
- property config_dir
Get the directory that the config file is in.
- Returns:
config_dir (str) – Directory path that the config file is in.
- property config_keys
List of valid config keys
- Returns:
list
- copy() a shallow copy of D
- fromkeys(value=None, /)
Create a new dictionary with keys from iterable and values set to value.
- get(key, default=None, /)
Return the value for key if key is in the dictionary, else default.
- items() a set-like object providing a view on D's items
- keys() a set-like object providing a view on D's keys
- property log_level
Get user-specified “log_level” (DEBUG, INFO, WARNING, etc…).
- Returns:
log_level (int) – Python logging module level (integer format) corresponding to the config-specified log level string.
- property name
Get the job name, defaults to ‘rev’.
- Returns:
name (str) – reV job name.
- pop(k[, d]) v, remove specified key and return the corresponding value.
If key is not found, d is returned if given, otherwise KeyError is raised
- popitem()
Remove and return a (key, value) pair as a 2-tuple.
Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.
- resolve_path(path)
Resolve a file path represented by the input string.
This function resolves the input string if it resembles a path. Specifically, the string will be resolved if it starts with “
./
” or “..
”, or it if it contains either “./
” or “..
” somewhere in the string body. Otherwise, the string is returned unchanged, so this function is safe to call on any string, even ones that do not resemble a path.This method delegates the “resolving” logic to
pathlib.Path.resolve()
. This means the path is made absolute, symlinks are resolved, and “..
” components are eliminated. If thepath
input starts with “./
” or “..
”, it is assumed to be w.r.t the config directory, not the run directory.- Parameters:
path (str) – Input file path.
- Returns:
str – The resolved path.
- set_self_dict(dictlike)
Save a dict-like variable as object instance dictionary items.
- Parameters:
dictlike (dict) – Python namespace object to set to this dictionary-emulating class.
- setdefault(key, default=None, /)
Insert key with a value of default if key is not in the dictionary.
Return the value for key if key is in the dictionary, else default.
- str_replace_and_resolve(d, str_rep)
Perform a deep string replacement and path resolve in d.
- Parameters:
d (dict) – Config dictionary potentially containing strings to replace and/or paths to resolve.
str_rep (dict) – Replacement mapping where keys are strings to search for and values are the new values.
- Returns:
d (dict) – Config dictionary with updated strings.
- update([E, ]**F) None. Update D from dict/iterable E and F.
If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]
- values() an object providing a view on D's values