def test_dirint_min_cos_zenith_max_zenith(): # map out behavior under difficult conditions with various # limiting kwargs settings # times don't have any physical relevance times = pd.DatetimeIndex(['2014-06-24T12-0700','2014-06-24T18-0700']) ghi = pd.Series([0, 1], index=times) solar_zenith = pd.Series([90, 89.99], index=times) out = irradiance.dirint(ghi, solar_zenith, times) expected = pd.Series([0.0, 0.0], index=times, name='dni') assert_series_equal(out, expected) out = irradiance.dirint(ghi, solar_zenith, times, min_cos_zenith=0) expected = pd.Series([0.0, 0.0], index=times, name='dni') assert_series_equal(out, expected) out = irradiance.dirint(ghi, solar_zenith, times, max_zenith=90) expected = pd.Series([0.0, 0.0], index=times, name='dni') assert_series_equal(out, expected, check_less_precise=True) out = irradiance.dirint(ghi, solar_zenith, times, min_cos_zenith=0, max_zenith=90) expected = pd.Series([0.0, 144.264507], index=times, name='dni') assert_series_equal(out, expected, check_less_precise=True) out = irradiance.dirint(ghi, solar_zenith, times, min_cos_zenith=0, max_zenith=100) expected = pd.Series([0.0, 144.264507], index=times, name='dni') assert_series_equal(out, expected, check_less_precise=True)
def test_dirint_min_cos_zenith_max_zenith(): # map out behavior under difficult conditions with various # limiting kwargs settings # times don't have any physical relevance times = pd.DatetimeIndex(['2014-06-24T12-0700', '2014-06-24T18-0700']) ghi = pd.Series([0, 1], index=times) solar_zenith = pd.Series([90, 89.99], index=times) out = irradiance.dirint(ghi, solar_zenith, times) expected = pd.Series([0.0, 0.0], index=times, name='dni') assert_series_equal(out, expected) out = irradiance.dirint(ghi, solar_zenith, times, min_cos_zenith=0) expected = pd.Series([0.0, 0.0], index=times, name='dni') assert_series_equal(out, expected) out = irradiance.dirint(ghi, solar_zenith, times, max_zenith=90) expected = pd.Series([0.0, 0.0], index=times, name='dni') assert_series_equal(out, expected, check_less_precise=True) out = irradiance.dirint(ghi, solar_zenith, times, min_cos_zenith=0, max_zenith=90) expected = pd.Series([0.0, 144.264507], index=times, name='dni') assert_series_equal(out, expected, check_less_precise=True) out = irradiance.dirint(ghi, solar_zenith, times, min_cos_zenith=0, max_zenith=100) expected = pd.Series([0.0, 144.264507], index=times, name='dni') assert_series_equal(out, expected, check_less_precise=True)
def test_dirindex(times): ghi = pd.Series([0, 0, 1038.62, 254.53], index=times) ghi_clearsky = pd.Series( np.array([0., 79.73860422, 1042.48031487, 257.20751138]), index=times ) dni_clearsky = pd.Series( np.array([0., 316.1949056, 939.95469881, 646.22886049]), index=times ) zenith = pd.Series( np.array([124.0390863, 82.85457044, 10.56413562, 72.41687122]), index=times ) pressure = 93193. tdew = 10. out = irradiance.dirindex(ghi, ghi_clearsky, dni_clearsky, zenith, times, pressure=pressure, temp_dew=tdew) dirint_close_values = irradiance.dirint(ghi, zenith, times, pressure=pressure, use_delta_kt_prime=True, temp_dew=tdew).values expected_out = np.array([np.nan, 0., 748.31562753, 630.72592644]) tolerance = 1e-8 assert np.allclose(out, expected_out, rtol=tolerance, atol=0, equal_nan=True) tol_dirint = 0.2 assert np.allclose(out.values, dirint_close_values, rtol=tol_dirint, atol=0, equal_nan=True)
def test_dirint_value(): times = pd.DatetimeIndex(['2014-06-24T12-0700', '2014-06-24T18-0700']) ghi = pd.Series([1038.62, 254.53], index=times) zenith = pd.Series([10.567, 72.469], index=times) pressure = 93193. dirint_data = irradiance.dirint(ghi, zenith, times, pressure=pressure) assert_almost_equal(dirint_data.values, np.array([868.8, 699.7]), 1)
def test_dirint(): clearsky_data = clearsky.ineichen(times, tus, linke_turbidity=3) pressure = 93193. dirint_data = irradiance.dirint(clearsky_data['ghi'], ephem_data['zenith'], ephem_data.index, pressure=pressure)
def test_dirint_value(): times = pd.DatetimeIndex(['2014-06-24T12-0700','2014-06-24T18-0700']) ghi = pd.Series([1038.62, 254.53], index=times) zenith = pd.Series([10.567, 72.469], index=times) pressure = 93193. dirint_data = irradiance.dirint(ghi, zenith, times, pressure=pressure) assert_almost_equal(dirint_data.values, np.array([868.8, 699.7]), 1)
def test_dirint_no_delta_kt(): times = pd.DatetimeIndex(['2014-06-24T12-0700','2014-06-24T18-0700']) ghi = pd.Series([1038.62, 254.53], index=times) zenith = pd.Series([10.567, 72.469], index=times) pressure = 93193. dirint_data = irradiance.dirint(ghi, zenith, times, pressure=pressure, use_delta_kt_prime=False) assert_almost_equal(dirint_data.values, np.array([861.9, 670.4]), 1)
def test_dirint(): clearsky_data = tus.get_clearsky(times, model='ineichen', linke_turbidity=3) pressure = 93193. dirint_data = irradiance.dirint(clearsky_data['ghi'], ephem_data['zenith'], ephem_data.index, pressure=pressure)
def test_dirint_nans(): times = pd.DatetimeIndex(start='2014-06-24T12-0700', periods=5, freq='6H') ghi = pd.Series([np.nan, 1038.62, 1038.62, 1038.62, 1038.62], index=times) zenith = pd.Series([10.567, np.nan, 10.567, 10.567, 10.567], index=times) pressure = pd.Series([93193., 93193., np.nan, 93193., 93193.], index=times) temp_dew = pd.Series([10, 10, 10, np.nan, 10], index=times) dirint_data = irradiance.dirint(ghi, zenith, times, pressure=pressure, temp_dew=temp_dew) assert_almost_equal(dirint_data.values, np.array([np.nan, np.nan, np.nan, np.nan, 893.1]), 1)
def test_dirint_nans(): times = pd.DatetimeIndex(start='2014-06-24T12-0700', periods=5, freq='6H') ghi = pd.Series([np.nan, 1038.62, 1038.62, 1038.62, 1038.62], index=times) zenith = pd.Series([10.567, np.nan, 10.567, 10.567, 10.567,], index=times) pressure = pd.Series([93193., 93193., np.nan, 93193., 93193.], index=times) temp_dew = pd.Series([10, 10, 10, np.nan, 10], index=times) dirint_data = irradiance.dirint(ghi, zenith, times, pressure=pressure, temp_dew=temp_dew) assert_almost_equal(dirint_data.values, np.array([np.nan, np.nan, np.nan, np.nan, 893.1]), 1)
def time_dirint(self): irradiance.dirint(self.clearsky_irradiance.ghi, self.solar_position.apparent_zenith, self.times)