iogen.set_exchange_rate(exchange_rate) envgen = cfgen.get_envgen() envgen.set_universal_conditions([ "year = %d" % year, "industry not in %s" % sqlhelper.set_repr(config.env_blacklist), ]) io_harmonizer = matrixutils.generate_selector_matrix( "%s.sector_map" % config.SCHEMA, iogen.get_sectors(), "io_code", "harmonized", ["io_code is not null"]) env_harmonizer = matrixutils.generate_selector_matrix( "%s.sector_map" % config.SCHEMA, envgen.get_sectors(), "env_code", "harmonized", ["env_code is not null"]) series = ["1"] cfgen.prepare(year, series, io_harmonizer, env_harmonizer) sector_titles = {} stmt = db.prepare("select distinct code, description" + " from %s.ind_codes order by code" % config.SCHEMA) for row in stmt(): sector_titles[row[0]] = row[1] cfgen.set_sector_titles(sector_titles) cfgen.describe() cfgen.describe(True) cfgen.counterfact(1997, "ca")
envgen.set_universal_conditions([ "year = %d" % year, "industry not in %s" % sqlhelper.set_repr(config.env_blacklist), ]) io_harmonizer = matrixutils.generate_selector_matrix( "%s.sector_map" % config.SCHEMA, iogen.get_sectors(), "io_code", "harmonized", ["io_code is not null"]) env_harmonizer = matrixutils.generate_selector_matrix( "%s.sector_map" % config.SCHEMA, envgen.get_sectors(), "env_code", "harmonized", ["env_code is not null"]) series = ["1"] cfgen.prepare(year, series, io_harmonizer, env_harmonizer) sector_titles = {} stmt = db.prepare("select distinct code, description" + " from %s.ind_codes order by code" % config.SCHEMA) for row in stmt(): sector_titles[row[0]] = row[1] cfgen.set_sector_titles(sector_titles) cfgen.describe() cfgen.describe(True) cfgen.counterfact(1997, "ca")
iogen.set_pce_col(config.pce_sector[year]) iogen.set_export_col(config.export_sector[year]) exchange_rate = wiod.common.get_exchange_rate("JPN", year) if exchange_rate is None: exchange_rate = 1 / exrate.get_rate("jp", year) # tons co2 / (M jpy * exchange rate) = tons co2 / M usd # GJ / (M jpy * exchange rate) = GJ / M usd # exchange_rate * 1000 gives us kilotons and terrajoules iogen.set_exchange_rate(exchange_rate * 1000) envgen = cfgen.get_envgen() envgen.set_table("%s.env_%d" % (config.SCHEMA, year)) env_harmonizer = matrixutils.generate_selector_matrix( "%s.env_map_%d" % (config.SCHEMA, year), envgen.get_sectors(), "env_sector", "harmonized") io_harmonizer = matrixutils.generate_selector_matrix( "%s.io_map_%d" % (config.SCHEMA, year), iogen.get_sectors(), "io_sector", "harmonized") series = config.env_series[series_code][year] cfgen.prepare(year, series, io_harmonizer, env_harmonizer) cfgen.set_sector_titles(sector_titles) cfgen.describe() cfgen.describe(True) cfgen.counterfact(1995, "jp")
def do_cfact(country, env_key): base_year = config.STUDY_YEARS[0] env_series = config.env_series_names[env_key] deflators = Deflators() iogen = common.iogen_for_year(base_year) envgen = common.envgen_for_year(base_year) env_sectors = common.env_sectors_for_year(base_year) iogen.set_condition_args(country) envgen.set_condition_args(country) cfgen = CounterfactGenerator(iogen, envgen) if env_key in common_config.ENV_SERIES_TITLES: env_title = common_config.ENV_SERIES_TITLES[env_key] else: env_title = env_key cfgen.set_series_code(env_series, env_title) for year in config.STUDY_YEARS: iogen = cfgen.get_iogen() envgen = cfgen.get_envgen() iotable = "%s.indbyind_%d" % (config.WIOD_SCHEMA, year) iogen.set_table(iotable) envtable = "%s.env_%d" % (config.WIOD_SCHEMA, year) envgen.set_table(envtable) envgen.set_sectors(env_sectors) iogen.set_exchange_rate(imfdata.get_2005_deflator(country, year)) #iogen.set_exchange_rate(deflators.get_gdp_deflator(year)) cfgen.prepare(year, env_series, io_harmonizer=common.get_io_harmonizer(iogen)) sector_titles = common.get_sector_names(True) # hack to get countries to print instead of sector names for key in sector_titles: sector_titles[key] = config.countries[country] cfgen.set_sector_titles(sector_titles) #cfgen.describe() for sector in intense_sectors: if sector == "sec26" and country == "IDN": continue # this is really just for aesthetics values = cfgen.get_sector_values(sector) if country in config.eu15: color = "#B1E6B1" elif country in config.other_eu: color = "#9FB5F5" elif country in config.north_am: color = "#E3B668" elif country in config.all_asia: color = "#FFFF80" else: color = "#C0B3C9" if values["level"][-1] > 10000: leveldiff = values["level"][-1] - values["level"][0] style = 7 if leveldiff < 0: style = 6 bubblecharts[sector].set_point(country, values["intensity"][0], values["intensity"][-1], abs(leveldiff), color, style) # cfgen.print_sector(sector) series_abbr = env_key.replace(" ", "-") if use_levels: filename = "%s_%s-abs_%d" % (series_abbr, country, base_year) else: filename = "%s_%s_%d" % (series_abbr, country, base_year) #title = config.countries[country] title = None (pce_result, export_result) = cfgen.counterfact(base_year, "cfact-" + series_abbr, filename, title, compact=False, use_levels=use_levels) # pce result = cfgen.decompose_result(pce_result, base_year, max(config.STUDY_YEARS)) # A, J, L, Y value_pairs = [ ("Sector intensity", result["J"]), ("Industry linkages", result["L"]), ("Final demand", result["Y"]), ] worldmaps["pce"].set_country_value(country, result["A"]) worldmaps["pce-eu"].set_country_value(country, result["A"]) if in_eu_rect(WorldMapPlot.get_centroid(country)) and country != "TUR": worldmaps["pce-eu"].add_tiny_barchart(country, value_pairs) else: worldmaps["pce"].add_tiny_barchart(country, value_pairs) # exports result = cfgen.decompose_result(export_result, base_year, max(config.STUDY_YEARS)) # A, J, L, Y value_pairs = [ ("Sector intensity", result["J"]), ("Industry linkages", result["L"]), ("Final demand", result["Y"]), ] worldmaps["export"].set_country_value(country, result["A"]) worldmaps["export-eu"].set_country_value(country, result["A"]) if in_eu_rect(WorldMapPlot.get_centroid(country)) and country != "TUR": worldmaps["export-eu"].add_tiny_barchart(country, value_pairs) else: worldmaps["export"].add_tiny_barchart(country, value_pairs)
# k tons / (M pounds * exchange_rate) = k tons / million usd iogen.set_exchange_rate(exchange_rate) envgen = cfgen.get_envgen() envgen.set_table("%s.env_%d" % (config.SCHEMA, year)) # we need to keep building this up because # some years are missing sectors env_harmonizer = matrixutils.generate_selector_matrix( "%s.code_map" % config.SCHEMA, envgen.get_sectors(), "env_code", "harmonized", ["env_code is not null"]) series = env_series_code cfgen.prepare(year, series, io_harmonizer, env_harmonizer) sector_titles = {} stmt = db.prepare("select distinct harmonized, description" + " from %s.code_map order by harmonized" % config.SCHEMA) for row in stmt(): sector_titles[row[0]] = row[1] cfgen.set_sector_titles(sector_titles) cfgen.describe() cfgen.describe(True) cfgen.counterfact(1995, "uk")
def do_cfact(country, env_key): base_year = config.STUDY_YEARS[0] env_series = config.env_series_names[env_key] deflators = Deflators() iogen = common.iogen_for_year(base_year) envgen = common.envgen_for_year(base_year) env_sectors = common.env_sectors_for_year(base_year) iogen.set_condition_args(country) envgen.set_condition_args(country) cfgen = CounterfactGenerator(iogen, envgen) if env_key in common_config.ENV_SERIES_TITLES: env_title = common_config.ENV_SERIES_TITLES[env_key] else: env_title = env_key cfgen.set_series_code(env_series, env_title) for year in config.STUDY_YEARS: iogen = cfgen.get_iogen() envgen = cfgen.get_envgen() iotable = "%s.indbyind_%d" % (config.WIOD_SCHEMA, year) iogen.set_table(iotable) envtable = "%s.env_%d" % (config.WIOD_SCHEMA, year) envgen.set_table(envtable) envgen.set_sectors(env_sectors) iogen.set_exchange_rate(imfdata.get_2005_deflator(country, year)) #iogen.set_exchange_rate(deflators.get_gdp_deflator(year)) cfgen.prepare(year, env_series, io_harmonizer=common.get_io_harmonizer(iogen)) sector_titles = common.get_sector_names(True) # hack to get countries to print instead of sector names for key in sector_titles: sector_titles[key] = config.countries[country] cfgen.set_sector_titles(sector_titles) #cfgen.describe() for sector in intense_sectors: if sector == "sec26" and country == "IDN": continue # this is really just for aesthetics values = cfgen.get_sector_values(sector) if country in config.eu15: color = "#B1E6B1" elif country in config.other_eu: color = "#9FB5F5" elif country in config.north_am: color = "#E3B668" elif country in config.all_asia: color = "#FFFF80" else: color = "#C0B3C9" if values["level"][-1] > 10000: leveldiff = values["level"][-1] - values["level"][0] style = 7 if leveldiff < 0: style = 6 bubblecharts[sector].set_point( country, values["intensity"][0], values["intensity"][-1], abs(leveldiff), color, style) # cfgen.print_sector(sector) series_abbr = env_key.replace(" ", "-") if use_levels: filename = "%s_%s-abs_%d" % (series_abbr, country, base_year) else: filename = "%s_%s_%d" % (series_abbr, country, base_year) #title = config.countries[country] title = None (pce_result, export_result) = cfgen.counterfact( base_year, "cfact-" + series_abbr, filename, title, compact=False, use_levels=use_levels) # pce result = cfgen.decompose_result( pce_result, base_year, max(config.STUDY_YEARS)) # A, J, L, Y value_pairs = [ ("Sector intensity", result["J"]), ("Industry linkages", result["L"]), ("Final demand", result["Y"]), ] worldmaps["pce"].set_country_value(country, result["A"]) worldmaps["pce-eu"].set_country_value(country, result["A"]) if in_eu_rect(WorldMapPlot.get_centroid(country)) and country != "TUR": worldmaps["pce-eu"].add_tiny_barchart(country, value_pairs) else: worldmaps["pce"].add_tiny_barchart(country, value_pairs) # exports result = cfgen.decompose_result( export_result, base_year, max(config.STUDY_YEARS)) # A, J, L, Y value_pairs = [ ("Sector intensity", result["J"]), ("Industry linkages", result["L"]), ("Final demand", result["Y"]), ] worldmaps["export"].set_country_value(country, result["A"]) worldmaps["export-eu"].set_country_value(country, result["A"]) if in_eu_rect(WorldMapPlot.get_centroid(country)) and country != "TUR": worldmaps["export-eu"].add_tiny_barchart(country, value_pairs) else: worldmaps["export"].add_tiny_barchart(country, value_pairs)
exchange_rate = wiod.common.get_exchange_rate("JPN", year) if exchange_rate is None: exchange_rate = 1 / exrate.get_rate("jp", year) # tons co2 / (M jpy * exchange rate) = tons co2 / M usd # GJ / (M jpy * exchange rate) = GJ / M usd # exchange_rate * 1000 gives us kilotons and terrajoules iogen.set_exchange_rate(exchange_rate * 1000) envgen = cfgen.get_envgen() envgen.set_table("%s.env_%d" % (config.SCHEMA, year)) env_harmonizer = matrixutils.generate_selector_matrix( "%s.env_map_%d" % (config.SCHEMA, year), envgen.get_sectors(), "env_sector", "harmonized") io_harmonizer = matrixutils.generate_selector_matrix( "%s.io_map_%d" % (config.SCHEMA, year), iogen.get_sectors(), "io_sector", "harmonized") series = config.env_series[series_code][year] cfgen.prepare(year, series, io_harmonizer, env_harmonizer) cfgen.set_sector_titles(sector_titles) cfgen.describe() cfgen.describe(True) cfgen.counterfact(1995, "jp")
iogen.set_harmonized_rows(config.io_harmonized_sectors[year]) exchange_rate = wiod.common.get_exchange_rate("TWN", year) # tons / (million ntd * exchange_rate) = tons / M usd iogen.set_exchange_rate(exchange_rate) iogen.set_pce_col(config.pce_sector[year]) iogen.set_export_col(config.export_sector[year]) envtable = "%s.env_%d" % (config.SCHEMA, year) envgen = cfgen.get_envgen() envgen.set_table(envtable) env_blacklist = sqlhelper.set_repr(config.env_blacklist[year]) env_condition = "sector NOT IN " + env_blacklist envgen.set_universal_conditions([env_condition]) map_table = "%s.sector_map_%d" % (config.SCHEMA, year) env_harmonizer = matrixutils.generate_selector_matrix( map_table, envgen.get_sectors(), "env_sector", "harmonized_env") io_harmonizer = matrixutils.generate_selector_matrix( map_table, iogen.get_sectors(), "io_sector", "harmonized_env") series = config.env_series_for_code(series_code, year) cfgen.prepare(year, series, io_harmonizer, env_harmonizer) cfgen.describe() cfgen.describe(True) cfgen.counterfact(1999, "tw")