示例#1
0
 def test_pca_DEU_2010_pass(self):
     """ Test Processed Capital value Germany 2010."""
     ref_year = 2010
     cntry_iso = 'DEU'
     res_year, res_val, q = world_bank_wealth_account(cntry_iso, ref_year, no_land=0)
     res_year_noland, res_val_noland, q = \
             world_bank_wealth_account(cntry_iso, ref_year, no_land=1)
     ref_val = 17675048450284.9
     ref_val_noland = 14254071330874.9
     self.assertEqual(res_year, ref_year)
     self.assertEqual(q, 1)
     self.assertEqual(res_val, ref_val)
     self.assertEqual(res_year_noland, ref_year)
     self.assertEqual(res_val_noland, ref_val_noland)
示例#2
0
 def test_switzerland300_pc2016_pass(self):
     """Create LitPop entity for Switzerland 2016 with admin1 and produced capital:"""
     country_name = ['CHE']
     fin_mode = 'pc'
     resolution = 300
     ref_year = 2016
     adm1 = True
     cons = True
     comparison_total_val = world_bank_wealth_account(country_name[0],
                                                      ref_year,
                                                      no_land=1)[1]
     ent = LitPop()
     with self.assertLogs('climada.entity.exposures.litpop',
                          level='INFO') as cm:
         ent.set_country(country_name,
                         res_arcsec=resolution,
                         reference_year=ref_year,
                         fin_mode=fin_mode,
                         conserve_cntrytotal=cons,
                         calc_admin1=adm1)
     # print(cm)
     self.assertIn('Generating LitPop data at a resolution of 300 arcsec',
                   cm.output[0])
     self.assertEqual(np.around(ent.gdf.value.sum(), 0),
                      np.around(comparison_total_val, 0))
     self.assertAlmostEqual(ent.gdf.value.sum() / 2225854927260, 1.0)
示例#3
0
 def test_pca_CUB_2015_pass(self):
     """ Test Processed Capital value Cuba 2015 (missing value)."""
     ref_year = 2015
     cntry_iso = 'CUB'
     res_year, res_val, q = world_bank_wealth_account(cntry_iso, ref_year, no_land=1)
     ref_val = 108675762920.0
     self.assertEqual(q, 0)
     self.assertEqual(res_year, ref_year)
     self.assertEqual(res_val, ref_val)
 def test_pca_DEU_2010_pass(self):
     """Test Processed Capital value Germany 2010."""
     ref_year = 2010
     cntry_iso = 'DEU'
     res_year, res_val, q = world_bank_wealth_account(cntry_iso,
                                                      ref_year,
                                                      no_land=0)
     res_year_noland, res_val_noland, q = world_bank_wealth_account(
         cntry_iso, ref_year, no_land=1)
     ref_val = [17675048450284.9,
                19767982562092.2]  # second value as updated by worldbank on
     # October 27 2021
     ref_val_noland = [14254071330874.9, 15941921421042.1]  # dito
     self.assertEqual(res_year, ref_year)
     self.assertEqual(q, 1)
     self.assertIn(res_val, ref_val)
     self.assertEqual(res_year_noland, ref_year)
     self.assertIn(res_val_noland, ref_val_noland)
示例#5
0
 def test_tow_IND_1985_pass(self):
     """ Test Total Wealth value India 1985 (outside year range)."""
     ref_year = 1985
     cntry_iso = 'IND'
     var_name = 'NW.TOW.TO'
     res_year, res_val, _ = world_bank_wealth_account(cntry_iso, ref_year, \
                                     variable_name=var_name)
     ref_val = 5415188681948.6
     self.assertEqual(res_year, ref_year)
     self.assertEqual(res_val, ref_val)
示例#6
0
 def test_pca_CHE_2008_pass(self):
     """ Test Prcoessed Capital per capita Switzerland 2008 (interp.)."""
     ref_year = 2008
     cntry_iso = 'CHE'
     var_name = 'NW.PCA.PC'
     res_year, res_val, _ = world_bank_wealth_account(cntry_iso, ref_year, \
                                     variable_name=var_name, no_land=0)
     ref_val = 328398.7
     self.assertEqual(res_year, ref_year)
     self.assertEqual(res_val, ref_val)
示例#7
0
 def test_pca_CHE_2008_pass(self):
     """Test Prcoessed Capital per capita Switzerland 2008 (interp.)."""
     ref_year = 2008
     cntry_iso = 'CHE'
     var_name = 'NW.PCA.PC'
     res_year, res_val, _ = world_bank_wealth_account(
         cntry_iso, ref_year, variable_name=var_name, no_land=0)
     ref_val = [328398.7, 369081.0
                ]  # second value as updated by worldbank on October 27 2021
     self.assertEqual(res_year, ref_year)
     self.assertIn(res_val, ref_val)
示例#8
0
 def test_tow_IND_1985_pass(self):
     """Test Total Wealth value India 1985 (outside year range)."""
     ref_year = 1985
     cntry_iso = 'IND'
     var_name = 'NW.TOW.TO'
     res_year, res_val, _ = world_bank_wealth_account(
         cntry_iso, ref_year, variable_name=var_name)
     ref_val = [5415188681942.5,
                5861193808788.2]  # second value as updated by worldbank on
     # October 27 2021
     self.assertEqual(res_year, ref_year)
     self.assertIn(res_val, ref_val)
 def test_tow_IND_1985_pass(self):
     """Test Total Wealth value India 1985 (outside year range)."""
     ref_year = 1985
     cntry_iso = 'IND'
     var_name = 'NW.TOW.TO'
     res_year, res_val, _ = world_bank_wealth_account(
         cntry_iso, ref_year, variable_name=var_name)
     ref_val = [
         5415188681934.5,  # values sporadically updated by worldbank
         5861193808779.6
     ]  # <- October 27 2021
     self.assertEqual(res_year, ref_year)
     self.assertIn(res_val, ref_val)
示例#10
0
 def test_switzerland300_pc2013_pass(self):
     """Create LitPop entity for Switzerland 2013 for produced capital:"""
     country_name = ['CHE']
     fin_mode = 'pc'
     resolution = 300
     ref_year = 2013
     comparison_total_val = world_bank_wealth_account(country_name[0], \
                                                      ref_year, no_land=1)[1]
     ent = LitPop()
     with self.assertLogs('climada.entity.exposures.litpop',
                          level='INFO') as cm:
         ent.set_country(country_name, res_arcsec=resolution, \
                         reference_year=ref_year, fin_mode=fin_mode)
     # print(cm)
     self.assertIn('Generating LitPop data at a resolution of 300 arcsec',
                   cm.output[0])
     self.assertTrue(ent.value.sum() == comparison_total_val)
     self.assertTrue(np.int(ent.value.sum().round()) == 2296358085749)
    def test_switzerland300_reproject_first_false_pass(self):
        """Create LitPop entity for Switzerland 2013 for produced capital
        and resampling after combining Lit and Pop:"""
        country_name = ['CHE']
        fin_mode = 'pc'
        resolution = 300
        ref_year = 2016
        comparison_total_val = world_bank_wealth_account(country_name[0],
                                                         ref_year,
                                                         no_land=1)[1]
        ent = lp.LitPop()
        ent.set_countries(country_name,
                          res_arcsec=resolution,
                          reference_year=ref_year,
                          fin_mode=fin_mode,
                          reproject_first=False)

        self.assertEqual(ent.gdf.value.sum(), comparison_total_val)
        self.assertEqual(ent.value_unit, 'USD')
示例#12
0
    def test_switzerland300_admin1_pc2016_pass(self):
        """Create LitPop entity for Switzerland 2016 with admin1 and produced capital:"""
        country_name = ['CHE']
        fin_mode = 'pc'
        resolution = 300
        ref_year = 2016
        adm1 = True
        comparison_total_val = world_bank_wealth_account(country_name[0],
                                                         ref_year,
                                                         no_land=1)[1]
        ent = lp.LitPop.from_countries(country_name,
                                       res_arcsec=resolution,
                                       reference_year=ref_year,
                                       fin_mode=fin_mode,
                                       admin1_calc=adm1)

        self.assertAlmostEqual(np.around(ent.gdf.value.sum() * 1e-9, 0),
                               np.around(comparison_total_val * 1e-9, 0),
                               places=0)
        self.assertEqual(ent.value_unit, 'USD')
                   'SUR', 'SWZ', 'SWE', 'SYR', 'TWN', 'TJK', 'TZA', 'THA', \
                   'TLS', 'TGO', 'TON', 'TTO', 'TUN', 'TKM', 'TCA', 'TUV', \
                   'UGA', 'UKR', 'ARE', 'GBR', 'URY', 'UZB', 'VUT', 'VEN', \
                   'VNM', 'VGB', 'VIR', 'WLF', 'YEM', 'ZMB', 'ZWE']

"""
# write countries' metadata to CSV:
countries_metadata = pd.DataFrame(columns=['country_name','iso3',\
                                             'region_id', 'total_value', 'pc'])
if not 'success' in locals():
    success = list()
for c in iso_cntry:
    print(c.name)
    if (c.alpha3 in success) or (c.alpha3 in countries):
        countries_metadata = countries_metadata.append({'country_name' : c.name, \
                               'iso3' : c.alpha3, \
                               'region_id' : c.numeric, \
                               'total_value' : world_bank_wealth_account(c.alpha3, 2014)[1] , \
                               'pc' : world_bank_wealth_account(c.alpha3, 2014)[2]} , \
                               ignore_index=True)
    else:
        countries_metadata = countries_metadata.append({'country_name' : c.name, \
                               'iso3' : c.alpha3, \
                               'region_id' : c.numeric, \
                               'total_value' : float('NaN')} , \
                               ignore_index=True)

countries_metadata.to_csv(os.path.join(output_path, \
                                       'LitPop_countries_META_pc_' + str(yyyy) + \
                                       '_' + version + '.csv'))