diff --git a/src/simulation/investment.rs b/src/simulation/investment.rs index 0965df034..34099391a 100644 --- a/src/simulation/investment.rs +++ b/src/simulation/investment.rs @@ -759,14 +759,22 @@ fn select_best_assets( // Appraise all options let mut outputs_for_opts = Vec::new(); for asset in &opt_assets { - // For candidates, determine the maximum capacity that can be invested in this round, - // according to the tranche size and remaining capacity limits. + // For candidates, determine the maximum capacity that can be invested in this round. + // This is whichever is the smallest of the tranche size (based on demand limiting + // capacity before investment), the remaining available capacity for the candidate and + // the demand limiting capacity recalculated based on demand unserved by the other + // selected assets. let max_capacity = (!asset.is_commissioned()).then(|| { let tranche_capacity = asset .capacity() .apply_limit_factor(model.parameters.capacity_limit_factor); + let dlc = AssetCapacity::from_capacity( + get_demand_limiting_capacity(&model.time_slice_info, asset, commodity, &demand), + asset.unit_size(), + ); let remaining_capacity = remaining_candidate_capacity[asset]; - tranche_capacity.min(remaining_capacity) + + tranche_capacity.min(dlc).min(remaining_capacity) }); // Skip any assets from groups we've already seen diff --git a/src/simulation/investment/appraisal.rs b/src/simulation/investment/appraisal.rs index c32a0e9f3..84663c14a 100644 --- a/src/simulation/investment/appraisal.rs +++ b/src/simulation/investment/appraisal.rs @@ -69,13 +69,14 @@ impl AppraisalOutput { /// Create a new `AppraisalOutput` fn new( asset: AssetRef, + capacity: AssetCapacity, results: ResultsMap, metric: Option, coefficients: Rc, ) -> Self { Self { asset, - capacity: results.capacity, + capacity, activity: results.activity, unmet_demand: results.unmet_demand, metric: metric.map(|m| Box::new(m) as Box), @@ -252,7 +253,7 @@ impl MetricTrait for NPVMetric {} fn calculate_lcox( model: &Model, asset: &AssetRef, - max_capacity: Option, + max_capacity: AssetCapacity, commodity: &Commodity, coefficients: &Rc, demand: &DemandMap, @@ -276,6 +277,7 @@ fn calculate_lcox( Ok(AppraisalOutput::new( asset.clone(), + results.capacity, results, cost_index.map(LCOXMetric::new), coefficients.clone(), @@ -290,7 +292,7 @@ fn calculate_lcox( fn calculate_npv( model: &Model, asset: &AssetRef, - max_capacity: Option, + max_capacity: AssetCapacity, commodity: &Commodity, coefficients: &Rc, demand: &DemandMap, @@ -320,13 +322,14 @@ fn calculate_npv( Ok(AppraisalOutput::new( asset.clone(), + max_capacity, results, Some(NPVMetric::new(profitability_index)), coefficients.clone(), )) } -/// Appraise the given investment with the specified objective type +/// Appraise the given investment with the specified objective type. /// /// # Returns /// @@ -341,6 +344,7 @@ pub fn appraise_investment( coefficients: &Rc, demand: &DemandMap, ) -> Result { + let max_capacity = max_capacity.unwrap_or(asset.capacity()); let appraisal_method = match objective_type { ObjectiveType::LevelisedCostOfX => calculate_lcox, ObjectiveType::NetPresentValue => calculate_npv, diff --git a/src/simulation/investment/appraisal/constraints.rs b/src/simulation/investment/appraisal/constraints.rs index 7109d9c10..750cb85a3 100644 --- a/src/simulation/investment/appraisal/constraints.rs +++ b/src/simulation/investment/appraisal/constraints.rs @@ -16,11 +16,10 @@ use indexmap::IndexMap; pub fn add_capacity_constraint( problem: &mut Problem, asset: &AssetRef, - max_capacity: Option, + max_capacity: AssetCapacity, capacity_var: Variable, ) { - let capacity_limit = max_capacity.unwrap_or(asset.capacity()); - let capacity_limit = match capacity_limit { + let capacity_limit = match max_capacity { AssetCapacity::Continuous(cap) => cap.value(), AssetCapacity::Discrete(units, _) => units as f64, }; diff --git a/src/simulation/investment/appraisal/optimisation.rs b/src/simulation/investment/appraisal/optimisation.rs index 6d87775c1..16da58e58 100644 --- a/src/simulation/investment/appraisal/optimisation.rs +++ b/src/simulation/investment/appraisal/optimisation.rs @@ -95,7 +95,7 @@ pub struct ResultsMap { fn add_constraints( problem: &mut Problem, asset: &AssetRef, - max_capacity: Option, + max_capacity: AssetCapacity, commodity: &Commodity, variables: &VariableMap, demand: &DemandMap, @@ -127,7 +127,7 @@ fn add_constraints( /// asset has a defined unit size. pub fn perform_optimisation( asset: &AssetRef, - max_capacity: Option, + max_capacity: AssetCapacity, commodity: &Commodity, coefficients: &ObjectiveCoefficients, demand: &DemandMap, diff --git a/tests/data/simple_npv/assets.csv b/tests/data/simple_npv/assets.csv index b15aea31b..f1878c659 100644 --- a/tests/data/simple_npv/assets.csv +++ b/tests/data/simple_npv/assets.csv @@ -5,12 +5,12 @@ asset_id,process_id,region_id,agent_id,group_id,commission_year,decommission_yea 3,GASCGT,GBR,A0_ELC,,2020,,2.43 4,RGASBR,GBR,A0_RES,,2020,2030,2900.0 5,RELCHP,GBR,A0_RES,,2020,2035,399.98 -6,RELCHP,GBR,A0_RES,,2030,,3290.2365652888325 +6,RELCHP,GBR,A0_RES,,2030,,3255.838405876481 7,GASCGT,GBR,A0_ELC,,2030,,33.820477802912976 8,GASPRC,GBR,A0_GPR,,2030,,879.1648830751317 9,GASDRV,GBR,A0_GEX,,2030,,923.1231272288879 -10,RGASBR,GBR,A0_RES,,2040,,4011.65737547648 -11,RELCHP,GBR,A0_RES,,2040,,802.3314750952961 -12,GASCGT,GBR,A0_ELC,,2040,,3.7231090668357614 -13,GASPRC,GBR,A0_GPR,,2040,,94.9477829022087 -14,GASDRV,GBR,A0_GEX,,2040,,99.6951720473196 +10,RGASBR,GBR,A0_RES,,2040,,4011.6573754764804 +11,RELCHP,GBR,A0_RES,,2040,,755.8189695999995 +12,GASCGT,GBR,A0_ELC,,2040,,3.7231090668357543 +13,GASPRC,GBR,A0_GPR,,2040,,94.94778290220857 +14,GASDRV,GBR,A0_GEX,,2040,,99.69517204731937 diff --git a/tests/data/simple_npv/commodity_flows.csv b/tests/data/simple_npv/commodity_flows.csv index b9bef385b..e59783f2e 100644 --- a/tests/data/simple_npv/commodity_flows.csv +++ b/tests/data/simple_npv/commodity_flows.csv @@ -245,9 +245,9 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2030,3,GASNAT,winter.day,-11.975343788321101 2030,3,ELCTRI,winter.day,7.9835625255474 2030,3,CO2EMT,winter.day,612.2993278968578 -2030,3,GASNAT,winter.peak,-3.592603124999987 -2030,3,ELCTRI,winter.peak,2.395068749999991 -2030,3,CO2EMT,winter.peak,183.6897977812493 +2030,3,GASNAT,winter.peak,-3.592603124999991 +2030,3,ELCTRI,winter.peak,2.395068749999994 +2030,3,CO2EMT,winter.peak,183.68979778124952 2030,3,GASNAT,winter.evening,-4.790137538321099 2030,3,ELCTRI,winter.evening,3.1934250255473997 2030,3,CO2EMT,winter.evening,244.9197323343578 @@ -291,8 +291,8 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2030,5,RSHEAT,winter.night,29.165208466660005 2030,5,ELCTRI,winter.day,-13.749312543997803 2030,5,RSHEAT,winter.day,41.664583466660005 -2030,5,ELCTRI,winter.peak,-3.7700627310601202 -2030,5,RSHEAT,winter.peak,11.424432518364 +2030,5,ELCTRI,winter.peak,-4.124793749999996 +2030,5,RSHEAT,winter.peak,12.499374999999986 2030,5,ELCTRI,winter.evening,-5.499725043997801 2030,5,RSHEAT,winter.evening,16.66583346666 2030,5,ELCTRI,peak.night,-9.624518793997803 @@ -323,8 +323,8 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2030,6,RSHEAT,winter.night,38.1262161554 2030,6,ELCTRI,winter.day,-62.922897981636005 2030,6,RSHEAT,winter.day,190.6754484292 -2030,6,ELCTRI,winter.peak,-33.930564579541084 -2030,6,RSHEAT,winter.peak,102.81989266527602 +2030,6,ELCTRI,winter.peak,-33.57583356060121 +2030,6,RSHEAT,winter.peak,101.74495018364003 2030,6,ELCTRI,winter.evening,-20.500356308256002 2030,6,RSHEAT,winter.evening,62.1222918432 2030,6,ELCTRI,peak.night,-5.931428563750801 @@ -501,9 +501,9 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,3,GASNAT,winter.day,-0.0 2040,3,ELCTRI,winter.day,0.0 2040,3,CO2EMT,winter.day,0.0 -2040,3,GASNAT,winter.peak,-3.592603125 -2040,3,ELCTRI,winter.peak,2.39506875 -2040,3,CO2EMT,winter.peak,183.68979778124998 +2040,3,GASNAT,winter.peak,-3.5926031250000054 +2040,3,ELCTRI,winter.peak,2.3950687500000036 +2040,3,CO2EMT,winter.peak,183.68979778125026 2040,3,GASNAT,winter.evening,-0.0 2040,3,ELCTRI,winter.evening,0.0 2040,3,CO2EMT,winter.evening,0.0 @@ -543,22 +543,22 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,3,GASNAT,autumn.evening,-4.790137538321099 2040,3,ELCTRI,autumn.evening,3.1934250255473997 2040,3,CO2EMT,autumn.evening,244.9197323343578 -2040,6,ELCTRI,winter.night,-5.061505788542775 -2040,6,RSHEAT,winter.night,15.337896328917502 -2040,6,ELCTRI,winter.day,-56.55495318197654 -2040,6,RSHEAT,winter.day,171.3786460059895 -2040,6,ELCTRI,winter.peak,-33.09617334768097 -2040,6,RSHEAT,winter.peak,100.29143438691202 -2040,6,ELCTRI,winter.evening,-17.498740582437023 -2040,6,RSHEAT,winter.evening,53.02648661344552 +2040,6,ELCTRI,winter.night,-6.180712957139726 +2040,6,RSHEAT,winter.night,18.729433203453716 +2040,6,ELCTRI,winter.day,-58.153820563493746 +2040,6,RSHEAT,winter.day,176.22369867725376 +2040,6,ELCTRI,winter.peak,-33.57583356060121 +2040,6,RSHEAT,winter.peak,101.74495018364003 +2040,6,ELCTRI,winter.evening,-18.138287538113726 +2040,6,RSHEAT,winter.evening,54.964507691253715 2040,6,ELCTRI,peak.night,-0.0 2040,6,RSHEAT,peak.night,0.0 -2040,6,ELCTRI,peak.day,-17.803655141338936 -2040,6,RSHEAT,peak.day,53.950470125269504 -2040,6,ELCTRI,peak.peak,-17.074751593584963 -2040,6,RSHEAT,peak.peak,51.741671495712005 -2040,6,ELCTRI,peak.evening,-4.34585015950982 -2040,6,RSHEAT,peak.evening,13.169242907605515 +2040,6,ELCTRI,peak.day,-19.402522522856138 +2040,6,RSHEAT,peak.day,58.795522796533746 +2040,6,ELCTRI,peak.peak,-17.554411806505207 +2040,6,RSHEAT,peak.peak,53.195187292440025 +2040,6,ELCTRI,peak.evening,-4.985397115186524 +2040,6,RSHEAT,peak.evening,15.10726398541371 2040,6,ELCTRI,summer.night,-0.0 2040,6,RSHEAT,summer.night,0.0 2040,6,ELCTRI,summer.day,-0.0 @@ -569,36 +569,36 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,6,RSHEAT,summer.evening,0.0 2040,6,ELCTRI,autumn.night,-0.0 2040,6,RSHEAT,autumn.night,0.0 -2040,6,ELCTRI,autumn.day,-8.911686154611735 -2040,6,RSHEAT,autumn.day,27.0051095594295 -2040,6,ELCTRI,autumn.peak,-12.00209765122236 -2040,6,RSHEAT,autumn.peak,36.369992882492 -2040,6,ELCTRI,autumn.evening,-1.1043090676284177 -2040,6,RSHEAT,autumn.evening,3.346391114025508 -2040,7,GASNAT,winter.night,-8.672137770067362 -2040,7,ELCTRI,winter.night,5.781425180044908 -2040,7,CO2EMT,winter.night,443.4064041835442 +2040,6,ELCTRI,autumn.day,-10.510553536128935 +2040,6,RSHEAT,autumn.day,31.85016223069374 +2040,6,ELCTRI,autumn.peak,-12.481757864142606 +2040,6,RSHEAT,autumn.peak,37.82350867922002 +2040,6,ELCTRI,autumn.evening,-1.743856023305122 +2040,6,RSHEAT,autumn.evening,5.284412191833702 +2040,7,GASNAT,winter.night,-8.672137770067387 +2040,7,ELCTRI,winter.night,5.781425180044924 +2040,7,CO2EMT,winter.night,443.4064041835454 2040,7,GASNAT,winter.day,-115.58957668948185 2040,7,ELCTRI,winter.day,77.0597177929879 2040,7,CO2EMT,winter.day,5910.0950561332065 2040,7,GASNAT,winter.peak,-50.00146265174415 2040,7,ELCTRI,winter.peak,33.3343084344961 2040,7,CO2EMT,winter.peak,2556.5747853836783 -2040,7,GASNAT,winter.evening,-31.602520833406487 -2040,7,ELCTRI,winter.evening,21.06834722227099 -2040,7,CO2EMT,winter.evening,1615.8368902120735 +2040,7,GASNAT,winter.evening,-31.602520833406494 +2040,7,ELCTRI,winter.evening,21.068347222270997 +2040,7,CO2EMT,winter.evening,1615.836890212074 2040,7,GASNAT,peak.night,-12.945478067876259 2040,7,ELCTRI,peak.night,8.630318711917505 2040,7,CO2EMT,peak.night,661.902293610513 -2040,7,GASNAT,peak.day,-28.195365763953824 -2040,7,ELCTRI,peak.day,18.79691050930255 -2040,7,CO2EMT,peak.day,1441.6290515109588 -2040,7,GASNAT,peak.peak,-29.852340532029025 -2040,7,ELCTRI,peak.peak,19.901560354686016 -2040,7,CO2EMT,peak.peak,1526.3501714026438 -2040,7,GASNAT,peak.evening,-8.350279889732777 -2040,7,ELCTRI,peak.evening,5.566853259821851 -2040,7,CO2EMT,peak.evening,426.94981076203686 +2040,7,GASNAT,peak.day,-28.195365763953866 +2040,7,ELCTRI,peak.day,18.796910509302577 +2040,7,CO2EMT,peak.day,1441.629051510961 +2040,7,GASNAT,peak.peak,-29.85234053202903 +2040,7,ELCTRI,peak.peak,19.90156035468602 +2040,7,CO2EMT,peak.peak,1526.350171402644 +2040,7,GASNAT,peak.evening,-8.35027988973279 +2040,7,ELCTRI,peak.evening,5.566853259821859 +2040,7,CO2EMT,peak.evening,426.94981076203743 2040,7,GASNAT,summer.night,-0.0 2040,7,ELCTRI,summer.night,0.0 2040,7,CO2EMT,summer.night,0.0 @@ -611,21 +611,21 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,7,GASNAT,summer.evening,-0.0 2040,7,ELCTRI,summer.evening,0.0 2040,7,CO2EMT,summer.evening,0.0 -2040,7,GASNAT,autumn.night,-3.1496282842931045 -2040,7,ELCTRI,autumn.night,2.0997521895287363 -2040,7,CO2EMT,autumn.night,161.04049417590642 -2040,7,GASNAT,autumn.day,-15.411826378475155 -2040,7,ELCTRI,autumn.day,10.274550918983437 -2040,7,CO2EMT,autumn.day,788.0066827314346 +2040,7,GASNAT,autumn.night,-3.1496282842931285 +2040,7,ELCTRI,autumn.night,2.0997521895287523 +2040,7,CO2EMT,autumn.night,161.04049417590764 +2040,7,GASNAT,autumn.day,-15.411826378475192 +2040,7,ELCTRI,autumn.day,10.274550918983461 +2040,7,CO2EMT,autumn.day,788.0066827314365 2040,7,GASNAT,autumn.peak,-24.498349283368178 2040,7,ELCTRI,autumn.peak,16.332232855578784 2040,7,CO2EMT,autumn.peak,1252.6005988586148 2040,7,GASNAT,autumn.evening,-10.563140342287216 2040,7,ELCTRI,autumn.evening,7.04209356152481 2040,7,CO2EMT,autumn.evening,540.0933657011452 -2040,8,GASPRD,winter.night,-67.3110616681475 -2040,8,GASNAT,winter.night,64.10577301728333 -2040,8,CO2EMT,winter.night,163.88640871868483 +2040,8,GASPRD,winter.night,-67.31106166814753 +2040,8,GASNAT,winter.night,64.10577301728335 +2040,8,CO2EMT,winter.night,163.88640871868492 2040,8,GASPRD,winter.day,-96.15865939405025 2040,8,GASNAT,winter.day,91.57967561338118 2040,8,CO2EMT,winter.day,234.12344070560903 @@ -638,9 +638,9 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,8,GASPRD,peak.night,-0.0 2040,8,GASNAT,peak.night,0.0 2040,8,CO2EMT,peak.night,0.0 -2040,8,GASPRD,peak.day,-50.23250106230869 -2040,8,GASNAT,peak.day,47.840477202198755 -2040,8,CO2EMT,peak.day,122.30417996742113 +2040,8,GASPRD,peak.day,-50.23250106230873 +2040,8,GASNAT,peak.day,47.840477202198784 +2040,8,CO2EMT,peak.day,122.3041799674212 2040,8,GASPRD,peak.peak,-28.84759772590276 2040,8,GASNAT,peak.peak,27.473902596097865 2040,8,CO2EMT,peak.peak,70.2370319869242 @@ -671,8 +671,8 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,8,GASPRD,autumn.evening,-38.46346394224472 2040,8,GASNAT,autumn.evening,36.63187042118545 2040,8,CO2EMT,autumn.evening,93.6493767317606 -2040,9,GASPRD,winter.night,67.3110616681474 -2040,9,CO2EMT,winter.night,344.1614583092377 +2040,9,GASPRD,winter.night,67.31106166814752 +2040,9,CO2EMT,winter.night,344.1614583092383 2040,9,GASPRD,winter.day,96.1586593940502 2040,9,CO2EMT,winter.day,491.6592254817787 2040,9,GASPRD,winter.peak,28.847597725902748 @@ -681,8 +681,8 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,9,CO2EMT,winter.evening,196.66369113669717 2040,9,GASPRD,peak.night,0.0 2040,9,CO2EMT,peak.night,0.0 -2040,9,GASPRD,peak.day,50.23250106230863 -2040,9,CO2EMT,peak.day,256.83877793158405 +2040,9,GASPRD,peak.day,50.23250106230867 +2040,9,CO2EMT,peak.day,256.8387779315843 2040,9,GASPRD,peak.peak,28.847597725902748 2040,9,CO2EMT,peak.peak,147.49776717254076 2040,9,GASPRD,peak.evening,38.4634639422447 @@ -697,8 +697,8 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,9,CO2EMT,summer.evening,3.8908129899829973 2040,9,GASPRD,autumn.night,0.0 2040,9,CO2EMT,autumn.night,0.0 -2040,9,GASPRD,autumn.day,18.196310683644835 -2040,9,CO2EMT,autumn.day,93.03773652547605 +2040,9,GASPRD,autumn.day,18.196310683644864 +2040,9,CO2EMT,autumn.day,93.03773652547619 2040,9,GASPRD,autumn.peak,28.847597725902748 2040,9,CO2EMT,autumn.peak,147.49776717254076 2040,9,GASPRD,autumn.evening,38.4634639422447 @@ -751,22 +751,22 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,10,GASNAT,autumn.evening,-0.0 2040,10,RSHEAT,autumn.evening,0.0 2040,10,CO2EMT,autumn.evening,0.0 -2040,11,ELCTRI,winter.night,-19.306101207737026 -2040,11,RSHEAT,winter.night,58.503336993142504 -2040,11,ELCTRI,winter.day,-27.58014454465727 -2040,11,RSHEAT,winter.day,83.57619558987051 -2040,11,ELCTRI,winter.peak,-8.274043336920242 -2040,11,RSHEAT,winter.peak,25.072858596728004 -2040,11,ELCTRI,winter.evening,-11.032057870816784 -2040,11,RSHEAT,winter.evening,33.43047839641449 +2040,11,ELCTRI,winter.night,-18.186894039140075 +2040,11,RSHEAT,winter.night,55.11180011860629 +2040,11,ELCTRI,winter.day,-25.98127716314007 +2040,11,RSHEAT,winter.day,78.73114291860627 +2040,11,ELCTRI,winter.peak,-7.794383123999995 +2040,11,RSHEAT,winter.peak,23.619342799999984 +2040,11,ELCTRI,winter.evening,-10.392510915140079 +2040,11,RSHEAT,winter.evening,31.4924573186063 2040,11,ELCTRI,peak.night,-17.070085004748602 2040,11,RSHEAT,peak.night,51.727530317420005 -2040,11,ELCTRI,peak.day,-27.58014454465727 -2040,11,RSHEAT,peak.day,83.57619558987051 -2040,11,ELCTRI,peak.peak,-8.274043336920242 -2040,11,RSHEAT,peak.peak,25.072858596728004 -2040,11,ELCTRI,peak.evening,-11.032057870816784 -2040,11,RSHEAT,peak.evening,33.43047839641449 +2040,11,ELCTRI,peak.day,-25.98127716314007 +2040,11,RSHEAT,peak.day,78.73114291860627 +2040,11,ELCTRI,peak.peak,-7.794383123999995 +2040,11,RSHEAT,peak.peak,23.619342799999984 +2040,11,ELCTRI,peak.evening,-10.392510915140079 +2040,11,RSHEAT,peak.evening,31.4924573186063 2040,11,ELCTRI,summer.night,-2.1199938741564 2040,11,RSHEAT,summer.night,6.424223861080001 2040,11,ELCTRI,summer.day,-3.5321677056534004 @@ -777,36 +777,36 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,11,RSHEAT,summer.evening,2.62438618894 2040,11,ELCTRI,autumn.night,-13.865408900653202 2040,11,RSHEAT,autumn.night,42.016390608040005 -2040,11,ELCTRI,autumn.day,-27.58014454465727 -2040,11,RSHEAT,autumn.day,83.57619558987051 -2040,11,ELCTRI,autumn.peak,-8.274043336920242 -2040,11,RSHEAT,autumn.peak,25.072858596728004 -2040,11,ELCTRI,autumn.evening,-11.032057870816784 -2040,11,RSHEAT,autumn.evening,33.43047839641449 -2040,12,GASNAT,winter.night,-12.843562867713421 -2040,12,ELCTRI,winter.night,8.562375245142281 -2040,12,CO2EMT,winter.night,656.6913694261872 +2040,11,ELCTRI,autumn.day,-25.98127716314007 +2040,11,RSHEAT,autumn.day,78.73114291860627 +2040,11,ELCTRI,autumn.peak,-7.794383123999995 +2040,11,RSHEAT,autumn.peak,23.619342799999984 +2040,11,ELCTRI,autumn.evening,-10.392510915140079 +2040,11,RSHEAT,autumn.evening,31.4924573186063 +2040,12,GASNAT,winter.night,-12.843562867713398 +2040,12,ELCTRI,winter.night,8.562375245142265 +2040,12,CO2EMT,winter.night,656.6913694261859 2040,12,GASNAT,winter.day,-0.0 2040,12,ELCTRI,winter.day,0.0 2040,12,CO2EMT,winter.day,0.0 -2040,12,GASNAT,winter.peak,-5.504384060999996 -2040,12,ELCTRI,winter.peak,3.6695893739999974 -2040,12,CO2EMT,winter.peak,281.43915703892975 -2040,12,GASNAT,winter.evening,-7.339178806713424 -2040,12,ELCTRI,winter.evening,4.892785871142283 -2040,12,CO2EMT,winter.evening,375.2522123872573 +2040,12,GASNAT,winter.peak,-5.5043840609999855 +2040,12,ELCTRI,winter.peak,3.6695893739999903 +2040,12,CO2EMT,winter.peak,281.43915703892924 +2040,12,GASNAT,winter.evening,-7.339178806713411 +2040,12,ELCTRI,winter.evening,4.892785871142274 +2040,12,CO2EMT,winter.evening,375.25221238725663 2040,12,GASNAT,peak.night,-0.0 2040,12,ELCTRI,peak.night,0.0 2040,12,CO2EMT,peak.night,0.0 -2040,12,GASNAT,peak.day,-18.34794692871342 -2040,12,ELCTRI,peak.day,12.231964619142278 -2040,12,CO2EMT,peak.day,938.130526465117 -2040,12,GASNAT,peak.peak,-5.504384060999996 -2040,12,ELCTRI,peak.peak,3.6695893739999974 -2040,12,CO2EMT,peak.peak,281.43915703892975 -2040,12,GASNAT,peak.evening,-7.339178806713424 -2040,12,ELCTRI,peak.evening,4.892785871142283 -2040,12,CO2EMT,peak.evening,375.2522123872573 +2040,12,GASNAT,peak.day,-18.347946928713384 +2040,12,ELCTRI,peak.day,12.231964619142255 +2040,12,CO2EMT,peak.day,938.1305264651152 +2040,12,GASNAT,peak.peak,-5.5043840609999855 +2040,12,ELCTRI,peak.peak,3.6695893739999903 +2040,12,CO2EMT,peak.peak,281.43915703892924 +2040,12,GASNAT,peak.evening,-7.339178806713411 +2040,12,ELCTRI,peak.evening,4.892785871142274 +2040,12,CO2EMT,peak.evening,375.25221238725663 2040,12,GASNAT,summer.night,-0.0 2040,12,ELCTRI,summer.night,0.0 2040,12,CO2EMT,summer.night,0.0 @@ -819,42 +819,42 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,12,GASNAT,summer.evening,-0.0 2040,12,ELCTRI,summer.evening,0.0 2040,12,CO2EMT,summer.evening,0.0 -2040,12,GASNAT,autumn.night,-12.843562867713421 -2040,12,ELCTRI,autumn.night,8.562375245142281 -2040,12,CO2EMT,autumn.night,656.6913694261872 -2040,12,GASNAT,autumn.day,-18.34794692871342 -2040,12,ELCTRI,autumn.day,12.231964619142278 -2040,12,CO2EMT,autumn.day,938.130526465117 +2040,12,GASNAT,autumn.night,-12.843562867713398 +2040,12,ELCTRI,autumn.night,8.562375245142265 +2040,12,CO2EMT,autumn.night,656.6913694261859 +2040,12,GASNAT,autumn.day,-18.347946928713384 +2040,12,ELCTRI,autumn.day,12.231964619142255 +2040,12,CO2EMT,autumn.day,938.1305264651152 2040,12,GASNAT,autumn.peak,-0.0 2040,12,ELCTRI,autumn.peak,0.0 2040,12,CO2EMT,autumn.peak,0.0 2040,12,GASNAT,autumn.evening,-0.0 2040,12,ELCTRI,autumn.evening,0.0 2040,12,CO2EMT,autumn.evening,0.0 -2040,13,GASPRD,winter.night,-7.269439661682078 -2040,13,GASNAT,winter.night,6.923275868268646 -2040,13,CO2EMT,winter.night,17.699354757228793 -2040,13,GASPRD,winter.day,-10.384913788160802 -2040,13,GASNAT,winter.day,9.890394083962669 -2040,13,CO2EMT,winter.day,25.284792475650566 -2040,13,GASPRD,winter.peak,-3.115474126478723 -2040,13,GASNAT,winter.peak,2.967118215694022 -2040,13,CO2EMT,winter.peak,7.585437718421768 -2040,13,GASPRD,winter.evening,-4.153965535203355 -2040,13,GASNAT,winter.evening,3.9561576525746234 -2040,13,CO2EMT,winter.evening,10.113917038807026 -2040,13,GASPRD,peak.night,-7.269439661682078 -2040,13,GASNAT,peak.night,6.923275868268646 -2040,13,CO2EMT,peak.night,17.699354757228793 -2040,13,GASPRD,peak.day,-10.384913788160802 -2040,13,GASNAT,peak.day,9.890394083962669 -2040,13,CO2EMT,peak.day,25.284792475650566 -2040,13,GASPRD,peak.peak,-3.115474126478723 -2040,13,GASNAT,peak.peak,2.967118215694022 -2040,13,CO2EMT,peak.peak,7.585437718421768 -2040,13,GASPRD,peak.evening,-4.153965535203355 -2040,13,GASNAT,peak.evening,3.9561576525746234 -2040,13,CO2EMT,peak.evening,10.113917038807026 +2040,13,GASPRD,winter.night,-7.269439661682069 +2040,13,GASNAT,winter.night,6.923275868268637 +2040,13,CO2EMT,winter.night,17.69935475722877 +2040,13,GASPRD,winter.day,-10.384913788160787 +2040,13,GASNAT,winter.day,9.890394083962654 +2040,13,CO2EMT,winter.day,25.284792475650526 +2040,13,GASPRD,winter.peak,-3.115474126478719 +2040,13,GASNAT,winter.peak,2.967118215694018 +2040,13,CO2EMT,winter.peak,7.585437718421757 +2040,13,GASPRD,winter.evening,-4.1539655352033495 +2040,13,GASNAT,winter.evening,3.956157652574618 +2040,13,CO2EMT,winter.evening,10.113917038807012 +2040,13,GASPRD,peak.night,-7.269439661682069 +2040,13,GASNAT,peak.night,6.923275868268637 +2040,13,CO2EMT,peak.night,17.69935475722877 +2040,13,GASPRD,peak.day,-10.384913788160787 +2040,13,GASNAT,peak.day,9.890394083962654 +2040,13,CO2EMT,peak.day,25.284792475650526 +2040,13,GASPRD,peak.peak,-3.115474126478719 +2040,13,GASNAT,peak.peak,2.967118215694018 +2040,13,CO2EMT,peak.peak,7.585437718421757 +2040,13,GASPRD,peak.evening,-4.1539655352033495 +2040,13,GASNAT,peak.evening,3.956157652574618 +2040,13,CO2EMT,peak.evening,10.113917038807012 2040,13,GASPRD,summer.night,-0.0 2040,13,GASNAT,summer.night,0.0 2040,13,CO2EMT,summer.night,0.0 @@ -879,22 +879,22 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,13,GASPRD,autumn.evening,-0.0 2040,13,GASNAT,autumn.evening,0.0 2040,13,CO2EMT,autumn.evening,0.0 -2040,14,GASPRD,winter.night,7.269439661682112 -2040,14,CO2EMT,winter.night,37.16864499018064 -2040,14,GASPRD,winter.day,10.38491378816085 -2040,14,CO2EMT,winter.day,53.09806419886643 -2040,14,GASPRD,winter.peak,3.1154741264787376 -2040,14,CO2EMT,winter.peak,15.929419208685786 -2040,14,GASPRD,winter.evening,4.1539655352033735 -2040,14,CO2EMT,winter.evening,21.239225781494852 -2040,14,GASPRD,peak.night,7.269439661682112 -2040,14,CO2EMT,peak.night,37.16864499018064 -2040,14,GASPRD,peak.day,10.38491378816085 -2040,14,CO2EMT,peak.day,53.09806419886643 -2040,14,GASPRD,peak.peak,3.1154741264787376 -2040,14,CO2EMT,peak.peak,15.929419208685786 -2040,14,GASPRD,peak.evening,4.1539655352033735 -2040,14,CO2EMT,peak.evening,21.239225781494852 +2040,14,GASPRD,winter.night,7.269439661682095 +2040,14,CO2EMT,winter.night,37.16864499018055 +2040,14,GASPRD,winter.day,10.384913788160826 +2040,14,CO2EMT,winter.day,53.09806419886631 +2040,14,GASPRD,winter.peak,3.1154741264787305 +2040,14,CO2EMT,winter.peak,15.92941920868575 +2040,14,GASPRD,winter.evening,4.153965535203365 +2040,14,CO2EMT,winter.evening,21.239225781494806 +2040,14,GASPRD,peak.night,7.269439661682095 +2040,14,CO2EMT,peak.night,37.16864499018055 +2040,14,GASPRD,peak.day,10.384913788160826 +2040,14,CO2EMT,peak.day,53.09806419886631 +2040,14,GASPRD,peak.peak,3.1154741264787305 +2040,14,CO2EMT,peak.peak,15.92941920868575 +2040,14,GASPRD,peak.evening,4.153965535203365 +2040,14,CO2EMT,peak.evening,21.239225781494806 2040,14,GASPRD,summer.night,0.0 2040,14,CO2EMT,summer.night,0.0 2040,14,GASPRD,summer.day,0.0 @@ -903,11 +903,11 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,14,CO2EMT,summer.peak,0.0 2040,14,GASPRD,summer.evening,0.0 2040,14,CO2EMT,summer.evening,0.0 -2040,14,GASPRD,autumn.night,7.269439661682112 -2040,14,CO2EMT,autumn.night,37.16864499018064 -2040,14,GASPRD,autumn.day,10.38491378816085 -2040,14,CO2EMT,autumn.day,53.09806419886643 -2040,14,GASPRD,autumn.peak,3.1154741264787376 -2040,14,CO2EMT,autumn.peak,15.929419208685786 -2040,14,GASPRD,autumn.evening,4.1539655352033735 -2040,14,CO2EMT,autumn.evening,21.239225781494852 +2040,14,GASPRD,autumn.night,7.269439661682095 +2040,14,CO2EMT,autumn.night,37.16864499018055 +2040,14,GASPRD,autumn.day,10.384913788160826 +2040,14,CO2EMT,autumn.day,53.09806419886631 +2040,14,GASPRD,autumn.peak,3.1154741264787305 +2040,14,CO2EMT,autumn.peak,15.92941920868575 +2040,14,GASPRD,autumn.evening,4.153965535203365 +2040,14,CO2EMT,autumn.evening,21.239225781494806 diff --git a/tests/data/two_regions/assets.csv b/tests/data/two_regions/assets.csv index 1c3adf7b7..9a10f0e74 100644 --- a/tests/data/two_regions/assets.csv +++ b/tests/data/two_regions/assets.csv @@ -14,20 +14,20 @@ asset_id,process_id,region_id,agent_id,group_id,commission_year,decommission_yea 12,heatpump,R1,A1_RES,,2035,,6.11998776002448 13,gasboiler,R2,A1_RES,,2035,,2.635956728086541 14,windturbine,R1,A1_PWR,,2035,,5.875188249623504 -15,gassupply1,R2,A1_GAS,,2035,,5.7871525856948285 +15,gassupply1,R2,A1_GAS,,2035,,4.93576292847414 16,heatpump,R1,A1_RES,,2040,,5.939988120023764 17,gasboiler,R2,A1_RES,,2040,,5.939988120023761 18,windturbine,R1,A1_PWR,,2040,,16.775966448067106 19,gasCCGT,R1,A1_PWR,,2040,2045,2.6567946864106284 -20,gassupply1,R2,A1_GAS,,2040,,7.165229829540341 +20,gassupply1,R2,A1_GAS,,2040,,6.8903862192275644 21,heatpump,R1,A1_RES,,2045,,5.939988120023764 22,heatpump,R2,A1_RES,,2045,,4.787990424019152 23,gasboiler,R2,A1_RES,,2045,,1.151997696004609 24,windturbine,R1,A1_PWR,,2045,,8.32030335939329 25,gasCCGT,R2,A1_PWR,,2045,,1.9151961696076611 -26,gassupply1,R2,A1_GAS,,2045,,8.464503134993729 +26,gassupply1,R2,A1_GAS,,2045,,6.496366527266936 27,heatpump,R1,A1_RES,,2050,,6.11998776002448 28,gasboiler,R2,A1_RES,,2050,,6.119987760024477 29,windturbine,R1,A1_PWR,,2050,,5.703540592918811 30,gasCCGT,R2,A1_PWR,,2050,,0.6883186233627548 -31,gassupply1,R2,A1_GAS,,2050,,10.233644812710374 +31,gassupply1,R2,A1_GAS,,2050,,8.84570838858322 diff --git a/tests/data/two_regions/commodity_flows.csv b/tests/data/two_regions/commodity_flows.csv index 68c8cb80f..e321c5a85 100644 --- a/tests/data/two_regions/commodity_flows.csv +++ b/tests/data/two_regions/commodity_flows.csv @@ -299,12 +299,12 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2030,11,electricity,all-year.late-peak,0.39600000000000035 2030,11,wind,all-year.evening,-0.9960000000000002 2030,11,electricity,all-year.evening,0.9960000000000002 -2035,2,gas,all-year.night,1.336 -2035,2,gas,all-year.morning,2.302152 -2035,2,gas,all-year.afternoon,1.336 -2035,2,gas,all-year.early-peak,0.8119199999999989 -2035,2,gas,all-year.late-peak,4.000008 -2035,2,gas,all-year.evening,2.5026367999999994 +2035,2,gas,all-year.night,0.0 +2035,2,gas,all-year.morning,0.6495731200000006 +2035,2,gas,all-year.afternoon,0.5133712000000006 +2035,2,gas,all-year.early-peak,1.4795232000000005 +2035,2,gas,all-year.late-peak,4.000007999999999 +2035,2,gas,all-year.evening,3.4621519999999997 2035,3,gas,all-year.night,-0.0 2035,3,heat,all-year.night,0.0 2035,3,CO2f,all-year.night,0.0 @@ -349,46 +349,46 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2035,5,heat,all-year.evening,2.394 2035,6,wind,all-year.night,-0.0 2035,6,electricity,all-year.night,0.0 -2035,6,wind,all-year.morning,-1.2 -2035,6,electricity,all-year.morning,1.2 -2035,6,wind,all-year.afternoon,-0.0 -2035,6,electricity,all-year.afternoon,0.0 -2035,6,wind,all-year.early-peak,-0.2039999999999998 -2035,6,electricity,all-year.early-peak,0.2039999999999998 -2035,6,wind,all-year.late-peak,-0.8304000000000002 -2035,6,electricity,all-year.late-peak,0.8304000000000002 -2035,6,wind,all-year.evening,-1.5959999999999999 -2035,6,electricity,all-year.evening,1.5959999999999999 -2035,8,gas,all-year.night,-1.336 -2035,8,electricity,all-year.night,0.8 -2035,8,CO2f,all-year.night,73.336 -2035,8,gas,all-year.morning,-1.5991920000000002 -2035,8,electricity,all-year.morning,0.9576000000000001 -2035,8,CO2f,all-year.morning,87.78319200000001 +2035,6,wind,all-year.morning,-0.0 +2035,6,electricity,all-year.morning,0.0 +2035,6,wind,all-year.afternoon,-0.8 +2035,6,electricity,all-year.afternoon,0.8 +2035,6,wind,all-year.early-peak,-0.22079999999999944 +2035,6,electricity,all-year.early-peak,0.22079999999999944 +2035,6,wind,all-year.late-peak,-1.5959999999999999 +2035,6,electricity,all-year.late-peak,1.5959999999999999 +2035,6,wind,all-year.evening,-0.6427199999999991 +2035,6,electricity,all-year.evening,0.6427199999999991 +2035,8,gas,all-year.night,-0.8226287999999995 +2035,8,electricity,all-year.night,0.4925920958083829 +2035,8,CO2f,all-year.night,45.15591742275446 +2035,8,gas,all-year.morning,-0.7692419200000002 +2035,8,electricity,all-year.morning,0.4606239041916169 +2035,8,CO2f,all-year.morning,42.225393297245525 2035,8,gas,all-year.afternoon,-1.336 2035,8,electricity,all-year.afternoon,0.8 2035,8,CO2f,all-year.afternoon,73.336 -2035,8,gas,all-year.early-peak,-1.0734873599999992 -2035,8,electricity,all-year.early-peak,0.6428068023952092 -2035,8,CO2f,all-year.early-peak,58.92609957556883 -2035,8,gas,all-year.late-peak,-0.7815753600000006 -2035,8,electricity,all-year.late-peak,0.4680091976047908 -2035,8,CO2f,all-year.late-peak,42.902403144431176 -2035,8,gas,all-year.evening,-0.6396767999999997 -2035,8,electricity,all-year.evening,0.3830399999999998 -2035,8,CO2f,all-year.evening,35.11327679999999 -2035,9,wind,all-year.night,-0.0 -2035,9,electricity,all-year.night,0.0 -2035,9,wind,all-year.morning,-0.0 -2035,9,electricity,all-year.morning,0.0 +2035,8,gas,all-year.early-peak,-1.5991920000000002 +2035,8,electricity,all-year.early-peak,0.9576000000000001 +2035,8,CO2f,all-year.early-peak,87.78319200000001 +2035,8,gas,all-year.late-peak,-0.6396767999999997 +2035,8,electricity,all-year.late-peak,0.3830399999999998 +2035,8,CO2f,all-year.late-peak,35.11327679999999 +2035,8,gas,all-year.evening,-1.5991920000000002 +2035,8,electricity,all-year.evening,0.9576000000000001 +2035,8,CO2f,all-year.evening,87.78319200000001 +2035,9,wind,all-year.night,-0.30740790419161707 +2035,9,electricity,all-year.night,0.30740790419161707 +2035,9,wind,all-year.morning,-0.4969760958083832 +2035,9,electricity,all-year.morning,0.4969760958083832 2035,9,wind,all-year.afternoon,-0.0 2035,9,electricity,all-year.afternoon,0.0 -2035,9,wind,all-year.early-peak,-0.314793197604791 -2035,9,electricity,all-year.early-peak,0.314793197604791 -2035,9,wind,all-year.late-peak,-0.4895908023952093 -2035,9,electricity,all-year.late-peak,0.4895908023952093 -2035,9,wind,all-year.evening,-0.5745600000000003 -2035,9,electricity,all-year.evening,0.5745600000000003 +2035,9,wind,all-year.early-peak,-0.0 +2035,9,electricity,all-year.early-peak,0.0 +2035,9,wind,all-year.late-peak,-0.5745600000000003 +2035,9,electricity,all-year.late-peak,0.5745600000000003 +2035,9,wind,all-year.evening,-0.0 +2035,9,electricity,all-year.evening,0.0 2035,10,electricity,all-year.night,-0.392 2035,10,heat,all-year.night,0.98 2035,10,electricity,all-year.morning,-0.39600000000000024 @@ -401,18 +401,18 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2035,10,heat,all-year.late-peak,0.9900000000000005 2035,10,electricity,all-year.evening,-0.39600000000000024 2035,10,heat,all-year.evening,0.9900000000000005 -2035,11,wind,all-year.night,-0.0 -2035,11,electricity,all-year.night,0.0 -2035,11,wind,all-year.morning,-0.0 -2035,11,electricity,all-year.morning,0.0 -2035,11,wind,all-year.afternoon,-0.8 -2035,11,electricity,all-year.afternoon,0.8 -2035,11,wind,all-year.early-peak,-0.9960000000000002 -2035,11,electricity,all-year.early-peak,0.9960000000000002 -2035,11,wind,all-year.late-peak,-0.5903999999999997 -2035,11,electricity,all-year.late-peak,0.5903999999999997 -2035,11,wind,all-year.evening,-0.0 -2035,11,electricity,all-year.evening,0.0 +2035,11,wind,all-year.night,-0.8 +2035,11,electricity,all-year.night,0.8 +2035,11,wind,all-year.morning,-0.2207999999999995 +2035,11,electricity,all-year.morning,0.2207999999999995 +2035,11,wind,all-year.afternoon,-0.0 +2035,11,electricity,all-year.afternoon,0.0 +2035,11,wind,all-year.early-peak,-0.0 +2035,11,electricity,all-year.early-peak,0.0 +2035,11,wind,all-year.late-peak,-0.8040000000000005 +2035,11,electricity,all-year.late-peak,0.8040000000000005 +2035,11,wind,all-year.evening,-0.5656000000000005 +2035,11,electricity,all-year.evening,0.5656000000000005 2035,12,electricity,all-year.night,-0.40800000000000003 2035,12,heat,all-year.night,1.02 2035,12,electricity,all-year.morning,-0.40800000000000003 @@ -443,30 +443,30 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2035,13,gas,all-year.evening,-0.5096193199999994 2035,13,heat,all-year.evening,0.4393269999999996 2035,13,CO2f,all-year.evening,28.42885016999997 -2035,14,wind,all-year.night,-0.8 -2035,14,electricity,all-year.night,0.8 -2035,14,wind,all-year.morning,-0.0 -2035,14,electricity,all-year.morning,0.0 +2035,14,wind,all-year.night,-0.0 +2035,14,electricity,all-year.night,0.0 +2035,14,wind,all-year.morning,-0.9792000000000005 +2035,14,electricity,all-year.morning,0.9792000000000005 2035,14,wind,all-year.afternoon,-0.0 2035,14,electricity,all-year.afternoon,0.0 -2035,14,wind,all-year.early-peak,-0.0 -2035,14,electricity,all-year.early-peak,0.0 -2035,14,wind,all-year.late-peak,-0.9792000000000005 -2035,14,electricity,all-year.late-peak,0.9792000000000005 -2035,14,wind,all-year.evening,-0.004000000000000115 -2035,14,electricity,all-year.evening,0.004000000000000115 -2035,15,gas,all-year.night,0.0 -2035,15,gas,all-year.morning,0.0 -2035,15,gas,all-year.afternoon,0.0 -2035,15,gas,all-year.early-peak,0.9645273600000001 -2035,15,gas,all-year.late-peak,0.9645273600000001 +2035,14,wind,all-year.early-peak,-0.9792000000000005 +2035,14,electricity,all-year.early-peak,0.9792000000000005 +2035,14,wind,all-year.late-peak,-0.0 +2035,14,electricity,all-year.late-peak,0.0 +2035,14,wind,all-year.evening,-0.39168000000000047 +2035,14,electricity,all-year.evening,0.39168000000000047 +2035,15,gas,all-year.night,0.8226287999999995 +2035,15,gas,all-year.morning,0.8226287999999995 +2035,15,gas,all-year.afternoon,0.8226287999999995 +2035,15,gas,all-year.early-peak,0.8226287999999995 +2035,15,gas,all-year.late-peak,0.8226287999999995 2035,15,gas,all-year.evening,0.0 2040,2,gas,all-year.night,0.0 -2040,2,gas,all-year.morning,1.68214464 +2040,2,gas,all-year.morning,0.52151712 2040,2,gas,all-year.afternoon,0.0 -2040,2,gas,all-year.early-peak,1.9118246399999999 -2040,2,gas,all-year.late-peak,4.000008 -2040,2,gas,all-year.evening,2.303709439999999 +2040,2,gas,all-year.early-peak,2.876352 +2040,2,gas,all-year.late-peak,4.000007999999999 +2040,2,gas,all-year.evening,1.2972079999999995 2040,3,gas,all-year.night,-0.0 2040,3,heat,all-year.night,0.0 2040,3,CO2f,all-year.night,0.0 @@ -513,42 +513,42 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,6,electricity,all-year.night,0.0 2040,6,wind,all-year.morning,-0.0 2040,6,electricity,all-year.morning,0.0 -2040,6,wind,all-year.afternoon,-0.0 -2040,6,electricity,all-year.afternoon,0.0 -2040,6,wind,all-year.early-peak,-0.4019999999999998 -2040,6,electricity,all-year.early-peak,0.4019999999999998 -2040,6,wind,all-year.late-peak,-0.0 -2040,6,electricity,all-year.late-peak,0.0 -2040,6,wind,all-year.evening,-1.5959999999999999 -2040,6,electricity,all-year.evening,1.5959999999999999 +2040,6,wind,all-year.afternoon,-0.932 +2040,6,electricity,all-year.afternoon,0.932 +2040,6,wind,all-year.early-peak,-1.3980000000000001 +2040,6,electricity,all-year.early-peak,1.3980000000000001 +2040,6,wind,all-year.late-peak,-0.8207999999999999 +2040,6,electricity,all-year.late-peak,0.8207999999999999 +2040,6,wind,all-year.evening,-0.0 +2040,6,electricity,all-year.evening,0.0 2040,8,gas,all-year.night,-1.55644 2040,8,electricity,all-year.night,0.932 2040,8,CO2f,all-year.night,85.43644 -2040,8,gas,all-year.morning,-1.5991920000000002 -2040,8,electricity,all-year.morning,0.9576000000000001 -2040,8,CO2f,all-year.morning,87.78319200000001 -2040,8,gas,all-year.afternoon,-0.9849279999999996 -2040,8,electricity,all-year.afternoon,0.5897772455089818 -2040,8,CO2f,all-year.afternoon,54.06488009580836 +2040,8,gas,all-year.morning,-1.2153859200000001 +2040,8,electricity,all-year.morning,0.7277760000000001 +2040,8,CO2f,all-year.morning,66.71522592000001 +2040,8,gas,all-year.afternoon,-1.55644 +2040,8,electricity,all-year.afternoon,0.932 +2040,8,CO2f,all-year.afternoon,85.43644 2040,8,gas,all-year.early-peak,-1.5991920000000002 2040,8,electricity,all-year.early-peak,0.9576000000000001 2040,8,CO2f,all-year.early-peak,87.78319200000001 -2040,8,gas,all-year.late-peak,-0.8273827200000001 -2040,8,electricity,all-year.late-peak,0.49543875449101804 -2040,8,CO2f,all-year.late-peak,45.416870624191624 +2040,8,gas,all-year.late-peak,-0.6396767999999997 +2040,8,electricity,all-year.late-peak,0.3830399999999998 +2040,8,CO2f,all-year.late-peak,35.11327679999999 2040,8,gas,all-year.evening,-0.6396767999999997 2040,8,electricity,all-year.evening,0.3830399999999998 2040,8,CO2f,all-year.evening,35.11327679999999 2040,9,wind,all-year.night,-0.0 2040,9,electricity,all-year.night,0.0 -2040,9,wind,all-year.morning,-0.0 -2040,9,electricity,all-year.morning,0.0 -2040,9,wind,all-year.afternoon,-0.3422227544910183 -2040,9,electricity,all-year.afternoon,0.3422227544910183 +2040,9,wind,all-year.morning,-0.22982400000000003 +2040,9,electricity,all-year.morning,0.22982400000000003 +2040,9,wind,all-year.afternoon,-0.0 +2040,9,electricity,all-year.afternoon,0.0 2040,9,wind,all-year.early-peak,-0.0 2040,9,electricity,all-year.early-peak,0.0 -2040,9,wind,all-year.late-peak,-0.462161245508982 -2040,9,electricity,all-year.late-peak,0.462161245508982 +2040,9,wind,all-year.late-peak,-0.5745600000000003 +2040,9,electricity,all-year.late-peak,0.5745600000000003 2040,9,wind,all-year.evening,-0.5745600000000003 2040,9,electricity,all-year.evening,0.5745600000000003 2040,10,electricity,all-year.night,-0.12799999999999975 @@ -563,18 +563,18 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,10,heat,all-year.late-peak,0.9900000000000005 2040,10,electricity,all-year.evening,-0.39600000000000024 2040,10,heat,all-year.evening,0.9900000000000005 -2040,11,wind,all-year.night,-0.0 -2040,11,electricity,all-year.night,0.0 -2040,11,wind,all-year.morning,-0.19440000000000002 -2040,11,electricity,all-year.morning,0.19440000000000002 -2040,11,wind,all-year.afternoon,-0.932 -2040,11,electricity,all-year.afternoon,0.932 -2040,11,wind,all-year.early-peak,-0.9960000000000002 -2040,11,electricity,all-year.early-peak,0.9960000000000002 -2040,11,wind,all-year.late-peak,-0.0 -2040,11,electricity,all-year.late-peak,0.0 -2040,11,wind,all-year.evening,-0.2680000000000002 -2040,11,electricity,all-year.evening,0.2680000000000002 +2040,11,wind,all-year.night,-0.932 +2040,11,electricity,all-year.night,0.932 +2040,11,wind,all-year.morning,-0.0 +2040,11,electricity,all-year.morning,0.0 +2040,11,wind,all-year.afternoon,-0.0 +2040,11,electricity,all-year.afternoon,0.0 +2040,11,wind,all-year.early-peak,-0.0 +2040,11,electricity,all-year.early-peak,0.0 +2040,11,wind,all-year.late-peak,-0.9960000000000002 +2040,11,electricity,all-year.late-peak,0.9960000000000002 +2040,11,wind,all-year.evening,-0.0 +2040,11,electricity,all-year.evening,0.0 2040,12,electricity,all-year.night,-0.40800000000000003 2040,12,heat,all-year.night,1.02 2040,12,electricity,all-year.morning,-0.40800000000000003 @@ -613,16 +613,16 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,14,electricity,all-year.afternoon,0.0 2040,14,wind,all-year.early-peak,-0.0 2040,14,electricity,all-year.early-peak,0.0 -2040,14,wind,all-year.late-peak,-0.0 -2040,14,electricity,all-year.late-peak,0.0 +2040,14,wind,all-year.late-peak,-0.9792000000000005 +2040,14,electricity,all-year.late-peak,0.9792000000000005 2040,14,wind,all-year.evening,-0.0 2040,14,electricity,all-year.evening,0.0 -2040,15,gas,all-year.night,0.36223264 -2040,15,gas,all-year.morning,0.0 -2040,15,gas,all-year.afternoon,0.9645273600000001 -2040,15,gas,all-year.early-peak,0.9645273600000001 -2040,15,gas,all-year.late-peak,0.9645273600000001 -2040,15,gas,all-year.evening,0.9645273600000001 +2040,15,gas,all-year.night,0.4080399999999995 +2040,15,gas,all-year.morning,0.8226287999999995 +2040,15,gas,all-year.afternoon,0.4080399999999995 +2040,15,gas,all-year.early-peak,0.0 +2040,15,gas,all-year.late-peak,0.8226287999999995 +2040,15,gas,all-year.evening,0.8226287999999995 2040,16,electricity,all-year.night,-0.3960000000000003 2040,16,heat,all-year.night,0.9900000000000007 2040,16,electricity,all-year.morning,-0.3960000000000003 @@ -653,18 +653,18 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,17,gas,all-year.evening,-1.1484 2040,17,heat,all-year.evening,0.9900000000000002 2040,17,CO2f,all-year.evening,64.06290000000001 -2040,18,wind,all-year.night,-0.932 -2040,18,electricity,all-year.night,0.932 -2040,18,wind,all-year.morning,-0.22439999999999954 -2040,18,electricity,all-year.morning,0.22439999999999954 +2040,18,wind,all-year.night,-0.0 +2040,18,electricity,all-year.night,0.0 +2040,18,wind,all-year.morning,-0.41879999999999956 +2040,18,electricity,all-year.morning,0.41879999999999956 2040,18,wind,all-year.afternoon,-0.0 2040,18,electricity,all-year.afternoon,0.0 2040,18,wind,all-year.early-peak,-0.0 2040,18,electricity,all-year.early-peak,0.0 -2040,18,wind,all-year.late-peak,-2.7960000000000007 -2040,18,electricity,all-year.late-peak,2.7960000000000007 -2040,18,wind,all-year.evening,-0.0 -2040,18,electricity,all-year.evening,0.0 +2040,18,wind,all-year.late-peak,-0.0 +2040,18,electricity,all-year.late-peak,0.0 +2040,18,wind,all-year.evening,-1.8640000000000003 +2040,18,electricity,all-year.evening,1.8640000000000003 2040,19,gas,all-year.night,-0.0 2040,19,electricity,all-year.night,0.0 2040,19,CO2f,all-year.night,0.0 @@ -683,18 +683,18 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,19,gas,all-year.evening,-0.0 2040,19,electricity,all-year.evening,0.0 2040,19,CO2f,all-year.evening,0.0 -2040,20,gas,all-year.night,1.19420736 -2040,20,gas,all-year.morning,1.19420736 -2040,20,gas,all-year.afternoon,0.020400639999999526 +2040,20,gas,all-year.night,1.1484000000000005 +2040,20,gas,all-year.morning,1.1484000000000005 +2040,20,gas,all-year.afternoon,1.1484000000000005 2040,20,gas,all-year.early-peak,0.0 -2040,20,gas,all-year.late-peak,1.19420736 -2040,20,gas,all-year.evening,0.0 -2045,2,gas,all-year.night,0.19886655999999991 +2040,20,gas,all-year.late-peak,1.1484000000000005 +2040,20,gas,all-year.evening,1.1484000000000005 +2045,2,gas,all-year.night,0.24467391999999943 2045,2,gas,all-year.morning,3.057936 2045,2,gas,all-year.afternoon,1.7768800000000002 2045,2,gas,all-year.early-peak,3.057936 2045,2,gas,all-year.late-peak,4.000008 -2045,2,gas,all-year.evening,1.0362600959999995 +2045,2,gas,all-year.evening,1.4100908800000007 2045,3,gas,all-year.night,-0.0 2045,3,heat,all-year.night,0.0 2045,3,CO2f,all-year.night,0.0 @@ -849,7 +849,7 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2045,15,gas,all-year.morning,0.0 2045,15,gas,all-year.afternoon,0.0 2045,15,gas,all-year.early-peak,0.0 -2045,15,gas,all-year.late-peak,0.9645273600000001 +2045,15,gas,all-year.late-peak,0.8226287999999995 2045,15,gas,all-year.evening,0.0 2045,16,electricity,all-year.night,-0.3960000000000003 2045,16,heat,all-year.night,0.9900000000000007 @@ -893,12 +893,12 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2045,18,electricity,all-year.late-peak,2.7960000000000003 2045,18,wind,all-year.evening,-0.0 2045,18,electricity,all-year.evening,0.0 -2045,20,gas,all-year.night,1.19420736 +2045,20,gas,all-year.night,1.1484000000000005 2045,20,gas,all-year.morning,0.0 2045,20,gas,all-year.afternoon,0.0 2045,20,gas,all-year.early-peak,0.0 -2045,20,gas,all-year.late-peak,0.3515320959999995 -2045,20,gas,all-year.evening,1.19420736 +2045,20,gas,all-year.late-peak,0.8214540800000014 +2045,20,gas,all-year.evening,1.1484000000000005 2045,21,electricity,all-year.night,-0.3960000000000003 2045,21,heat,all-year.night,0.9900000000000007 2045,21,electricity,all-year.morning,-0.3960000000000003 @@ -975,12 +975,12 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2045,26,gas,all-year.morning,0.0 2045,26,gas,all-year.afternoon,0.0 2045,26,gas,all-year.early-peak,0.0 -2045,26,gas,all-year.late-peak,1.410753344 -2045,26,gas,all-year.evening,1.410753344 +2045,26,gas,all-year.late-peak,1.0827299199999985 +2045,26,gas,all-year.evening,1.0827299199999985 2050,2,gas,all-year.night,2.004 -2050,2,gas,all-year.morning,1.2742552959999998 +2050,2,gas,all-year.morning,1.744177280000002 2050,2,gas,all-year.afternoon,0.0 -2050,2,gas,all-year.early-peak,0.6607692159999998 +2050,2,gas,all-year.early-peak,1.0346000000000009 2050,2,gas,all-year.late-peak,4.000008 2050,2,gas,all-year.evening,0.0 2050,3,gas,all-year.night,-0.0 @@ -1134,11 +1134,11 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2050,14,wind,all-year.evening,-0.9792000000000005 2050,14,electricity,all-year.evening,0.9792000000000005 2050,15,gas,all-year.night,0.0 -2050,15,gas,all-year.morning,0.9645273600000001 +2050,15,gas,all-year.morning,0.8226287999999995 2050,15,gas,all-year.afternoon,0.0 2050,15,gas,all-year.early-peak,0.0 -2050,15,gas,all-year.late-peak,0.9645273600000001 -2050,15,gas,all-year.evening,0.9645273600000001 +2050,15,gas,all-year.late-peak,0.8226287999999995 +2050,15,gas,all-year.evening,0.8226287999999995 2050,16,electricity,all-year.night,-0.39599999999999974 2050,16,heat,all-year.night,0.9899999999999993 2050,16,electricity,all-year.morning,-0.3960000000000003 @@ -1183,10 +1183,10 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2050,18,electricity,all-year.evening,1.4207999999999998 2050,20,gas,all-year.night,0.0 2050,20,gas,all-year.morning,0.0 -2050,20,gas,all-year.afternoon,1.19420736 -2050,20,gas,all-year.early-peak,1.19420736 -2050,20,gas,all-year.late-peak,1.19420736 -2050,20,gas,all-year.evening,1.19420736 +2050,20,gas,all-year.afternoon,1.1484000000000005 +2050,20,gas,all-year.early-peak,1.1484000000000005 +2050,20,gas,all-year.late-peak,1.1484000000000005 +2050,20,gas,all-year.evening,1.1484000000000005 2050,21,electricity,all-year.night,-0.3960000000000003 2050,21,heat,all-year.night,0.9900000000000007 2050,21,electricity,all-year.morning,-0.3960000000000003 @@ -1260,11 +1260,11 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2050,25,electricity,all-year.evening,0.3192000000000001 2050,25,CO2f,all-year.evening,29.261064000000008 2050,26,gas,all-year.night,0.0 -2050,26,gas,all-year.morning,1.410753344 -2050,26,gas,all-year.afternoon,0.80979264 -2050,26,gas,all-year.early-peak,1.410753344 -2050,26,gas,all-year.late-peak,1.410753344 -2050,26,gas,all-year.evening,0.5656751999999992 +2050,26,gas,all-year.morning,1.0827299199999985 +2050,26,gas,all-year.afternoon,0.8555999999999995 +2050,26,gas,all-year.early-peak,1.0827299199999985 +2050,26,gas,all-year.late-peak,1.0827299199999985 +2050,26,gas,all-year.evening,0.9847043199999992 2050,27,electricity,all-year.night,-0.40800000000000003 2050,27,heat,all-year.night,1.02 2050,27,electricity,all-year.morning,-0.40800000000000003 @@ -1329,5 +1329,5 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2050,31,gas,all-year.morning,0.0 2050,31,gas,all-year.afternoon,0.0 2050,31,gas,all-year.early-peak,0.0 -2050,31,gas,all-year.late-peak,0.340524735999999 -2050,31,gas,all-year.evening,1.7056108799999998 +2050,31,gas,all-year.late-peak,0.8562540799999994 +2050,31,gas,all-year.evening,1.4742876799999998 diff --git a/tests/data/two_regions/commodity_prices.csv b/tests/data/two_regions/commodity_prices.csv index b333c23f1..9e78c9163 100644 --- a/tests/data/two_regions/commodity_prices.csv +++ b/tests/data/two_regions/commodity_prices.csv @@ -113,11 +113,11 @@ milestone_year,commodity_id,region_id,time_slice,price 2035,gas,R1,all-year.early-peak,-0.0 2035,gas,R1,all-year.late-peak,-0.0 2035,gas,R1,all-year.evening,-0.0 -2035,gas,R2,all-year.night,2.55 +2035,gas,R2,all-year.night,2.5500000000000003 2035,gas,R2,all-year.morning,2.55 2035,gas,R2,all-year.afternoon,2.55 2035,gas,R2,all-year.early-peak,2.55 -2035,gas,R2,all-year.late-peak,2.5500000000000003 +2035,gas,R2,all-year.late-peak,2.55 2035,gas,R2,all-year.evening,2.55 2035,electricity,R1,all-year.night,-0.0 2035,electricity,R1,all-year.morning,-0.0 @@ -141,7 +141,7 @@ milestone_year,commodity_id,region_id,time_slice,price 2035,heat,R2,all-year.morning,2.9579999999999997 2035,heat,R2,all-year.afternoon,1.7034 2035,heat,R2,all-year.early-peak,2.9579999999999997 -2035,heat,R2,all-year.late-peak,2.958 +2035,heat,R2,all-year.late-peak,2.9579999999999997 2035,heat,R2,all-year.evening,2.9579999999999997 2040,gas,R1,all-year.night,-0.0 2040,gas,R1,all-year.morning,-0.0