diff --git a/docs/release_notes/upcoming.md b/docs/release_notes/upcoming.md index 263e1dc1f..ed481a6f9 100644 --- a/docs/release_notes/upcoming.md +++ b/docs/release_notes/upcoming.md @@ -36,6 +36,7 @@ ready to be released, carry out the following steps: - The `addition_limit` column in `process_investment_constraints.csv` is now optional ([#1427]) - Memory usage and performance has been drastically improved for divisible assets with many units ([#1464]) +- `asset_capacities.csv` now reports total and mothballed capacity and unit counts ([#1461]) ## Breaking changes diff --git a/schemas/output/asset_capacities.yaml b/schemas/output/asset_capacities.yaml index 6695fb903..b22dc48d0 100644 --- a/schemas/output/asset_capacities.yaml +++ b/schemas/output/asset_capacities.yaml @@ -13,4 +13,10 @@ fields: description: The total capacity of the asset in this year - name: num_units type: integer - description: The number of units making up the asset in this year + description: The total number of units making up the asset in this year + - name: mothballed_capacity + type: number + description: The capacity of the asset that is mothballed in this year + - name: mothballed_units + type: integer + description: The number of units that are mothballed in this year diff --git a/src/asset.rs b/src/asset.rs index 9d8a7ba7a..c52ddd89b 100644 --- a/src/asset.rs +++ b/src/asset.rs @@ -9,8 +9,8 @@ use crate::region::RegionID; use crate::simulation::PriceMap; use crate::time_slice::{TimeSliceID, TimeSliceSelection}; use crate::units::{ - Activity, ActivityPerCapacity, Capacity, FlowPerActivity, MoneyPerActivity, MoneyPerCapacity, - MoneyPerFlow, UnitType, Year, + Activity, ActivityPerCapacity, Capacity, Dimensionless, FlowPerActivity, MoneyPerActivity, + MoneyPerCapacity, MoneyPerFlow, UnitType, Year, }; use anyhow::{Context, Result, ensure}; use indexmap::IndexMap; @@ -834,6 +834,11 @@ impl Asset { events.iter().map(|event| event.num_units).sum() } + /// Get the capacity which is mothballed. + pub fn mothballed_capacity(&self) -> Capacity { + self.capacity().unit_size() * Dimensionless(self.get_num_mothballed_units() as f64) + } + /// Get the remaining number of units that are not mothballed. /// /// For non-commissioned assets, this always returns the total number of units. @@ -1612,6 +1617,10 @@ mod tests { assert_eq!(commissioned_multi_unit.num_units(), 3); let asset = commissioned_multi_unit.with_mothballed_units(num_mothballed, Some(2020)); assert_eq!(asset.get_num_mothballed_units(), num_mothballed); + assert_eq!( + asset.mothballed_capacity(), + Capacity(4.0 * num_mothballed as f64) + ); assert_eq!(asset.get_num_nonmothballed_units(), 3 - num_mothballed); assert_eq!(asset.has_any_mothballed_units(), num_mothballed > 0); } diff --git a/src/output.rs b/src/output.rs index fb68ed345..63cffbbc7 100644 --- a/src/output.rs +++ b/src/output.rs @@ -166,6 +166,8 @@ struct AssetCapacityRow { asset_id: AssetID, capacity: Capacity, num_units: u32, + mothballed_capacity: Capacity, + mothballed_units: u32, } /// Represents the flow-related data in a row of the commodity flows CSV file. @@ -638,6 +640,8 @@ impl DataWriter { asset_id: asset.id().unwrap(), capacity: asset.total_capacity(), num_units: asset.capacity().num_units(), + mothballed_capacity: asset.mothballed_capacity(), + mothballed_units: asset.get_num_mothballed_units(), }; self.asset_capacities.serialize(row)?; } @@ -709,7 +713,9 @@ impl DataWriter { mod tests { use super::*; use crate::asset::AssetPool; - use crate::fixture::{appraisal_output, asset, assets, commodity_id, region_id, time_slice}; + use crate::fixture::{ + appraisal_output, asset, assets, commodity_id, multi_unit_asset, region_id, time_slice, + }; use crate::simulation::investment::appraisal::AppraisalOutput; use crate::time_slice::TimeSliceID; use indexmap::indexmap; @@ -761,6 +767,46 @@ mod tests { asset_id: asset.id().unwrap(), capacity: asset.total_capacity(), num_units: 1, + mothballed_capacity: Capacity(0.0), + mothballed_units: 0, + }; + let records: Vec = + csv::Reader::from_path(dir.path().join(ASSET_CAPACITIES_FILE_NAME)) + .unwrap() + .into_deserialize() + .try_collect() + .unwrap(); + assert_equal(records, iter::once(expected)); + } + + #[rstest] + fn write_asset_capacities_with_mothballed_units(multi_unit_asset: Asset) { + let milestone_year = 2020; + let dir = tempdir().unwrap(); + let mut assets = AssetPool::new(); + assets.commission_new(2010, &mut vec![multi_unit_asset.into()]); + let asset = assets + .iter() + .next() + .unwrap() + .clone() + .with_mothballed_units(1, Some(milestone_year)); + + { + let mut writer = DataWriter::create(dir.path(), dir.path(), false).unwrap(); + writer + .write_asset_capacities(milestone_year, std::slice::from_ref(&asset)) + .unwrap(); + writer.flush().unwrap(); + } + + let expected = AssetCapacityRow { + milestone_year, + asset_id: asset.id().unwrap(), + capacity: Capacity(12.0), + num_units: 3, + mothballed_capacity: Capacity(4.0), + mothballed_units: 1, }; let records: Vec = csv::Reader::from_path(dir.path().join(ASSET_CAPACITIES_FILE_NAME)) diff --git a/tests/data/circularity/asset_capacities.csv b/tests/data/circularity/asset_capacities.csv index 90a6bb2a0..12ae827ca 100644 --- a/tests/data/circularity/asset_capacities.csv +++ b/tests/data/circularity/asset_capacities.csv @@ -1,46 +1,46 @@ -milestone_year,asset_id,capacity,num_units -2020,0,4010.2,1 -2020,1,1738.05,1 -2020,2,3789.64,1 -2020,3,716.5,1 -2020,4,573.9,1 -2020,5,3.964844,1 -2020,6,2.999,1 -2020,7,1.0,1 -2020,8,31.54,1 -2020,9,451.91,1 -2020,10,176.58,1 -2020,11,20.99,1 -2020,12,15.0,1 -2020,13,2900.0,1 -2020,14,399.98,1 -2030,0,4010.2,1 -2030,1,1738.05,1 -2030,2,3789.64,1 -2030,5,3.964844,1 -2030,6,2.999,1 -2030,13,2900.0,1 -2030,14,399.98,1 -2030,15,802.563016789748,28 -2030,16,1849.28399075358,36 -2030,17,3680.183145405077,26 -2030,18,298.6475820926018,57 -2030,19,2944.1465163240614,16 -2030,20,165.3505808753475,27 -2040,5,3.964844,1 -2040,6,2.999,1 -2040,16,1849.28399075358,36 -2040,18,298.6475820926018,57 -2040,19,1288.064100891777,7 -2040,20,165.3505808753475,27 -2040,21,942.563016229748,28 -2040,22,2198.390989008045,39 -2040,23,34.19605824723177,15 -2040,24,5.471369319196239,6 -2040,25,9.118948865327066,9 -2040,26,132.08198143321187,15 -2040,27,453.28514602874316,33 -2040,28,972.485651665613,26 -2040,29,2349.6972514094086,33 -2040,30,475.9494033301804,33 -2040,31,2627.9227668603858,37 +milestone_year,asset_id,capacity,num_units,mothballed_capacity,mothballed_units +2020,0,4010.2,1,0.0,0 +2020,1,1738.05,1,0.0,0 +2020,2,3789.64,1,0.0,0 +2020,3,716.5,1,0.0,0 +2020,4,573.9,1,0.0,0 +2020,5,3.964844,1,0.0,0 +2020,6,2.999,1,0.0,0 +2020,7,1.0,1,0.0,0 +2020,8,31.54,1,0.0,0 +2020,9,451.91,1,0.0,0 +2020,10,176.58,1,0.0,0 +2020,11,20.99,1,0.0,0 +2020,12,15.0,1,0.0,0 +2020,13,2900.0,1,0.0,0 +2020,14,399.98,1,0.0,0 +2030,0,4010.2,1,0.0,0 +2030,1,1738.05,1,0.0,0 +2030,2,3789.64,1,0.0,0 +2030,5,3.964844,1,0.0,0 +2030,6,2.999,1,0.0,0 +2030,13,2900.0,1,0.0,0 +2030,14,399.98,1,0.0,0 +2030,15,802.563016789748,28,0.0,0 +2030,16,1849.28399075358,36,0.0,0 +2030,17,3680.183145405077,26,0.0,0 +2030,18,298.6475820926018,57,0.0,0 +2030,19,2944.1465163240614,16,0.0,0 +2030,20,165.3505808753475,27,0.0,0 +2040,5,3.964844,1,0.0,0 +2040,6,2.999,1,0.0,0 +2040,16,1849.28399075358,36,0.0,0 +2040,18,298.6475820926018,57,0.0,0 +2040,19,1288.064100891777,7,0.0,0 +2040,20,165.3505808753475,27,0.0,0 +2040,21,942.563016229748,28,0.0,0 +2040,22,2198.390989008045,39,0.0,0 +2040,23,34.19605824723177,15,0.0,0 +2040,24,5.471369319196239,6,0.0,0 +2040,25,9.118948865327066,9,0.0,0 +2040,26,132.08198143321187,15,0.0,0 +2040,27,453.28514602874316,33,0.0,0 +2040,28,972.485651665613,26,0.0,0 +2040,29,2349.6972514094086,33,0.0,0 +2040,30,475.9494033301804,33,0.0,0 +2040,31,2627.9227668603858,37,0.0,0 diff --git a/tests/data/circularity_npv/asset_capacities.csv b/tests/data/circularity_npv/asset_capacities.csv index 90a6bb2a0..12ae827ca 100644 --- a/tests/data/circularity_npv/asset_capacities.csv +++ b/tests/data/circularity_npv/asset_capacities.csv @@ -1,46 +1,46 @@ -milestone_year,asset_id,capacity,num_units -2020,0,4010.2,1 -2020,1,1738.05,1 -2020,2,3789.64,1 -2020,3,716.5,1 -2020,4,573.9,1 -2020,5,3.964844,1 -2020,6,2.999,1 -2020,7,1.0,1 -2020,8,31.54,1 -2020,9,451.91,1 -2020,10,176.58,1 -2020,11,20.99,1 -2020,12,15.0,1 -2020,13,2900.0,1 -2020,14,399.98,1 -2030,0,4010.2,1 -2030,1,1738.05,1 -2030,2,3789.64,1 -2030,5,3.964844,1 -2030,6,2.999,1 -2030,13,2900.0,1 -2030,14,399.98,1 -2030,15,802.563016789748,28 -2030,16,1849.28399075358,36 -2030,17,3680.183145405077,26 -2030,18,298.6475820926018,57 -2030,19,2944.1465163240614,16 -2030,20,165.3505808753475,27 -2040,5,3.964844,1 -2040,6,2.999,1 -2040,16,1849.28399075358,36 -2040,18,298.6475820926018,57 -2040,19,1288.064100891777,7 -2040,20,165.3505808753475,27 -2040,21,942.563016229748,28 -2040,22,2198.390989008045,39 -2040,23,34.19605824723177,15 -2040,24,5.471369319196239,6 -2040,25,9.118948865327066,9 -2040,26,132.08198143321187,15 -2040,27,453.28514602874316,33 -2040,28,972.485651665613,26 -2040,29,2349.6972514094086,33 -2040,30,475.9494033301804,33 -2040,31,2627.9227668603858,37 +milestone_year,asset_id,capacity,num_units,mothballed_capacity,mothballed_units +2020,0,4010.2,1,0.0,0 +2020,1,1738.05,1,0.0,0 +2020,2,3789.64,1,0.0,0 +2020,3,716.5,1,0.0,0 +2020,4,573.9,1,0.0,0 +2020,5,3.964844,1,0.0,0 +2020,6,2.999,1,0.0,0 +2020,7,1.0,1,0.0,0 +2020,8,31.54,1,0.0,0 +2020,9,451.91,1,0.0,0 +2020,10,176.58,1,0.0,0 +2020,11,20.99,1,0.0,0 +2020,12,15.0,1,0.0,0 +2020,13,2900.0,1,0.0,0 +2020,14,399.98,1,0.0,0 +2030,0,4010.2,1,0.0,0 +2030,1,1738.05,1,0.0,0 +2030,2,3789.64,1,0.0,0 +2030,5,3.964844,1,0.0,0 +2030,6,2.999,1,0.0,0 +2030,13,2900.0,1,0.0,0 +2030,14,399.98,1,0.0,0 +2030,15,802.563016789748,28,0.0,0 +2030,16,1849.28399075358,36,0.0,0 +2030,17,3680.183145405077,26,0.0,0 +2030,18,298.6475820926018,57,0.0,0 +2030,19,2944.1465163240614,16,0.0,0 +2030,20,165.3505808753475,27,0.0,0 +2040,5,3.964844,1,0.0,0 +2040,6,2.999,1,0.0,0 +2040,16,1849.28399075358,36,0.0,0 +2040,18,298.6475820926018,57,0.0,0 +2040,19,1288.064100891777,7,0.0,0 +2040,20,165.3505808753475,27,0.0,0 +2040,21,942.563016229748,28,0.0,0 +2040,22,2198.390989008045,39,0.0,0 +2040,23,34.19605824723177,15,0.0,0 +2040,24,5.471369319196239,6,0.0,0 +2040,25,9.118948865327066,9,0.0,0 +2040,26,132.08198143321187,15,0.0,0 +2040,27,453.28514602874316,33,0.0,0 +2040,28,972.485651665613,26,0.0,0 +2040,29,2349.6972514094086,33,0.0,0 +2040,30,475.9494033301804,33,0.0,0 +2040,31,2627.9227668603858,37,0.0,0 diff --git a/tests/data/missing_commodity/asset_capacities.csv b/tests/data/missing_commodity/asset_capacities.csv index 255ef3636..b526d02df 100644 --- a/tests/data/missing_commodity/asset_capacities.csv +++ b/tests/data/missing_commodity/asset_capacities.csv @@ -1,23 +1,23 @@ -milestone_year,asset_id,capacity,num_units -2020,0,4002.26,1 -2020,1,3782.13,1 -2020,2,3.964844,1 -2020,3,2.43,1 -2020,4,2900.0,1 -2020,5,399.98,1 -2030,0,4002.26,1 -2030,1,3782.13,1 -2030,2,3.964844,1 -2030,3,2.43,1 -2030,4,2900.0,1 -2030,5,399.98,1 -2030,6,1849.28399075358,36 -2030,7,4.582296913025608,13 -2030,8,178.91233238712087,66 -2030,9,189.58177552751894,30 -2040,6,1849.28399075358,36 -2040,8,178.91233238712087,66 -2040,9,189.58177552751894,30 -2040,10,2198.390989008045,39 -2040,11,2420.9001984218153,34 -2040,12,2556.897827215511,36 +milestone_year,asset_id,capacity,num_units,mothballed_capacity,mothballed_units +2020,0,4002.26,1,0.0,0 +2020,1,3782.13,1,0.0,0 +2020,2,3.964844,1,0.0,0 +2020,3,2.43,1,0.0,0 +2020,4,2900.0,1,0.0,0 +2020,5,399.98,1,0.0,0 +2030,0,4002.26,1,0.0,0 +2030,1,3782.13,1,0.0,0 +2030,2,3.964844,1,0.0,0 +2030,3,2.43,1,0.0,0 +2030,4,2900.0,1,0.0,0 +2030,5,399.98,1,0.0,0 +2030,6,1849.28399075358,36,0.0,0 +2030,7,4.582296913025608,13,0.0,0 +2030,8,178.91233238712087,66,0.0,0 +2030,9,189.58177552751894,30,0.0,0 +2040,6,1849.28399075358,36,0.0,0 +2040,8,178.91233238712087,66,0.0,0 +2040,9,189.58177552751894,30,0.0,0 +2040,10,2198.390989008045,39,0.0,0 +2040,11,2420.9001984218153,34,0.0,0 +2040,12,2556.897827215511,36,0.0,0 diff --git a/tests/data/muse1_default/asset_capacities.csv b/tests/data/muse1_default/asset_capacities.csv index 2a1722d05..c215eb8af 100644 --- a/tests/data/muse1_default/asset_capacities.csv +++ b/tests/data/muse1_default/asset_capacities.csv @@ -1,45 +1,45 @@ -milestone_year,asset_id,capacity,num_units -2020,0,24.0,1 -2020,1,19.0,1 -2025,2,23.93995212009576,36 -2025,3,13.96497207005586,21 -2030,2,23.93995212009576,36 -2030,3,13.96497207005586,21 -2030,4,6.6399867200265605,8 -2030,5,4.1499917000166,5 -2035,2,23.93995212009576,36 -2035,3,13.96497207005586,21 -2035,4,6.6399867200265605,8 -2035,5,4.1499917000166,5 -2035,6,5.999988000024,6 -2035,7,2.999994000012,3 -2040,2,23.93995212009576,36 -2040,3,13.96497207005586,21 -2040,4,6.6399867200265605,8 -2040,5,4.1499917000166,5 -2040,6,5.999988000024,6 -2040,7,2.999994000012,3 -2040,8,5.8249883500233,5 -2040,9,3.49499301001398,3 -2045,2,23.93995212009576,36 -2045,3,13.96497207005586,21 -2045,4,6.6399867200265605,8 -2045,5,4.1499917000166,5 -2045,6,5.999988000024,6 -2045,7,2.999994000012,3 -2045,8,5.8249883500233,5 -2045,9,3.49499301001398,3 -2045,10,6.6499867000266,5 -2045,11,3.98999202001596,3 -2050,2,23.93995212009576,36 -2050,3,13.96497207005586,21 -2050,4,6.6399867200265605,8 -2050,5,4.1499917000166,5 -2050,6,5.999988000024,6 -2050,7,2.999994000012,3 -2050,8,5.8249883500233,5 -2050,9,3.49499301001398,3 -2050,10,6.6499867000266,5 -2050,11,3.98999202001596,3 -2050,12,5.9999880000240005,4 -2050,13,2.9999940000120002,2 +milestone_year,asset_id,capacity,num_units,mothballed_capacity,mothballed_units +2020,0,24.0,1,0.0,0 +2020,1,19.0,1,0.0,0 +2025,2,23.93995212009576,36,0.0,0 +2025,3,13.96497207005586,21,0.0,0 +2030,2,23.93995212009576,36,0.0,0 +2030,3,13.96497207005586,21,0.0,0 +2030,4,6.6399867200265605,8,0.0,0 +2030,5,4.1499917000166,5,0.0,0 +2035,2,23.93995212009576,36,0.0,0 +2035,3,13.96497207005586,21,0.0,0 +2035,4,6.6399867200265605,8,0.0,0 +2035,5,4.1499917000166,5,0.0,0 +2035,6,5.999988000024,6,0.0,0 +2035,7,2.999994000012,3,0.0,0 +2040,2,23.93995212009576,36,0.0,0 +2040,3,13.96497207005586,21,0.0,0 +2040,4,6.6399867200265605,8,0.0,0 +2040,5,4.1499917000166,5,0.0,0 +2040,6,5.999988000024,6,0.0,0 +2040,7,2.999994000012,3,0.0,0 +2040,8,5.8249883500233,5,0.0,0 +2040,9,3.49499301001398,3,0.0,0 +2045,2,23.93995212009576,36,0.0,0 +2045,3,13.96497207005586,21,0.0,0 +2045,4,6.6399867200265605,8,0.0,0 +2045,5,4.1499917000166,5,0.0,0 +2045,6,5.999988000024,6,0.0,0 +2045,7,2.999994000012,3,0.0,0 +2045,8,5.8249883500233,5,0.0,0 +2045,9,3.49499301001398,3,0.0,0 +2045,10,6.6499867000266,5,0.0,0 +2045,11,3.98999202001596,3,0.0,0 +2050,2,23.93995212009576,36,0.0,0 +2050,3,13.96497207005586,21,0.0,0 +2050,4,6.6399867200265605,8,0.0,0 +2050,5,4.1499917000166,5,0.0,0 +2050,6,5.999988000024,6,0.0,0 +2050,7,2.999994000012,3,0.0,0 +2050,8,5.8249883500233,5,0.0,0 +2050,9,3.49499301001398,3,0.0,0 +2050,10,6.6499867000266,5,0.0,0 +2050,11,3.98999202001596,3,0.0,0 +2050,12,5.9999880000240005,4,0.0,0 +2050,13,2.9999940000120002,2,0.0,0 diff --git a/tests/data/simple/asset_capacities.csv b/tests/data/simple/asset_capacities.csv index 3672517c3..843037bdf 100644 --- a/tests/data/simple/asset_capacities.csv +++ b/tests/data/simple/asset_capacities.csv @@ -1,19 +1,19 @@ -milestone_year,asset_id,capacity,num_units -2020,0,4002.26,1 -2020,1,3782.13,1 -2020,2,3.964844,1 -2020,3,2.43,1 -2020,4,2900.0,1 -2020,5,399.98,1 -2030,0,4002.26,1 -2030,1,3782.13,1 -2030,2,3.964844,1 -2030,4,2900.0,1 -2030,5,399.98,1 -2030,6,359.58299820208504,7 -2030,7,4.541646703508871,16 -2030,8,0.3784705586007786,3 -2040,0,4002.26,1 -2040,1,3782.13,1 -2040,6,359.58299820208504,7 -2040,9,3663.984981680075,65 +milestone_year,asset_id,capacity,num_units,mothballed_capacity,mothballed_units +2020,0,4002.26,1,0.0,0 +2020,1,3782.13,1,0.0,0 +2020,2,3.964844,1,0.0,0 +2020,3,2.43,1,0.0,0 +2020,4,2900.0,1,0.0,0 +2020,5,399.98,1,0.0,0 +2030,0,4002.26,1,0.0,0 +2030,1,3782.13,1,0.0,0 +2030,2,3.964844,1,0.0,0 +2030,4,2900.0,1,0.0,0 +2030,5,399.98,1,0.0,0 +2030,6,359.58299820208504,7,0.0,0 +2030,7,4.541646703508871,16,0.0,0 +2030,8,0.3784705586007786,3,0.0,0 +2040,0,4002.26,1,0.0,0 +2040,1,3782.13,1,0.0,0 +2040,6,359.58299820208504,7,0.0,0 +2040,9,3663.984981680075,65,0.0,0 diff --git a/tests/data/simple_full/asset_capacities.csv b/tests/data/simple_full/asset_capacities.csv index 3672517c3..843037bdf 100644 --- a/tests/data/simple_full/asset_capacities.csv +++ b/tests/data/simple_full/asset_capacities.csv @@ -1,19 +1,19 @@ -milestone_year,asset_id,capacity,num_units -2020,0,4002.26,1 -2020,1,3782.13,1 -2020,2,3.964844,1 -2020,3,2.43,1 -2020,4,2900.0,1 -2020,5,399.98,1 -2030,0,4002.26,1 -2030,1,3782.13,1 -2030,2,3.964844,1 -2030,4,2900.0,1 -2030,5,399.98,1 -2030,6,359.58299820208504,7 -2030,7,4.541646703508871,16 -2030,8,0.3784705586007786,3 -2040,0,4002.26,1 -2040,1,3782.13,1 -2040,6,359.58299820208504,7 -2040,9,3663.984981680075,65 +milestone_year,asset_id,capacity,num_units,mothballed_capacity,mothballed_units +2020,0,4002.26,1,0.0,0 +2020,1,3782.13,1,0.0,0 +2020,2,3.964844,1,0.0,0 +2020,3,2.43,1,0.0,0 +2020,4,2900.0,1,0.0,0 +2020,5,399.98,1,0.0,0 +2030,0,4002.26,1,0.0,0 +2030,1,3782.13,1,0.0,0 +2030,2,3.964844,1,0.0,0 +2030,4,2900.0,1,0.0,0 +2030,5,399.98,1,0.0,0 +2030,6,359.58299820208504,7,0.0,0 +2030,7,4.541646703508871,16,0.0,0 +2030,8,0.3784705586007786,3,0.0,0 +2040,0,4002.26,1,0.0,0 +2040,1,3782.13,1,0.0,0 +2040,6,359.58299820208504,7,0.0,0 +2040,9,3663.984981680075,65,0.0,0 diff --git a/tests/data/simple_ironing_out/asset_capacities.csv b/tests/data/simple_ironing_out/asset_capacities.csv index 3672517c3..843037bdf 100644 --- a/tests/data/simple_ironing_out/asset_capacities.csv +++ b/tests/data/simple_ironing_out/asset_capacities.csv @@ -1,19 +1,19 @@ -milestone_year,asset_id,capacity,num_units -2020,0,4002.26,1 -2020,1,3782.13,1 -2020,2,3.964844,1 -2020,3,2.43,1 -2020,4,2900.0,1 -2020,5,399.98,1 -2030,0,4002.26,1 -2030,1,3782.13,1 -2030,2,3.964844,1 -2030,4,2900.0,1 -2030,5,399.98,1 -2030,6,359.58299820208504,7 -2030,7,4.541646703508871,16 -2030,8,0.3784705586007786,3 -2040,0,4002.26,1 -2040,1,3782.13,1 -2040,6,359.58299820208504,7 -2040,9,3663.984981680075,65 +milestone_year,asset_id,capacity,num_units,mothballed_capacity,mothballed_units +2020,0,4002.26,1,0.0,0 +2020,1,3782.13,1,0.0,0 +2020,2,3.964844,1,0.0,0 +2020,3,2.43,1,0.0,0 +2020,4,2900.0,1,0.0,0 +2020,5,399.98,1,0.0,0 +2030,0,4002.26,1,0.0,0 +2030,1,3782.13,1,0.0,0 +2030,2,3.964844,1,0.0,0 +2030,4,2900.0,1,0.0,0 +2030,5,399.98,1,0.0,0 +2030,6,359.58299820208504,7,0.0,0 +2030,7,4.541646703508871,16,0.0,0 +2030,8,0.3784705586007786,3,0.0,0 +2040,0,4002.26,1,0.0,0 +2040,1,3782.13,1,0.0,0 +2040,6,359.58299820208504,7,0.0,0 +2040,9,3663.984981680075,65,0.0,0 diff --git a/tests/data/simple_marginal/asset_capacities.csv b/tests/data/simple_marginal/asset_capacities.csv index 3672517c3..843037bdf 100644 --- a/tests/data/simple_marginal/asset_capacities.csv +++ b/tests/data/simple_marginal/asset_capacities.csv @@ -1,19 +1,19 @@ -milestone_year,asset_id,capacity,num_units -2020,0,4002.26,1 -2020,1,3782.13,1 -2020,2,3.964844,1 -2020,3,2.43,1 -2020,4,2900.0,1 -2020,5,399.98,1 -2030,0,4002.26,1 -2030,1,3782.13,1 -2030,2,3.964844,1 -2030,4,2900.0,1 -2030,5,399.98,1 -2030,6,359.58299820208504,7 -2030,7,4.541646703508871,16 -2030,8,0.3784705586007786,3 -2040,0,4002.26,1 -2040,1,3782.13,1 -2040,6,359.58299820208504,7 -2040,9,3663.984981680075,65 +milestone_year,asset_id,capacity,num_units,mothballed_capacity,mothballed_units +2020,0,4002.26,1,0.0,0 +2020,1,3782.13,1,0.0,0 +2020,2,3.964844,1,0.0,0 +2020,3,2.43,1,0.0,0 +2020,4,2900.0,1,0.0,0 +2020,5,399.98,1,0.0,0 +2030,0,4002.26,1,0.0,0 +2030,1,3782.13,1,0.0,0 +2030,2,3.964844,1,0.0,0 +2030,4,2900.0,1,0.0,0 +2030,5,399.98,1,0.0,0 +2030,6,359.58299820208504,7,0.0,0 +2030,7,4.541646703508871,16,0.0,0 +2030,8,0.3784705586007786,3,0.0,0 +2040,0,4002.26,1,0.0,0 +2040,1,3782.13,1,0.0,0 +2040,6,359.58299820208504,7,0.0,0 +2040,9,3663.984981680075,65,0.0,0 diff --git a/tests/data/simple_marginal_average/asset_capacities.csv b/tests/data/simple_marginal_average/asset_capacities.csv index 3672517c3..843037bdf 100644 --- a/tests/data/simple_marginal_average/asset_capacities.csv +++ b/tests/data/simple_marginal_average/asset_capacities.csv @@ -1,19 +1,19 @@ -milestone_year,asset_id,capacity,num_units -2020,0,4002.26,1 -2020,1,3782.13,1 -2020,2,3.964844,1 -2020,3,2.43,1 -2020,4,2900.0,1 -2020,5,399.98,1 -2030,0,4002.26,1 -2030,1,3782.13,1 -2030,2,3.964844,1 -2030,4,2900.0,1 -2030,5,399.98,1 -2030,6,359.58299820208504,7 -2030,7,4.541646703508871,16 -2030,8,0.3784705586007786,3 -2040,0,4002.26,1 -2040,1,3782.13,1 -2040,6,359.58299820208504,7 -2040,9,3663.984981680075,65 +milestone_year,asset_id,capacity,num_units,mothballed_capacity,mothballed_units +2020,0,4002.26,1,0.0,0 +2020,1,3782.13,1,0.0,0 +2020,2,3.964844,1,0.0,0 +2020,3,2.43,1,0.0,0 +2020,4,2900.0,1,0.0,0 +2020,5,399.98,1,0.0,0 +2030,0,4002.26,1,0.0,0 +2030,1,3782.13,1,0.0,0 +2030,2,3.964844,1,0.0,0 +2030,4,2900.0,1,0.0,0 +2030,5,399.98,1,0.0,0 +2030,6,359.58299820208504,7,0.0,0 +2030,7,4.541646703508871,16,0.0,0 +2030,8,0.3784705586007786,3,0.0,0 +2040,0,4002.26,1,0.0,0 +2040,1,3782.13,1,0.0,0 +2040,6,359.58299820208504,7,0.0,0 +2040,9,3663.984981680075,65,0.0,0 diff --git a/tests/data/simple_mothball/asset_capacities.csv b/tests/data/simple_mothball/asset_capacities.csv index 6b5329fba..03bf97502 100644 --- a/tests/data/simple_mothball/asset_capacities.csv +++ b/tests/data/simple_mothball/asset_capacities.csv @@ -1,23 +1,23 @@ -milestone_year,asset_id,capacity,num_units -2020,0,4002.26,1 -2020,1,3782.13,1 -2020,2,3.964844,1 -2020,3,2.43,1 -2020,4,2900.0,1 -2020,5,399.98,1 -2030,0,4002.26,1 -2030,1,3782.13,1 -2030,2,3.964844,1 -2030,3,2.43,1 -2030,4,2900.0,1 -2030,5,399.98,1 -2030,6,359.58299820208504,7 -2030,7,4.541646703508871,16 -2030,8,0.3784705586007786,3 -2040,0,4002.26,1 -2040,1,3782.13,1 -2040,2,3.964844,1 -2040,6,359.58299820208504,7 -2040,7,4.541646703508871,16 -2040,8,0.3784705586007786,3 -2040,9,3663.984981680075,65 +milestone_year,asset_id,capacity,num_units,mothballed_capacity,mothballed_units +2020,0,4002.26,1,0.0,0 +2020,1,3782.13,1,0.0,0 +2020,2,3.964844,1,0.0,0 +2020,3,2.43,1,0.0,0 +2020,4,2900.0,1,0.0,0 +2020,5,399.98,1,0.0,0 +2030,0,4002.26,1,0.0,0 +2030,1,3782.13,1,0.0,0 +2030,2,3.964844,1,0.0,0 +2030,3,2.43,1,2.43,1 +2030,4,2900.0,1,0.0,0 +2030,5,399.98,1,0.0,0 +2030,6,359.58299820208504,7,0.0,0 +2030,7,4.541646703508871,16,0.0,0 +2030,8,0.3784705586007786,3,0.0,0 +2040,0,4002.26,1,0.0,0 +2040,1,3782.13,1,0.0,0 +2040,2,3.964844,1,3.964844,1 +2040,6,359.58299820208504,7,0.0,0 +2040,7,4.541646703508871,16,4.541646703508871,16 +2040,8,0.3784705586007786,3,0.3784705586007786,3 +2040,9,3663.984981680075,65,0.0,0 diff --git a/tests/data/simple_npv/asset_capacities.csv b/tests/data/simple_npv/asset_capacities.csv index 3672517c3..843037bdf 100644 --- a/tests/data/simple_npv/asset_capacities.csv +++ b/tests/data/simple_npv/asset_capacities.csv @@ -1,19 +1,19 @@ -milestone_year,asset_id,capacity,num_units -2020,0,4002.26,1 -2020,1,3782.13,1 -2020,2,3.964844,1 -2020,3,2.43,1 -2020,4,2900.0,1 -2020,5,399.98,1 -2030,0,4002.26,1 -2030,1,3782.13,1 -2030,2,3.964844,1 -2030,4,2900.0,1 -2030,5,399.98,1 -2030,6,359.58299820208504,7 -2030,7,4.541646703508871,16 -2030,8,0.3784705586007786,3 -2040,0,4002.26,1 -2040,1,3782.13,1 -2040,6,359.58299820208504,7 -2040,9,3663.984981680075,65 +milestone_year,asset_id,capacity,num_units,mothballed_capacity,mothballed_units +2020,0,4002.26,1,0.0,0 +2020,1,3782.13,1,0.0,0 +2020,2,3.964844,1,0.0,0 +2020,3,2.43,1,0.0,0 +2020,4,2900.0,1,0.0,0 +2020,5,399.98,1,0.0,0 +2030,0,4002.26,1,0.0,0 +2030,1,3782.13,1,0.0,0 +2030,2,3.964844,1,0.0,0 +2030,4,2900.0,1,0.0,0 +2030,5,399.98,1,0.0,0 +2030,6,359.58299820208504,7,0.0,0 +2030,7,4.541646703508871,16,0.0,0 +2030,8,0.3784705586007786,3,0.0,0 +2040,0,4002.26,1,0.0,0 +2040,1,3782.13,1,0.0,0 +2040,6,359.58299820208504,7,0.0,0 +2040,9,3663.984981680075,65,0.0,0 diff --git a/tests/data/simple_shadow/asset_capacities.csv b/tests/data/simple_shadow/asset_capacities.csv index 3672517c3..843037bdf 100644 --- a/tests/data/simple_shadow/asset_capacities.csv +++ b/tests/data/simple_shadow/asset_capacities.csv @@ -1,19 +1,19 @@ -milestone_year,asset_id,capacity,num_units -2020,0,4002.26,1 -2020,1,3782.13,1 -2020,2,3.964844,1 -2020,3,2.43,1 -2020,4,2900.0,1 -2020,5,399.98,1 -2030,0,4002.26,1 -2030,1,3782.13,1 -2030,2,3.964844,1 -2030,4,2900.0,1 -2030,5,399.98,1 -2030,6,359.58299820208504,7 -2030,7,4.541646703508871,16 -2030,8,0.3784705586007786,3 -2040,0,4002.26,1 -2040,1,3782.13,1 -2040,6,359.58299820208504,7 -2040,9,3663.984981680075,65 +milestone_year,asset_id,capacity,num_units,mothballed_capacity,mothballed_units +2020,0,4002.26,1,0.0,0 +2020,1,3782.13,1,0.0,0 +2020,2,3.964844,1,0.0,0 +2020,3,2.43,1,0.0,0 +2020,4,2900.0,1,0.0,0 +2020,5,399.98,1,0.0,0 +2030,0,4002.26,1,0.0,0 +2030,1,3782.13,1,0.0,0 +2030,2,3.964844,1,0.0,0 +2030,4,2900.0,1,0.0,0 +2030,5,399.98,1,0.0,0 +2030,6,359.58299820208504,7,0.0,0 +2030,7,4.541646703508871,16,0.0,0 +2030,8,0.3784705586007786,3,0.0,0 +2040,0,4002.26,1,0.0,0 +2040,1,3782.13,1,0.0,0 +2040,6,359.58299820208504,7,0.0,0 +2040,9,3663.984981680075,65,0.0,0 diff --git a/tests/data/simple_unit_size/asset_capacities.csv b/tests/data/simple_unit_size/asset_capacities.csv index 3cd5ccc79..273058476 100644 --- a/tests/data/simple_unit_size/asset_capacities.csv +++ b/tests/data/simple_unit_size/asset_capacities.csv @@ -1,27 +1,27 @@ -milestone_year,asset_id,capacity,num_units -2020,0,4002.26,1 -2020,1,3782.13,1 -2020,2,3.964844,1 -2020,3,2.43,1 -2020,4,3000.0,3 -2020,5,399.98,1 -2030,0,4002.26,1 -2030,1,3782.13,1 -2030,2,3.964844,1 -2030,3,2.43,1 -2030,4,3000.0,3 -2030,5,399.98,1 -2030,6,256.844998715775,5 -2030,7,9.977075345826824,17 -2040,0,4002.26,1 -2040,1,3782.13,1 -2040,2,3.964844,1 -2040,3,2.43,1 -2040,6,256.844998715775,5 -2040,7,9.977075345826824,17 -2040,8,845.534995772325,15 -2040,9,3000.0,3 -2040,10,9.980247232555058,10 -2040,11,1.3306996309195793,3 -2040,12,335.5900878651957,14 -2040,13,352.3695922584555,14 +milestone_year,asset_id,capacity,num_units,mothballed_capacity,mothballed_units +2020,0,4002.26,1,0.0,0 +2020,1,3782.13,1,0.0,0 +2020,2,3.964844,1,0.0,0 +2020,3,2.43,1,0.0,0 +2020,4,3000.0,3,0.0,0 +2020,5,399.98,1,0.0,0 +2030,0,4002.26,1,0.0,0 +2030,1,3782.13,1,0.0,0 +2030,2,3.964844,1,0.0,0 +2030,3,2.43,1,0.0,0 +2030,4,3000.0,3,0.0,0 +2030,5,399.98,1,0.0,0 +2030,6,256.844998715775,5,0.0,0 +2030,7,9.977075345826824,17,0.0,0 +2040,0,4002.26,1,0.0,0 +2040,1,3782.13,1,0.0,0 +2040,2,3.964844,1,0.0,0 +2040,3,2.43,1,0.0,0 +2040,6,256.844998715775,5,0.0,0 +2040,7,9.977075345826824,17,0.0,0 +2040,8,845.534995772325,15,0.0,0 +2040,9,3000.0,3,0.0,0 +2040,10,9.980247232555058,10,0.0,0 +2040,11,1.3306996309195793,3,0.0,0 +2040,12,335.5900878651957,14,0.0,0 +2040,13,352.3695922584555,14,0.0,0 diff --git a/tests/data/two_outputs/asset_capacities.csv b/tests/data/two_outputs/asset_capacities.csv index b4423df79..9c680298b 100644 --- a/tests/data/two_outputs/asset_capacities.csv +++ b/tests/data/two_outputs/asset_capacities.csv @@ -1,47 +1,47 @@ -milestone_year,asset_id,capacity,num_units -2020,0,4010.2,1 -2020,1,1738.05,1 -2020,2,3789.64,1 -2020,3,716.5,1 -2020,4,573.9,1 -2020,5,3.964844,1 -2020,6,2.999,1 -2020,7,451.91,1 -2020,8,176.58,1 -2020,9,20.99,1 -2020,10,15.0,1 -2020,11,2900.0,1 -2020,12,399.98,1 -2030,0,4010.2,1 -2030,1,1738.05,1 -2030,2,3789.64,1 -2030,5,3.964844,1 -2030,6,2.999,1 -2030,11,2900.0,1 -2030,12,399.98,1 -2030,13,802.563016789748,28 -2030,14,1849.28399075358,36 -2030,15,40.09093125430712,19 -2030,16,9.377995614424108,10 -2030,17,436.11073070427403,7 -2030,18,828.0412077989463,26 -2030,19,298.6475820926018,57 -2030,20,56.044548701367475,40 -2040,1,1738.05,1 -2040,5,3.964844,1 -2040,6,2.999,1 -2040,14,1849.28399075358,36 -2040,15,40.09093125430712,19 -2040,16,9.377995614424108,10 -2040,17,311.5076647887672,5 -2040,18,828.0412077989463,26 -2040,19,298.6475820926018,57 -2040,20,56.044548701367475,40 -2040,21,942.563016229748,28 -2040,22,2198.390989008045,39 -2040,23,6.839211649446353,3 -2040,24,3.0396496217756885,3 -2040,25,149.61317717932508,4 -2040,26,2349.6972514094086,33 -2040,27,312.27343620135736,46 -2040,28,2698.947706505261,38 +milestone_year,asset_id,capacity,num_units,mothballed_capacity,mothballed_units +2020,0,4010.2,1,0.0,0 +2020,1,1738.05,1,0.0,0 +2020,2,3789.64,1,0.0,0 +2020,3,716.5,1,0.0,0 +2020,4,573.9,1,0.0,0 +2020,5,3.964844,1,0.0,0 +2020,6,2.999,1,0.0,0 +2020,7,451.91,1,0.0,0 +2020,8,176.58,1,0.0,0 +2020,9,20.99,1,0.0,0 +2020,10,15.0,1,0.0,0 +2020,11,2900.0,1,0.0,0 +2020,12,399.98,1,0.0,0 +2030,0,4010.2,1,0.0,0 +2030,1,1738.05,1,0.0,0 +2030,2,3789.64,1,0.0,0 +2030,5,3.964844,1,0.0,0 +2030,6,2.999,1,0.0,0 +2030,11,2900.0,1,0.0,0 +2030,12,399.98,1,0.0,0 +2030,13,802.563016789748,28,0.0,0 +2030,14,1849.28399075358,36,0.0,0 +2030,15,40.09093125430712,19,0.0,0 +2030,16,9.377995614424108,10,0.0,0 +2030,17,436.11073070427403,7,0.0,0 +2030,18,828.0412077989463,26,0.0,0 +2030,19,298.6475820926018,57,0.0,0 +2030,20,56.044548701367475,40,0.0,0 +2040,1,1738.05,1,0.0,0 +2040,5,3.964844,1,0.0,0 +2040,6,2.999,1,0.0,0 +2040,14,1849.28399075358,36,0.0,0 +2040,15,40.09093125430712,19,0.0,0 +2040,16,9.377995614424108,10,0.0,0 +2040,17,311.5076647887672,5,0.0,0 +2040,18,828.0412077989463,26,0.0,0 +2040,19,298.6475820926018,57,0.0,0 +2040,20,56.044548701367475,40,0.0,0 +2040,21,942.563016229748,28,0.0,0 +2040,22,2198.390989008045,39,0.0,0 +2040,23,6.839211649446353,3,0.0,0 +2040,24,3.0396496217756885,3,0.0,0 +2040,25,149.61317717932508,4,0.0,0 +2040,26,2349.6972514094086,33,0.0,0 +2040,27,312.27343620135736,46,0.0,0 +2040,28,2698.947706505261,38,0.0,0 diff --git a/tests/data/two_regions/asset_capacities.csv b/tests/data/two_regions/asset_capacities.csv index 80543fffc..d8e63500e 100644 --- a/tests/data/two_regions/asset_capacities.csv +++ b/tests/data/two_regions/asset_capacities.csv @@ -1,101 +1,101 @@ -milestone_year,asset_id,capacity,num_units -2020,0,24.0,1 -2020,1,19.0,1 -2020,2,24.0,1 -2020,3,19.0,1 -2025,2,24.0,1 -2025,3,19.0,1 -2025,4,23.93995212009576,36 -2025,5,5.31998936002128,8 -2025,6,13.96497207005586,21 -2025,7,4.285546984461586,5 -2030,2,24.0,1 -2030,3,19.0,1 -2030,4,23.93995212009576,36 -2030,5,5.31998936002128,8 -2030,6,13.96497207005586,21 -2030,7,4.285546984461586,5 -2030,8,6.6399867200265605,8 -2030,9,5.80998838002324,7 -2030,10,4.1499917000166,5 -2030,11,6.418653829359008,6 -2035,2,24.0,1 -2035,3,19.0,1 -2035,4,23.93995212009576,36 -2035,5,5.31998936002128,8 -2035,6,13.96497207005586,21 -2035,7,4.285546984461586,5 -2035,8,6.6399867200265605,8 -2035,9,5.80998838002324,7 -2035,10,4.1499917000166,5 -2035,11,6.418653829359008,6 -2035,12,5.999988000024,6 -2035,13,5.999988000024,6 -2035,14,2.999994000012,3 -2035,15,7.733317866697599,6 -2040,2,24.0,1 -2040,3,19.0,1 -2040,4,23.93995212009576,36 -2040,5,5.31998936002128,8 -2040,6,13.96497207005586,21 -2040,7,4.285546984461586,5 -2040,8,6.6399867200265605,8 -2040,9,5.80998838002324,7 -2040,10,4.1499917000166,5 -2040,11,6.418653829359008,6 -2040,12,5.999988000024,6 -2040,13,5.999988000024,6 -2040,14,2.999994000012,3 -2040,15,7.733317866697599,6 -2040,16,5.8249883500233,5 -2040,17,5.8249883500233,5 -2040,18,3.49499301001398,3 -2040,19,7.507762762252252,5 -2045,2,24.0,1 -2045,3,19.0,1 -2045,4,23.93995212009576,36 -2045,5,5.31998936002128,8 -2045,6,13.96497207005586,21 -2045,7,4.285546984461586,5 -2045,8,6.6399867200265605,8 -2045,9,5.80998838002324,7 -2045,10,4.1499917000166,5 -2045,11,6.418653829359008,6 -2045,12,5.999988000024,6 -2045,13,5.999988000024,6 -2045,14,2.999994000012,3 -2045,15,7.733317866697599,6 -2045,16,5.8249883500233,5 -2045,17,5.8249883500233,5 -2045,18,3.49499301001398,3 -2045,19,7.507762762252252,5 -2045,20,6.6499867000266,5 -2045,21,6.6499867000266,5 -2045,22,3.98999202001596,3 -2045,23,6.856875175138538,4 -2050,2,24.0,1 -2050,3,19.0,1 -2050,4,23.93995212009576,36 -2050,5,5.31998936002128,8 -2050,6,13.96497207005586,21 -2050,7,4.285546984461586,5 -2050,8,6.6399867200265605,8 -2050,9,5.80998838002324,7 -2050,10,4.1499917000166,5 -2050,11,6.418653829359008,6 -2050,12,5.999988000024,6 -2050,13,5.999988000024,6 -2050,14,2.999994000012,3 -2050,15,7.733317866697599,6 -2050,16,5.8249883500233,5 -2050,17,5.8249883500233,5 -2050,18,3.49499301001398,3 -2050,19,7.507762762252252,5 -2050,20,6.6499867000266,5 -2050,21,6.6499867000266,5 -2050,22,3.98999202001596,3 -2050,23,6.856875175138538,4 -2050,24,5.9999880000240005,4 -2050,25,5.9999880000240005,4 -2050,26,2.9999940000120002,2 -2050,27,7.733317866697599,4 +milestone_year,asset_id,capacity,num_units,mothballed_capacity,mothballed_units +2020,0,24.0,1,0.0,0 +2020,1,19.0,1,0.0,0 +2020,2,24.0,1,0.0,0 +2020,3,19.0,1,0.0,0 +2025,2,24.0,1,0.0,0 +2025,3,19.0,1,0.0,0 +2025,4,23.93995212009576,36,0.0,0 +2025,5,5.31998936002128,8,0.0,0 +2025,6,13.96497207005586,21,0.0,0 +2025,7,4.285546984461586,5,0.0,0 +2030,2,24.0,1,0.0,0 +2030,3,19.0,1,0.0,0 +2030,4,23.93995212009576,36,0.0,0 +2030,5,5.31998936002128,8,0.0,0 +2030,6,13.96497207005586,21,0.0,0 +2030,7,4.285546984461586,5,0.0,0 +2030,8,6.6399867200265605,8,0.0,0 +2030,9,5.80998838002324,7,0.0,0 +2030,10,4.1499917000166,5,0.0,0 +2030,11,6.418653829359008,6,0.0,0 +2035,2,24.0,1,0.0,0 +2035,3,19.0,1,0.0,0 +2035,4,23.93995212009576,36,0.0,0 +2035,5,5.31998936002128,8,0.0,0 +2035,6,13.96497207005586,21,0.0,0 +2035,7,4.285546984461586,5,0.0,0 +2035,8,6.6399867200265605,8,0.0,0 +2035,9,5.80998838002324,7,0.0,0 +2035,10,4.1499917000166,5,0.0,0 +2035,11,6.418653829359008,6,0.0,0 +2035,12,5.999988000024,6,0.0,0 +2035,13,5.999988000024,6,0.0,0 +2035,14,2.999994000012,3,0.0,0 +2035,15,7.733317866697599,6,0.0,0 +2040,2,24.0,1,0.0,0 +2040,3,19.0,1,0.0,0 +2040,4,23.93995212009576,36,0.0,0 +2040,5,5.31998936002128,8,0.0,0 +2040,6,13.96497207005586,21,0.0,0 +2040,7,4.285546984461586,5,0.0,0 +2040,8,6.6399867200265605,8,0.0,0 +2040,9,5.80998838002324,7,0.0,0 +2040,10,4.1499917000166,5,0.0,0 +2040,11,6.418653829359008,6,0.0,0 +2040,12,5.999988000024,6,0.0,0 +2040,13,5.999988000024,6,0.0,0 +2040,14,2.999994000012,3,0.0,0 +2040,15,7.733317866697599,6,0.0,0 +2040,16,5.8249883500233,5,0.0,0 +2040,17,5.8249883500233,5,0.0,0 +2040,18,3.49499301001398,3,0.0,0 +2040,19,7.507762762252252,5,0.0,0 +2045,2,24.0,1,0.0,0 +2045,3,19.0,1,0.0,0 +2045,4,23.93995212009576,36,0.0,0 +2045,5,5.31998936002128,8,0.0,0 +2045,6,13.96497207005586,21,0.0,0 +2045,7,4.285546984461586,5,0.0,0 +2045,8,6.6399867200265605,8,0.0,0 +2045,9,5.80998838002324,7,0.0,0 +2045,10,4.1499917000166,5,0.0,0 +2045,11,6.418653829359008,6,0.0,0 +2045,12,5.999988000024,6,0.0,0 +2045,13,5.999988000024,6,0.0,0 +2045,14,2.999994000012,3,0.0,0 +2045,15,7.733317866697599,6,0.0,0 +2045,16,5.8249883500233,5,0.0,0 +2045,17,5.8249883500233,5,0.0,0 +2045,18,3.49499301001398,3,0.0,0 +2045,19,7.507762762252252,5,0.0,0 +2045,20,6.6499867000266,5,0.0,0 +2045,21,6.6499867000266,5,0.0,0 +2045,22,3.98999202001596,3,0.0,0 +2045,23,6.856875175138538,4,0.0,0 +2050,2,24.0,1,0.0,0 +2050,3,19.0,1,0.0,0 +2050,4,23.93995212009576,36,0.0,0 +2050,5,5.31998936002128,8,0.0,0 +2050,6,13.96497207005586,21,0.0,0 +2050,7,4.285546984461586,5,0.0,0 +2050,8,6.6399867200265605,8,0.0,0 +2050,9,5.80998838002324,7,0.0,0 +2050,10,4.1499917000166,5,0.0,0 +2050,11,6.418653829359008,6,0.0,0 +2050,12,5.999988000024,6,0.0,0 +2050,13,5.999988000024,6,0.0,0 +2050,14,2.999994000012,3,0.0,0 +2050,15,7.733317866697599,6,0.0,0 +2050,16,5.8249883500233,5,0.0,0 +2050,17,5.8249883500233,5,0.0,0 +2050,18,3.49499301001398,3,0.0,0 +2050,19,7.507762762252252,5,0.0,0 +2050,20,6.6499867000266,5,0.0,0 +2050,21,6.6499867000266,5,0.0,0 +2050,22,3.98999202001596,3,0.0,0 +2050,23,6.856875175138538,4,0.0,0 +2050,24,5.9999880000240005,4,0.0,0 +2050,25,5.9999880000240005,4,0.0,0 +2050,26,2.9999940000120002,2,0.0,0 +2050,27,7.733317866697599,4,0.0,0