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)
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)
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)
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])
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)