NREL-reV 0.8.9__tar.gz → 0.9.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {NREL-reV-0.8.9 → NREL-reV-0.9.0/NREL_reV.egg-info}/PKG-INFO +1 -1
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/NREL_reV.egg-info/requires.txt +1 -0
- {NREL-reV-0.8.9/NREL_reV.egg-info → NREL-reV-0.9.0}/PKG-INFO +1 -1
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/SAM/SAM.py +35 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/SAM/generation.py +3 -3
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/bespoke/bespoke.py +302 -243
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/bespoke/cli_bespoke.py +2 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/bespoke/place_turbines.py +181 -37
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/config/output_request.py +2 -1
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/config/project_points.py +1 -3
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/econ/econ.py +2 -2
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/econ/economies_of_scale.py +58 -35
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/generation/base.py +22 -2
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/generation/generation.py +31 -13
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/handlers/__init__.py +0 -1
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/handlers/multi_year.py +45 -17
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/handlers/transmission.py +44 -27
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/hybrids/hybrid_methods.py +16 -14
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/hybrids/hybrids.py +10 -10
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/nrwal/nrwal.py +1 -1
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/qa_qc/qa_qc.py +1 -1
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/qa_qc/summary.py +4 -4
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/rep_profiles/rep_profiles.py +1 -1
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/exclusions.py +1 -1
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/extent.py +1 -1
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/points.py +250 -132
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/sc_aggregation.py +13 -45
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/supply_curve.py +200 -140
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/utilities/__init__.py +114 -39
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/version.py +1 -1
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/LICENSE +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/NREL_reV.egg-info/SOURCES.txt +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/NREL_reV.egg-info/dependency_links.txt +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/NREL_reV.egg-info/entry_points.txt +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/NREL_reV.egg-info/not-zip-safe +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/NREL_reV.egg-info/top_level.txt +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/README.rst +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/SAM/__init__.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/SAM/defaults.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/SAM/econ.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/SAM/version_checker.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/SAM/windbos.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/__init__.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/bespoke/__init__.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/bespoke/gradient_free.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/bespoke/pack_turbs.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/bespoke/plotting_functions.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/cli.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/config/__init__.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/config/base_analysis_config.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/config/base_config.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/config/cli_project_points.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/config/curtailment.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/config/execution.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/config/sam_config.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/econ/__init__.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/econ/cli_econ.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/econ/utilities.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/generation/__init__.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/generation/cli_gen.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/handlers/cli_collect.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/handlers/cli_multi_year.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/handlers/exclusions.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/handlers/outputs.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/hybrids/__init__.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/hybrids/cli_hybrids.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/losses/__init__.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/losses/power_curve.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/losses/scheduled.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/losses/utils.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/nrwal/__init__.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/nrwal/cli_nrwal.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/qa_qc/__init__.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/qa_qc/cli_qa_qc.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/rep_profiles/__init__.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/rep_profiles/cli_rep_profiles.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/__init__.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/aggregation.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/cli_sc_aggregation.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/cli_supply_curve.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/competitive_wind_farms.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/tech_mapping.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/utilities/cli_functions.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/utilities/curtailment.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/utilities/exceptions.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/utilities/pytest_utils.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/utilities/slots.py +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/setup.cfg +0 -0
- {NREL-reV-0.8.9 → NREL-reV-0.9.0}/setup.py +0 -0
@@ -626,6 +626,8 @@ class RevPySam(Sam):
|
|
626
626
|
|
627
627
|
self._meta = self._parse_meta(meta)
|
628
628
|
self._parse_site_sys_inputs(site_sys_inputs)
|
629
|
+
_add_cost_defaults(self.sam_sys_inputs)
|
630
|
+
_add_sys_capacity(self.sam_sys_inputs)
|
629
631
|
|
630
632
|
@property
|
631
633
|
def meta(self):
|
@@ -916,3 +918,36 @@ class RevPySam(Sam):
|
|
916
918
|
msg += " for site {}".format(self.site)
|
917
919
|
logger.exception(msg)
|
918
920
|
raise SAMExecutionError(msg) from e
|
921
|
+
|
922
|
+
|
923
|
+
def _add_cost_defaults(sam_inputs):
|
924
|
+
"""Add default values for required cost outputs if they are missing. """
|
925
|
+
sam_inputs.setdefault("fixed_charge_rate", None)
|
926
|
+
|
927
|
+
reg_mult = sam_inputs.setdefault("capital_cost_multiplier", 1)
|
928
|
+
capital_cost = sam_inputs.setdefault("capital_cost", None)
|
929
|
+
fixed_operating_cost = sam_inputs.setdefault("fixed_operating_cost", None)
|
930
|
+
variable_operating_cost = sam_inputs.setdefault(
|
931
|
+
"variable_operating_cost", None)
|
932
|
+
|
933
|
+
sam_inputs["base_capital_cost"] = capital_cost
|
934
|
+
sam_inputs["base_fixed_operating_cost"] = fixed_operating_cost
|
935
|
+
sam_inputs["base_variable_operating_cost"] = variable_operating_cost
|
936
|
+
if capital_cost is not None:
|
937
|
+
sam_inputs["capital_cost"] = capital_cost * reg_mult
|
938
|
+
else:
|
939
|
+
sam_inputs["capital_cost"] = None
|
940
|
+
|
941
|
+
|
942
|
+
def _add_sys_capacity(sam_inputs):
|
943
|
+
"""Add system capacity SAM input if it is missing. """
|
944
|
+
cap = sam_inputs.get("system_capacity")
|
945
|
+
if cap is None:
|
946
|
+
cap = sam_inputs.get("turbine_capacity")
|
947
|
+
|
948
|
+
if cap is None:
|
949
|
+
cap = sam_inputs.get("wind_turbine_powercurve_powerout")
|
950
|
+
if cap is not None:
|
951
|
+
cap = max(cap)
|
952
|
+
|
953
|
+
sam_inputs["system_capacity"] = cap
|
@@ -887,11 +887,11 @@ class AbstractSamPv(AbstractSamSolar, ABC):
|
|
887
887
|
simulate reduced performance over time.
|
888
888
|
- ``analysis_period`` : Integer representing the number of years
|
889
889
|
to include in the lifetime of the model generator. Required if
|
890
|
-
``system_use_lifetime_output
|
890
|
+
``system_use_lifetime_output`` is set to 1.
|
891
891
|
- ``dc_degradation`` : List of percentage values representing the
|
892
892
|
annual DC degradation of capacity factors. Maybe a single value
|
893
893
|
that will be compound each year or a vector of yearly rates.
|
894
|
-
Required if ``system_use_lifetime_output
|
894
|
+
Required if ``system_use_lifetime_output`` is set to 1.
|
895
895
|
|
896
896
|
You may also include the following ``reV``-specific keys:
|
897
897
|
|
@@ -1546,7 +1546,7 @@ class Geothermal(AbstractSamGenerationFromWeatherFile):
|
|
1546
1546
|
- The design temperature is lower than the resource
|
1547
1547
|
temperature by a factor of ``MAX_RT_TO_EGS_RATIO``
|
1548
1548
|
|
1549
|
-
If either of these conditions are true, the ``design_temp`` is
|
1549
|
+
If either of these conditions are true, the ``design_temp`` is
|
1550
1550
|
adjusted to match the resource temperature input in order to
|
1551
1551
|
avoid SAM errors.
|
1552
1552
|
- ``set_EGS_PDT_to_RT`` : Boolean flag to set EGS design
|