Exemplo n.º 1
0
def test_nor_mle():
    new_spi = spi.SPI()
    df_rainfall = pd.read_csv('data/monthly_data.csv')
    df_spi = new_spi.calculate(
        df_rainfall, 'date', 'TotalPrecipitation', freq="M", fit_type="mle", dist_type="nor"
    )
    assert np.round(df_spi['TotalPrecipitation_calculated_index'].iloc[0], 4) == np.round(-0.712801, 4)
Exemplo n.º 2
0
def test_gum_lmoments():
    new_spi = spi.SPI()
    df_rainfall = pd.read_csv('data/monthly_data.csv')
    df_spi = new_spi.calculate(
        df_rainfall, 'date', 'TotalPrecipitation', freq="M", fit_type="lmom", dist_type="gum"
    )
    assert np.round(df_spi['TotalPrecipitation_calculated_index'].iloc[0], 4) == np.round(-0.698605, 4)
Exemplo n.º 3
0
def test_3month_spi():
    new_spi = spi.SPI()
    df_rainfall = pd.read_csv('data/wichita_rain.csv')
    df_spi = new_spi.calculate(
        df_rainfall, 'date', 'precip', freq="M", fit_type="lmom", scale=3,
        dist_type="gam"
    )
    assert np.round(df_spi['precip_scale_3_calculated_index'].iloc[2], 4) == np.round(0.856479, 4)
Exemplo n.º 4
0
def test_daily_nan():
    new_spi = spi.SPI()
    df_rainfall = pd.read_csv('data/daily_data_test.csv')
    df_spi = new_spi.calculate(
        df_rainfall, 'date', 'precip', freq="D", fit_type="lmom", scale=1,
        dist_type="gam"
    )
    assert np.isnan(df_spi['precip_calculated_index'].iloc[0])
Exemplo n.º 5
0
def test_gamma_out():

    SPI = spi.SPI()
    rainfall_data = np.genfromtxt('data/rainfall_test2.csv', delimiter=',')
    SPI.set_rolling_window_params(span=10, window_type='boxcar', center=False)
    SPI.set_distribution_params(dist_type='gam')
    result = SPI.calculate(rainfall_data, starting_month=1)
    assert np.round(result[-1][0], 4) == np.round(-0.09562831, 4)