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

REQUIREMENTS

Required keys for config

STR_REP

Mapping of config inputs (keys) to desired replacements (values) in addition to relative file paths as demarcated by ./ and ../

bifacial

Get a boolean for whether bifacial solar analysis is being run.

clearsky

Get a boolean for whether solar resource requires clearsky irrad.

config_dir

Get the directory that the config file is in.

config_keys

List of valid config keys

downscale

Resolution to downscale NSRDB resource to.

icing

Get a boolean for whether wind generation is considering icing.

inputs

Get the SAM input file(s) (JSON/JSON5/YAML/TOML) and return as a dictionary.

log_level

Get user-specified "log_level" (DEBUG, INFO, WARNING, etc...).

name

Get the job name, defaults to 'rev'.

time_index_step

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 the path 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