build industrial demand/production: ensure compat with multiprocesses on win/mac

This commit is contained in:
Fabian 2023-03-07 12:20:22 +01:00
parent 2a5acedfee
commit 5260e0c71f
2 changed files with 12 additions and 12 deletions

View File

@ -90,7 +90,7 @@ eu28 = [
jrc_names = {"GR": "EL", "GB": "UK"}
def industrial_energy_demand_per_country(country, jrc_dir):
def industrial_energy_demand_per_country(country, year, jrc_dir):
jrc_country = jrc_names.get(country, country)
fn = f"{jrc_dir}/JRC-IDEES-2015_EnergyBalance_{jrc_country}.xlsx"
@ -177,9 +177,9 @@ def add_non_eu28_industrial_energy_demand(demand):
return pd.concat([demand, demand_non_eu28])
def industrial_energy_demand(countries):
def industrial_energy_demand(countries, year):
nprocesses = snakemake.threads
func = partial(industrial_energy_demand_per_country, jrc_dir=snakemake.input.jrc)
func = partial(industrial_energy_demand_per_country, year=year, jrc_dir=snakemake.input.jrc)
tqdm_kwargs = dict(
ascii=False,
unit=" country",
@ -203,7 +203,7 @@ if __name__ == "__main__":
config = snakemake.config["industry"]
year = config.get("reference_year", 2015)
demand = industrial_energy_demand(eu28)
demand = industrial_energy_demand(eu28, year)
demand = add_ammonia_energy_demand(demand)

View File

@ -186,7 +186,7 @@ def find_physical_output(df):
return slice(start, end)
def get_energy_ratio(country, eurostat_dir, jrc_dir):
def get_energy_ratio(country, eurostat_dir, jrc_dir, year):
if country == "CH":
e_country = e_switzerland * tj_to_ktoe
else:
@ -215,7 +215,7 @@ def get_energy_ratio(country, eurostat_dir, jrc_dir):
return pd.Series({k: e_ratio[v] for k, v in sub2sect.items()})
def industry_production_per_country(country, eurostat_dir, jrc_dir):
def industry_production_per_country(country, year, eurostat_dir, jrc_dir):
def get_sector_data(sector, country):
jrc_country = jrc_names.get(country, country)
fn = f"{jrc_dir}/JRC-IDEES-2015_Industry_{jrc_country}.xlsx"
@ -237,17 +237,17 @@ def industry_production_per_country(country, eurostat_dir, jrc_dir):
demand = pd.concat([get_sector_data(s, ct) for s in sect2sub.keys()])
if country in non_EU:
demand *= get_energy_ratio(country, eurostat_dir, jrc_dir)
demand *= get_energy_ratio(country, eurostat_dir, jrc_dir, year)
demand.name = country
return demand
def industry_production(countries, eurostat_dir, jrc_dir):
def industry_production(countries, year, eurostat_dir, jrc_dir):
nprocesses = 1 # snakemake.threads
func = partial(
industry_production_per_country, eurostat_dir=eurostat_dir, jrc_dir=jrc_dir
industry_production_per_country, year=year, eurostat_dir=eurostat_dir, jrc_dir=jrc_dir
)
tqdm_kwargs = dict(
ascii=False,
@ -265,7 +265,7 @@ def industry_production(countries, eurostat_dir, jrc_dir):
return demand
def separate_basic_chemicals(demand):
def separate_basic_chemicals(demand, year):
"""
Separate basic chemicals into ammonia, chlorine, methanol and HVC.
"""
@ -312,9 +312,9 @@ if __name__ == "__main__":
jrc_dir = snakemake.input.jrc
eurostat_dir = snakemake.input.eurostat
demand = industry_production(countries, eurostat_dir, jrc_dir)
demand = industry_production(countries, year, eurostat_dir, jrc_dir)
separate_basic_chemicals(demand)
separate_basic_chemicals(demand, year)
fn = snakemake.output.industrial_production_per_country
demand.to_csv(fn, float_format="%.2f")