@@ -246,21 +246,27 @@ def new_and_retro(
246246
247247 from muse .commodities import is_enduse
248248 from muse .quantities import maximum_production
249- from muse .utilities import agent_concatenation , broadcast_over_assets , reduce_assets
249+ from muse .utilities import (
250+ agent_concatenation ,
251+ broadcast_over_assets ,
252+ interpolate_capacity ,
253+ reduce_assets ,
254+ )
250255
251256 current_year , investment_year = map (int , market .year .values )
252257
253258 def decommissioning (capacity , technologies ):
254259 return decommissioning_demand (
255260 technologies = technologies ,
256- capacity = capacity . interp (
257- year = [current_year , investment_year ], kwargs = { "fill_value" : 0.0 }
261+ capacity = interpolate_capacity (
262+ capacity , year = [current_year , investment_year ]
258263 ),
259264 timeslice_level = timeslice_level ,
260265 )
261266
262- capacity = reduce_assets ([u .assets .capacity for u in agents ]).interp (
263- year = [current_year , investment_year ], kwargs = {"fill_value" : 0.0 }
267+ capacity = interpolate_capacity (
268+ reduce_assets ([u .assets .capacity for u in agents ]),
269+ year = [current_year , investment_year ],
264270 )
265271
266272 # Select technodata for assets
@@ -288,8 +294,8 @@ def decommissioning(capacity, technologies):
288294 id_to_share : MutableMapping [Hashable , xr .DataArray ] = {}
289295 for region in demands .region .values :
290296 retro_capacity : MutableMapping [Hashable , xr .DataArray ] = {
291- agent .uuid : agent . assets . capacity . interp (
292- year = [current_year , investment_year ]
297+ agent .uuid : interpolate_capacity (
298+ agent . assets . capacity , year = [current_year , investment_year ]
293299 )
294300 for agent in agents
295301 if agent .category == "retrofit" and agent .region == region
@@ -382,15 +388,20 @@ def standard_demand(
382388
383389 from muse .commodities import is_enduse
384390 from muse .quantities import maximum_production
385- from muse .utilities import agent_concatenation , broadcast_over_assets , reduce_assets
391+ from muse .utilities import (
392+ agent_concatenation ,
393+ broadcast_over_assets ,
394+ interpolate_capacity ,
395+ reduce_assets ,
396+ )
386397
387398 current_year , investment_year = map (int , market .year .values )
388399
389400 def decommissioning (capacity , technologies ):
390401 return decommissioning_demand (
391402 technologies = technologies ,
392- capacity = capacity . interp (
393- year = [current_year , investment_year ], kwargs = { "fill_value" : 0.0 }
403+ capacity = interpolate_capacity (
404+ capacity , year = [current_year , investment_year ]
394405 ),
395406 timeslice_level = timeslice_level ,
396407 )
@@ -401,8 +412,9 @@ def decommissioning(capacity, technologies):
401412 raise RetrofitAgentInStandardDemandShare ()
402413
403414 # Calculate existing capacity
404- capacity = reduce_assets ([agent .assets .capacity for agent in agents ]).interp (
405- year = [current_year , investment_year ], kwargs = {"fill_value" : 0.0 }
415+ capacity = interpolate_capacity (
416+ reduce_assets ([agent .assets .capacity for agent in agents ]),
417+ year = [current_year , investment_year ],
406418 )
407419
408420 # Select technodata for assets
@@ -425,8 +437,8 @@ def decommissioning(capacity, technologies):
425437 for region in demands .region .values :
426438 # Calculate current capacity
427439 current_capacity : MutableMapping [Hashable , xr .DataArray ] = {
428- agent .uuid : agent . assets . capacity . interp (
429- year = [current_year , investment_year ]
440+ agent .uuid : interpolate_capacity (
441+ agent . assets . capacity , year = [current_year , investment_year ]
430442 )
431443 for agent in agents
432444 if agent .region == region
@@ -481,16 +493,21 @@ def unmet_forecasted_demand(
481493) -> xr .DataArray :
482494 """Forecast demand that cannot be serviced by non-decommissioned current assets."""
483495 from muse .commodities import is_enduse
484- from muse .utilities import broadcast_over_assets , reduce_assets
496+ from muse .utilities import (
497+ broadcast_over_assets ,
498+ interpolate_capacity ,
499+ reduce_assets ,
500+ )
485501
486502 current_year , investment_year = map (int , market .year .values )
487503
488504 comm_usage = technologies .comm_usage .sel (commodity = market .commodity )
489505 smarket : xr .Dataset = market .where (is_enduse (comm_usage ), 0 )
490506
491507 # Calculate existing capacity
492- capacity = reduce_assets ([agent .assets .capacity for agent in agents ]).interp (
493- year = [current_year , investment_year ], kwargs = {"fill_value" : 0.0 }
508+ capacity = interpolate_capacity (
509+ reduce_assets ([agent .assets .capacity for agent in agents ]),
510+ year = [current_year , investment_year ],
494511 )
495512
496513 # Select data for future years
0 commit comments