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.
Files changed (89) hide show
  1. {NREL-reV-0.8.9 → NREL-reV-0.9.0/NREL_reV.egg-info}/PKG-INFO +1 -1
  2. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/NREL_reV.egg-info/requires.txt +1 -0
  3. {NREL-reV-0.8.9/NREL_reV.egg-info → NREL-reV-0.9.0}/PKG-INFO +1 -1
  4. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/SAM/SAM.py +35 -0
  5. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/SAM/generation.py +3 -3
  6. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/bespoke/bespoke.py +302 -243
  7. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/bespoke/cli_bespoke.py +2 -0
  8. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/bespoke/place_turbines.py +181 -37
  9. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/config/output_request.py +2 -1
  10. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/config/project_points.py +1 -3
  11. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/econ/econ.py +2 -2
  12. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/econ/economies_of_scale.py +58 -35
  13. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/generation/base.py +22 -2
  14. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/generation/generation.py +31 -13
  15. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/handlers/__init__.py +0 -1
  16. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/handlers/multi_year.py +45 -17
  17. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/handlers/transmission.py +44 -27
  18. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/hybrids/hybrid_methods.py +16 -14
  19. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/hybrids/hybrids.py +10 -10
  20. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/nrwal/nrwal.py +1 -1
  21. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/qa_qc/qa_qc.py +1 -1
  22. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/qa_qc/summary.py +4 -4
  23. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/rep_profiles/rep_profiles.py +1 -1
  24. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/exclusions.py +1 -1
  25. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/extent.py +1 -1
  26. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/points.py +250 -132
  27. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/sc_aggregation.py +13 -45
  28. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/supply_curve.py +200 -140
  29. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/utilities/__init__.py +114 -39
  30. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/version.py +1 -1
  31. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/LICENSE +0 -0
  32. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/NREL_reV.egg-info/SOURCES.txt +0 -0
  33. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/NREL_reV.egg-info/dependency_links.txt +0 -0
  34. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/NREL_reV.egg-info/entry_points.txt +0 -0
  35. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/NREL_reV.egg-info/not-zip-safe +0 -0
  36. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/NREL_reV.egg-info/top_level.txt +0 -0
  37. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/README.rst +0 -0
  38. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/SAM/__init__.py +0 -0
  39. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/SAM/defaults.py +0 -0
  40. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/SAM/econ.py +0 -0
  41. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/SAM/version_checker.py +0 -0
  42. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/SAM/windbos.py +0 -0
  43. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/__init__.py +0 -0
  44. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/bespoke/__init__.py +0 -0
  45. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/bespoke/gradient_free.py +0 -0
  46. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/bespoke/pack_turbs.py +0 -0
  47. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/bespoke/plotting_functions.py +0 -0
  48. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/cli.py +0 -0
  49. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/config/__init__.py +0 -0
  50. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/config/base_analysis_config.py +0 -0
  51. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/config/base_config.py +0 -0
  52. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/config/cli_project_points.py +0 -0
  53. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/config/curtailment.py +0 -0
  54. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/config/execution.py +0 -0
  55. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/config/sam_config.py +0 -0
  56. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/econ/__init__.py +0 -0
  57. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/econ/cli_econ.py +0 -0
  58. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/econ/utilities.py +0 -0
  59. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/generation/__init__.py +0 -0
  60. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/generation/cli_gen.py +0 -0
  61. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/handlers/cli_collect.py +0 -0
  62. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/handlers/cli_multi_year.py +0 -0
  63. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/handlers/exclusions.py +0 -0
  64. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/handlers/outputs.py +0 -0
  65. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/hybrids/__init__.py +0 -0
  66. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/hybrids/cli_hybrids.py +0 -0
  67. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/losses/__init__.py +0 -0
  68. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/losses/power_curve.py +0 -0
  69. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/losses/scheduled.py +0 -0
  70. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/losses/utils.py +0 -0
  71. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/nrwal/__init__.py +0 -0
  72. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/nrwal/cli_nrwal.py +0 -0
  73. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/qa_qc/__init__.py +0 -0
  74. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/qa_qc/cli_qa_qc.py +0 -0
  75. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/rep_profiles/__init__.py +0 -0
  76. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/rep_profiles/cli_rep_profiles.py +0 -0
  77. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/__init__.py +0 -0
  78. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/aggregation.py +0 -0
  79. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/cli_sc_aggregation.py +0 -0
  80. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/cli_supply_curve.py +0 -0
  81. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/competitive_wind_farms.py +0 -0
  82. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/supply_curve/tech_mapping.py +0 -0
  83. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/utilities/cli_functions.py +0 -0
  84. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/utilities/curtailment.py +0 -0
  85. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/utilities/exceptions.py +0 -0
  86. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/utilities/pytest_utils.py +0 -0
  87. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/reV/utilities/slots.py +0 -0
  88. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/setup.cfg +0 -0
  89. {NREL-reV-0.8.9 → NREL-reV-0.9.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: NREL-reV
3
- Version: 0.8.9
3
+ Version: 0.9.0
4
4
  Summary: National Renewable Energy Laboratory's (NREL's) Renewable Energy Potential(V) Model: reV
5
5
  Home-page: https://nrel.github.io/reV/
6
6
  Author: Galen Maclaurin
@@ -2,6 +2,7 @@ NREL-gaps>=0.6.11
2
2
  NREL-NRWAL>=0.0.7
3
3
  NREL-PySAM~=4.1.0
4
4
  NREL-rex>=0.2.85
5
+ numpy~=1.24.4
5
6
  packaging>=20.3
6
7
  plotly>=4.7.1
7
8
  plotting>=0.0.6
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: NREL-reV
3
- Version: 0.8.9
3
+ Version: 0.9.0
4
4
  Summary: National Renewable Energy Laboratory's (NREL's) Renewable Energy Potential(V) Model: reV
5
5
  Home-page: https://nrel.github.io/reV/
6
6
  Author: Galen Maclaurin
@@ -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``=1.
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``=1.
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 a
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