NREL-reV 0.8.7__py3-none-any.whl → 0.9.0__py3-none-any.whl

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 (43) hide show
  1. {NREL_reV-0.8.7.dist-info → NREL_reV-0.9.0.dist-info}/METADATA +13 -10
  2. {NREL_reV-0.8.7.dist-info → NREL_reV-0.9.0.dist-info}/RECORD +43 -43
  3. {NREL_reV-0.8.7.dist-info → NREL_reV-0.9.0.dist-info}/WHEEL +1 -1
  4. reV/SAM/SAM.py +217 -133
  5. reV/SAM/econ.py +18 -14
  6. reV/SAM/generation.py +611 -422
  7. reV/SAM/windbos.py +93 -79
  8. reV/bespoke/bespoke.py +681 -377
  9. reV/bespoke/cli_bespoke.py +2 -0
  10. reV/bespoke/place_turbines.py +187 -43
  11. reV/config/output_request.py +2 -1
  12. reV/config/project_points.py +218 -140
  13. reV/econ/econ.py +166 -114
  14. reV/econ/economies_of_scale.py +91 -45
  15. reV/generation/base.py +331 -184
  16. reV/generation/generation.py +326 -200
  17. reV/generation/output_attributes/lcoe_fcr_inputs.json +38 -3
  18. reV/handlers/__init__.py +0 -1
  19. reV/handlers/exclusions.py +16 -15
  20. reV/handlers/multi_year.py +57 -26
  21. reV/handlers/outputs.py +6 -5
  22. reV/handlers/transmission.py +44 -27
  23. reV/hybrids/hybrid_methods.py +30 -30
  24. reV/hybrids/hybrids.py +305 -189
  25. reV/nrwal/nrwal.py +262 -168
  26. reV/qa_qc/cli_qa_qc.py +14 -10
  27. reV/qa_qc/qa_qc.py +217 -119
  28. reV/qa_qc/summary.py +228 -146
  29. reV/rep_profiles/rep_profiles.py +349 -230
  30. reV/supply_curve/aggregation.py +349 -188
  31. reV/supply_curve/competitive_wind_farms.py +90 -48
  32. reV/supply_curve/exclusions.py +138 -85
  33. reV/supply_curve/extent.py +75 -50
  34. reV/supply_curve/points.py +735 -390
  35. reV/supply_curve/sc_aggregation.py +357 -248
  36. reV/supply_curve/supply_curve.py +604 -347
  37. reV/supply_curve/tech_mapping.py +144 -82
  38. reV/utilities/__init__.py +274 -16
  39. reV/utilities/pytest_utils.py +8 -4
  40. reV/version.py +1 -1
  41. {NREL_reV-0.8.7.dist-info → NREL_reV-0.9.0.dist-info}/LICENSE +0 -0
  42. {NREL_reV-0.8.7.dist-info → NREL_reV-0.9.0.dist-info}/entry_points.txt +0 -0
  43. {NREL_reV-0.8.7.dist-info → NREL_reV-0.9.0.dist-info}/top_level.txt +0 -0
reV/SAM/econ.py CHANGED
@@ -4,24 +4,27 @@
4
4
  Wraps the NREL-PySAM lcoefcr and singleowner modules with
5
5
  additional reV features.
6
6
  """
7
- from copy import deepcopy
8
7
  import logging
9
- import numpy as np
8
+ from copy import deepcopy
10
9
  from warnings import warn
10
+
11
+ import numpy as np
11
12
  import PySAM.Lcoefcr as PySamLCOE
12
13
  import PySAM.Singleowner as PySamSingleOwner
13
14
 
14
- from reV.SAM.defaults import DefaultSingleOwner, DefaultLCOE
15
15
  from reV.handlers.outputs import Outputs
16
- from reV.SAM.windbos import WindBos
16
+ from reV.SAM.defaults import DefaultLCOE, DefaultSingleOwner
17
17
  from reV.SAM.SAM import RevPySam
18
+ from reV.SAM.windbos import WindBos
18
19
  from reV.utilities.exceptions import SAMExecutionError
20
+ from reV.utilities import ResourceMetaField
19
21
 
20
22
  logger = logging.getLogger(__name__)
21
23
 
22
24
 
23
25
  class Economic(RevPySam):
24
26
  """Base class for SAM economic models."""
27
+
25
28
  MODULE = None
26
29
 
27
30
  def __init__(self, sam_sys_inputs, site_sys_inputs=None,
@@ -172,7 +175,7 @@ class Economic(RevPySam):
172
175
  with Outputs(cf_file) as cfh:
173
176
 
174
177
  # get the index location of the site in question
175
- site_gids = list(cfh.get_meta_arr('gid'))
178
+ site_gids = list(cfh.get_meta_arr(ResourceMetaField.GID))
176
179
  isites = [site_gids.index(s) for s in sites]
177
180
 
178
181
  # look for the cf_profile dataset
@@ -335,6 +338,7 @@ class Economic(RevPySam):
335
338
  class LCOE(Economic):
336
339
  """SAM LCOE model.
337
340
  """
341
+
338
342
  MODULE = 'lcoefcr'
339
343
  PYSAM = PySamLCOE
340
344
 
@@ -375,7 +379,7 @@ class LCOE(Economic):
375
379
 
376
380
  # get the cf_file meta data gid's to use as indexing tools
377
381
  with Outputs(cf_file) as cfh:
378
- site_gids = list(cfh.meta['gid'])
382
+ site_gids = list(cfh.meta[ResourceMetaField.GID])
379
383
 
380
384
  calc_aey = False
381
385
  if 'annual_energy' not in site_df:
@@ -463,6 +467,7 @@ class LCOE(Economic):
463
467
  class SingleOwner(Economic):
464
468
  """SAM single owner economic model.
465
469
  """
470
+
466
471
  MODULE = 'singleowner'
467
472
  PYSAM = PySamSingleOwner
468
473
 
@@ -497,14 +502,13 @@ class SingleOwner(Economic):
497
502
  """
498
503
 
499
504
  outputs = {}
500
- if inputs is not None:
501
- if 'total_installed_cost' in inputs:
502
- if isinstance(inputs['total_installed_cost'], str):
503
- if inputs['total_installed_cost'].lower() == 'windbos':
504
- wb = WindBos(inputs)
505
- inputs['total_installed_cost'] = \
506
- wb.total_installed_cost
507
- outputs = wb.output
505
+ if (inputs is not None
506
+ and 'total_installed_cost' in inputs
507
+ and isinstance(inputs['total_installed_cost'], str)
508
+ and inputs['total_installed_cost'].lower() == 'windbos'):
509
+ wb = WindBos(inputs)
510
+ inputs['total_installed_cost'] = wb.total_installed_cost
511
+ outputs = wb.output
508
512
  return inputs, outputs
509
513
 
510
514
  @staticmethod