|
22 | 22 | from fsspec import FSTimeoutError |
23 | 23 | from fsspec.implementations.zip import ZipFileSystem |
24 | 24 |
|
25 | | -from pyCIAM.utils import copy |
| 25 | +from pyCIAM.utils import _get_exp_year, copy |
26 | 26 | from pyCIAM.utils import spherical_nearest_neighbor as snn |
27 | 27 |
|
28 | 28 | from .utils import _s2d |
@@ -124,19 +124,16 @@ def prep_sliiders( |
124 | 124 | * (inputs.ypcc / ref_income) ** inputs.vsl_inc_elast |
125 | 125 | ) |
126 | 126 |
|
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) |
140 | 137 | if "dfact" not in inputs.data_vars and "npv_start" in inputs.data_vars: |
141 | 138 | inputs["dfact"] = (1 / (1 + inputs.dr)) ** (inputs.year - inputs.npv_start) |
142 | 139 |
|
|
0 commit comments