def iogen_for_year(year, is_hybrid=False, allow_imports=True, adjust_for_inflation=False): if is_hybrid: transaction_table = "hybrid_transactions_%d" % year value_column_name = "expenditure" else: transaction_table = "%s.transact_view_%d" % (config.IO_SCHEMA, year) value_column_name = "fob" fd_codes = fd_sectors_for_year(year, is_hybrid) iogen = IOMatrixGenerator( transaction_table=transaction_table, from_sector_name="from_sector", to_sector_name="to_sector", value_column_name=value_column_name, final_demand_sectors=fd_codes) iogen.set_pce_col(bea.fd_sectors[year]["pce"]) iogen.set_export_col(bea.fd_sectors[year]["exports"]) from_blacklist = [bea.tourism_adjustment_codes[year]] to_blacklist = [bea.tourism_adjustment_codes[year]] if year in (1972, 1977, 1982): from_blacklist.append("780300") to_blacklist.append("780300") if not allow_imports: to_blacklist.append(bea.fd_sectors[year]["imports"]) iogen.blacklist_from_sectors(from_blacklist) iogen.blacklist_to_sectors(to_blacklist) if adjust_for_inflation: iogen.set_exchange_rate(deflators.get_gdp_deflator(year)) return iogen
def iogen_for_year(year, is_hybrid=False, allow_imports=True, adjust_for_inflation=False): if is_hybrid: transaction_table = "hybrid_transactions_%d" % year value_column_name = "expenditure" else: transaction_table = "%s.transact_view_%d" % (config.IO_SCHEMA, year) value_column_name = "fob" fd_codes = fd_sectors_for_year(year, is_hybrid) iogen = IOMatrixGenerator(transaction_table=transaction_table, from_sector_name="from_sector", to_sector_name="to_sector", value_column_name=value_column_name, final_demand_sectors=fd_codes) iogen.set_pce_col(bea.fd_sectors[year]["pce"]) iogen.set_export_col(bea.fd_sectors[year]["exports"]) from_blacklist = [bea.tourism_adjustment_codes[year]] to_blacklist = [bea.tourism_adjustment_codes[year]] if year in (1972, 1977, 1982): from_blacklist.append("780300") to_blacklist.append("780300") if not allow_imports: to_blacklist.append(bea.fd_sectors[year]["imports"]) iogen.blacklist_from_sectors(from_blacklist) iogen.blacklist_to_sectors(to_blacklist) if adjust_for_inflation: iogen.set_exchange_rate(deflators.get_gdp_deflator(year)) return iogen
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() 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"])
iogen = cfgen.get_iogen() iogen.set_table("%s.ixi_%d" % (config.SCHEMA, year)) iogen.set_fd_sectors(config.fd_sectors[year]) iogen.blacklist_from_sectors(config.from_blacklists[year]) iogen.blacklist_to_sectors(config.to_blacklists[year]) 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)
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() 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",