def test_48b(): # tests fix for #48 mapping few->many exp = IamDataFrame( pd.DataFrame( [ ['model', 'scen', 'SSD', 'var', 'unit', 1, 6], ['model', 'scen', 'SDN', 'var', 'unit', 1, 6], ['model', 'scen1', 'SSD', 'var', 'unit', 2, 7], ['model', 'scen1', 'SDN', 'var', 'unit', 2, 7], ], columns=[ 'model', 'scenario', 'region', 'variable', 'unit', 2005, 2010 ], )).data.reset_index(drop=True) df = IamDataFrame( pd.DataFrame( [ ['model', 'scen', 'R5MAF', 'var', 'unit', 1, 6], ['model', 'scen1', 'R5MAF', 'var', 'unit', 2, 7], ], columns=[ 'model', 'scenario', 'region', 'variable', 'unit', 2005, 2010 ], )) obs = df.map_regions('iso', region_col='r5_region').data obs = obs[obs.region.isin(['SSD', 'SDN'])].reset_index(drop=True) pd.testing.assert_frame_equal(obs, exp, check_index_type=False)
def test_48a(): # tests fix for #48 mapping many->few df = IamDataFrame( pd.DataFrame( [ ['model', 'scen', 'SSD', 'var', 'unit', 1, 6], ['model', 'scen', 'SDN', 'var', 'unit', 2, 7], ['model', 'scen1', 'SSD', 'var', 'unit', 2, 7], ['model', 'scen1', 'SDN', 'var', 'unit', 2, 7], ], columns=[ 'model', 'scenario', 'region', 'variable', 'unit', 2005, 2010 ], )) exp = _r5_regions_exp(df) columns = df.data.columns grp = list(columns) grp.remove('value') exp = exp.groupby(grp).sum().reset_index() exp = exp[columns] obs = df.map_regions('r5_region', region_col='iso', agg='sum').data pd.testing.assert_frame_equal(obs, exp, check_index_type=False)
def test_48c(): # tests fix for #48 mapping few->many, dropping duplicates exp = IamDataFrame( pd.DataFrame( [ ['model', 'scen', 'AGO', 'var', 'unit', 1, 6], ['model', 'scen1', 'AGO', 'var', 'unit', 2, 7], ], columns=[ 'model', 'scenario', 'region', 'variable', 'unit', 2005, 2010 ], )).data.reset_index(drop=True) df = IamDataFrame( pd.DataFrame( [ ['model', 'scen', 'R5MAF', 'var', 'unit', 1, 6], ['model', 'scen1', 'R5MAF', 'var', 'unit', 2, 7], ], columns=[ 'model', 'scenario', 'region', 'variable', 'unit', 2005, 2010 ], )) obs = df.map_regions('iso', region_col='r5_region', remove_duplicates=True).data pd.testing.assert_frame_equal(obs, exp, check_index_type=False)
def test_48c(): # tests fix for #48 mapping few->many, dropping duplicates exp = IamDataFrame( pd.DataFrame( [ ["model", "scen", "AGO", "var", "unit", 1, 6], ["model", "scen1", "AGO", "var", "unit", 2, 7], ], columns=[ "model", "scenario", "region", "variable", "unit", 2005, 2010 ], )).data.reset_index(drop=True) df = IamDataFrame( pd.DataFrame( [ ["model", "scen", "R5MAF", "var", "unit", 1, 6], ["model", "scen1", "R5MAF", "var", "unit", 2, 7], ], columns=[ "model", "scenario", "region", "variable", "unit", 2005, 2010 ], )) obs = df.map_regions("iso", region_col="r5_region", remove_duplicates=True).data pd.testing.assert_frame_equal(obs, exp, check_index_type=False)
def test_48b(): # tests fix for #48 mapping few->many exp = IamDataFrame( pd.DataFrame( [ ["model", "scen", "SSD", "var", "unit", 1, 6], ["model", "scen", "SDN", "var", "unit", 1, 6], ["model", "scen1", "SSD", "var", "unit", 2, 7], ["model", "scen1", "SDN", "var", "unit", 2, 7], ], columns=[ "model", "scenario", "region", "variable", "unit", 2005, 2010 ], )).data df = IamDataFrame( pd.DataFrame( [ ["model", "scen", "R5MAF", "var", "unit", 1, 6], ["model", "scen1", "R5MAF", "var", "unit", 2, 7], ], columns=[ "model", "scenario", "region", "variable", "unit", 2005, 2010 ], )) obs = df.map_regions("iso", region_col="r5_region").data obs = sort_data(obs[obs.region.isin(["SSD", "SDN"])], df._LONG_IDX) pd.testing.assert_frame_equal(obs, exp, check_index_type=False)
def test_48a(): # tests fix for #48 mapping many->few df = IamDataFrame( pd.DataFrame( [ ["model", "scen", "SSD", "var", "unit", 1, 6], ["model", "scen", "SDN", "var", "unit", 2, 7], ["model", "scen1", "SSD", "var", "unit", 2, 7], ["model", "scen1", "SDN", "var", "unit", 2, 7], ], columns=[ "model", "scenario", "region", "variable", "unit", 2005, 2010 ], )) exp = _r5_regions_exp(df) columns = df.data.columns grp = list(columns) grp.remove("value") exp = exp.groupby(grp).sum().reset_index() exp = exp[columns] obs = df.map_regions("r5_region", region_col="iso", agg="sum").data pd.testing.assert_frame_equal(obs, exp, check_index_type=False)
def test_region_map_regions(): df = IamDataFrame(os.path.join(TEST_DATA_DIR, 'plot_region_data.csv')) fig, ax = plt.subplots( subplot_kw={'projection': cartopy.crs.PlateCarree()}, figsize=(10, 7)) (df.map_regions('iso').region_plot( ax=ax, cbar=False, )) return fig