diff --git a/eemeter/eemeter/models/daily/base_models/c_hdd_tidd.py b/eemeter/eemeter/models/daily/base_models/c_hdd_tidd.py index 51132ad8..a3256a13 100755 --- a/eemeter/eemeter/models/daily/base_models/c_hdd_tidd.py +++ b/eemeter/eemeter/models/daily/base_models/c_hdd_tidd.py @@ -277,11 +277,11 @@ def _c_hdd_tidd_x0(T, obs, alpha, settings, smooth): idx_hdd = np.argwhere(T <= c_hdd_bp).flatten() idx_cdd = np.argwhere(T >= c_hdd_bp).flatten() - hdd_beta, _ = linear_fit(obs[idx_hdd], T[idx_hdd], alpha) + hdd_beta, _ = linear_fit(T[idx_hdd], obs[idx_hdd], alpha) if hdd_beta > 0: hdd_beta = 0 - cdd_beta, _ = linear_fit(obs[idx_cdd], T[idx_cdd], alpha) + cdd_beta, _ = linear_fit(T[idx_cdd], obs[idx_cdd], alpha) if cdd_beta < 0: cdd_beta = 0 @@ -347,11 +347,11 @@ def bp_obj_fcn(x, grad=[]): idx_hdd = np.argwhere(T <= c_hdd_bp).flatten() idx_cdd = np.argwhere(T >= c_hdd_bp).flatten() - hdd_beta, _ = linear_fit(obs[idx_hdd], T[idx_hdd], alpha) + hdd_beta, _ = linear_fit(T[idx_hdd], obs[idx_hdd], alpha) if hdd_beta > 0: hdd_beta = 0 - cdd_beta, _ = linear_fit(obs[idx_cdd], T[idx_cdd], alpha) + cdd_beta, _ = linear_fit(T[idx_cdd], obs[idx_cdd], alpha) if cdd_beta < 0: cdd_beta = 0 diff --git a/eemeter/eemeter/models/daily/utilities/base_model.py b/eemeter/eemeter/models/daily/utilities/base_model.py index 24339c67..f63c613e 100755 --- a/eemeter/eemeter/models/daily/utilities/base_model.py +++ b/eemeter/eemeter/models/daily/utilities/base_model.py @@ -85,7 +85,7 @@ def linear_fit(x, y, alpha): slope = res.slope intercept = res.intercept else: - slope, intercept, _, _ = theilslopes(x, y, alpha=0.95) + slope, intercept, _, _ = theilslopes(y, x, alpha=0.95) return slope, intercept diff --git a/tests/daily_model/utilities/test_base_model.py b/tests/daily_model/utilities/test_base_model.py index 575f3bb4..48c43825 100644 --- a/tests/daily_model/utilities/test_base_model.py +++ b/tests/daily_model/utilities/test_base_model.py @@ -125,7 +125,7 @@ def test_linear_fit(): y = np.array([2, 4, 6, 8, 10]) alpha = 0.95 slope, intercept = linear_fit(x, y, alpha) - res = theilslopes(x, y, alpha=0.95) + res = theilslopes(y, x, alpha=0.95) assert slope == res[0] assert intercept == res[1] @@ -137,7 +137,7 @@ def test_linear_fit(): with pytest.raises(ValueError): res = linregress(x, y) assert slope == 0 - assert intercept == 10 + assert intercept == x[0] def test_get_smooth_coeffs():