Skip to content

Commit

Permalink
Added check that optimizer succeeded
Browse files Browse the repository at this point in the history
  • Loading branch information
ajonesr committed Jul 19, 2023
1 parent c382551 commit 7bab490
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
8 changes: 7 additions & 1 deletion pvlib/clearsky.py
Original file line number Diff line number Diff line change
Expand Up @@ -878,7 +878,13 @@ def detect_clearsky(measured, clearsky, times=None, infer_limits=False,
def rmse(alpha):
return np.sqrt(np.mean((clear_meas - alpha*clear_clear)**2))

alpha = minimize_scalar(rmse).x
optimize_result = minimize_scalar(rmse)
if not optimize_result.success:
raise RuntimeError("Optimizer exited unsuccessfully:\n" +
optimize_result.message)
else:
alpha = optimize_result.x

if round(alpha*10000) == round(previous_alpha*10000):
break
else:
Expand Down
6 changes: 6 additions & 0 deletions pvlib/tests/test_clearsky.py
Original file line number Diff line number Diff line change
Expand Up @@ -678,6 +678,12 @@ def test_detect_clearsky_not_enough_data(detect_clearsky_data):
clearsky.detect_clearsky(expected['GHI'], cs['ghi'], window_length=60)


def test_detect_clearsky_optimizer_failed(detect_clearsky_data):
expected, cs = detect_clearsky_data
with pytest.raises(RuntimeError):
clearsky.detect_clearsky(expected['GHI'], cs['ghi'], window_length=15)


@pytest.fixture
def detect_clearsky_helper_data():
samples_per_window = 3
Expand Down

0 comments on commit 7bab490

Please sign in to comment.