Beispiel #1
0
from common.matrixutils import NamedMatrix
from common.ioutils import IOMatrixGenerator, EnvMatrixGenerator
from common.counterfact import CounterfactGenerator

iogen = IOMatrixGenerator(transaction_table="%s.ixi_%d" %
                          (config.SCHEMA, config.STUDY_YEARS[0]),
                          final_demand_sectors=config.fd_sectors)
iogen.set_pce_col(config.pce_sector)
iogen.set_export_col(config.export_sector)

envgen = EnvMatrixGenerator(
    envtable="%s.emissions_quantity" % config.SCHEMA,
    ind_col_name="industry",
    series_col_name="1")  # we just have emissions, no series, need hack

cfgen = CounterfactGenerator(iogen, envgen)

cfgen.set_series_code(["1"], "emissions")

for year in config.STUDY_YEARS:
    print(year)
    iogen = cfgen.get_iogen()
    iogen.set_table("%s.ixi_%d" % (config.SCHEMA, year))

    exchange_rate = wiod.common.get_exchange_rate("CAN", year)
    if exchange_rate is None:
        exchange_rate = exrate.get_rate("ca", year)

    iogen.set_exchange_rate(exchange_rate)

    envgen = cfgen.get_envgen()
Beispiel #2
0
from common.matrixutils import NamedMatrix
from common.ioutils import IOMatrixGenerator, EnvMatrixGenerator
from common.counterfact import CounterfactGenerator

iogen = IOMatrixGenerator(
    transaction_table="%s.ixi_%d" % (config.SCHEMA, config.STUDY_YEARS[0]),
    final_demand_sectors=config.fd_sectors)
iogen.set_pce_col(config.pce_sector)
iogen.set_export_col(config.export_sector)

envgen = EnvMatrixGenerator(
    envtable="%s.emissions_quantity" % config.SCHEMA,
    ind_col_name="industry",
    series_col_name="1") # we just have emissions, no series, need hack

cfgen = CounterfactGenerator(iogen, envgen)

cfgen.set_series_code(["1"], "emissions")
    
for year in config.STUDY_YEARS:
    print(year)
    iogen = cfgen.get_iogen()
    iogen.set_table("%s.ixi_%d" % (config.SCHEMA, year))

    exchange_rate = wiod.common.get_exchange_rate("CAN", year)
    if exchange_rate is None:
        exchange_rate = exrate.get_rate("ca", year)

    iogen.set_exchange_rate(exchange_rate)
    
    envgen = cfgen.get_envgen()
Beispiel #3
0
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)
Beispiel #4
0
    final_demand_sectors=config.fd_sectors)
iogen.set_pce_col(config.pce_sector)
iogen.set_export_col(config.export_sector)

io_harmonizer = matrixutils.generate_selector_matrix(
    "%s.code_map" % config.SCHEMA,
    iogen.get_sectors(), "to_code", "harmonized",
    ["to_code is not null"])

envgen = EnvMatrixGenerator(
    envtable="%s.env_%d" % (config.SCHEMA, config.STUDY_YEARS[0]),
    ind_col_name="sector",
    series_col_name="series",
    value_col_name="value")

cfgen = CounterfactGenerator(iogen, envgen)

for env_series_code in config.env_series:
    cfgen.set_series_code(env_series_code)
    
    for year in config.STUDY_YEARS:
        iogen = cfgen.get_iogen()
        iogen.set_table("%s.ixi_view_%d" % (config.SCHEMA, year))
    
        exchange_rate = wiod.common.get_exchange_rate("GBR", year)
        if exchange_rate is None:
            exchange_rate = exrate.get_rate("uk", year)

        # k tons / (M pounds * exchange_rate) = k tons / million usd
        iogen.set_exchange_rate(exchange_rate)
    
Beispiel #5
0
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)
Beispiel #6
0
from common.ioutils import IOMatrixGenerator, EnvMatrixGenerator
from common.counterfact import CounterfactGenerator

iogen = IOMatrixGenerator(
    transaction_table=None,
    from_sector_name="from_sector",
    to_sector_name="to_sector",
    value_column_name="millions")

envgen = EnvMatrixGenerator(
    envtable=None,
    ind_col_name="sector",
    series_col_name="series",
    value_col_name="value")

cfgen = CounterfactGenerator(iogen, envgen)

for series_code in config.env_series.keys():
    cfgen.set_series_code(series_code)

    for year in config.STUDY_YEARS:
        iotable = "%s.io_%d" % (config.SCHEMA, year)
        if year > 2006:
            # use fake IxI table
            iotable = "%s.io_view_%d" % (config.SCHEMA, year)
        iogen = cfgen.get_iogen()
        iogen.set_table(iotable)
        iogen.set_fd_sectors(config.final_demand[year])
        iogen.blacklist_from_sectors(config.from_blacklists[year])
        iogen.blacklist_to_sectors(config.to_blacklists[year])
        iogen.set_harmonized_rows(config.io_harmonized_sectors[year])