Skip to content

Commit

Permalink
Merge branch 'main' into solargis
Browse files Browse the repository at this point in the history
  • Loading branch information
AdamRJensen authored Mar 11, 2024
2 parents 982164b + c4a2b4b commit b6ad284
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 16 deletions.
5 changes: 3 additions & 2 deletions docs/sphinx/source/whatsnew/v0.10.4.rst
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ Bug fixes
* :py:func:`pvlib.irradiance.ghi_from_poa_driesse_2023` now correctly makes use
of the ``xtol`` argument. Previously, it was ignored. (:issue:`1970`, :pull:`1971`)
* Fixed incorrect unit conversion of precipitable water used for the Solcast iotools functions.
* :py:class:`~pvlib.modelchain.ModelChain.infer_temperature_model` now raises a more useful error when
the temperature model cannot be inferred (:issue:`1946`)

Testing
~~~~~~~
Expand All @@ -59,7 +61,6 @@ Contributors
* Echedey Luis (:ghuser:`echedey-ls`)
* Kevin Anderson (:ghuser:`kandersolar`)
* Cliff Hansen (:ghuser:`cwhanse`)
* :ghuser:`matsuobasho`
* Roma Koulikov (:ghuser:`matsuobasho`)
* Adam R. Jensen (:ghuser:`AdamRJensen`)
* Kevin Anderson (:ghuser:`kandersolar`)
* Peter Dudfield (:ghuser:`peterdudfield`)
14 changes: 9 additions & 5 deletions pvlib/modelchain.py
Original file line number Diff line number Diff line change
Expand Up @@ -1128,11 +1128,15 @@ def infer_temperature_model(self):
elif {'noct', 'module_efficiency'} <= params:
return self.noct_sam_temp
else:
raise ValueError(f'could not infer temperature model from '
f'system.temperature_model_parameters. Check '
f'that all Arrays in system.arrays have '
f'parameters for the same temperature model. '
f'Common temperature model parameters: {params}.')
raise ValueError('Could not infer temperature model from '
'ModelChain.system. '
'If Arrays are used to construct the PVSystem, '
'check that all Arrays in '
'ModelChain.system.arrays '
'have parameters for the same temperature model. '
'If Arrays are not used, check that the PVSystem '
'attributes `racking_model` and `module_type` '
'are valid.')

def _set_celltemp(self, model):
"""Set self.results.cell_temperature using the given cell
Expand Down
13 changes: 4 additions & 9 deletions pvlib/tests/test_modelchain.py
Original file line number Diff line number Diff line change
Expand Up @@ -1306,17 +1306,15 @@ def test_temperature_model_inconsistent(location, sapm_dc_snl_ac_system):


def test_temperature_model_not_specified():
# GH 1759 -- ensure correct error is raised when temperature model params
# are specified on the PVSystem instead of the Arrays
location = Location(latitude=32.2, longitude=-110.9)
arrays = [pvsystem.Array(pvsystem.FixedMount(),
module_parameters={'pdc0': 1, 'gamma_pdc': 0})]
system = pvsystem.PVSystem(arrays,
temperature_model_parameters={'u0': 1, 'u1': 1},
inverter_parameters={'pdc0': 1})
with pytest.raises(ValueError,
match='could not infer temperature model '
'from system.temperature_model_parameters'):
match='Could not infer temperature model from '
'ModelChain.system.'):
_ = ModelChain(system, location,
aoi_model='no_loss', spectral_model='no_loss')

Expand Down Expand Up @@ -1957,11 +1955,8 @@ def test_inconsistent_array_params(location,
cec_module_params):
module_error = ".* selected for the DC model but one or more Arrays are " \
"missing one or more required parameters"
temperature_error = "could not infer temperature model from " \
r"system\.temperature_model_parameters\. Check " \
r"that all Arrays in system\.arrays have " \
r"parameters for the same temperature model\. " \
r"Common temperature model parameters: .*"
temperature_error = 'Could not infer temperature model from ' \
'ModelChain.system. '
different_module_system = pvsystem.PVSystem(
arrays=[
pvsystem.Array(
Expand Down

0 comments on commit b6ad284

Please sign in to comment.