예제 #1
0
def test_clearness_index():
    ghi = np.array([-1, 0, 1, 1000])
    solar_zenith = np.array([180, 90, 89.999, 0])
    ghi, solar_zenith = np.meshgrid(ghi, solar_zenith)
    # default min_cos_zenith
    out = irradiance.clearness_index(ghi, solar_zenith, 1370)
    # np.set_printoptions(precision=3, floatmode='maxprec', suppress=True)
    expected = np.array(
        [[0.   , 0.   , 0.011, 2.   ],
         [0.   , 0.   , 0.011, 2.   ],
         [0.   , 0.   , 0.011, 2.   ],
         [0.   , 0.   , 0.001, 0.73 ]])
    assert_allclose(out, expected, atol=0.001)
    # specify min_cos_zenith
    with np.errstate(invalid='ignore', divide='ignore'):
        out = irradiance.clearness_index(ghi, solar_zenith, 1400,
                                         min_cos_zenith=0)
    expected = np.array(
        [[0.   ,   nan, 2.   , 2.   ],
         [0.   , 0.   , 2.   , 2.   ],
         [0.   , 0.   , 2.   , 2.   ],
         [0.   , 0.   , 0.001, 0.714]])
    assert_allclose(out, expected, atol=0.001)
    # specify max_clearness_index
    out = irradiance.clearness_index(ghi, solar_zenith, 1370,
                                     max_clearness_index=0.82)
    expected = np.array(
        [[ 0.   ,  0.   ,  0.011,  0.82 ],
         [ 0.   ,  0.   ,  0.011,  0.82 ],
         [ 0.   ,  0.   ,  0.011,  0.82 ],
         [ 0.   ,  0.   ,  0.001,  0.73 ]])
    assert_allclose(out, expected, atol=0.001)
    # specify min_cos_zenith and max_clearness_index
    with np.errstate(invalid='ignore', divide='ignore'):
        out = irradiance.clearness_index(ghi, solar_zenith, 1400,
                                         min_cos_zenith=0,
                                         max_clearness_index=0.82)
    expected = np.array(
        [[ 0.   ,    nan,  0.82 ,  0.82 ],
         [ 0.   ,  0.   ,  0.82 ,  0.82 ],
         [ 0.   ,  0.   ,  0.82 ,  0.82 ],
         [ 0.   ,  0.   ,  0.001,  0.714]])
    assert_allclose(out, expected, atol=0.001)
    # scalars
    out = irradiance.clearness_index(1000, 10, 1400)
    expected = 0.725
    assert_allclose(out, expected, atol=0.001)
    # series
    times = pd.DatetimeIndex(start='20180601', periods=2, freq='12H')
    ghi = pd.Series([0, 1000], index=times)
    solar_zenith = pd.Series([90, 0], index=times)
    extra_radiation = pd.Series([1360, 1400], index=times)
    out = irradiance.clearness_index(ghi, solar_zenith, extra_radiation)
    expected = pd.Series([0, 0.714285714286], index=times)
    assert_series_equal(out, expected)
예제 #2
0
def test_clearness_index():
    ghi = np.array([-1, 0, 1, 1000])
    solar_zenith = np.array([180, 90, 89.999, 0])
    ghi, solar_zenith = np.meshgrid(ghi, solar_zenith)
    # default min_cos_zenith
    out = irradiance.clearness_index(ghi, solar_zenith, 1370)
    # np.set_printoptions(precision=3, floatmode='maxprec', suppress=True)
    expected = np.array(
        [[0.   , 0.   , 0.011, 2.   ],
         [0.   , 0.   , 0.011, 2.   ],
         [0.   , 0.   , 0.011, 2.   ],
         [0.   , 0.   , 0.001, 0.73 ]])
    assert_allclose(out, expected, atol=0.001)
    # specify min_cos_zenith
    with np.errstate(invalid='ignore', divide='ignore'):
        out = irradiance.clearness_index(ghi, solar_zenith, 1400,
                                         min_cos_zenith=0)
    expected = np.array(
        [[0.   ,   nan, 2.   , 2.   ],
         [0.   , 0.   , 2.   , 2.   ],
         [0.   , 0.   , 2.   , 2.   ],
         [0.   , 0.   , 0.001, 0.714]])
    assert_allclose(out, expected, atol=0.001)
    # specify max_clearness_index
    out = irradiance.clearness_index(ghi, solar_zenith, 1370,
                                     max_clearness_index=0.82)
    expected = np.array(
        [[ 0.   ,  0.   ,  0.011,  0.82 ],
         [ 0.   ,  0.   ,  0.011,  0.82 ],
         [ 0.   ,  0.   ,  0.011,  0.82 ],
         [ 0.   ,  0.   ,  0.001,  0.73 ]])
    assert_allclose(out, expected, atol=0.001)
    # specify min_cos_zenith and max_clearness_index
    with np.errstate(invalid='ignore', divide='ignore'):
        out = irradiance.clearness_index(ghi, solar_zenith, 1400,
                                         min_cos_zenith=0,
                                         max_clearness_index=0.82)
    expected = np.array(
        [[ 0.   ,    nan,  0.82 ,  0.82 ],
         [ 0.   ,  0.   ,  0.82 ,  0.82 ],
         [ 0.   ,  0.   ,  0.82 ,  0.82 ],
         [ 0.   ,  0.   ,  0.001,  0.714]])
    assert_allclose(out, expected, atol=0.001)
    # scalars
    out = irradiance.clearness_index(1000, 10, 1400)
    expected = 0.725
    assert_allclose(out, expected, atol=0.001)
    # series
    times = pd.DatetimeIndex(start='20180601', periods=2, freq='12H')
    ghi = pd.Series([0, 1000], index=times)
    solar_zenith = pd.Series([90, 0], index=times)
    extra_radiation = pd.Series([1360, 1400], index=times)
    out = irradiance.clearness_index(ghi, solar_zenith, extra_radiation)
    expected = pd.Series([0, 0.714285714286], index=times)
    assert_series_equal(out, expected)