Skip to content

Commit f296a2e

Browse files
committed
handle different base years of K and pop in sliiders
1 parent f32f762 commit f296a2e

File tree

1 file changed

+11
-14
lines changed

1 file changed

+11
-14
lines changed

pyCIAM/io.py

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
from fsspec import FSTimeoutError
2323
from fsspec.implementations.zip import ZipFileSystem
2424

25-
from pyCIAM.utils import copy
25+
from pyCIAM.utils import _get_exp_year, copy
2626
from pyCIAM.utils import spherical_nearest_neighbor as snn
2727

2828
from .utils import _s2d
@@ -124,19 +124,16 @@ def prep_sliiders(
124124
* (inputs.ypcc / ref_income) ** inputs.vsl_inc_elast
125125
)
126126

127-
if expand_exposure and "pop" not in inputs.data_vars:
128-
exp_year = [
129-
v for v in inputs.data_vars if v.startswith("pop_") and "scale" not in v
130-
]
131-
assert len(exp_year) == 1, exp_year
132-
exp_year = exp_year[0].split("_")[1]
133-
pop_var = "pop_" + exp_year
134-
inputs["pop"] = inputs[pop_var] * inputs.pop_scale
135-
inputs = inputs.drop(pop_var)
136-
if expand_exposure and "K" not in inputs.data_vars:
137-
K_var = "K_" + exp_year
138-
inputs["K"] = inputs[K_var] * inputs.K_scale
139-
inputs = inputs.drop(K_var)
127+
if expand_exposure:
128+
exp_year = _get_exp_year(inputs)
129+
if "pop" not in inputs.data_vars:
130+
pop_var = f"pop_{exp_year}"
131+
inputs["pop"] = inputs[pop_var] * inputs.pop_scale
132+
inputs = inputs.drop(pop_var)
133+
if "K" not in inputs.data_vars:
134+
K_var = f"K_{exp_year}"
135+
inputs["K"] = inputs[K_var] * inputs.K_scale
136+
inputs = inputs.drop(K_var)
140137
if "dfact" not in inputs.data_vars and "npv_start" in inputs.data_vars:
141138
inputs["dfact"] = (1 / (1 + inputs.dr)) ** (inputs.year - inputs.npv_start)
142139

0 commit comments

Comments
 (0)