diff --git a/cases.csv b/cases.csv index b6b545ce..fb14370f 100644 --- a/cases.csv +++ b/cases.csv @@ -324,6 +324,8 @@ GSw_TransCapMaxAllTypes,[GW] maximum transmission capacity allowed across each i GSw_TransCapMaxTypes,Transmission types to limit according to GSw_TransCapMaxEachType and GSw_TransCapMaxAllTypes [0 = none; 1 = all; 2 = VSC; 3 = all DC],0; 1; 2; 3,1, GSw_TransConductor,Which conductor to assume for new AC transmission ('acss' is a mix of ACSS and ACSR as specified by the MISO Transmission Cost Estimation Guide; 'acsr' is just ACSR),^(acss|acsr)$,acsr, GSw_TransIntraCost,[USD2004/kW] intra-zone network reinforcement cost for all technologies (100 USD2022/kW using gas cost from slide 14 of https://emp.lbl.gov/publications/generator-interconnection-costs),N/A,65, +GSw_RegIntraCurve,Represent intra-zone network reinforcement as a regional increasing-cost supply curve instead of the flat GSw_TransIntraCost adder; requires GSw_TransIntraCost>0,0; 1,0, +GSw_POIUpperCost,[USD2004/kW] cost of the unlimited backstop bin (bin_upper) applied to POI / network reinforcement above the finite binned capacities; only active when GSw_RegIntraCurve=1,float,1177, GSw_TransInvMaxLongTerm,[TW-mile/year] maximum transmission capacity investment per year IN/AFTER firstyear_trans_longterm (constraint is OFF if set to 0 meaning unlimited trans investment; annual max since 2009 is ~3.64),N/A,0, GSw_TransInvMaxNearTerm,[TW-mile/year] maximum transmission capacity investment per year BEFORE firstyear_trans_longterm (constraint is OFF if set to 0 meaning unlimited trans investment; annual mean since 2009 is ~1.4),float,1.4, GSw_TransInvNearTerm,Indicate whether to allow transmission investment before firstyear_trans_longterm,0; 1,0, diff --git a/cases_test.csv b/cases_test.csv index a87de967..d5b8e994 100644 --- a/cases_test.csv +++ b/cases_test.csv @@ -1,65 +1,66 @@ -,Default Value,Pacific,USA_defaults,Mid_Case,USA_decarb,github_Pacific,github_Everything,github_MA_county_CC,Pacific_CC,Pacific_weks,Pacific_full_year,Interday_storage,Pacific_2020,Pacific_rep15,WY_county,WECC_county,PJM_county_CC,NYVT_mixed,OR_water,MonteCarlo_Random,MonteCarlo_LHS,Everything,Simple,USA_fast,USA_faster,Pacific_DR,Pacific_MGA,Pacific_LoadSite95,MARICTNYNJPAOH_Offshore,R2P -ignore,1,0,,,,,,,,,,,,,,,,,,,,,,,,,,,, -GSw_Region,cendiv/Pacific,,country/USA,country/USA,country/USA,,st/ID.WY.NE.IA.IL,st/MA,,,,,,,st/WY,interconnect/western,transreg/PJM,st/NY.VT,st/OR,st/NE.NY.PA,st/NE.NY.PA,st/ID.WY.NE.IA.IL,st/KS,country/USA,country/USA,,,,st/MA.RI.CT.NY.NJ.PA.OH, -endyear,2032,,2050,2050,2050,2029,2060,2026,,,,,,,,,,,2035,2030,2030,2060,2035,2050,2050,,,,, -yearset,,,,,,,2010..2060..10,,,,,,,,,,,,,2010..2050..5,2010..2050..5,2010..2060..10,,,2010_2025_2050,,,,, -GSw_ZoneSet,,,,,,,z54,z3109,,,,,,,z3109,z3109,z3109,PJMcounty,,,,z54,,z54,z48,,,,, -GSw_GasCurve,2,,1,1,,,,,,,,,,,,,,,,,,,,1,1,,,,, -GSw_Geothermal,,,,2,,,,,,,,,,,,,,,,,,,0,,0,,,,, -GSw_GrowthPenalties,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,, -GSw_Upstream,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,, -GSw_TransHurdleRate,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,, -distpvscen,,,,,stscen2023_mid_case_95_by_2035,,,,,,,,,,,,,,,,,,,,,,,,, -GSw_AnnualCap,,,,,2,,1,,,,,,,,,,,,,,,1,,,,,,,, -GSw_AnnualCapScen,,,,,start2024_90pct2035_100pct2045,,start2027_95pct2035,,,,,,,,,,,,,,,start2027_95pct2035,,,,,,,, -GSw_LoadProfiles,,,,,EER2025_100by2050,EER2025_IRAlow,EER2025_IRAlow,EER2025_IRAlow,,,,,historic,,,,,,,,,EER2025_100by2050,,,,historic,,,, -GSw_NG_CRF_penalty,,,,,ramp_2045,,ramp_2023_2035,,,,,,,,,,,,,,,ramp_2023_2035,,,,,,,, -GSw_PRM_NetImportLimit,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,, -GSw_RetirePenalty,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,, -GSw_FakeData,,,,,,1,1,1,,,,,,,,,,,,,,,,,,,,,, -GSw_PRM_CapCredit,,,,,,,,1,1,,,,,,,,1,,,,,,,,,,,,, -GSw_PRM_scenario,,,,,,,,,static,,,,,,,,static,,,,,,,,,,,,, -GSw_PRM_UpdateMethod,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,, -GSw_HourlyType,,,,,,,,,,wek,year,,,,,,,,,,,,,,,,,,, -GSw_InterDayLinkage,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,, -GSw_HourlyWeatherYears,,,,,,,2012_2013,,,,,,2020,2007_2008_2009_2010_2011_2012_2013_2016_2017_2018_2019_2020_2021_2022_2023,,,,,,,,2012_2013,,,,2018,,,, -GSw_HourlyClusterMapMethod,,,,,,,,,,,,,,bestfirst,,,,,,,,,,,,,,,, -GSw_WaterCapacity,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,, -GSw_WaterMain,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,, -GSw_WaterUse,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,, -resource_adequacy_years,,,,,,,2011_2012_2013_2021_2022_2023,,,,,,,,,,,,,,,2011_2012_2013_2021_2022_2023,,,,,,,, -GSw_HourlyClusterAlgorithm,,,,,,,,,,,,,,,,,,,,user,user,,,,,,,,, -MCS_runs,,,,,,,,,,,,,,,,,,,,2,2,,,,,,,,, -MCS_dist_groups,,,,,,,,,,,,,,,,,,,,tech.hydro.nuclear.gas.coal.load_country,upv_tri.nuclear_tri.ng_fuel_price_tri.load_country_unif,,,,,,,,, -MCS_lhs,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,, -GSw_PRM_StressIterateMax,,,,,,,,0,,,,,,,,0,0,,,1,1,,,,,,,,, -GSw_ReducedResource,,,,,,,1,,,,,,,,,,,,,,,1,,,,,,,, -GSw_SitingUPV,,,,,,limited,limited,limited,,,,,,,,,,,,,,limited,,,,,,,, -GSw_SitingWindOfs,,,,,,limited,limited,limited,,,,,,,,,,,,,,open,,,,,,,, -GSw_SitingWindOns,,,,,,limited,limited,limited,,,,,,,,,,,,,,limited,,,,,,,, -GSw_TransScen,,,,,,,NTP_MT,,,,,,,,,,,,,,,NTP_MT,,,,,,,, -GSw_CO2_Detail,,,,,,,1,,,,,,,,,,,,,,,1,,,,,,,, -GSw_DAC,,,,,,,1,,,,,,,,,,,,,,,1,,,,,,,, -GSw_NoFossilOffsetCDR,,,,,,,1,,,,,,,,,,,,,,,1,,,,,,,, -GSw_Biopower,,,,,,,,,,,,,,,,,,,,,,,0,,0,,,,, -GSw_HourlyChunkLengthRep,,,,,,,,,,,,,,,,,,,,,,,6,4,4,,,,, -GSw_HourlyChunkLengthStress,,,,,,,,,,,,,,,,,,,,,,,6,4,4,,,,, -GSw_LfillGas,,,,,,,,,,,,,,,,,,,,,,,0,,0,,,,, -GSw_Nuclear,,,,,,,,,,,,,,,,,,,,,,,0,,0,,,,, -GSw_OpRes,,,,,,,,,,,,,,,,,,,,,,,0,,0,,,,, -GSw_StartCost,,,,,,,,,,,,,,,,,,,,,,,0,0,0,,,,, -GSw_H2,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,, -GSw_H2_PTC,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,, -GSw_H2Combustion,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,, -GSw_DRShed,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,, -GSw_MGA_CostDelta,,,,,,,,,,,,,,,,,,,,,,,,,,,0.01,,, -GSw_LoadSiteCF,,,,,,,,,,,,,,,,,,,,,,,,,,,,0.95,, -GSw_OffshoreZones,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -GSw_OffshoreBackbone,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -GSw_OffshoreBackflow,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -pras_agg_ogs_lfillgas,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1 -pras_existing_unit_size,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0 -pras_scheduled_outage,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0 -pras_unitsize_source,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,r2x -pras_vre_combine,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1 -pras_samples,,,,,,10,10,10,,,,,,,,,,,,,,,,10,10,,,,, +,Default Value,Pacific,USA_defaults,Mid_Case,USA_decarb,github_Pacific,github_Everything,github_MA_county_CC,Pacific_CC,Pacific_weks,Pacific_full_year,Interday_storage,Pacific_2020,Pacific_rep15,WY_county,WECC_county,PJM_county_CC,NYVT_mixed,OR_water,MonteCarlo_Random,MonteCarlo_LHS,Everything,Simple,USA_fast,USA_faster,Pacific_DR,Pacific_MGA,Pacific_LoadSite95,MARICTNYNJPAOH_Offshore,R2P,Pacific_ReinfCurve +ignore,1,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0 +GSw_Region,cendiv/Pacific,,country/USA,country/USA,country/USA,,st/ID.WY.NE.IA.IL,st/MA,,,,,,,st/WY,interconnect/western,transreg/PJM,st/NY.VT,st/OR,st/NE.NY.PA,st/NE.NY.PA,st/ID.WY.NE.IA.IL,st/KS,country/USA,country/USA,,,,st/MA.RI.CT.NY.NJ.PA.OH,, +endyear,2032,,2050,2050,2050,2029,2060,2026,,,,,,,,,,,2035,2030,2030,2060,2035,2050,2050,,,,,, +yearset,,,,,,,2010..2060..10,,,,,,,,,,,,,2010..2050..5,2010..2050..5,2010..2060..10,,,2010_2025_2050,,,,,, +GSw_ZoneSet,,,,,,,z54,z3109,,,,,,,z3109,z3109,z3109,PJMcounty,,,,z54,,z54,z48,,,,,, +GSw_GasCurve,2,,1,1,,,,,,,,,,,,,,,,,,,,1,1,,,,,, +GSw_Geothermal,,,,2,,,,,,,,,,,,,,,,,,,0,,0,,,,,, +GSw_GrowthPenalties,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,, +GSw_Upstream,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,, +GSw_TransHurdleRate,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,, +distpvscen,,,,,stscen2023_mid_case_95_by_2035,,,,,,,,,,,,,,,,,,,,,,,,,, +GSw_AnnualCap,,,,,2,,1,,,,,,,,,,,,,,,1,,,,,,,,, +GSw_AnnualCapScen,,,,,start2024_90pct2035_100pct2045,,start2027_95pct2035,,,,,,,,,,,,,,,start2027_95pct2035,,,,,,,,, +GSw_LoadProfiles,,,,,EER2025_100by2050,EER2025_IRAlow,EER2025_IRAlow,EER2025_IRAlow,,,,,historic,,,,,,,,,EER2025_100by2050,,,,historic,,,,, +GSw_NG_CRF_penalty,,,,,ramp_2045,,ramp_2023_2035,,,,,,,,,,,,,,,ramp_2023_2035,,,,,,,,, +GSw_PRM_NetImportLimit,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,, +GSw_RetirePenalty,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,, +GSw_FakeData,,,,,,1,1,1,,,,,,,,,,,,,,,,,,,,,,, +GSw_PRM_CapCredit,,,,,,,,1,1,,,,,,,,1,,,,,,,,,,,,,, +GSw_PRM_scenario,,,,,,,,,static,,,,,,,,static,,,,,,,,,,,,,, +GSw_PRM_UpdateMethod,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,, +GSw_HourlyType,,,,,,,,,,wek,year,,,,,,,,,,,,,,,,,,,, +GSw_InterDayLinkage,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,, +GSw_HourlyWeatherYears,,,,,,,2012_2013,,,,,,2020,2007_2008_2009_2010_2011_2012_2013_2016_2017_2018_2019_2020_2021_2022_2023,,,,,,,,2012_2013,,,,2018,,,,, +GSw_HourlyClusterMapMethod,,,,,,,,,,,,,,bestfirst,,,,,,,,,,,,,,,,, +GSw_WaterCapacity,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,, +GSw_WaterMain,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,, +GSw_WaterUse,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,, +resource_adequacy_years,,,,,,,2011_2012_2013_2021_2022_2023,,,,,,,,,,,,,,,2011_2012_2013_2021_2022_2023,,,,,,,,, +GSw_HourlyClusterAlgorithm,,,,,,,,,,,,,,,,,,,,user,user,,,,,,,,,, +MCS_runs,,,,,,,,,,,,,,,,,,,,2,2,,,,,,,,,, +MCS_dist_groups,,,,,,,,,,,,,,,,,,,,tech.hydro.nuclear.gas.coal.load_country,upv_tri.nuclear_tri.ng_fuel_price_tri.load_country_unif,,,,,,,,,, +MCS_lhs,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,, +GSw_PRM_StressIterateMax,0,,,,,,,0,,,,,,,,0,0,,,1,1,,,,,,,,,, +GSw_ReducedResource,,,,,,,1,,,,,,,,,,,,,,,1,,,,,,,,, +GSw_SitingUPV,,,,,,limited,limited,limited,,,,,,,,,,,,,,limited,,,,,,,,, +GSw_SitingWindOfs,,,,,,limited,limited,limited,,,,,,,,,,,,,,open,,,,,,,,, +GSw_SitingWindOns,,,,,,limited,limited,limited,,,,,,,,,,,,,,limited,,,,,,,,, +GSw_TransScen,,,,,,,NTP_MT,,,,,,,,,,,,,,,NTP_MT,,,,,,,,, +GSw_CO2_Detail,,,,,,,1,,,,,,,,,,,,,,,1,,,,,,,,, +GSw_DAC,,,,,,,1,,,,,,,,,,,,,,,1,,,,,,,,, +GSw_NoFossilOffsetCDR,,,,,,,1,,,,,,,,,,,,,,,1,,,,,,,,, +GSw_Biopower,,,,,,,,,,,,,,,,,,,,,,,0,,0,,,,,, +GSw_HourlyChunkLengthRep,,,,,,,,,,,,,,,,,,,,,,,6,4,4,,,,,, +GSw_HourlyChunkLengthStress,,,,,,,,,,,,,,,,,,,,,,,6,4,4,,,,,, +GSw_LfillGas,,,,,,,,,,,,,,,,,,,,,,,0,,0,,,,,, +GSw_Nuclear,,,,,,,,,,,,,,,,,,,,,,,0,,0,,,,,, +GSw_OpRes,,,,,,,,,,,,,,,,,,,,,,,0,,0,,,,,, +GSw_StartCost,,,,,,,,,,,,,,,,,,,,,,,0,0,0,,,,,, +GSw_H2,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,, +GSw_H2_PTC,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,, +GSw_H2Combustion,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,, +GSw_DRShed,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,, +GSw_MGA_CostDelta,,,,,,,,,,,,,,,,,,,,,,,,,,,0.01,,,, +GSw_LoadSiteCF,,,,,,,,,,,,,,,,,,,,,,,,,,,,0.95,,, +GSw_OffshoreZones,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,, +GSw_OffshoreBackbone,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,, +GSw_OffshoreBackflow,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,, +pras_agg_ogs_lfillgas,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +pras_existing_unit_size,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0, +pras_scheduled_outage,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0, +pras_unitsize_source,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,r2x, +pras_vre_combine,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +pras_samples,,,,,,10,10,10,,,,,,,,,,,,,,,,10,10,,,,,, +GSw_RegIntraCurve,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1 diff --git a/cases_transmission_test.csv b/cases_transmission_test.csv new file mode 100644 index 00000000..917834e4 --- /dev/null +++ b/cases_transmission_test.csv @@ -0,0 +1,7 @@ +,Default Value,ERCOT_default,ERCOT_0,ERCOT_regional +ignore,1,,,0 +endyear,2032,,, +GSw_Region,interconnect/texas,,, +GSw_GasCurve,2,,, +GSw_RegIntraCurve,0,,,1 +GSw_TransIntraCost,,,0.0001, diff --git a/docs/source/model_documentation.md b/docs/source/model_documentation.md index 41e254af..a9f5103d 100644 --- a/docs/source/model_documentation.md +++ b/docs/source/model_documentation.md @@ -1842,6 +1842,9 @@ Substation POIs incur a substation upgrade cost of \$15/kW; transmission line PO Network reinforcement represents upgrades to the existing transmission network required to avoid congestion when moving power from the POI for a new generator to load centers. It is intended to represent the costs associated with interconnection queues, which represent a major bottleneck for the deployment of new wind and solar in the United States. {cite}`gormanGridConnectionBarriers2025`. +There are two methods for including these costs: a) per-site reinforcement costs with optional flat adders, or b) regional reinforcement cost curves. + +##### per-site reinforcement costs Network reinforcement costs are approximated by tracing a path along existing transmission lines from each wind/solar POI to a nearby urban center. An urban center is defined as the centroid of a ≥100 km2 urban area from [2020 U.S. Census data](https://www.census.gov/cgi-bin/geo/shapefiles/index.php?year=2025&layergroup=Urban+Areas). POIs are assumed to connect to the urban center that minimizes the combined interconnection cost; @@ -1869,7 +1872,7 @@ Data are for utility-scale PV with open-access siting but are similar for other Spur lines and network reinforcement use the same financial multiplier as the generation technology they are associated with. -#### Intrazone transmission cost adder for net increases in generation capacity +##### Intrazone transmission cost adder for net increases in generation capacity In addition to the interconnection costs described above, a flat intrazone transmission cost adder of \$100/kW is also applied to net increases in generation and AC/DC converter capacity within each model zone. This value is taken from historical interconnection costs for fossil gas capacity {cite}`seelGeneratorInterconnectionCosts2023` and is taken to represent a "floor" for network upgrades that are required even if new capacity is added at the optimal location (assuming past additions of fossil capacity have been placed to minimize interconnection costs). @@ -1878,7 +1881,14 @@ Because new generation capacity is assumed to reuse the network infrastructure f This generation-technology-neutral intrazone transmission cost adder uses a financial multiplier calculated using a 40-year capital recovery period. +By default the intrazone adder is flat (`GSw_TransIntraCost`, applied to every MW of net new capacity in the zone). +##### regional reinforcement cost curves +Optionally, reinforcement costs can be represented by regionally specific transmission upgrade curves. +We derive the regional curves using the same principles of power flow informed capacity interconnection maximization as outlined in {cite}`brownGeneralMethodEstimating2023`. +In this method, we iteratively maximize the amount of generation capacity that can be installed in a ReEDS region and then upgrade the best value binding transmission system elements. +To functionally intergrate this upgrade curve, we take the convex hull of this data, producing binned investment costs (e.g., 400 MW of generation capacity is available at \$100/kW, the next 2 GW at \$200/kW, and so on). +To avoid double counting, when regional curves are active, the site-based reinforcement costs are subtracted from the wind, solar, CSP, and geothermal technologies while retaining the spur line and substation/POI costs. ### Interzonal Transmission diff --git a/inputs/transmission/README.md b/inputs/transmission/README.md index 65c4ebb2..b304fb5a 100644 --- a/inputs/transmission/README.md +++ b/inputs/transmission/README.md @@ -16,7 +16,7 @@ - `cost_hurdle_intra.csv`: Hurdle rate for transmission flows [\$/MWh] between ReEDS spatial hierarchy levels. -- `dollaryear.scv`: U.S. dollar year for cost-related input files +- `dollaryear.csv`: U.S. dollar year for cost-related input files - `hvdc_existing.csv`: Power capacity and start/end locations of [high-voltage direct current (HVDC) lines](https://en.wikipedia.org/wiki/List_of_HVDC_projects#North_America) in the USA. These lines are mapped to ReEDS zone interfaces during input processing. @@ -59,6 +59,13 @@ Calculated using the [TSC](https://github.nrel.gov/pbrown/TSC) model as describe - `newlinks_offshore_backbone.csv`: Candidate connections between offshore zones - Similarly formatted files for candidate connections between offshore and coastal land-based zones are found at `inputs/zones/{GSw_ZoneSet}/newlinks_offshore_radial.csv` +- `reinforcement_upgrade_cost_z90.csv`: Cumulative interconnection / network-reinforcement cost curve per ReEDS zone from the [TSC](https://github.nrel.gov/ReEDS/TSC) model (nodal network data as described by [Brown et al.](https://arxiv.org/abs/2308.03612)). One cumulative supply-curve point per row: + - `region`: ReEDS zone (must match the zone set's `hierarchy.csv`) + - `capacity_GW`: cumulative POI capacity [GW]; the row with zero cumulative cost marks the zone's existing (free) capacity + - `cum_cost_$`: cumulative reinforcement cost [USD2024] + - `slope_$/kW`: marginal cost from the previous point [USD2024/kW] (informational) + - When `GSw_RegIntraCurve = 1`, `reeds/input_processing/transmission.py` builds the curve from this file — one bin per raw segment, no re-segmentation. + - `transmission_cost_ac_500kv_z134.h5`: Example file illustrating the required format when using the transmission upgrade supply curve ([TSC](https://github.nrel.gov/ReEDS/TSC)) method for `GSw_ZoneSet = z134` - The full method is not yet supported; when implemented, it will only be supported for a limited number of `GSw_ZoneSet` definitions diff --git a/inputs/transmission/dollaryear.csv b/inputs/transmission/dollaryear.csv index d7a36aee..8200a334 100644 --- a/inputs/transmission/dollaryear.csv +++ b/inputs/transmission/dollaryear.csv @@ -1,3 +1,4 @@ filename,US_dollar_year transmission_cost_distance.csv,2024 transmission_cost_distance_lines.csv,2024 +reinforcement_upgrade_cost_z90.csv,2024 diff --git a/inputs/transmission/raw_interconnection_TSC_data.csv b/inputs/transmission/raw_interconnection_TSC_data.csv new file mode 100644 index 00000000..c33f5665 --- /dev/null +++ b/inputs/transmission/raw_interconnection_TSC_data.csv @@ -0,0 +1,36 @@ +region,capacity_GW,cum_cost_$,slope_$/kW +p64,18.395181,0.0, +p64,18.694236,114463990.559,382.7523049572831 +p64,20.748264,907304811.9760001,385.9931906561159 +p64,22.622047,1643645994.469,392.9703612921028 +p64,23.772958,2628994319.4110003,856.1464135298033 +p64,24.000448,3067805398.096,1928.9246942063426 +p64,24.02535,3151327929.3240004,3354.0491216768633 +p64,24.025789,3175874437.8830004,55914.59808427253 +p60,10.122161,0.0, +p60,12.4329,767976587.457,1362.1436457201123 +p60,12.476908,855604755.6110001,1991.1872421832484 +p60,12.754935,1563955258.588,2547.7759461383266 +p60,12.78238,1671172354.938,3906.616737110558 +p65,16.944069,0.0, +p65,18.384130000000003,241383980.851,167.62066388229346 +p65,18.817252,602090435.2969999,832.8056631757383 +p65,18.894895,837427049.8929999,3031.008778589109 +p65,19.289016,5245451591.69,11184.44473092532 +p63,23.089008999999997,0.0, +p63,28.493168,386234699.833,71.46989935584793 +p63,28.961292,687741382.969,644.0743972451749 +p63,29.187818,1233062578.915,2407.322761828667 +p63,29.491341000000002,2193757029.823,3165.145477963758 +p63,29.742103999999998,4116689919.9049997,7668.327823809866 +p61,4.410552,0.0, +p61,6.210939000000001,248345397.42,137.940008131585 +p61,6.624522,332116199.004,202.5489480563761 +p61,7.396416,738882603.4430001,526.9718438529122 +p61,7.962903,1487868578.0720003,1322.1591574546296 +p62,5.357201,0.0, +p62,5.940863,1187948171.1699998,2035.3358127991871 +p62,6.078123,1517508685.445,2400.9945670625184 +p62,6.079435999999999,1803040982.712,217465.5729376013 +p67,1,0.0, +p67,1,50000000.0,50000.0 \ No newline at end of file diff --git a/inputs/transmission/reinforcement_upgrade_cost_z90.csv b/inputs/transmission/reinforcement_upgrade_cost_z90.csv new file mode 100644 index 00000000..858fcbbb --- /dev/null +++ b/inputs/transmission/reinforcement_upgrade_cost_z90.csv @@ -0,0 +1,1077 @@ +region,capacity_GW,cum_cost_$,slope_$/kW +fd832c2d91d094ad54b0e136d1568df0,2.7,0.0, +fd832c2d91d094ad54b0e136d1568df0,3.3,62608485.7,118.1 +fd832c2d91d094ad54b0e136d1568df0,3.5,94273612.1,126.8 +fd832c2d91d094ad54b0e136d1568df0,3.8,146176706.3,158.7 +fd832c2d91d094ad54b0e136d1568df0,4.1,194639877.9,167.2 +fd832c2d91d094ad54b0e136d1568df0,4.7,334803178.4,238.6 +fd832c2d91d094ad54b0e136d1568df0,5.1,555854280.9,544.2 +fd832c2d91d094ad54b0e136d1568df0,5.8,1134277740.5,817.6 +fd832c2d91d094ad54b0e136d1568df0,6.0,1309761772.3,850.5 +fd832c2d91d094ad54b0e136d1568df0,6.8,2089548570.1,1021.0 +fd832c2d91d094ad54b0e136d1568df0,7.2,2600288785.2,1193.5 +fd832c2d91d094ad54b0e136d1568df0,8.3,4593319451.1,1909.4 +fd832c2d91d094ad54b0e136d1568df0,15.8,20195315577.6,2070.5 +fd832c2d91d094ad54b0e136d1568df0,15.9,20565631431.1,2953.7 +fd832c2d91d094ad54b0e136d1568df0,16.1,21688086786.8,5991.7 +fd832c2d91d094ad54b0e136d1568df0,16.6,24514129464.3,6042.7 +fd832c2d91d094ad54b0e136d1568df0,19.1,40626801176.0,6444.6 +fd832c2d91d094ad54b0e136d1568df0,20.6,56378979374.9,10319.8 +fd832c2d91d094ad54b0e136d1568df0,20.6,56383430428.2,4451053.2 +836c5e72d8a00e869414a49da87fa712,7.5,0.0, +836c5e72d8a00e869414a49da87fa712,9.6,64109956.9,29.8 +836c5e72d8a00e869414a49da87fa712,10.5,141505356.3,83.9 +836c5e72d8a00e869414a49da87fa712,12.3,358631937.5,124.5 +836c5e72d8a00e869414a49da87fa712,12.5,389010746.7,154.0 +836c5e72d8a00e869414a49da87fa712,16.7,1828808896.1,341.0 +836c5e72d8a00e869414a49da87fa712,16.7,1863858032.0,607.3 +836c5e72d8a00e869414a49da87fa712,20.6,4421282286.6,666.2 +836c5e72d8a00e869414a49da87fa712,25.5,8870295869.2,899.6 +836c5e72d8a00e869414a49da87fa712,29.9,13045713040.4,946.0 +836c5e72d8a00e869414a49da87fa712,30.1,13791852490.5,4401.1 +07ff46e0a6fe222b9fdb2225db658ddf,10.5,0.0, +07ff46e0a6fe222b9fdb2225db658ddf,12.6,34009434.3,16.4 +07ff46e0a6fe222b9fdb2225db658ddf,13.2,64303702.5,44.7 +07ff46e0a6fe222b9fdb2225db658ddf,16.9,494735217.5,116.2 +07ff46e0a6fe222b9fdb2225db658ddf,17.7,692999161.7,276.8 +07ff46e0a6fe222b9fdb2225db658ddf,17.8,753088973.0,381.4 +07ff46e0a6fe222b9fdb2225db658ddf,21.4,2461865306.0,471.5 +07ff46e0a6fe222b9fdb2225db658ddf,21.8,2877350498.6,1002.8 +07ff46e0a6fe222b9fdb2225db658ddf,22.1,3151201223.3,1004.7 +07ff46e0a6fe222b9fdb2225db658ddf,23.6,4639862320.9,1021.6 +07ff46e0a6fe222b9fdb2225db658ddf,23.7,4760456433.2,1069.4 +07ff46e0a6fe222b9fdb2225db658ddf,25.6,6852889417.6,1087.6 +07ff46e0a6fe222b9fdb2225db658ddf,25.8,7150745964.1,1337.2 +07ff46e0a6fe222b9fdb2225db658ddf,26.7,8281236306.3,1352.9 +07ff46e0a6fe222b9fdb2225db658ddf,27.5,10256739603.1,2470.1 +07ff46e0a6fe222b9fdb2225db658ddf,27.6,10689620724.8,2979.5 +07ff46e0a6fe222b9fdb2225db658ddf,28.5,15433806687.9,5291.3 +07ff46e0a6fe222b9fdb2225db658ddf,28.5,15435882926.9, +2294909d054ac5ce7f5cf06357500314,7.4,0.0, +2294909d054ac5ce7f5cf06357500314,8.7,21740120.7,15.9 +2294909d054ac5ce7f5cf06357500314,8.9,44260121.7,120.7 +2294909d054ac5ce7f5cf06357500314,9.1,76493212.2,192.8 +2294909d054ac5ce7f5cf06357500314,9.3,130222293.4,324.1 +2294909d054ac5ce7f5cf06357500314,9.4,339673231.1,1396.6 +2294909d054ac5ce7f5cf06357500314,9.5,1282473902.2,13574.4 +2294909d054ac5ce7f5cf06357500314,9.5,1905245935.8,25559.0 +2294909d054ac5ce7f5cf06357500314,9.5,2342303138.6,106651.3 +e00b22b1c6734a2507a16cc866201315,2.5,0.0, +e00b22b1c6734a2507a16cc866201315,4.1,123189721.5,77.4 +e00b22b1c6734a2507a16cc866201315,5.0,336112022.8,248.1 +e00b22b1c6734a2507a16cc866201315,6.5,895415299.2,372.7 +e00b22b1c6734a2507a16cc866201315,6.8,1192475670.8,770.4 +e00b22b1c6734a2507a16cc866201315,15.7,8286564791.1,798.6 +e00b22b1c6734a2507a16cc866201315,108.5,87280782850.4,851.6 +e00b22b1c6734a2507a16cc866201315,117.0,94797069645.1,886.4 +e00b22b1c6734a2507a16cc866201315,119.5,97425543366.6,1047.1 +e00b22b1c6734a2507a16cc866201315,120.6,99763597996.7,2165.2 +e00b22b1c6734a2507a16cc866201315,121.4,101721369958.0,2240.0 +e00b22b1c6734a2507a16cc866201315,121.8,104339741822.0,6574.0 +fa341f156b16caed442301bf68792a80,2.8,0.0, +fa341f156b16caed442301bf68792a80,4.1,116991082.0,94.5 +fa341f156b16caed442301bf68792a80,4.6,219213784.1,205.3 +fa341f156b16caed442301bf68792a80,4.9,393218574.2,475.2 +fa341f156b16caed442301bf68792a80,5.6,740406398.6,536.1 +fa341f156b16caed442301bf68792a80,5.9,930914989.3,689.2 +fa341f156b16caed442301bf68792a80,8.2,5669343358.0,1992.5 +fa341f156b16caed442301bf68792a80,8.5,6460897630.0,2684.7 +fa341f156b16caed442301bf68792a80,8.6,7278770580.2,34531.2 +99076f48936f656075dee0ad0473cfe2,16.5,0.0, +99076f48936f656075dee0ad0473cfe2,18.6,699702353.7,335.1 +99076f48936f656075dee0ad0473cfe2,26.4,4902504918.2,533.8 +67ba2895e1d3d0bc081c628e49775f30,9.8,0.0, +67ba2895e1d3d0bc081c628e49775f30,13.6,123315240.1,32.2 +67ba2895e1d3d0bc081c628e49775f30,14.2,175312389.1,76.9 +67ba2895e1d3d0bc081c628e49775f30,16.8,448187886.3,106.5 +67ba2895e1d3d0bc081c628e49775f30,19.0,828021214.6,170.3 +67ba2895e1d3d0bc081c628e49775f30,19.5,912092750.0,181.3 +67ba2895e1d3d0bc081c628e49775f30,19.7,1012769498.8,464.4 +67ba2895e1d3d0bc081c628e49775f30,22.2,2371098973.0,545.9 +67ba2895e1d3d0bc081c628e49775f30,24.2,3660520280.8,646.2 +67ba2895e1d3d0bc081c628e49775f30,26.8,5756204172.4,797.0 +67ba2895e1d3d0bc081c628e49775f30,42.8,18664889108.5,806.0 +67ba2895e1d3d0bc081c628e49775f30,108.9,72171325024.8,810.0 +67ba2895e1d3d0bc081c628e49775f30,125.6,85892278218.8,823.9 +67ba2895e1d3d0bc081c628e49775f30,184.2,134777960052.0,833.3 +67ba2895e1d3d0bc081c628e49775f30,190.4,140099549653.0,855.7 +67ba2895e1d3d0bc081c628e49775f30,198.5,147324682913.2,901.0 +e29b0ce7815148548561f1e505388a87,3.0,0.0, +e29b0ce7815148548561f1e505388a87,3.8,70786496.1,83.9 +e29b0ce7815148548561f1e505388a87,4.0,91878427.9,121.1 +e29b0ce7815148548561f1e505388a87,4.5,179178349.6,180.9 +e29b0ce7815148548561f1e505388a87,4.7,226472377.8,247.2 +e29b0ce7815148548561f1e505388a87,5.2,446477763.0,428.1 +e29b0ce7815148548561f1e505388a87,6.8,4745760580.2,2733.8 +e29b0ce7815148548561f1e505388a87,7.0,6324344977.8,5954.4 +e29b0ce7815148548561f1e505388a87,7.0,6460509273.4,51479.8 +e29b0ce7815148548561f1e505388a87,7.0,6596449727.7,208817.9 +e29b0ce7815148548561f1e505388a87,7.0,6977883517.0,343943.9 +e29b0ce7815148548561f1e505388a87,7.0,7133461158.0,1111268.8 +e29b0ce7815148548561f1e505388a87,7.0,7189707463.2,2343596.0 +e29b0ce7815148548561f1e505388a87,7.0,8280007860.8,10795053.4 +29caed99fc1dd3b1885e56417648e1e6,17.4,0.0, +29caed99fc1dd3b1885e56417648e1e6,19.3,57441523.6,31.1 +29caed99fc1dd3b1885e56417648e1e6,20.2,97555290.8,40.8 +29caed99fc1dd3b1885e56417648e1e6,22.5,190520863.2,41.8 +29caed99fc1dd3b1885e56417648e1e6,22.9,213445017.3,56.3 +29caed99fc1dd3b1885e56417648e1e6,26.0,515756919.5,96.2 +29caed99fc1dd3b1885e56417648e1e6,27.9,708396121.0,103.5 +29caed99fc1dd3b1885e56417648e1e6,28.1,737512309.9,113.3 +29caed99fc1dd3b1885e56417648e1e6,29.8,997524397.3,151.9 +29caed99fc1dd3b1885e56417648e1e6,32.5,1709896900.7,264.8 +29caed99fc1dd3b1885e56417648e1e6,47.6,6948530754.4,347.3 +29caed99fc1dd3b1885e56417648e1e6,52.2,9078549379.6,465.8 +29caed99fc1dd3b1885e56417648e1e6,137.9,53951811435.0,523.3 +29caed99fc1dd3b1885e56417648e1e6,138.3,54128482950.9,535.8 +29caed99fc1dd3b1885e56417648e1e6,138.3,54208533652.6,975.5 +f8644441280e76e07363ed18c744f98e,14.7,0.0, +f8644441280e76e07363ed18c744f98e,19.3,21770435.5,4.7 +f8644441280e76e07363ed18c744f98e,20.1,50035286.6,37.1 +f8644441280e76e07363ed18c744f98e,22.3,184690736.4,61.0 +f8644441280e76e07363ed18c744f98e,24.9,442547976.6,98.8 +f8644441280e76e07363ed18c744f98e,26.9,701003153.5,131.8 +f8644441280e76e07363ed18c744f98e,28.5,970215061.4,162.2 +f8644441280e76e07363ed18c744f98e,36.8,2927292935.8,236.8 +f8644441280e76e07363ed18c744f98e,42.3,4664051482.7,317.4 +f8644441280e76e07363ed18c744f98e,44.0,5739041608.2,605.8 +f8644441280e76e07363ed18c744f98e,44.9,6561764282.4,924.2 +f8644441280e76e07363ed18c744f98e,46.3,7854177919.8,973.3 +f8644441280e76e07363ed18c744f98e,47.6,9358351737.1,1101.2 +f8644441280e76e07363ed18c744f98e,47.8,9716049818.7,1624.9 +f8644441280e76e07363ed18c744f98e,49.2,11853691778.5,1626.9 +f8644441280e76e07363ed18c744f98e,55.3,29591468887.4,2892.0 +f8644441280e76e07363ed18c744f98e,55.4,29933353931.4,4304.0 +73ef543f06f457ad704934364529893c,4.2,0.0, +73ef543f06f457ad704934364529893c,7.8,290628908.0,80.5 +73ef543f06f457ad704934364529893c,9.7,468950815.6,96.5 +73ef543f06f457ad704934364529893c,10.0,513259069.8,122.9 +73ef543f06f457ad704934364529893c,17.6,1648551147.8,149.0 +73ef543f06f457ad704934364529893c,18.1,1726715935.4,161.8 +73ef543f06f457ad704934364529893c,82.2,12801227760.8,172.7 +73ef543f06f457ad704934364529893c,94.8,15022592671.1,177.2 +73ef543f06f457ad704934364529893c,124.7,21327824189.7,210.6 +73ef543f06f457ad704934364529893c,126.5,21809634613.7,263.3 +73ef543f06f457ad704934364529893c,224.2,51109703227.4,299.9 +73ef543f06f457ad704934364529893c,224.9,51413324561.3,452.2 +73ef543f06f457ad704934364529893c,229.4,53756414569.8,522.4 +73ef543f06f457ad704934364529893c,229.4,53876738998.1,1240.3 +8bb4fb487323fd17e6ebc62985b328af,18.8,0.0, +8bb4fb487323fd17e6ebc62985b328af,25.7,83483105.7,12.0 +8bb4fb487323fd17e6ebc62985b328af,30.3,165515117.0,18.1 +8bb4fb487323fd17e6ebc62985b328af,44.2,592847197.9,30.5 +8bb4fb487323fd17e6ebc62985b328af,45.7,680573881.9,62.0 +8bb4fb487323fd17e6ebc62985b328af,100.1,4624603392.1,72.4 +8bb4fb487323fd17e6ebc62985b328af,100.6,4670270184.3,92.9 +8bb4fb487323fd17e6ebc62985b328af,118.8,7893747601.2,177.0 +8bb4fb487323fd17e6ebc62985b328af,139.7,15776881621.4,378.3 +8bb4fb487323fd17e6ebc62985b328af,139.8,16606779957.9,8471.9 +8bb4fb487323fd17e6ebc62985b328af,139.8,16803057858.6,18834.8 +8bb4fb487323fd17e6ebc62985b328af,139.8,16836862751.1,50304.8 +8bb4fb487323fd17e6ebc62985b328af,139.8,16849013514.7,247974.7 +d357ed0a280ef2316fad80a87b83bbb9,19.8,0.0, +d357ed0a280ef2316fad80a87b83bbb9,21.9,36712146.1,17.7 +d357ed0a280ef2316fad80a87b83bbb9,23.0,79970750.4,39.8 +d357ed0a280ef2316fad80a87b83bbb9,24.5,236007024.9,105.3 +d357ed0a280ef2316fad80a87b83bbb9,25.2,314187101.0,113.1 +d357ed0a280ef2316fad80a87b83bbb9,26.4,582480825.8,218.9 +d357ed0a280ef2316fad80a87b83bbb9,26.7,684680415.7,307.5 +d357ed0a280ef2316fad80a87b83bbb9,31.2,2485473725.0,405.9 +d357ed0a280ef2316fad80a87b83bbb9,35.8,5037975173.4,545.4 +d357ed0a280ef2316fad80a87b83bbb9,37.0,5982880729.0,801.9 +d357ed0a280ef2316fad80a87b83bbb9,37.1,6052837385.2,1021.4 +d357ed0a280ef2316fad80a87b83bbb9,37.6,6671601560.5,1167.1 +d357ed0a280ef2316fad80a87b83bbb9,54.6,27090002328.9,1204.6 +f53cd63c69a4fa922ba401ec01cbd256,16.5,0.0, +f53cd63c69a4fa922ba401ec01cbd256,18.9,59029709.0,24.5 +f53cd63c69a4fa922ba401ec01cbd256,20.1,153499058.3,81.8 +f53cd63c69a4fa922ba401ec01cbd256,23.8,473573235.8,86.1 +f53cd63c69a4fa922ba401ec01cbd256,27.7,1098708765.6,161.4 +f53cd63c69a4fa922ba401ec01cbd256,29.9,1680906269.9,256.6 +f53cd63c69a4fa922ba401ec01cbd256,32.9,2590911932.0,300.9 +f53cd63c69a4fa922ba401ec01cbd256,35.8,3918456179.8,469.9 +f53cd63c69a4fa922ba401ec01cbd256,46.1,10529761033.6,637.4 +f53cd63c69a4fa922ba401ec01cbd256,49.3,12627667800.9,662.0 +f53cd63c69a4fa922ba401ec01cbd256,100.8,47889813952.3,684.7 +f53cd63c69a4fa922ba401ec01cbd256,101.4,48271314588.2,701.1 +f53cd63c69a4fa922ba401ec01cbd256,102.7,49546651458.0,954.8 +f53cd63c69a4fa922ba401ec01cbd256,102.8,50024965849.3,3278.5 +ad2f0d0246c2984fbadd6170660c68b2,12.4,0.0, +ad2f0d0246c2984fbadd6170660c68b2,14.7,80117618.5,34.4 +ad2f0d0246c2984fbadd6170660c68b2,16.5,219749359.5,77.9 +ad2f0d0246c2984fbadd6170660c68b2,16.9,263990189.5,116.9 +ad2f0d0246c2984fbadd6170660c68b2,17.7,364876737.5,120.2 +ad2f0d0246c2984fbadd6170660c68b2,19.4,645418578.7,168.3 +ad2f0d0246c2984fbadd6170660c68b2,21.4,1931540706.4,623.7 +ad2f0d0246c2984fbadd6170660c68b2,22.1,2990593495.4,1657.4 +ad2f0d0246c2984fbadd6170660c68b2,25.5,9985751913.3,2031.4 +ad2f0d0246c2984fbadd6170660c68b2,25.6,10401934848.8,4314.1 +9fc373d0ebace3e362fd05ce042e7579,1.2,0.0, +9fc373d0ebace3e362fd05ce042e7579,2.0,58960433.8,74.2 +9fc373d0ebace3e362fd05ce042e7579,2.5,92018438.6,76.5 +9fc373d0ebace3e362fd05ce042e7579,3.5,226207738.2,134.1 +9fc373d0ebace3e362fd05ce042e7579,4.0,308282135.9,152.6 +9fc373d0ebace3e362fd05ce042e7579,5.0,528700392.8,216.3 +9fc373d0ebace3e362fd05ce042e7579,5.7,679615871.8,227.6 +9fc373d0ebace3e362fd05ce042e7579,64.3,14493089355.8,235.5 +9fc373d0ebace3e362fd05ce042e7579,67.1,15178310244.2,246.5 +9fc373d0ebace3e362fd05ce042e7579,70.4,15998714944.2,250.3 +9fc373d0ebace3e362fd05ce042e7579,78.1,18158167928.3,280.4 +9fc373d0ebace3e362fd05ce042e7579,78.8,18363620701.1,301.2 +9fc373d0ebace3e362fd05ce042e7579,84.2,20034256111.9,305.7 +9fc373d0ebace3e362fd05ce042e7579,111.9,28614707467.2,310.6 +9fc373d0ebace3e362fd05ce042e7579,114.9,29838610138.7,399.6 +9fc373d0ebace3e362fd05ce042e7579,153.5,46081638018.5,420.5 +9fc373d0ebace3e362fd05ce042e7579,154.7,46671048780.3,510.7 +c4bac66feffe913fc075a4fd7d7b9749,2.9,0.0, +c4bac66feffe913fc075a4fd7d7b9749,3.7,134861021.1,157.5 +c4bac66feffe913fc075a4fd7d7b9749,4.2,648041548.9,1063.0 +c4bac66feffe913fc075a4fd7d7b9749,52.1,68964453180.2,1426.3 +c4bac66feffe913fc075a4fd7d7b9749,52.4,70104095889.2,3811.8 +50d2aaa9eefb93cfec53b6cdacb24b6f,9.9,0.0, +50d2aaa9eefb93cfec53b6cdacb24b6f,13.4,491447599.1,137.8 +50d2aaa9eefb93cfec53b6cdacb24b6f,15.3,802605973.2,164.0 +50d2aaa9eefb93cfec53b6cdacb24b6f,18.1,1549892004.2,265.2 +50d2aaa9eefb93cfec53b6cdacb24b6f,120.6,73960817016.4,706.5 +50d2aaa9eefb93cfec53b6cdacb24b6f,166.5,108255685483.3,747.8 +50d2aaa9eefb93cfec53b6cdacb24b6f,264.8,185042613744.5,781.2 +50d2aaa9eefb93cfec53b6cdacb24b6f,381.6,282315610831.8,832.4 +50d2aaa9eefb93cfec53b6cdacb24b6f,389.2,289460178300.6,942.1 +50d2aaa9eefb93cfec53b6cdacb24b6f,389.3,289633987668.4,2514.2 +42c235ae41fc004e2bfd44da309b7153,17.3,0.0, +42c235ae41fc004e2bfd44da309b7153,26.4,173857384.8,19.2 +42c235ae41fc004e2bfd44da309b7153,28.5,238962786.4,30.5 +42c235ae41fc004e2bfd44da309b7153,34.0,434078271.1,35.1 +42c235ae41fc004e2bfd44da309b7153,41.6,1392462018.3,126.3 +42c235ae41fc004e2bfd44da309b7153,259.2,37150961645.8,164.3 +b7687c633dd4a085a428626479838633,18.0,0.0, +b7687c633dd4a085a428626479838633,22.9,62899320.5,12.8 +b7687c633dd4a085a428626479838633,25.7,178232860.2,41.0 +b7687c633dd4a085a428626479838633,27.1,322324712.2,104.8 +b7687c633dd4a085a428626479838633,30.0,1004104604.4,234.1 +b7687c633dd4a085a428626479838633,86.3,36873931490.0,637.6 +b7687c633dd4a085a428626479838633,106.2,49861889547.5,652.3 +b7687c633dd4a085a428626479838633,189.3,105774018738.7,672.9 +b7687c633dd4a085a428626479838633,262.4,155551445394.4,680.3 +b7687c633dd4a085a428626479838633,278.2,166565806215.8,700.1 +b7687c633dd4a085a428626479838633,280.1,168069925647.5,773.8 +b7687c633dd4a085a428626479838633,481.7,325529542550.3,781.0 +b7687c633dd4a085a428626479838633,481.9,326857526947.2,5285.3 +dcb08f45f5327ad0a33a15d5c66f4111,3.9,0.0, +dcb08f45f5327ad0a33a15d5c66f4111,7.9,147305889.1,36.7 +dcb08f45f5327ad0a33a15d5c66f4111,8.6,180150720.6,48.6 +dcb08f45f5327ad0a33a15d5c66f4111,11.1,624123116.2,179.3 +dcb08f45f5327ad0a33a15d5c66f4111,13.7,1831785763.9,460.6 +dcb08f45f5327ad0a33a15d5c66f4111,13.8,2097617525.0,2307.4 +dcb08f45f5327ad0a33a15d5c66f4111,14.7,4767532578.9,2914.3 +dcb08f45f5327ad0a33a15d5c66f4111,15.0,5499097270.9,3101.0 +dcb08f45f5327ad0a33a15d5c66f4111,15.0,6472528891.4,30047.8 +dcb08f45f5327ad0a33a15d5c66f4111,15.0,6506957857.7,81200.3 +dcb08f45f5327ad0a33a15d5c66f4111,15.0,6671782347.3,235127.6 +dcb08f45f5327ad0a33a15d5c66f4111,15.0,6815352232.2,610935.6 +e17242ccdeab827e9f7075d809a18758,1.8,0.0, +e17242ccdeab827e9f7075d809a18758,1.9,27756797.1,235.3 +e17242ccdeab827e9f7075d809a18758,2.0,57685807.8,260.9 +e17242ccdeab827e9f7075d809a18758,2.1,89620353.7,341.5 +e17242ccdeab827e9f7075d809a18758,2.2,124872031.0,389.1 +e17242ccdeab827e9f7075d809a18758,3.3,1389217048.1,1131.6 +e17242ccdeab827e9f7075d809a18758,3.5,1656571835.5,1402.6 +e17242ccdeab827e9f7075d809a18758,5.1,3890111544.7,1426.6 +e17242ccdeab827e9f7075d809a18758,7.5,8107639631.6,1761.6 +e17242ccdeab827e9f7075d809a18758,7.9,9125020799.9,2249.6 +83da8c6a48b3856ca8d1fb06e894d798,8.8,0.0, +83da8c6a48b3856ca8d1fb06e894d798,14.6,333046366.1,57.6 +83da8c6a48b3856ca8d1fb06e894d798,17.4,1212381816.2,304.0 +83da8c6a48b3856ca8d1fb06e894d798,22.5,9842603834.5,1698.3 +83da8c6a48b3856ca8d1fb06e894d798,22.6,9950378028.4,1924.6 +83da8c6a48b3856ca8d1fb06e894d798,25.2,18466778587.2,3247.6 +83da8c6a48b3856ca8d1fb06e894d798,25.4,19163105464.3,4413.0 +83da8c6a48b3856ca8d1fb06e894d798,25.4,19496724724.8,5443.4 +e9fd61aae466af5c81165444b0ec1149,3.8,0.0, +e9fd61aae466af5c81165444b0ec1149,4.7,202313584.5,233.0 +e9fd61aae466af5c81165444b0ec1149,5.1,366588353.7,371.1 +e9fd61aae466af5c81165444b0ec1149,5.3,453053622.3,477.6 +e9fd61aae466af5c81165444b0ec1149,5.6,585508551.9,487.2 +e9fd61aae466af5c81165444b0ec1149,6.5,1497465913.1,987.0 +e9fd61aae466af5c81165444b0ec1149,61.4,63163842115.9,1122.8 +e9fd61aae466af5c81165444b0ec1149,86.8,94455661636.3,1231.9 +e9fd61aae466af5c81165444b0ec1149,87.7,97597355969.3,3577.6 +e9fd61aae466af5c81165444b0ec1149,87.9,103891644656.5,27591.0 +95f010dcc44da9cb878c408bfd8e2c56,12.9,0.0, +95f010dcc44da9cb878c408bfd8e2c56,14.2,16026918.9,12.3 +95f010dcc44da9cb878c408bfd8e2c56,15.9,65931459.6,30.1 +95f010dcc44da9cb878c408bfd8e2c56,17.2,131034143.1,49.0 +95f010dcc44da9cb878c408bfd8e2c56,18.8,352488021.7,140.9 +95f010dcc44da9cb878c408bfd8e2c56,22.4,1048076576.2,190.7 +95f010dcc44da9cb878c408bfd8e2c56,23.6,1462201708.7,359.4 +95f010dcc44da9cb878c408bfd8e2c56,23.9,1750093196.8,883.5 +b0a9bfcdece7417e88b93d054508e38e,11.4,0.0, +b0a9bfcdece7417e88b93d054508e38e,14.3,82936171.5,28.3 +b0a9bfcdece7417e88b93d054508e38e,15.9,165511981.9,51.8 +b0a9bfcdece7417e88b93d054508e38e,16.5,202474260.2,58.3 +b0a9bfcdece7417e88b93d054508e38e,18.7,375750942.6,79.7 +b0a9bfcdece7417e88b93d054508e38e,20.1,500541898.6,86.3 +b0a9bfcdece7417e88b93d054508e38e,20.6,571073443.1,138.5 +b0a9bfcdece7417e88b93d054508e38e,21.8,882826644.2,260.2 +b0a9bfcdece7417e88b93d054508e38e,22.7,1129247170.3,296.6 +b0a9bfcdece7417e88b93d054508e38e,32.3,5442539637.9,448.9 +b0a9bfcdece7417e88b93d054508e38e,34.9,6781359252.3,518.9 +b0a9bfcdece7417e88b93d054508e38e,35.2,7008447633.3,687.3 +b0a9bfcdece7417e88b93d054508e38e,36.8,8314395761.7,810.2 +b0a9bfcdece7417e88b93d054508e38e,44.6,14967412915.2,856.2 +b0a9bfcdece7417e88b93d054508e38e,47.4,17470422124.1,897.4 +b0a9bfcdece7417e88b93d054508e38e,68.8,37906198180.4,951.1 +b0a9bfcdece7417e88b93d054508e38e,80.9,51557036288.0,1130.2 +b0a9bfcdece7417e88b93d054508e38e,81.7,53404529591.4,2295.5 +b0a9bfcdece7417e88b93d054508e38e,81.8,53480648723.3,3011.9 +a6fce5e6ca5bec22c9b802d4f91da3eb,21.7,0.0, +a6fce5e6ca5bec22c9b802d4f91da3eb,22.2,16946754.4,40.7 +a6fce5e6ca5bec22c9b802d4f91da3eb,22.9,46050968.8,41.0 +a6fce5e6ca5bec22c9b802d4f91da3eb,25.4,199495053.6,60.4 +a6fce5e6ca5bec22c9b802d4f91da3eb,26.4,310411088.7,114.6 +a6fce5e6ca5bec22c9b802d4f91da3eb,27.5,445617333.9,121.4 +a6fce5e6ca5bec22c9b802d4f91da3eb,28.4,597923290.6,172.1 +a6fce5e6ca5bec22c9b802d4f91da3eb,31.4,1222975509.8,209.9 +a6fce5e6ca5bec22c9b802d4f91da3eb,32.1,1408731109.1,249.6 +a6fce5e6ca5bec22c9b802d4f91da3eb,33.2,1746029149.4,301.7 +a6fce5e6ca5bec22c9b802d4f91da3eb,45.0,5996120541.2,360.4 +a6fce5e6ca5bec22c9b802d4f91da3eb,45.3,6225347568.0,808.3 +a6fce5e6ca5bec22c9b802d4f91da3eb,45.6,6473897719.1,813.8 +a6fce5e6ca5bec22c9b802d4f91da3eb,45.9,6725394903.6,975.6 +a6fce5e6ca5bec22c9b802d4f91da3eb,48.5,9336126523.7,982.4 +a6fce5e6ca5bec22c9b802d4f91da3eb,48.6,9420733059.9,1370.0 +a6fce5e6ca5bec22c9b802d4f91da3eb,48.6,9462402309.2,3396.3 +a6fce5e6ca5bec22c9b802d4f91da3eb,48.7,10072374931.9,6010.0 +a6fce5e6ca5bec22c9b802d4f91da3eb,49.0,11921330919.1,6249.3 +a6fce5e6ca5bec22c9b802d4f91da3eb,49.0,12050563824.3,17073.9 +a6fce5e6ca5bec22c9b802d4f91da3eb,49.0,12129947493.2,61970.0 +b5be3a471b0c9c04dc99b1becf49e3dc,6.0,0.0, +b5be3a471b0c9c04dc99b1becf49e3dc,9.6,32749535.7,9.0 +b5be3a471b0c9c04dc99b1becf49e3dc,11.5,199610764.2,90.3 +b5be3a471b0c9c04dc99b1becf49e3dc,12.4,407349245.0,216.6 +b5be3a471b0c9c04dc99b1becf49e3dc,12.6,612648807.5,1241.2 +b5be3a471b0c9c04dc99b1becf49e3dc,13.1,1273903511.0,1362.4 +b5be3a471b0c9c04dc99b1becf49e3dc,13.2,1382981095.3,1508.3 +b5be3a471b0c9c04dc99b1becf49e3dc,13.5,1997615600.6,1772.4 +b5be3a471b0c9c04dc99b1becf49e3dc,13.9,4466888021.5,6083.7 +b5be3a471b0c9c04dc99b1becf49e3dc,13.9,4754367177.6,9214.0 +b5be3a471b0c9c04dc99b1becf49e3dc,14.3,8231177686.6,9449.3 +b5be3a471b0c9c04dc99b1becf49e3dc,14.3,8279336796.5,21860.6 +b5be3a471b0c9c04dc99b1becf49e3dc,14.3,8838795588.0,16953296.7 +4da38aec984d2f54d9c94ac5e0c52c4f,5.6,0.0, +4da38aec984d2f54d9c94ac5e0c52c4f,7.0,98769813.5,66.2 +4da38aec984d2f54d9c94ac5e0c52c4f,9.4,792985104.7,301.5 +4da38aec984d2f54d9c94ac5e0c52c4f,131.2,52962627347.3,428.2 +4da38aec984d2f54d9c94ac5e0c52c4f,174.3,71546407746.5,431.1 +4da38aec984d2f54d9c94ac5e0c52c4f,178.6,73770895426.5,512.6 +4da38aec984d2f54d9c94ac5e0c52c4f,178.6,74499504788.1,44527.8 +55b8e288c28c187ed6dde56c7213df9d,5.9,0.0, +55b8e288c28c187ed6dde56c7213df9d,6.8,102481759.2,112.6 +55b8e288c28c187ed6dde56c7213df9d,7.5,184968613.9,126.3 +55b8e288c28c187ed6dde56c7213df9d,8.3,418847358.8,277.0 +55b8e288c28c187ed6dde56c7213df9d,8.5,539775721.3,542.0 +55b8e288c28c187ed6dde56c7213df9d,9.4,1067543357.0,579.6 +55b8e288c28c187ed6dde56c7213df9d,10.7,2027894526.8,731.9 +55b8e288c28c187ed6dde56c7213df9d,11.4,2510115633.0,779.5 +55b8e288c28c187ed6dde56c7213df9d,15.1,7019240179.2,1208.8 +55b8e288c28c187ed6dde56c7213df9d,21.7,16739439347.2,1468.8 +55b8e288c28c187ed6dde56c7213df9d,22.5,17893818500.4,1524.8 +55b8e288c28c187ed6dde56c7213df9d,38.0,43150118074.5,1624.3 +55b8e288c28c187ed6dde56c7213df9d,49.6,64078661001.2,1800.1 +55b8e288c28c187ed6dde56c7213df9d,123.9,198488211925.6,1808.8 +55b8e288c28c187ed6dde56c7213df9d,135.0,219119940719.8,1864.4 +55b8e288c28c187ed6dde56c7213df9d,135.3,221037649392.7,6033.0 +c46de094adb6809e259eeb712bab99ab,13.1,0.0, +c46de094adb6809e259eeb712bab99ab,13.7,35667731.5,58.7 +c46de094adb6809e259eeb712bab99ab,17.4,272441739.8,64.8 +c46de094adb6809e259eeb712bab99ab,18.7,440033787.1,123.4 +c46de094adb6809e259eeb712bab99ab,20.8,904492811.5,229.3 +c46de094adb6809e259eeb712bab99ab,21.2,1022957586.8,284.5 +c46de094adb6809e259eeb712bab99ab,21.5,1172166088.9,497.8 +c46de094adb6809e259eeb712bab99ab,21.5,1208869477.3,563.6 +c46de094adb6809e259eeb712bab99ab,21.7,1305839477.0,640.9 +c46de094adb6809e259eeb712bab99ab,22.5,1979798503.9,823.4 +c46de094adb6809e259eeb712bab99ab,23.7,3066204522.7,899.7 +c46de094adb6809e259eeb712bab99ab,25.6,5062572521.7,1042.4 +c46de094adb6809e259eeb712bab99ab,27.5,7401480941.6,1247.4 +c46de094adb6809e259eeb712bab99ab,30.4,12806392292.9,1841.6 +c46de094adb6809e259eeb712bab99ab,31.6,15447257636.6,2343.5 +6dcecce2bf925ad09dd36d34a68b1f3e,5.4,0.0, +6dcecce2bf925ad09dd36d34a68b1f3e,8.7,416103513.2,124.9 +6dcecce2bf925ad09dd36d34a68b1f3e,11.2,972158185.5,225.9 +6dcecce2bf925ad09dd36d34a68b1f3e,11.7,1095666283.4,228.3 +6dcecce2bf925ad09dd36d34a68b1f3e,12.8,1413027931.9,296.5 +6dcecce2bf925ad09dd36d34a68b1f3e,13.0,1481770820.6,323.7 +6dcecce2bf925ad09dd36d34a68b1f3e,181.5,60617606524.8,350.9 +6dcecce2bf925ad09dd36d34a68b1f3e,182.0,60793954768.9,365.8 +aedcebc1529b01e8bf77393c81406931,10.8,0.0, +aedcebc1529b01e8bf77393c81406931,13.3,79694237.8,31.8 +aedcebc1529b01e8bf77393c81406931,14.2,127988270.2,56.3 +aedcebc1529b01e8bf77393c81406931,19.0,726712692.1,123.7 +aedcebc1529b01e8bf77393c81406931,20.0,866846362.5,147.5 +aedcebc1529b01e8bf77393c81406931,23.7,1571995667.6,188.7 +aedcebc1529b01e8bf77393c81406931,23.9,1613172976.6,190.2 +aedcebc1529b01e8bf77393c81406931,29.2,3724397513.5,402.8 +aedcebc1529b01e8bf77393c81406931,29.5,3909579093.6,576.2 +aedcebc1529b01e8bf77393c81406931,32.1,5844163541.7,740.9 +aedcebc1529b01e8bf77393c81406931,38.5,11663778991.6,901.6 +aedcebc1529b01e8bf77393c81406931,46.6,19457259522.9,963.9 +aedcebc1529b01e8bf77393c81406931,47.4,20213212503.7,1036.4 +aedcebc1529b01e8bf77393c81406931,48.2,21179338381.7,1168.7 +aedcebc1529b01e8bf77393c81406931,64.2,45554235974.4,1525.8 +dfbe1abb61c4d077c4ffc926ea0d91c8,16.9,0.0, +dfbe1abb61c4d077c4ffc926ea0d91c8,19.0,95717539.8,45.1 +dfbe1abb61c4d077c4ffc926ea0d91c8,19.6,164170496.6,112.6 +dfbe1abb61c4d077c4ffc926ea0d91c8,20.0,246507015.4,185.9 +dfbe1abb61c4d077c4ffc926ea0d91c8,21.0,504590937.9,276.0 +dfbe1abb61c4d077c4ffc926ea0d91c8,21.3,840760660.8,1013.7 +dfbe1abb61c4d077c4ffc926ea0d91c8,21.6,1203261090.1,1030.4 +dfbe1abb61c4d077c4ffc926ea0d91c8,24.0,3757824739.3,1065.1 +dfbe1abb61c4d077c4ffc926ea0d91c8,26.0,6073369799.6,1196.0 +dfbe1abb61c4d077c4ffc926ea0d91c8,26.4,6689467167.7,1445.9 +dfbe1abb61c4d077c4ffc926ea0d91c8,28.5,10078106704.1,1605.1 +dfbe1abb61c4d077c4ffc926ea0d91c8,46.7,52933516258.3,2361.4 +dfbe1abb61c4d077c4ffc926ea0d91c8,46.9,54670151066.8,7627.2 +45a1cae9e3fb7425c15bc04bec28af32,11.8,0.0, +45a1cae9e3fb7425c15bc04bec28af32,14.1,39949282.0,17.2 +45a1cae9e3fb7425c15bc04bec28af32,15.6,98754485.3,40.0 +45a1cae9e3fb7425c15bc04bec28af32,20.5,299499295.3,40.9 +45a1cae9e3fb7425c15bc04bec28af32,23.1,566350755.8,100.1 +45a1cae9e3fb7425c15bc04bec28af32,25.4,870098671.6,131.2 +45a1cae9e3fb7425c15bc04bec28af32,30.2,2195156289.1,280.6 +45a1cae9e3fb7425c15bc04bec28af32,33.3,3184724426.2,311.6 +45a1cae9e3fb7425c15bc04bec28af32,33.8,3368934933.6,362.0 +45a1cae9e3fb7425c15bc04bec28af32,34.9,3771524930.5,400.1 +45a1cae9e3fb7425c15bc04bec28af32,48.7,10599811550.4,491.8 +45a1cae9e3fb7425c15bc04bec28af32,52.3,12825666852.0,623.2 +45a1cae9e3fb7425c15bc04bec28af32,56.0,15488570169.8,716.9 +45a1cae9e3fb7425c15bc04bec28af32,56.1,15571603408.4,754.6 +45a1cae9e3fb7425c15bc04bec28af32,63.4,21185584306.1,775.9 +45a1cae9e3fb7425c15bc04bec28af32,63.7,21727608167.0,1634.3 +45a1cae9e3fb7425c15bc04bec28af32,64.0,22529846238.3,2455.5 +a182e260da3f30b54260bf499f0db584,3.6,0.0, +a182e260da3f30b54260bf499f0db584,4.4,32521175.6,45.1 +a182e260da3f30b54260bf499f0db584,4.9,65037973.2,62.0 +a182e260da3f30b54260bf499f0db584,6.1,160687218.3,80.4 +a182e260da3f30b54260bf499f0db584,6.3,186214938.7,136.5 +a182e260da3f30b54260bf499f0db584,8.9,837182220.5,247.0 +a182e260da3f30b54260bf499f0db584,12.4,2186279056.3,388.2 +a182e260da3f30b54260bf499f0db584,13.6,3851364174.5,1314.9 +a182e260da3f30b54260bf499f0db584,13.7,4019335435.9,4184.7 +a182e260da3f30b54260bf499f0db584,13.7,4628492556.5,19313.1 +3821f559a445565a9d7e817f21878b66,4.2,0.0, +3821f559a445565a9d7e817f21878b66,5.0,222449455.6,292.0 +3821f559a445565a9d7e817f21878b66,5.1,363940261.6,1338.8 +3821f559a445565a9d7e817f21878b66,5.1,441216599.1,1443.5 +3821f559a445565a9d7e817f21878b66,5.3,801125784.9,2824.8 +3821f559a445565a9d7e817f21878b66,5.3,1297992356.8,5639.4 +3821f559a445565a9d7e817f21878b66,5.7,3937070924.9,6702.0 +3821f559a445565a9d7e817f21878b66,5.9,4808660803.2,6733.0 +3821f559a445565a9d7e817f21878b66,5.9,5359495501.0,37105.7 +3821f559a445565a9d7e817f21878b66,5.9,5371116556.2,64204.7 +84627be9a4c4c58b839ec0de01f5ce71,0.4,0.0, +84627be9a4c4c58b839ec0de01f5ce71,0.5,6134881.8,56.9 +84627be9a4c4c58b839ec0de01f5ce71,0.6,8833232.4,69.6 +84627be9a4c4c58b839ec0de01f5ce71,0.6,33030594.7,378.1 +84627be9a4c4c58b839ec0de01f5ce71,0.6,82997878.7,3657.6 +94b7031bb5bd63658dccb1e100b9867e,20.7,0.0, +94b7031bb5bd63658dccb1e100b9867e,22.7,31575103.4,16.3 +94b7031bb5bd63658dccb1e100b9867e,23.4,67750825.0,51.0 +94b7031bb5bd63658dccb1e100b9867e,26.9,334657042.7,75.5 +94b7031bb5bd63658dccb1e100b9867e,27.5,390155722.1,90.1 +94b7031bb5bd63658dccb1e100b9867e,28.7,861029770.4,397.1 +94b7031bb5bd63658dccb1e100b9867e,29.3,1119732288.1,447.0 +94b7031bb5bd63658dccb1e100b9867e,29.9,1423983354.4,479.8 +94b7031bb5bd63658dccb1e100b9867e,30.1,1524860755.0,538.7 +94b7031bb5bd63658dccb1e100b9867e,30.3,1638650558.1,629.4 +94b7031bb5bd63658dccb1e100b9867e,32.7,3351211306.3,712.5 +94b7031bb5bd63658dccb1e100b9867e,38.4,9356268946.4,1053.4 +94b7031bb5bd63658dccb1e100b9867e,38.5,9488140107.8,1066.9 +94b7031bb5bd63658dccb1e100b9867e,44.2,16096803462.9,1170.4 +94b7031bb5bd63658dccb1e100b9867e,44.6,16655651722.0,1399.5 +94b7031bb5bd63658dccb1e100b9867e,46.1,19816278211.6,2056.6 +94b7031bb5bd63658dccb1e100b9867e,46.2,19910737235.0,2378.2 +94b7031bb5bd63658dccb1e100b9867e,46.2,19914615036.1,110794.3 +8575de00d4306c012cf42a221a3755c2,8.7,0.0, +8575de00d4306c012cf42a221a3755c2,9.7,47941770.7,50.3 +8575de00d4306c012cf42a221a3755c2,10.5,108688269.0,74.0 +8575de00d4306c012cf42a221a3755c2,11.7,292190544.9,153.3 +8575de00d4306c012cf42a221a3755c2,12.0,360272655.9,214.9 +8575de00d4306c012cf42a221a3755c2,18.2,2611353810.5,361.6 +8575de00d4306c012cf42a221a3755c2,19.8,3326953591.9,446.7 +8575de00d4306c012cf42a221a3755c2,21.4,4213441465.7,586.2 +8575de00d4306c012cf42a221a3755c2,22.2,4827030995.5,719.6 +8575de00d4306c012cf42a221a3755c2,24.8,8089996095.5,1283.3 +8575de00d4306c012cf42a221a3755c2,28.6,13321747502.5,1360.1 +8575de00d4306c012cf42a221a3755c2,28.8,13625551156.4,1752.2 +8575de00d4306c012cf42a221a3755c2,29.0,14181575109.4,2752.8 +8575de00d4306c012cf42a221a3755c2,29.0,14374239889.1,5421.9 +8575de00d4306c012cf42a221a3755c2,29.1,15068496581.2,6530.5 +8575de00d4306c012cf42a221a3755c2,29.1,15079061344.4,100616.7 +de729e10d1f453d612fae15df776bdc8,0.4,0.0, +de729e10d1f453d612fae15df776bdc8,56.1,61426230601.6,1101.8 +de729e10d1f453d612fae15df776bdc8,56.2,61567983908.8,2725.8 +de73b430b6b6c4ff2c828349fcc586bd,8.4,0.0, +de73b430b6b6c4ff2c828349fcc586bd,11.8,114602842.4,33.9 +de73b430b6b6c4ff2c828349fcc586bd,22.5,2526488454.5,224.4 +de73b430b6b6c4ff2c828349fcc586bd,26.1,3645740994.3,310.2 +de73b430b6b6c4ff2c828349fcc586bd,31.7,5385830929.9,314.9 +de73b430b6b6c4ff2c828349fcc586bd,32.6,5837723098.4,492.2 +de73b430b6b6c4ff2c828349fcc586bd,37.7,8679083154.7,554.5 +de73b430b6b6c4ff2c828349fcc586bd,43.5,12704039505.2,698.7 +de73b430b6b6c4ff2c828349fcc586bd,46.6,14913570177.8,702.2 +de73b430b6b6c4ff2c828349fcc586bd,55.4,22044364064.7,806.8 +de73b430b6b6c4ff2c828349fcc586bd,62.8,28200006057.2,836.4 +de73b430b6b6c4ff2c828349fcc586bd,66.4,31713399863.9,968.1 +de73b430b6b6c4ff2c828349fcc586bd,72.9,38019486585.6,979.6 +de73b430b6b6c4ff2c828349fcc586bd,76.4,42349412495.6,1229.8 +de73b430b6b6c4ff2c828349fcc586bd,76.7,42722641467.6,1329.6 +089c2b774311033fb9333a520dfcc41d,10.6,0.0, +089c2b774311033fb9333a520dfcc41d,15.5,56080770.8,11.5 +089c2b774311033fb9333a520dfcc41d,16.2,158727180.8,137.1 +089c2b774311033fb9333a520dfcc41d,17.1,310266324.3,172.9 +089c2b774311033fb9333a520dfcc41d,18.1,666493548.6,370.2 +089c2b774311033fb9333a520dfcc41d,18.4,769417375.5,372.5 +089c2b774311033fb9333a520dfcc41d,19.0,1038971190.5,456.7 +089c2b774311033fb9333a520dfcc41d,19.1,1898800439.5,5415.4 +d6f0e955341feea93248e49ec223acb4,3.9,0.0, +d6f0e955341feea93248e49ec223acb4,4.7,115740672.1,157.0 +d6f0e955341feea93248e49ec223acb4,4.9,158418355.9,203.7 +d6f0e955341feea93248e49ec223acb4,5.2,220197122.1,215.8 +d6f0e955341feea93248e49ec223acb4,5.4,330955009.6,408.7 +d6f0e955341feea93248e49ec223acb4,5.6,436407649.6,578.5 +d6f0e955341feea93248e49ec223acb4,6.3,852881091.0,633.5 +d6f0e955341feea93248e49ec223acb4,8.3,3932144883.3,1529.8 +d6f0e955341feea93248e49ec223acb4,11.5,9236012480.0,1671.0 +d6f0e955341feea93248e49ec223acb4,11.7,9972824409.3,3648.5 +d6f0e955341feea93248e49ec223acb4,12.4,13048621767.0,4069.6 +8bcad4839a1e0e439e62911ff7b2d1c0,2.2,0.0, +8bcad4839a1e0e439e62911ff7b2d1c0,3.1,56138848.5,60.3 +8bcad4839a1e0e439e62911ff7b2d1c0,4.4,208553189.8,122.7 +8bcad4839a1e0e439e62911ff7b2d1c0,10.4,1623674472.5,234.0 +8bcad4839a1e0e439e62911ff7b2d1c0,17.6,3568664092.0,270.2 +8bcad4839a1e0e439e62911ff7b2d1c0,24.2,5629250421.8,312.1 +8bcad4839a1e0e439e62911ff7b2d1c0,27.5,7058607134.6,431.3 +8bcad4839a1e0e439e62911ff7b2d1c0,51.8,17628872009.8,436.2 +8bcad4839a1e0e439e62911ff7b2d1c0,54.1,18818308355.3,503.4 +8bcad4839a1e0e439e62911ff7b2d1c0,59.3,21580968761.2,536.8 +8bcad4839a1e0e439e62911ff7b2d1c0,125.1,64467474626.4,651.4 +8bcad4839a1e0e439e62911ff7b2d1c0,129.2,67141359703.7,660.4 +8bcad4839a1e0e439e62911ff7b2d1c0,133.1,69877282175.4,685.5 +8bcad4839a1e0e439e62911ff7b2d1c0,170.5,95616032851.4,689.4 +8bcad4839a1e0e439e62911ff7b2d1c0,175.3,99888049588.9,887.4 +5350828dece3d87d6bc550ae59c1f716,2.6,0.0, +5350828dece3d87d6bc550ae59c1f716,4.2,202351261.5,127.0 +5350828dece3d87d6bc550ae59c1f716,4.9,359499837.6,215.9 +5350828dece3d87d6bc550ae59c1f716,5.1,408891269.8,219.3 +5350828dece3d87d6bc550ae59c1f716,6.8,791676192.2,227.2 +5350828dece3d87d6bc550ae59c1f716,13.7,2549456098.3,254.5 +5350828dece3d87d6bc550ae59c1f716,14.6,2788954597.9,264.7 +5350828dece3d87d6bc550ae59c1f716,17.6,3921031955.1,374.2 +5350828dece3d87d6bc550ae59c1f716,25.5,7016458518.3,393.0 +5350828dece3d87d6bc550ae59c1f716,30.6,10113984392.4,607.2 +5350828dece3d87d6bc550ae59c1f716,38.0,14679637558.4,617.1 +5350828dece3d87d6bc550ae59c1f716,41.9,17289821135.3,674.6 +5350828dece3d87d6bc550ae59c1f716,45.5,21481935627.6,1148.8 +5350828dece3d87d6bc550ae59c1f716,45.5,21489077272.1,1409.9 +f4736d2045b334cc746fa0838f667558,2.6,0.0, +f4736d2045b334cc746fa0838f667558,2.9,263047304.1,979.9 +f4736d2045b334cc746fa0838f667558,3.3,753458951.6,1260.6 +f4736d2045b334cc746fa0838f667558,52.0,80362122746.2,1633.1 +f4736d2045b334cc746fa0838f667558,52.2,80886251157.8,3205.3 +f4736d2045b334cc746fa0838f667558,52.3,81320071431.4,3598.1 +500d6a0d4f9d23ff8fb47b4178577eaa,3.9,0.0, +500d6a0d4f9d23ff8fb47b4178577eaa,8.1,122724265.8,28.6 +500d6a0d4f9d23ff8fb47b4178577eaa,9.3,257155751.5,116.3 +500d6a0d4f9d23ff8fb47b4178577eaa,10.3,394709368.6,132.4 +500d6a0d4f9d23ff8fb47b4178577eaa,11.1,576543444.1,234.1 +500d6a0d4f9d23ff8fb47b4178577eaa,12.2,910433572.0,305.0 +500d6a0d4f9d23ff8fb47b4178577eaa,12.3,945123529.6,550.5 +500d6a0d4f9d23ff8fb47b4178577eaa,12.7,1269957252.6,663.2 +500d6a0d4f9d23ff8fb47b4178577eaa,14.5,2665966288.8,820.1 +500d6a0d4f9d23ff8fb47b4178577eaa,19.3,8131882642.8,1138.4 +500d6a0d4f9d23ff8fb47b4178577eaa,19.3,8212114708.1,1192.9 +500d6a0d4f9d23ff8fb47b4178577eaa,26.9,17674704702.7,1242.7 +500d6a0d4f9d23ff8fb47b4178577eaa,27.2,18028758680.8,1315.2 +500d6a0d4f9d23ff8fb47b4178577eaa,52.6,57124321426.3,1540.8 +500d6a0d4f9d23ff8fb47b4178577eaa,53.0,57890122058.0,1817.5 +500d6a0d4f9d23ff8fb47b4178577eaa,53.4,58867874348.2,2334.4 +067bc5f0cba3b80da70aaf152ea88d00,1.0,0.0, +067bc5f0cba3b80da70aaf152ea88d00,1.6,200992249.2,356.7 +067bc5f0cba3b80da70aaf152ea88d00,1.6,315705467.0,27701.8 +44d960540028642474acfd25467e7a96,6.5,0.0, +44d960540028642474acfd25467e7a96,8.8,32339427.8,14.1 +44d960540028642474acfd25467e7a96,11.4,69971881.1,14.5 +44d960540028642474acfd25467e7a96,13.8,112599950.6,17.6 +44d960540028642474acfd25467e7a96,15.7,178211772.8,33.6 +44d960540028642474acfd25467e7a96,17.9,289288163.0,51.4 +44d960540028642474acfd25467e7a96,19.2,383086262.1,73.4 +44d960540028642474acfd25467e7a96,19.4,468861709.0,317.7 +44d960540028642474acfd25467e7a96,21.4,1719848260.1,638.3 +44d960540028642474acfd25467e7a96,26.3,5821098841.5,834.6 +44d960540028642474acfd25467e7a96,26.6,6180107835.4,1133.5 +44d960540028642474acfd25467e7a96,26.7,6301007759.2,1156.3 +44d960540028642474acfd25467e7a96,37.1,19159608112.3,1245.0 +44d960540028642474acfd25467e7a96,37.7,20313699309.1,1862.1 +44d960540028642474acfd25467e7a96,39.3,24319132462.5,2469.5 +cbecf7f8ad2b6aed586ae7818efa528d,1.6,0.0, +cbecf7f8ad2b6aed586ae7818efa528d,2.4,356622242.5,442.5 +cbecf7f8ad2b6aed586ae7818efa528d,4.2,1834240005.6,827.1 +cbecf7f8ad2b6aed586ae7818efa528d,4.8,2296011386.3,848.6 +cbecf7f8ad2b6aed586ae7818efa528d,16.9,19216624291.3,1389.7 +cbecf7f8ad2b6aed586ae7818efa528d,59.6,79858024283.1,1419.7 +cbecf7f8ad2b6aed586ae7818efa528d,81.6,111162996654.1,1425.0 +4ede11bf969e39ffa8bd7246f7269c96,9.8,0.0, +4ede11bf969e39ffa8bd7246f7269c96,11.6,116757862.0,67.0 +4ede11bf969e39ffa8bd7246f7269c96,14.2,366200072.6,95.0 +4ede11bf969e39ffa8bd7246f7269c96,18.5,1244619225.9,204.6 +4ede11bf969e39ffa8bd7246f7269c96,20.7,1769686545.2,231.5 +4ede11bf969e39ffa8bd7246f7269c96,23.1,2424015994.0,276.7 +4ede11bf969e39ffa8bd7246f7269c96,23.6,2609511373.2,385.6 +4ede11bf969e39ffa8bd7246f7269c96,24.7,3076602717.7,421.3 +4ede11bf969e39ffa8bd7246f7269c96,25.8,3573549351.5,461.5 +4ede11bf969e39ffa8bd7246f7269c96,33.0,7854795751.9,593.9 +4ede11bf969e39ffa8bd7246f7269c96,36.3,10364727720.8,757.3 +4ede11bf969e39ffa8bd7246f7269c96,59.0,29447188291.3,840.3 +4ede11bf969e39ffa8bd7246f7269c96,69.2,39085702583.1,944.8 +4ede11bf969e39ffa8bd7246f7269c96,99.5,86742253126.8,1572.9 +bce66f1b478885743e24754e2296e7ad,9.0,0.0, +bce66f1b478885743e24754e2296e7ad,10.4,94115159.4,64.2 +bce66f1b478885743e24754e2296e7ad,11.5,171325540.5,71.7 +bce66f1b478885743e24754e2296e7ad,12.7,278304869.6,87.9 +bce66f1b478885743e24754e2296e7ad,16.1,768698605.4,145.6 +bce66f1b478885743e24754e2296e7ad,17.7,1181155136.1,257.5 +bce66f1b478885743e24754e2296e7ad,17.9,1246352761.9,275.6 +bce66f1b478885743e24754e2296e7ad,19.6,1897094212.2,402.2 +bce66f1b478885743e24754e2296e7ad,20.0,2198468122.3,623.7 +bce66f1b478885743e24754e2296e7ad,20.2,2333642198.6,693.4 +bce66f1b478885743e24754e2296e7ad,22.5,4168205028.5,803.0 +bce66f1b478885743e24754e2296e7ad,26.7,7685142101.6,842.7 +bce66f1b478885743e24754e2296e7ad,29.2,10045289049.5,951.5 +bce66f1b478885743e24754e2296e7ad,35.4,18306900328.7,1326.1 +bce66f1b478885743e24754e2296e7ad,35.7,19194129792.0,2780.4 +bce66f1b478885743e24754e2296e7ad,35.7,19231788834.6,10180.8 +1942f1e052aae8e41b0202f1d3898d29,1.9,0.0, +1942f1e052aae8e41b0202f1d3898d29,3.4,556162774.0,354.1 +1942f1e052aae8e41b0202f1d3898d29,9.2,2650856754.3,364.7 +1942f1e052aae8e41b0202f1d3898d29,19.5,6665343445.3,390.2 +1942f1e052aae8e41b0202f1d3898d29,23.0,8686287332.3,574.0 +1942f1e052aae8e41b0202f1d3898d29,23.4,8932505227.9,575.2 +265605ffaaddcc3d13d5d95449d2285e,14.8,0.0, +265605ffaaddcc3d13d5d95449d2285e,23.7,932642428.1,105.4 +265605ffaaddcc3d13d5d95449d2285e,28.6,2146137072.8,245.8 +265605ffaaddcc3d13d5d95449d2285e,31.6,3199814306.2,347.1 +265605ffaaddcc3d13d5d95449d2285e,41.3,7090079581.8,402.8 +097787fa704cd38e11959f16e41bf8c3,11.2,0.0, +097787fa704cd38e11959f16e41bf8c3,12.8,35629030.0,22.2 +097787fa704cd38e11959f16e41bf8c3,17.4,2012546911.4,423.6 +097787fa704cd38e11959f16e41bf8c3,21.1,3795323078.4,482.4 +097787fa704cd38e11959f16e41bf8c3,74.1,37960606711.9,644.5 +097787fa704cd38e11959f16e41bf8c3,188.7,112308801140.8,649.2 +097787fa704cd38e11959f16e41bf8c3,192.4,114804509781.8,657.4 +097787fa704cd38e11959f16e41bf8c3,194.6,116269563966.1,694.0 +097787fa704cd38e11959f16e41bf8c3,198.8,120126167713.0,904.1 +0c03add16b1ced2262e7d738a50e7c80,2.1,0.0, +0c03add16b1ced2262e7d738a50e7c80,3.0,56174849.1,69.4 +0c03add16b1ced2262e7d738a50e7c80,3.2,116851920.6,269.0 +0c03add16b1ced2262e7d738a50e7c80,3.9,670654501.6,809.0 +0c03add16b1ced2262e7d738a50e7c80,4.0,740680898.5,840.1 +0c03add16b1ced2262e7d738a50e7c80,6.1,2659942572.3,895.5 +0c03add16b1ced2262e7d738a50e7c80,6.3,2867338726.2,1097.6 +0c03add16b1ced2262e7d738a50e7c80,7.2,3976457549.4,1206.6 +0c03add16b1ced2262e7d738a50e7c80,8.3,6917639946.9,2614.0 +0c03add16b1ced2262e7d738a50e7c80,12.9,19518972272.7,2758.7 +0c03add16b1ced2262e7d738a50e7c80,13.4,21318830363.8,3559.0 +0c03add16b1ced2262e7d738a50e7c80,13.4,21402222019.8,3742.3 +cd68f69f916d3a21378ed4f2c353a5f2,24.9,0.0, +cd68f69f916d3a21378ed4f2c353a5f2,31.1,282976774.4,45.8 +cd68f69f916d3a21378ed4f2c353a5f2,33.5,432105411.5,61.9 +cd68f69f916d3a21378ed4f2c353a5f2,40.3,1462047762.6,150.7 +cd68f69f916d3a21378ed4f2c353a5f2,43.6,2090025313.0,190.6 +cd68f69f916d3a21378ed4f2c353a5f2,52.7,4286547841.5,242.8 +cd68f69f916d3a21378ed4f2c353a5f2,57.4,5798884149.2,319.8 +cd68f69f916d3a21378ed4f2c353a5f2,61.3,7318430767.3,390.8 +cd68f69f916d3a21378ed4f2c353a5f2,61.5,7429686882.7,566.7 +cd68f69f916d3a21378ed4f2c353a5f2,62.5,8065547158.5,626.8 +cd68f69f916d3a21378ed4f2c353a5f2,69.2,12463472045.4,654.4 +cd68f69f916d3a21378ed4f2c353a5f2,69.5,12703312897.2,808.3 +cd68f69f916d3a21378ed4f2c353a5f2,69.9,13072250920.4,892.4 +cd68f69f916d3a21378ed4f2c353a5f2,79.9,23884088599.3,1080.7 +cd68f69f916d3a21378ed4f2c353a5f2,96.8,43799240750.9,1182.5 +cd68f69f916d3a21378ed4f2c353a5f2,101.1,49835640693.9,1389.1 +cd68f69f916d3a21378ed4f2c353a5f2,102.9,52442874578.0,1465.9 +cd68f69f916d3a21378ed4f2c353a5f2,104.6,55331661822.7,1714.6 +cd68f69f916d3a21378ed4f2c353a5f2,104.8,56090328842.0,3089.0 +cd68f69f916d3a21378ed4f2c353a5f2,105.2,57511516631.7,3413.0 +05e8138abf6b899ed6bf8f3327eb0c73,21.3,0.0, +05e8138abf6b899ed6bf8f3327eb0c73,22.2,49084097.0,52.9 +05e8138abf6b899ed6bf8f3327eb0c73,23.4,150536738.6,89.9 +05e8138abf6b899ed6bf8f3327eb0c73,23.6,194598882.4,172.3 +05e8138abf6b899ed6bf8f3327eb0c73,24.4,424590101.7,311.6 +05e8138abf6b899ed6bf8f3327eb0c73,24.6,548234677.4,459.9 +05e8138abf6b899ed6bf8f3327eb0c73,27.5,1916237647.2,476.5 +05e8138abf6b899ed6bf8f3327eb0c73,29.1,2968704696.9,638.7 +05e8138abf6b899ed6bf8f3327eb0c73,33.0,7393678092.8,1153.0 +05e8138abf6b899ed6bf8f3327eb0c73,34.5,9873480779.8,1634.3 +05e8138abf6b899ed6bf8f3327eb0c73,35.8,12923319470.9,2434.9 +05e8138abf6b899ed6bf8f3327eb0c73,36.4,14842219939.8,2754.2 +05e8138abf6b899ed6bf8f3327eb0c73,36.5,14910767659.3,3819.4 +05e8138abf6b899ed6bf8f3327eb0c73,36.6,15744733532.5,6227.1 +05e8138abf6b899ed6bf8f3327eb0c73,36.6,16101054725.3,32331.1 +05e8138abf6b899ed6bf8f3327eb0c73,36.6,16123406496.9,245623.8 +e42599847f5cfd6fbca39160b796d928,16.6,0.0, +e42599847f5cfd6fbca39160b796d928,21.0,74522522.9,16.5 +e42599847f5cfd6fbca39160b796d928,21.6,116640745.6,76.6 +e42599847f5cfd6fbca39160b796d928,21.9,148526689.3,102.0 +e42599847f5cfd6fbca39160b796d928,23.0,347186382.0,176.3 +e42599847f5cfd6fbca39160b796d928,23.1,398142286.4,431.3 +e42599847f5cfd6fbca39160b796d928,24.1,836389692.5,484.7 +e42599847f5cfd6fbca39160b796d928,24.7,1337666349.6,794.9 +e42599847f5cfd6fbca39160b796d928,25.3,3100641590.4,2868.5 +e42599847f5cfd6fbca39160b796d928,25.3,3245419842.9,3289.6 +e42599847f5cfd6fbca39160b796d928,26.5,7311210921.4,3537.1 +e42599847f5cfd6fbca39160b796d928,26.6,7624986021.3,3647.9 +e42599847f5cfd6fbca39160b796d928,27.8,12802874559.9,4273.5 +e42599847f5cfd6fbca39160b796d928,28.5,16555110980.2,5202.0 +e42599847f5cfd6fbca39160b796d928,28.5,16880823134.1,55402.6 +420e9f98c829e36511b29c4f3d3174fe,0.9,0.0, +420e9f98c829e36511b29c4f3d3174fe,2.3,28971471.7,21.1 +420e9f98c829e36511b29c4f3d3174fe,2.8,57942943.5,57.2 +420e9f98c829e36511b29c4f3d3174fe,3.7,475788777.0,471.9 +420e9f98c829e36511b29c4f3d3174fe,4.8,1227312087.4,693.0 +420e9f98c829e36511b29c4f3d3174fe,5.2,1536108806.3,812.2 +420e9f98c829e36511b29c4f3d3174fe,5.8,2384815308.1,1347.7 +420e9f98c829e36511b29c4f3d3174fe,13.8,14163240033.7,1470.0 +420e9f98c829e36511b29c4f3d3174fe,14.4,15061953712.2,1517.7 +420e9f98c829e36511b29c4f3d3174fe,14.4,15068369529.1,24210.6 +0d9a52e512b77d53cc23d6f85edc0754,15.3,0.0, +0d9a52e512b77d53cc23d6f85edc0754,17.2,61987058.6,31.6 +0d9a52e512b77d53cc23d6f85edc0754,19.3,231003651.8,83.2 +0d9a52e512b77d53cc23d6f85edc0754,20.5,385558237.2,121.6 +0d9a52e512b77d53cc23d6f85edc0754,22.5,1107054046.6,368.0 +df7ade404997eb2b3facb82d5524a172,3.8,0.0, +df7ade404997eb2b3facb82d5524a172,5.2,289360864.3,206.4 +df7ade404997eb2b3facb82d5524a172,5.9,473390632.8,260.9 +df7ade404997eb2b3facb82d5524a172,6.3,588711550.3,328.3 +df7ade404997eb2b3facb82d5524a172,7.7,1142287712.8,387.6 +df7ade404997eb2b3facb82d5524a172,10.0,2132784777.5,435.3 +df7ade404997eb2b3facb82d5524a172,22.1,8001274592.7,483.4 +df7ade404997eb2b3facb82d5524a172,22.6,8457926976.7,1010.8 +df7ade404997eb2b3facb82d5524a172,25.9,12367823319.1,1157.9 +df7ade404997eb2b3facb82d5524a172,56.4,51859532045.3,1298.4 +df7ade404997eb2b3facb82d5524a172,74.1,76006425178.9,1362.1 +df7ade404997eb2b3facb82d5524a172,77.1,80446446367.4,1456.1 +df7ade404997eb2b3facb82d5524a172,95.6,107689544517.8,1472.2 +df7ade404997eb2b3facb82d5524a172,236.8,324930836627.5,1539.0 +df7ade404997eb2b3facb82d5524a172,237.1,326331951167.9,4549.7 +df7ade404997eb2b3facb82d5524a172,237.4,328678765881.7,8048.3 +eafd9787fd06a55378a25ed10da9586c,21.8,0.0, +eafd9787fd06a55378a25ed10da9586c,23.4,65316492.6,41.5 +eafd9787fd06a55378a25ed10da9586c,24.1,99323936.6,52.8 +eafd9787fd06a55378a25ed10da9586c,24.6,182846340.8,157.5 +eafd9787fd06a55378a25ed10da9586c,25.6,401341021.9,210.4 +eafd9787fd06a55378a25ed10da9586c,27.7,909546292.8,250.5 +eafd9787fd06a55378a25ed10da9586c,30.2,1734963137.8,323.1 +eafd9787fd06a55378a25ed10da9586c,30.8,1921103137.5,327.2 +eafd9787fd06a55378a25ed10da9586c,157.1,52167818191.6,397.7 +eafd9787fd06a55378a25ed10da9586c,166.6,56031413869.6,404.9 +f5c501e8c6a26a4244643ebdfa78a18d,6.9,0.0, +f5c501e8c6a26a4244643ebdfa78a18d,13.0,66223292.9,10.8 +f5c501e8c6a26a4244643ebdfa78a18d,14.8,199902349.2,73.3 +f5c501e8c6a26a4244643ebdfa78a18d,16.6,376645461.6,98.8 +f5c501e8c6a26a4244643ebdfa78a18d,18.9,908829685.3,234.2 +f5c501e8c6a26a4244643ebdfa78a18d,22.3,2240527251.0,384.3 +f5c501e8c6a26a4244643ebdfa78a18d,44.2,15348714126.5,598.5 +f5c501e8c6a26a4244643ebdfa78a18d,44.8,16294770555.2,1547.8 +7b56d37854e7ba51f10637e34fa89ab7,3.9,0.0, +7b56d37854e7ba51f10637e34fa89ab7,7.1,93431941.6,29.9 +7b56d37854e7ba51f10637e34fa89ab7,7.7,148569651.7,80.9 +7b56d37854e7ba51f10637e34fa89ab7,8.8,282896303.3,129.9 +9f7e16bb747b8f99aefaf75261613b71,16.5,0.0, +9f7e16bb747b8f99aefaf75261613b71,20.6,26451577.6,6.3 +9f7e16bb747b8f99aefaf75261613b71,22.2,145435129.4,74.0 +9f7e16bb747b8f99aefaf75261613b71,22.9,215573498.3,106.1 +9f7e16bb747b8f99aefaf75261613b71,24.3,440775431.3,164.1 +9f7e16bb747b8f99aefaf75261613b71,24.9,551054785.8,171.7 +9f7e16bb747b8f99aefaf75261613b71,25.4,643220616.3,202.9 +9f7e16bb747b8f99aefaf75261613b71,27.3,1264548136.5,324.8 +9f7e16bb747b8f99aefaf75261613b71,27.9,1700308849.6,658.0 +9f7e16bb747b8f99aefaf75261613b71,33.9,11519915538.0,1646.9 +9f7e16bb747b8f99aefaf75261613b71,34.0,11630233352.3,1812.6 +9f7e16bb747b8f99aefaf75261613b71,34.0,12080532261.8,141425.5 +7a1f63f7dba60ce6146ec87d673f8f0a,2.3,0.0, +7a1f63f7dba60ce6146ec87d673f8f0a,3.7,159875007.5,114.8 +7a1f63f7dba60ce6146ec87d673f8f0a,4.8,381468651.6,204.8 +7a1f63f7dba60ce6146ec87d673f8f0a,5.2,557576561.1,369.6 +7a1f63f7dba60ce6146ec87d673f8f0a,5.5,667150818.2,414.5 +7a1f63f7dba60ce6146ec87d673f8f0a,6.9,1379988117.2,496.4 +7a1f63f7dba60ce6146ec87d673f8f0a,7.5,1763470730.5,662.3 +7a1f63f7dba60ce6146ec87d673f8f0a,9.6,3426469354.3,788.5 +7a1f63f7dba60ce6146ec87d673f8f0a,10.0,3788720839.7,925.8 +7a1f63f7dba60ce6146ec87d673f8f0a,37.2,32253762550.8,1045.5 +7a1f63f7dba60ce6146ec87d673f8f0a,38.6,34962653614.4,1931.0 +7a1f63f7dba60ce6146ec87d673f8f0a,38.7,35005954306.7,2087.1 +7a1f63f7dba60ce6146ec87d673f8f0a,38.7,35033668355.9,1979574.9 +0e16acf16e3d99f420c9701ff23bb5c3,15.5,0.0, +0e16acf16e3d99f420c9701ff23bb5c3,19.8,48803780.3,11.2 +0e16acf16e3d99f420c9701ff23bb5c3,22.1,590680687.6,238.6 +0e16acf16e3d99f420c9701ff23bb5c3,24.0,1259687517.8,348.5 +fbdd35cdc8de9b2f34a18643c2014ab5,11.4,0.0, +fbdd35cdc8de9b2f34a18643c2014ab5,11.9,15791922.9,29.4 +fbdd35cdc8de9b2f34a18643c2014ab5,14.3,228642739.2,88.4 +fbdd35cdc8de9b2f34a18643c2014ab5,14.7,267329593.4,100.9 +fbdd35cdc8de9b2f34a18643c2014ab5,17.6,645438985.6,129.2 +fbdd35cdc8de9b2f34a18643c2014ab5,18.2,745138092.5,161.5 +fbdd35cdc8de9b2f34a18643c2014ab5,28.1,2851106328.0,212.7 +fbdd35cdc8de9b2f34a18643c2014ab5,31.8,4061187515.6,333.4 +fbdd35cdc8de9b2f34a18643c2014ab5,32.2,4213392294.1,347.6 +fbdd35cdc8de9b2f34a18643c2014ab5,32.6,4446192161.0,592.9 +fbdd35cdc8de9b2f34a18643c2014ab5,36.0,7046360035.8,768.2 +fbdd35cdc8de9b2f34a18643c2014ab5,39.3,10177039925.3,928.9 +fbdd35cdc8de9b2f34a18643c2014ab5,43.4,14675511764.3,1123.9 +fbdd35cdc8de9b2f34a18643c2014ab5,75.2,57692029925.7,1350.1 +e48598cd7a048a01fb0d19563bc12db8,15.4,0.0, +e48598cd7a048a01fb0d19563bc12db8,22.5,331151565.1,46.5 +e48598cd7a048a01fb0d19563bc12db8,23.1,401001617.0,122.8 +e48598cd7a048a01fb0d19563bc12db8,29.8,1461330777.9,159.1 +e48598cd7a048a01fb0d19563bc12db8,33.6,2164023106.7,182.5 +e48598cd7a048a01fb0d19563bc12db8,33.8,2199943989.6,199.9 +e48598cd7a048a01fb0d19563bc12db8,36.7,3162482885.1,337.2 +e48598cd7a048a01fb0d19563bc12db8,41.9,5514363810.9,446.7 +e48598cd7a048a01fb0d19563bc12db8,50.1,9513084416.8,489.9 +e48598cd7a048a01fb0d19563bc12db8,52.9,11411370545.5,669.1 +e48598cd7a048a01fb0d19563bc12db8,53.8,12088398502.9,804.3 +e48598cd7a048a01fb0d19563bc12db8,54.4,12730282697.8,1000.5 +e48598cd7a048a01fb0d19563bc12db8,58.9,17726271769.7,1101.2 +e48598cd7a048a01fb0d19563bc12db8,61.0,21084931520.8,1656.7 +e48598cd7a048a01fb0d19563bc12db8,61.0,21151860773.7,26308.6 +e48598cd7a048a01fb0d19563bc12db8,61.0,21185950122.3,39964.0 +9b962221bbdda9573305c5c7106f66fe,17.3,0.0, +9b962221bbdda9573305c5c7106f66fe,18.0,35739099.4,48.7 +9b962221bbdda9573305c5c7106f66fe,19.1,108784302.1,71.3 +9b962221bbdda9573305c5c7106f66fe,22.2,454665136.4,111.9 +9b962221bbdda9573305c5c7106f66fe,23.2,605462794.8,150.1 +9b962221bbdda9573305c5c7106f66fe,23.3,678833917.3,749.9 +9b962221bbdda9573305c5c7106f66fe,25.3,2256390480.3,787.0 +9b962221bbdda9573305c5c7106f66fe,32.4,8170007852.8,832.3 +9b962221bbdda9573305c5c7106f66fe,36.4,12405500933.3,1056.3 +9b962221bbdda9573305c5c7106f66fe,39.7,17207387356.0,1422.0 +9b962221bbdda9573305c5c7106f66fe,45.6,25923492133.8,1481.0 +9b962221bbdda9573305c5c7106f66fe,54.4,39090102787.4,1505.6 +9b962221bbdda9573305c5c7106f66fe,85.4,91277484113.6,1684.2 +9b962221bbdda9573305c5c7106f66fe,110.2,133902303136.1,1713.1 +9b962221bbdda9573305c5c7106f66fe,159.7,221585926410.7,1773.1 +9b962221bbdda9573305c5c7106f66fe,172.0,245520716593.5,1944.5 +9b962221bbdda9573305c5c7106f66fe,181.5,267258766491.1,2283.1 +9b962221bbdda9573305c5c7106f66fe,183.1,272960762021.9,3595.5 +0aa95157ba94430c97499e6cdf5d9efc,2.9,0.0, +0aa95157ba94430c97499e6cdf5d9efc,3.7,56682277.5,70.9 +0aa95157ba94430c97499e6cdf5d9efc,4.4,118446334.5,87.1 +0aa95157ba94430c97499e6cdf5d9efc,5.0,230101226.7,166.6 +0aa95157ba94430c97499e6cdf5d9efc,5.4,306590407.2,186.0 +0aa95157ba94430c97499e6cdf5d9efc,6.3,635034162.8,400.0 +0aa95157ba94430c97499e6cdf5d9efc,29.0,17578939632.4,745.6 +0aa95157ba94430c97499e6cdf5d9efc,41.5,27086730780.3,760.2 +0aa95157ba94430c97499e6cdf5d9efc,58.1,39829393276.1,769.1 +0aa95157ba94430c97499e6cdf5d9efc,72.1,51963870098.0,867.3 +0aa95157ba94430c97499e6cdf5d9efc,206.3,195187832238.4,1066.6 +0aa95157ba94430c97499e6cdf5d9efc,210.8,200229159660.8,1125.0 +0aa95157ba94430c97499e6cdf5d9efc,211.4,201935849714.0,2925.9 +746de7a2ddd516aba7e075df93ee1984,5.0,0.0, +746de7a2ddd516aba7e075df93ee1984,5.3,44929885.7,129.8 +746de7a2ddd516aba7e075df93ee1984,8.1,718516062.7,245.4 +746de7a2ddd516aba7e075df93ee1984,8.4,814718487.6,278.6 +746de7a2ddd516aba7e075df93ee1984,8.6,857535414.9,320.0 +746de7a2ddd516aba7e075df93ee1984,10.1,1409202212.0,347.3 +746de7a2ddd516aba7e075df93ee1984,10.2,1464023028.0,713.3 +746de7a2ddd516aba7e075df93ee1984,30.0,16457389959.5,759.4 +746de7a2ddd516aba7e075df93ee1984,46.3,35625120048.7,1172.5 +a69f0e7f6f71f675655d71b6d5c43893,4.3,0.0, +a69f0e7f6f71f675655d71b6d5c43893,5.9,142545872.7,92.6 +a69f0e7f6f71f675655d71b6d5c43893,8.2,369199084.6,96.3 +a69f0e7f6f71f675655d71b6d5c43893,14.8,1006484552.5,96.4 +a69f0e7f6f71f675655d71b6d5c43893,120.8,12809490242.6,111.3 +a69f0e7f6f71f675655d71b6d5c43893,146.3,15886239334.8,120.6 +a69f0e7f6f71f675655d71b6d5c43893,217.9,25161961791.9,129.5 +a69f0e7f6f71f675655d71b6d5c43893,243.3,28790988896.0,142.9 +a69f0e7f6f71f675655d71b6d5c43893,1237.2,171293626162.4,143.3 +a69f0e7f6f71f675655d71b6d5c43893,1255.8,174154742740.6,153.7 +a69f0e7f6f71f675655d71b6d5c43893,1255.9,174791119907.7,4656.8 +c6df310b558954a2b696cddebacb33b4,13.9,0.0, +c6df310b558954a2b696cddebacb33b4,19.5,39154378.3,6.9 +c6df310b558954a2b696cddebacb33b4,25.6,749629696.4,116.2 +c6df310b558954a2b696cddebacb33b4,27.1,950209727.3,134.5 +c6df310b558954a2b696cddebacb33b4,27.2,973906386.4,200.0 +c6df310b558954a2b696cddebacb33b4,29.1,2241691400.5,692.3 +c6df310b558954a2b696cddebacb33b4,41.1,10705255389.1,702.4 +c6df310b558954a2b696cddebacb33b4,59.3,25806092310.7,828.4 +c6df310b558954a2b696cddebacb33b4,65.2,30966123012.2,879.7 +c6df310b558954a2b696cddebacb33b4,153.7,123866151143.2,1049.6 +c6df310b558954a2b696cddebacb33b4,158.0,128757293852.0,1138.1 +c6df310b558954a2b696cddebacb33b4,171.9,148380425270.7,1411.7 +c6df310b558954a2b696cddebacb33b4,171.9,148572937519.0,12968.1 +4026f5142c9d6374247865fc12b78aed,4.9,0.0, +4026f5142c9d6374247865fc12b78aed,5.6,97387347.6,140.5 +4026f5142c9d6374247865fc12b78aed,5.8,147100395.5,226.8 +4026f5142c9d6374247865fc12b78aed,6.5,594936504.7,713.1 +4026f5142c9d6374247865fc12b78aed,34.5,35396819179.4,1240.5 +4026f5142c9d6374247865fc12b78aed,35.5,36790941057.2,1363.2 +4026f5142c9d6374247865fc12b78aed,36.5,38479114230.4,1670.6 +4026f5142c9d6374247865fc12b78aed,37.3,39773975243.6,1803.1 +4026f5142c9d6374247865fc12b78aed,48.4,60317660523.0,1840.0 +4026f5142c9d6374247865fc12b78aed,50.3,64554537152.0,2260.0 +4026f5142c9d6374247865fc12b78aed,58.0,83794651232.5,2500.7 +4026f5142c9d6374247865fc12b78aed,63.2,99523956605.8,3042.7 +4026f5142c9d6374247865fc12b78aed,71.3,124615085442.3,3077.5 +4026f5142c9d6374247865fc12b78aed,71.8,126605940519.9,3804.6 +6e2922432dd30a1b2ce963e779f3b32f,13.3,0.0, +6e2922432dd30a1b2ce963e779f3b32f,18.9,218075950.4,38.6 +6e2922432dd30a1b2ce963e779f3b32f,22.6,381848274.5,44.0 +6e2922432dd30a1b2ce963e779f3b32f,24.8,483006611.0,46.2 +6e2922432dd30a1b2ce963e779f3b32f,31.2,1055336350.4,89.6 +6e2922432dd30a1b2ce963e779f3b32f,33.6,1545934454.0,202.2 +6e2922432dd30a1b2ce963e779f3b32f,34.5,1726064355.8,206.8 +6e2922432dd30a1b2ce963e779f3b32f,38.6,2679988449.5,233.4 +6e2922432dd30a1b2ce963e779f3b32f,40.9,3510540041.4,357.6 +6e2922432dd30a1b2ce963e779f3b32f,50.2,7827135976.4,464.5 +6e2922432dd30a1b2ce963e779f3b32f,57.8,12740443261.1,646.1 +6e2922432dd30a1b2ce963e779f3b32f,70.7,22131353260.8,731.2 +6e2922432dd30a1b2ce963e779f3b32f,83.0,31974787770.7,794.0 +6e2922432dd30a1b2ce963e779f3b32f,89.6,40137253595.1,1238.7 +6e2922432dd30a1b2ce963e779f3b32f,89.7,41120408755.6,50822.1 +6e2922432dd30a1b2ce963e779f3b32f,89.7,41149013708.0,91682.5 +6e2922432dd30a1b2ce963e779f3b32f,89.7,41177092928.9,384646.8 +619c1be4c89a19705bf8e782db74d127,7.8,0.0, +619c1be4c89a19705bf8e782db74d127,9.0,43195508.0,35.0 +619c1be4c89a19705bf8e782db74d127,11.6,199154243.5,59.0 +619c1be4c89a19705bf8e782db74d127,13.0,293782299.7,69.0 +619c1be4c89a19705bf8e782db74d127,26.8,1434461368.6,82.4 +619c1be4c89a19705bf8e782db74d127,39.0,2453632609.3,83.7 +619c1be4c89a19705bf8e782db74d127,111.1,12429341858.8,138.3 +619c1be4c89a19705bf8e782db74d127,435.0,67162865836.3,168.9 +619c1be4c89a19705bf8e782db74d127,618.8,99024983621.8,173.4 +619c1be4c89a19705bf8e782db74d127,723.7,119577537320.0,195.9 +619c1be4c89a19705bf8e782db74d127,887.4,152937501317.0,203.7 +619c1be4c89a19705bf8e782db74d127,1020.8,186384173298.0,250.7 +619c1be4c89a19705bf8e782db74d127,1041.8,192009777166.6,268.1 +619c1be4c89a19705bf8e782db74d127,1056.5,197750700138.9,390.1 +619c1be4c89a19705bf8e782db74d127,1057.4,198554145396.3,877.0 +619c1be4c89a19705bf8e782db74d127,1057.4,198947355895.1,16804.5 +b355cb4ba1b964c33e6ff093d6501ed2,12.1,0.0, +b355cb4ba1b964c33e6ff093d6501ed2,13.9,29381160.9,16.3 +b355cb4ba1b964c33e6ff093d6501ed2,15.1,86073545.1,49.5 +b355cb4ba1b964c33e6ff093d6501ed2,18.5,562047833.5,138.7 +b355cb4ba1b964c33e6ff093d6501ed2,19.8,882318621.4,241.1 +b355cb4ba1b964c33e6ff093d6501ed2,23.1,2014689182.5,352.3 +b355cb4ba1b964c33e6ff093d6501ed2,25.0,2842398770.9,421.0 +b355cb4ba1b964c33e6ff093d6501ed2,27.5,4213223897.2,562.9 +b355cb4ba1b964c33e6ff093d6501ed2,28.5,4970428168.8,721.0 +b355cb4ba1b964c33e6ff093d6501ed2,29.9,6342638942.8,991.0 +b355cb4ba1b964c33e6ff093d6501ed2,31.2,7926756102.8,1234.1 +b355cb4ba1b964c33e6ff093d6501ed2,32.9,10585882425.7,1548.9 +b355cb4ba1b964c33e6ff093d6501ed2,32.9,10639361587.3,2162.6 +b355cb4ba1b964c33e6ff093d6501ed2,32.9,10684963737.2,2354.6 +b355cb4ba1b964c33e6ff093d6501ed2,34.7,15672997380.7,2827.9 +b355cb4ba1b964c33e6ff093d6501ed2,34.7,15892484984.2,9708.8 +5327e56dde96d7a470ae99896c2e150b,17.6,0.0, +5327e56dde96d7a470ae99896c2e150b,22.4,235802249.7,49.0 +5327e56dde96d7a470ae99896c2e150b,25.0,515477463.2,107.4 +5327e56dde96d7a470ae99896c2e150b,27.0,1058255766.4,273.0 +5327e56dde96d7a470ae99896c2e150b,38.3,7620747562.2,583.5 +5327e56dde96d7a470ae99896c2e150b,42.8,10591270798.6,650.3 +5327e56dde96d7a470ae99896c2e150b,57.8,21564616561.8,731.0 +5327e56dde96d7a470ae99896c2e150b,60.3,23761102643.7,900.5 +4a2b617a69dbfb910b57246655ebdf3e,18.4,0.0, +4a2b617a69dbfb910b57246655ebdf3e,19.8,38408384.2,26.8 +4a2b617a69dbfb910b57246655ebdf3e,20.6,97268263.1,71.9 +4a2b617a69dbfb910b57246655ebdf3e,21.1,130924652.4,75.2 +4a2b617a69dbfb910b57246655ebdf3e,21.8,194703825.6,81.8 +4a2b617a69dbfb910b57246655ebdf3e,25.6,688935670.8,130.1 +4a2b617a69dbfb910b57246655ebdf3e,33.1,2798870927.2,284.7 +4a2b617a69dbfb910b57246655ebdf3e,38.0,4350215654.6,314.7 +4a2b617a69dbfb910b57246655ebdf3e,42.9,6333362948.4,399.2 +4a2b617a69dbfb910b57246655ebdf3e,53.4,11697864122.3,511.9 +4a2b617a69dbfb910b57246655ebdf3e,55.1,14103319919.4,1443.3 +4a2b617a69dbfb910b57246655ebdf3e,56.1,15687442507.9,1638.0 +4a2b617a69dbfb910b57246655ebdf3e,57.4,19263631113.2,2619.8 +8b16b8589a919b5ac2a8e967f5840851,1.8,0.0, +8b16b8589a919b5ac2a8e967f5840851,3.1,24214027.2,18.4 +8b16b8589a919b5ac2a8e967f5840851,3.7,100669516.0,142.0 +8b16b8589a919b5ac2a8e967f5840851,4.5,429260535.2,388.0 +8b16b8589a919b5ac2a8e967f5840851,5.0,642161119.1,440.6 +8b16b8589a919b5ac2a8e967f5840851,6.7,1573946297.8,549.7 +8b16b8589a919b5ac2a8e967f5840851,10.3,5877916984.9,1179.1 +8b16b8589a919b5ac2a8e967f5840851,13.5,10474268783.4,1432.9 +8b16b8589a919b5ac2a8e967f5840851,17.4,17294920668.7,1745.0 +0d4bd6d30244a4deedab26abc0164a54,5.5,0.0, +0d4bd6d30244a4deedab26abc0164a54,8.3,175374366.2,61.4 +0d4bd6d30244a4deedab26abc0164a54,9.2,252926437.8,88.4 +0d4bd6d30244a4deedab26abc0164a54,13.7,950457346.6,155.7 +0d4bd6d30244a4deedab26abc0164a54,28.0,3207833955.4,157.7 +0d4bd6d30244a4deedab26abc0164a54,29.3,3418128803.6,162.6 +0d4bd6d30244a4deedab26abc0164a54,29.4,3442396158.2,198.1 +0d4bd6d30244a4deedab26abc0164a54,43.0,6168490107.2,200.4 +0d4bd6d30244a4deedab26abc0164a54,46.7,7175977410.8,273.2 +0d4bd6d30244a4deedab26abc0164a54,90.2,20804322281.8,313.4 +0d4bd6d30244a4deedab26abc0164a54,140.2,40172235251.6,387.1 +0d4bd6d30244a4deedab26abc0164a54,141.0,40535218587.6,452.2 +0d4bd6d30244a4deedab26abc0164a54,172.1,56246299472.0,505.7 +0d4bd6d30244a4deedab26abc0164a54,184.6,66829587301.5,843.8 +0d4bd6d30244a4deedab26abc0164a54,186.6,68564673947.9,888.6 +0d4bd6d30244a4deedab26abc0164a54,189.9,72240665313.6,1086.3 +0d4bd6d30244a4deedab26abc0164a54,191.4,73968658445.6,1156.6 +0d4bd6d30244a4deedab26abc0164a54,197.1,81028357228.4,1241.7 +0d4bd6d30244a4deedab26abc0164a54,198.5,83329778506.4,1624.3 +0d4bd6d30244a4deedab26abc0164a54,201.4,88402037950.5,1790.4 +78095380718d012c536fc85ad430b2ca,1.8,0.0, +78095380718d012c536fc85ad430b2ca,3.7,799702492.8,415.0 +78095380718d012c536fc85ad430b2ca,5.0,2345555506.0,1170.5 +78095380718d012c536fc85ad430b2ca,29.6,34380475260.9,1304.4 +78095380718d012c536fc85ad430b2ca,42.8,55117801367.9,1563.9 +78095380718d012c536fc85ad430b2ca,72.3,104931318103.3,1691.0 +78095380718d012c536fc85ad430b2ca,73.7,107419843397.2,1729.3 +78095380718d012c536fc85ad430b2ca,85.6,129283735477.9,1843.7 +78095380718d012c536fc85ad430b2ca,92.7,142548754250.1,1849.2 +78095380718d012c536fc85ad430b2ca,96.2,149557262737.8,2022.8 +48285273eb070fb2eef952b7841e433b,7.8,0.0, +48285273eb070fb2eef952b7841e433b,9.3,246210348.3,165.7 +48285273eb070fb2eef952b7841e433b,13.2,1222059571.2,251.7 +48285273eb070fb2eef952b7841e433b,13.6,1389152917.8,377.5 +48285273eb070fb2eef952b7841e433b,14.1,1559207450.2,380.2 +48285273eb070fb2eef952b7841e433b,22.6,5976261351.2,517.1 +48285273eb070fb2eef952b7841e433b,32.6,12272478065.2,631.0 +48285273eb070fb2eef952b7841e433b,38.9,18040327704.4,908.5 +48285273eb070fb2eef952b7841e433b,44.9,25845536559.1,1306.2 +48285273eb070fb2eef952b7841e433b,45.4,26568053853.0,1354.4 +48285273eb070fb2eef952b7841e433b,48.7,32697215133.7,1900.1 +48285273eb070fb2eef952b7841e433b,48.7,32779786711.3,15779.0 +4e91093943d84c5d86a92cc691842322,1.0,0.0, +4e91093943d84c5d86a92cc691842322,1.4,20718514.5,62.2 +4e91093943d84c5d86a92cc691842322,2.5,143959807.6,108.6 +4e91093943d84c5d86a92cc691842322,3.3,255998598.5,137.1 +4e91093943d84c5d86a92cc691842322,4.7,632095191.2,272.3 +4e91093943d84c5d86a92cc691842322,8.4,1735161445.7,295.5 +4e91093943d84c5d86a92cc691842322,9.3,2008596850.5,323.7 +4e91093943d84c5d86a92cc691842322,10.0,2246934245.6,337.7 +4e91093943d84c5d86a92cc691842322,10.4,2383415058.9,350.7 +4e91093943d84c5d86a92cc691842322,11.9,2989639749.3,385.3 +4e91093943d84c5d86a92cc691842322,12.5,3235225740.2,449.2 +4e91093943d84c5d86a92cc691842322,13.5,3762215079.6,534.3 +4e91093943d84c5d86a92cc691842322,15.0,4849918384.6,705.5 +4e91093943d84c5d86a92cc691842322,22.6,10295375502.8,722.4 +9b41b861cfb327b36569ebeac8912005,7.4,0.0, +9b41b861cfb327b36569ebeac8912005,9.7,48195221.1,20.6 +9b41b861cfb327b36569ebeac8912005,10.8,205751125.2,152.1 +9b41b861cfb327b36569ebeac8912005,11.4,365120425.2,252.6 +9b41b861cfb327b36569ebeac8912005,12.0,544333950.0,294.4 +9b41b861cfb327b36569ebeac8912005,12.3,710509518.1,580.0 +9b41b861cfb327b36569ebeac8912005,18.6,4360859489.3,583.7 +9b41b861cfb327b36569ebeac8912005,50.9,26945161481.3,698.4 +9b41b861cfb327b36569ebeac8912005,54.7,30188109173.4,842.5 +9b41b861cfb327b36569ebeac8912005,55.7,31016887901.3,880.6 +9b41b861cfb327b36569ebeac8912005,65.1,39841997017.2,933.9 +9b41b861cfb327b36569ebeac8912005,74.9,49725805819.2,1013.2 +9b41b861cfb327b36569ebeac8912005,74.9,49755986264.4,1346.9 +9b41b861cfb327b36569ebeac8912005,74.9,49783422301.8,2424.3 +9b41b861cfb327b36569ebeac8912005,74.9,50125664178.3,26243.5 +9b41b861cfb327b36569ebeac8912005,74.9,50231008356.8,1012924.7 diff --git a/poi_anchor_interpretations.png b/poi_anchor_interpretations.png new file mode 100644 index 00000000..2de34f43 --- /dev/null +++ b/poi_anchor_interpretations.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfd2522f66cdbb1f7bf8c4affdfcf5333315b2f7c0d3b52a412c2df3b4459aa3 +size 182887 diff --git a/postprocessing/single_case_plots.py b/postprocessing/single_case_plots.py index 5acf8dfa..767a58e7 100644 --- a/postprocessing/single_case_plots.py +++ b/postprocessing/single_case_plots.py @@ -249,6 +249,26 @@ print(traceback.format_exc()) +#%% POI / network-reinforcement supply curve +try: + plt.close() + figs, axes, df = reedsplots.plot_poi_supply_curve(case=case, year=year) + for i, f in enumerate(figs): + savename = ( + f'poi_supply_curve-{year}.png' if len(figs) == 1 + else f'poi_supply_curve-{year}-{i+1}.png' + ) + if write: + f.savefig(os.path.join(savepath, savename)) + if interactive: + plt.show() + print(savename) + plt.close('all') +except Exception: + print('plot_poi_supply_curve failed:') + print(traceback.format_exc()) + + #%% Macrogrid map try: plt.close() diff --git a/reeds/core/setup/b_inputs.gms b/reeds/core/setup/b_inputs.gms index 090b3c5e..a4de9787 100644 --- a/reeds/core/setup/b_inputs.gms +++ b/reeds/core/setup/b_inputs.gms @@ -332,6 +332,9 @@ hyd_add_pump('hydED_pumped-hydro-flex') = yes ; set rscbin "Resource supply curves bins" /bin1*bin%numbins%/, rscfeas(i,r,rscbin) "feasibility set for technologies that have resource supply curves" ; +* Sets involved with the POI / network-reinforcement cost supply curve. +set poi_bin_feas(r,icbin) "feasibility set for POI bins that have a defined reinforcement cost" ; + parameter yeart(t) "numeric value for year", year(allt) "numeric year value for allt" ; @@ -1282,6 +1285,9 @@ $offdelim $onlisting / ; +* A POI bin is feasible (i.e. can be built into) if it has a defined cost. +poi_bin_feas(r,icbin)$cost_poi_bin(r,icbin) = yes ; + *created by reeds/input_processing/writecapdat.py table capnonrsc(i,r,*) "--MW-- raw power capacity data for non-RSC tech" $offlisting diff --git a/reeds/core/setup/c_model.gms b/reeds/core/setup/c_model.gms index 4ddf4fe1..46e1a476 100644 --- a/reeds/core/setup/c_model.gms +++ b/reeds/core/setup/c_model.gms @@ -93,7 +93,7 @@ positive variables CONVERSION_PRM(r,ccseason,intype,outtype,t) "--MW-- planning reserve margin capacity sent through VSC AC/DC converters" CAP_SPUR(x,t) "--MW-- capacity of spur lines" INV_SPUR(x,t) "--MW-- investment in spur line capacity" - INV_POI(r,t) "--MW-- investment in new POI capacity (for network reinforcement costs)" + INV_POI(r,icbin,t) "--MW-- investment in new POI capacity by reinforcement cost bin" TRAN_CAPEX_BINS(r,rr,tscbin,t) "--$-- transmission capex cost bins (defined for r < rr)" * production-, CO2-, and hydrogen-specific variables @@ -289,6 +289,7 @@ eq_interconnection_queues(tg,r,t) "--MW-- capacity deployment limit base eq_CONVERSION_limit_prm(r,ccseason,t) "--MW-- AC/DC PRM conversion is limited to converter capacity" eq_PRMTRADE_VSC(r,ccseason,t) "--MW-- PRM capacity can flow through VSC lines but doesn't directly contribute to PRM" eq_POI_cap(r,t) "--MW-- POI capacity accounting (for network reinforcement costs)" + eq_POI_binlim(r,icbin,t) "--MW-- cumulative POI investment in each bin cannot exceed the bin's available capacity" eq_CAPTRAN_GRP(transgrp,transgrpp,t) "--MW-- combined flow capacity between transmission groups" eq_transgrp_limit_energy(transgrp,transgrpp,allh,t) "--MW-- limit on combined interface energy flows" eq_transgrp_limit_prm(transgrp,transgrpp,ccseason,t) "--MW-- limit on combined interface PRM flows" @@ -1999,27 +2000,28 @@ eq_prescribed_transmission(r,rr,trtype,t) * --------------------------------------------------------------------------- -* New point-of-interconnection (POI) intra-zone transmission capacity must be -* added for new generation capacity +* Point-of-interconnection (POI) / intra-zone network-reinforcement accounting. eq_POI_cap(r,t) $[tmodel(t) $Sw_TransIntraCost + $sum{icbin, poi_bin_feas(r,icbin) } $(not Sw_PCM)].. * The sum of POI capacity... poi_cap_init(r) - + sum{tt$[(yeart(tt)<=yeart(t))$(tmodel(tt) or tfix(tt))], INV_POI(r,tt) } + + sum{(icbin,tt)$[(yeart(tt)<=yeart(t))$(tmodel(tt) or tfix(tt))$poi_bin_feas(r,icbin)], + INV_POI(r,icbin,tt) } =g= -* must be greater than the sum of all generation capacity [AC] without explicit spur lines... +* must be greater than the generation capacity [AC] without explicit spur lines... sum{(i,v)$[valcap(i,v,r,t)$(not spur_techs(i))], CAP(i,v,r,t) / ilr(i) } -* and spur-line capacity if explicitly tracked (use total capacity, not just new investments, -* to make sure we account for the existing spur line capacity already included in poi_cap_init)... +* and spur-line capacity if explicitly tracked (total capacity, since existing spur-line +* capacity is already included in poi_cap_init)... + sum{x$[xfeas(x)$x_r(x,r)$Sw_SpurScen], CAP_SPUR(x,t) } * and AC/DC converter capacity for VSC... + CAP_CONVERTER(r,t)$val_converter(r,t) -* and LCC (INVTRAN(r,rr) == INVTRAN(rr,r) for DC so only need to add one direction) +* and LCC (INVTRAN(r,rr) == INVTRAN(rr,r) for DC so only need one direction) + sum{(rr,tt)$[routes_inv(r,rr,"LCC",t)$(yeart(tt)<=yeart(t))$(tmodel(tt) or tfix(tt))], INVTRAN(r,rr,"LCC",tt) } @@ -2027,6 +2029,25 @@ eq_POI_cap(r,t) * --------------------------------------------------------------------------- +* Cumulative POI investment in each reinforcement cost bin +eq_POI_binlim(r,icbin,t) + $[tmodel(t) + $Sw_TransIntraCost + $poi_bin_feas(r,icbin) + $cap_poi_bin(r,icbin) + $(not Sw_PCM)].. + +* consumed reinforcment bin capacity must be greater than or equal to ... + cap_poi_bin(r,icbin) + + =g= + +* the invested capacity in that bin up to and including the present year + sum{tt$[(yeart(tt)<=yeart(t))$(tmodel(tt) or tfix(tt))], INV_POI(r,icbin,tt) } +; + +* --------------------------------------------------------------------------- + * flows cannot exceed the total transmission capacity eq_transmission_limit(r,rr,h,t,trtype)$[tmodel(t)$routes(r,rr,trtype,t)].. diff --git a/reeds/core/setup/d_objective.gms b/reeds/core/setup/d_objective.gms index 6a036b46..a227c3de 100644 --- a/reeds/core/setup/d_objective.gms +++ b/reeds/core/setup/d_objective.gms @@ -69,9 +69,9 @@ eq_ObjFn_inv(t)$tmodel(t).. spurline_cost(x) * Sw_SpurCostMult * INV_SPUR(x,t) } * --- cost of intra-zone network reinforcement (a.k.a. point-of-interconnection capacity or POI) -* Sw_TransIntraCost is in $/kW, so multiply by 1000 to convert to $/MW - + sum{r$Sw_TransIntraCost, - trans_cost_cap_fin_mult(t) * Sw_TransIntraCost * 1000 * INV_POI(r,t) } +* cost_poi_bin is already in $/MW and increases across bins (cheapest bin fills first) + + sum{(r,icbin)$[Sw_TransIntraCost$poi_bin_feas(r,icbin)], + trans_cost_cap_fin_mult(t) * cost_poi_bin(r,icbin) * INV_POI(r,icbin,t) } * --- cost of water access--- + [ (8760/1E6) * sum{ (i,v,w,r)$[i_w(i,w)$valinv(i,v,r,t)], sum{wst$i_wst(i,wst), @@ -200,8 +200,9 @@ eq_Objfn_op(t)$tmodel(t).. * intra-zone network reinforcement (only for new capacity; don't include it for existing POI * capacity because it's not a great estimate of the actual FOM cost of all existing transmission) + sum{r$Sw_TransIntraCost, - Sw_TransIntraCost * 1000 * trans_fom_frac - * sum{tt$[(yeart(tt)<=yeart(t))$(tmodel(tt) or tfix(tt))], INV_POI(r,tt) } } + trans_fom_frac + * sum{(icbin,tt)$[(yeart(tt)<=yeart(t))$(tmodel(tt) or tfix(tt))$poi_bin_feas(r,icbin)], + cost_poi_bin(r,icbin) * INV_POI(r,icbin,tt) } } * --- penalty for retiring a technology (represents friction in retirements)--- - sum{(i,v,r)$[valcap(i,v,r,t)$retiretech(i,v,r,t)$Sw_RetirePenalty], diff --git a/reeds/core/solve/5_varfix.gms b/reeds/core/solve/5_varfix.gms index 9b133772..27397b3e 100644 --- a/reeds/core/solve/5_varfix.gms +++ b/reeds/core/solve/5_varfix.gms @@ -8,7 +8,7 @@ if(Sw_RemoveSmallNumbers = 1, INV.l(i,v,r,tfix)$[abs(INV.l(i,v,r,tfix)) < rhs_tolerance] = 0 ; INV_ENERGY.l(i,v,r,tfix)$[abs(INV_ENERGY.l(i,v,r,tfix)) < rhs_tolerance] = 0 ; INV_RSC.l(i,v,r,rscbin,tfix)$[abs(INV_RSC.l(i,v,r,rscbin,tfix)) < rhs_tolerance] = 0 ; - INV_POI.l(r,tfix)$[abs(INV_POI.l(r,tfix)) < rhs_tolerance] = 0 ; + INV_POI.l(r,icbin,tfix)$[abs(INV_POI.l(r,icbin,tfix)) < rhs_tolerance] = 0 ; H2_STOR_INV.l(h2_stor,r,tfix)$[abs(H2_STOR_INV.l(h2_stor,r,tfix)) < rhs_tolerance] = 0 ; H2_TRANSPORT_INV.l(r,rr,tfix) $[abs(H2_TRANSPORT_INV.l(r,rr,tfix) ) < rhs_tolerance] = 0 ; ); @@ -98,7 +98,7 @@ CONVERSION.fx(r,h,intype,outtype,tfix)$Sw_VSC = CONVERSION.l(r,h,intype,outtype, CONVERSION_PRM.fx(r,ccseason,intype,outtype,tfix)$Sw_VSC = CONVERSION_PRM.l(r,ccseason,intype,outtype,tfix) ; CAP_SPUR.fx(x,tfix)$[Sw_SpurScen$xfeas(x)] = CAP_SPUR.l(x,tfix) ; INV_SPUR.fx(x,tfix)$[Sw_SpurScen$xfeas(x)] = INV_SPUR.l(x,tfix) ; -INV_POI.fx(r,tfix)$Sw_TransIntraCost = INV_POI.l(r,tfix) ; +INV_POI.fx(r,icbin,tfix)$[Sw_TransIntraCost$poi_bin_feas(r,icbin)] = INV_POI.l(r,icbin,tfix) ; TRAN_CAPEX_BINS.fx(r,rr,tscbin,tfix)$[routes_inv(r,rr,"AC",tfix)$tsc_binwidth(r,rr,tscbin)] = TRAN_CAPEX_BINS.l(r,rr,tscbin,tfix) ; * water climate variables diff --git a/reeds/core/terminus/report.gms b/reeds/core/terminus/report.gms index 42dc760c..8ec03943 100644 --- a/reeds/core/terminus/report.gms +++ b/reeds/core/terminus/report.gms @@ -1491,8 +1491,9 @@ loop(t$[tmodel_new(t)$(not tfirst(t))], ) ; systemcost_ba("inv_transmission_intrazone_investment",r,t)$[tmodel_new(t)$Sw_TransIntraCost] = -* cost of intra-zone network reinforcement - trans_cost_cap_fin_mult(t) * Sw_TransIntraCost * 1000 * INV_POI.l(r,t) +* cost of intra-zone network reinforcement (cost_poi_bin in $/MW, increasing across bins) + sum{icbin$poi_bin_feas(r,icbin), + trans_cost_cap_fin_mult(t) * cost_poi_bin(r,icbin) * INV_POI.l(r,icbin,t) } ; systemcost_ba("op_transmission_fom",r,t)$tmodel_new(t) = @@ -1508,8 +1509,9 @@ systemcost_ba("op_transmission_fom",r,t)$tmodel_new(t) = systemcost_ba("op_transmission_intrazone_fom",r,t)$[tmodel_new(t)$Sw_TransIntraCost] = * FOM cost for intra-zone network reinforcement - Sw_TransIntraCost * 1000 * trans_fom_frac - * sum{tt$[(yeart(tt)<=yeart(t))$(tmodel(tt) or tfix(tt))], INV_POI.l(r,tt) } + trans_fom_frac + * sum{(icbin,tt)$[(yeart(tt)<=yeart(t))$(tmodel(tt) or tfix(tt))$poi_bin_feas(r,icbin)], + cost_poi_bin(r,icbin) * INV_POI.l(r,icbin,tt) } ; systemcost_ba("inv_converter_costs",r,t)$tmodel_new(t) = @@ -1888,9 +1890,20 @@ net_import_ann_stress(r,t) sum{allh$h_stress_t(allh,t), net_import_h_stress(r,allh,t) * hours(allh) } ; +* POI reinforcement cost basis: the interconnected generation (plus existing capacity) that the +* intra-zone reinforcement curve is priced on. This is a cost-accounting quantity reported for +* cost/plot diagnostics -- it is NOT deliverable transmission capacity and relieves no flow. poi_capacity(r,t)$tmodel_new(t) = poi_cap_init(r) - + sum{tt$[(yeart(tt)<=yeart(t))$(tmodel(tt) or tfix(tt))], INV_POI.l(r,tt) } + + sum{(icbin,tt)$[(yeart(tt)<=yeart(t))$(tmodel(tt) or tfix(tt))$poi_bin_feas(r,icbin)], + INV_POI.l(r,icbin,tt) } +; + +* POI reinforcement cost basis by cost bin (for the plot). Same caveat as poi_capacity above: +* a cost-accounting quantity, not deliverable transmission capacity. +poi_capacity_bin(r,icbin,t)$tmodel_new(t) = + sum{tt$[(yeart(tt)<=yeart(t))$(tmodel(tt) or tfix(tt))$poi_bin_feas(r,icbin)], + INV_POI.l(r,icbin,tt) } ; *========================== diff --git a/reeds/core/terminus/report_params.csv b/reeds/core/terminus/report_params.csv index e3064724..84424e7d 100644 --- a/reeds/core/terminus/report_params.csv +++ b/reeds/core/terminus/report_params.csv @@ -212,7 +212,8 @@ tax_expenditure_ptc(t),2004$,PTC tax expenditure,,, "export_h_rep(r,allh,t)",MW,Power exports (no losses) by timeslice for representative periods,,, "import_ann_rep(r,t)",MWh,Energy imports (with losses) by year for representative periods,,, "export_ann_rep(r,t)",MWh,Energy exports (no losses) by year for representative periods,,, -"poi_capacity(r,t)",MW,total point-of-connection capacity (used for intra-zone transmission network reinforcement),,, +"poi_capacity(r,t)",MW,POI reinforcement cost basis (interconnected generation priced on the intra-zone reinforcement curve; a cost-accounting quantity -- NOT deliverable transmission capacity and relieves no flow),,, +"poi_capacity_bin(r,icbin,t)",MW,POI reinforcement cost basis by cost bin (cost-accounting quantity per bin -- NOT deliverable transmission capacity),,, "tran_hurdle_cost_ann(r,rr,trtype,t)",2004$,annual monetary value associated with hurdle rates on transmission flows,,, "tran_mi_out(trtype,t)",MW-mi,total transmission capacity*distance for energy trading,,, "tran_prm_mi_out(trtype,t)",MW-mi,total transmission capacity*distance for capacity trading,,, diff --git a/reeds/input_processing/transmission.py b/reeds/input_processing/transmission.py index 7de08db3..c57e23d6 100644 --- a/reeds/input_processing/transmission.py +++ b/reeds/input_processing/transmission.py @@ -1,5 +1,6 @@ #%% Imports import argparse +import os import geopandas as gpd import pandas as pd import numpy as np @@ -641,6 +642,135 @@ def check_nonac_costs(trancap_fut, trancap_init_energy, transmission_cost_nonac) raise ValueError(f'Missing non-AC transmission costs for {len(missing)} routes') +def regional_poi_bins(g, deflator, upper_cost, existing_mw, min_bin_mw=1): + g = g.sort_values('capacity_GW') + anchor = g['cum_cost_$'].abs().idxmin() + anchor_gw = g.loc[anchor, 'capacity_GW'] + above = g.loc[g['capacity_GW'] >= anchor_gw].sort_values('capacity_GW') + cap_gw = above['capacity_GW'].to_numpy(dtype=float) + cum_cost = above['cum_cost_$'].to_numpy(dtype=float) + width_gw = np.diff(cap_gw) + d_cost = np.diff(cum_cost) + keep = width_gw > 0 + width_gw = width_gw[keep] + d_cost = d_cost[keep] + + anchor_mw = anchor_gw * 1000.0 + free_mw = max(0.0, anchor_mw - existing_mw) + overshoot_mw = max(0.0, existing_mw - anchor_mw) + + if len(width_gw) == 0: + return free_mw, [] + + marg = np.clip(d_cost / (width_gw * 1e6), 0.0, None) * deflator + width_mw = width_gw * 1000.0 + within = marg < upper_cost + order = np.argsort(marg[within], kind='mergesort') + widths = width_mw[within][order] + costs = marg[within][order] + + remaining = overshoot_mw + for i in range(len(widths)): + if remaining <= 0: + break + take = min(remaining, widths[i]) + widths[i] -= take + remaining -= take + + return free_mw, [(w, c) for w, c in zip(widths, costs) if w >= min_bin_mw] + + +def get_poi_supply_curve(case, min_bin_mw=1, free_bin_cost=1.0): + """ + Build the POI / network-reinforcement supply curve for inputs.h5 as the icbin + set and the cost_poi_bin ($/MW) and cap_poi_bin (MW) parameters. + + GSw_RegIntraCurve=0 -> flat GSw_TransIntraCost + GSw_RegIntraCurve=1 -> the regional curve + """ + sw = reeds.io.get_switches(case) + reeds_path = reeds.io.reeds_path + inputs_case = os.path.join(case, 'inputs_case') + valid_regions = {'r': reeds.io.read_input(case, 'r').squeeze(1).tolist()} + + if not int(sw.GSw_RegIntraCurve): + ## Flat POI: a single unlimited bin1 at GSw_TransIntraCost for every model region + reg = pd.DataFrame({ + 'r': valid_regions['r'], 'icbin': 'bin1', 'sc_cat': 'cost', + 'value': float(sw.GSw_TransIntraCost)}) + else: + ## Build the zonal curve from the cumulative interconnection data + costfile = f'reinforcement_upgrade_cost_{sw.GSw_ZoneSet}.csv' + raw_poi = os.path.join(reeds_path, 'inputs', 'transmission', costfile) + if not os.path.exists(raw_poi): + raise FileNotFoundError( + 'The regional POI reinforcement curve (GSw_RegIntraCurve=1) requires ' + f'{raw_poi}, which was not found.') + input_dollar_year = pd.read_csv( + os.path.join(reeds_path, 'inputs', 'transmission', 'dollaryear.csv'), index_col=0, + ).squeeze(1) + inflatable = reeds.io.get_inflatable() + poi_deflator = inflatable[int(input_dollar_year[costfile]), int(sw.dollar_year)] + upper_cost = float(sw.GSw_POIUpperCost) + + hashfunc = reeds.inputs.get_itl_config()['hashfunc'] + zonehash = pd.read_csv( + os.path.join(reeds_path, 'inputs', 'zones', sw.GSw_ZoneSet, 'zonehash.csv'), + index_col='r')[hashfunc] + hash2zone = pd.Series(zonehash.index.values, index=zonehash.values) + + raw = pd.read_csv(raw_poi) + raw['r'] = raw['region'].map(hash2zone) + ## Validate coverage against the raw data + missing = sorted(set(valid_regions['r']) - set(raw['r'].dropna().unique())) + if missing: + raise ValueError( + f'Missing POI / network-reinforcement curve for {len(missing)} of ' + f'{len(valid_regions["r"])} model regions in {costfile} ' + f'(GSw_RegIntraCurve=1, GSw_ZoneSet={sw.GSw_ZoneSet}): {missing}') + + poi_cap_init = pd.read_csv( + os.path.join(inputs_case, 'poi_cap_init.csv'), index_col=0).squeeze(1) + missing_init = sorted(set(valid_regions['r']) - set(poi_cap_init.index)) + if missing_init: + raise ValueError( + f'Missing poi_cap_init for {len(missing_init)} of ' + f'{len(valid_regions["r"])} model regions in inputs_case/poi_cap_init.csv, which ' + f'the regional POI curve needs to net existing capacity out of the raw curve ' + f'(GSw_RegIntraCurve=1, GSw_ZoneSet={sw.GSw_ZoneSet}): {missing_init}') + + rows = [] + for region, g in raw.loc[raw['r'].isin(valid_regions['r'])].groupby('r', sort=True): + free_mw, bins = regional_poi_bins( + g, poi_deflator, upper_cost, float(poi_cap_init[region]), min_bin_mw) + k = 0 + if free_mw >= min_bin_mw: + k += 1 + rows.append((region, f'bin{k}', 'cost', free_bin_cost)) + rows.append((region, f'bin{k}', 'cap', round(free_mw, 1))) + for width_mw, cost_kw in bins: + k += 1 + rows.append((region, f'bin{k}', 'cost', round(float(cost_kw), 2))) + rows.append((region, f'bin{k}', 'cap', round(float(width_mw), 1))) + reg = pd.DataFrame(rows, columns=['r', 'icbin', 'sc_cat', 'value']) + reg = pd.concat([reg, pd.DataFrame({ + 'r': sorted(valid_regions['r']), 'icbin': 'bin_upper', 'sc_cat': 'cost', + 'value': upper_cost})], ignore_index=True) + + cost = reg.loc[reg['sc_cat'] == 'cost', ['r', 'icbin', 'value']].copy() + cost['value'] = cost['value'].astype(float) * 1000.0 + cap = reg.loc[reg['sc_cat'] == 'cap', ['r', 'icbin', 'value']].copy() + + def _binkey(b): + return (1, 0) if b == 'bin_upper' else (0, int(str(b).replace('bin', ''))) + icbins = sorted(reg['icbin'].unique(), key=_binkey) + + return { + 'icbin': pd.Series(icbins), + 'cost_poi_bin': cost, + 'cap_poi_bin': cap, + } + #%% Main function def main(case): #%% Calculate parameters @@ -709,6 +839,10 @@ def main(case): ## Write transmission_cost_ac for R2X outputs['transmission_cost_ac'] = transmission_cost_ac + ### POI / network-reinforcement cost supply curve + for key, df in get_poi_supply_curve(case).items(): + outputs[key] = df + ### Pipelines outputs['pipeline_cost_mult'] = get_pipeline_cost_mult( case, @@ -731,7 +865,11 @@ def main(case): outputs['co2_site_char'] = co2_site_char.loc[co2_site_char['cs'].isin(val_cs)] #%% Downselect to active regions - table = {'co2_site_char': True} + table = { + 'co2_site_char': True, + 'cost_poi_bin': True, + 'cap_poi_bin': True, + } hierarchy = reeds.io.get_hierarchy(case).reset_index() for key, df in outputs.items(): columns = df.columns if isinstance(df, pd.DataFrame) else [] @@ -755,12 +893,18 @@ def main(case): 'tscbin': False, } inputs_h5 = { - 'tscbin': ('set', 'transmission upgrade supply curve bins'), + 'tscbin': ('set', 'transmission upgrade supply curve bins', ''), + 'icbin': ('set', 'POI / network-reinforcement supply curve bins', ''), + 'cost_poi_bin': ('parameter', 'POI / network-reinforcement cost in each bin', '$/MW'), + 'cap_poi_bin': ('parameter', + 'incremental capacity width available in each POI bin (no row = unlimited)', + 'MW'), } for key, df in outputs.items(): if key in inputs_h5: - gamstype, comment = inputs_h5[key] - reeds.io.write_to_inputs_h5(df, key, case, gamstype=gamstype, comment=comment) + gamstype, comment, units = inputs_h5[key] + reeds.io.write_to_inputs_h5( + df, key, case, gamstype=gamstype, comment=comment, units=units) else: df.to_csv( Path(case, 'inputs_case', f'{key}.csv'), diff --git a/reeds/input_processing/writesupplycurves.py b/reeds/input_processing/writesupplycurves.py index 449b08b8..c26cb55f 100644 --- a/reeds/input_processing/writesupplycurves.py +++ b/reeds/input_processing/writesupplycurves.py @@ -82,7 +82,7 @@ def agg_supplycurve( dfin = reeds.io.assemble_supplycurve( scfile=scpath, case=os.path.dirname(os.path.normpath(inputs_case)), - ).reset_index().drop(columns=['FIPS','cf'], errors='ignore') + ).reset_index().drop(columns=['FIPS', 'cf'], errors='ignore') ## Convert dollar year and recalculate total cost transcost_cols = [c for c in dfin if 'cost' in c] dfin.loc[:, transcost_cols] *= deflate['interconnection'] diff --git a/reeds/io.py b/reeds/io.py index 9320d2ed..f25fa157 100644 --- a/reeds/io.py +++ b/reeds/io.py @@ -1534,14 +1534,28 @@ def assemble_supplycurve( else: dfout['ba'] = dfout['region'].copy() - if sw.GSw_ZoneSet in reeds.inputs.get_applicable_zonesets( - 'drop_single_county_reinforcement_cost' - ): + ## Drop embedded reinforcement cost where network reinforcement is represented elsewhere: + ## - always for counties (county-resolution reinforcement is handled at the BA level), and + ## - for all regions when the regional POI reinforcement curve is active + ## In both cases cost_total_trans is recomputed as spur + connection (POI) only. + if case is not None: counties = get_county_zones(GSw_ZoneSet=sw.GSw_ZoneSet) + use_poi_bins = ( + int(sw['GSw_RegIntraCurve']) + and (float(sw['GSw_TransIntraCost'] or 0) != 0) + ) + else: + counties = [] + use_poi_bins = False + drop_reinforcement = ( + pd.Series(True, index=dfout.index) if use_poi_bins + else dfout.region.isin(counties) + ) + if drop_reinforcement.any(): zerocols = ['cost_reinforcement_usd_per_mw', 'dist_reinforcement_km'] - dfout.loc[dfout.region.isin(counties), zerocols] = 0 - dfout.loc[dfout.region.isin(counties), 'cost_total_trans_usd_per_mw'] = dfout.loc[ - dfout.region.isin(counties), + dfout.loc[drop_reinforcement, zerocols] = 0 + dfout.loc[drop_reinforcement, 'cost_total_trans_usd_per_mw'] = dfout.loc[ + drop_reinforcement, ['cost_spur_usd_per_mw', 'cost_poi_usd_per_mw'] ].sum(axis=1) ## Supply curve cost includes generation capex adder plus interconnection cost diff --git a/reeds/reedsplots.py b/reeds/reedsplots.py index 99764d4e..b6c4b5c4 100644 --- a/reeds/reedsplots.py +++ b/reeds/reedsplots.py @@ -1555,6 +1555,99 @@ def plot_max_imports( return f, ax, (pd.concat(dictplot, names=('case',)) if len(cases) > 1 else dfplot) +def plot_poi_supply_curve( + case, year=None, dollar_year=2024, + panels_per_figure=24, ncols=4, xlim_headroom=2.5, + ): + ### Parse inputs + sw = reeds.io.get_switches(case) + if not int(sw.GSw_RegIntraCurve): + raise ValueError( + 'plot_poi_supply_curve requires the regional POI / network-reinforcement curve ' + f'(GSw_RegIntraCurve=1), but {case} ran with GSw_RegIntraCurve={sw.GSw_RegIntraCurve}' + ) + deflator = reeds.io.get_inflatable()[int(sw.dollar_year), dollar_year] + + ### Get the curve + cost = reeds.io.read_input(case, 'cost_poi_bin').rename(columns={'Value': 'cost'}) + cap = reeds.io.read_input(case, 'cap_poi_bin').rename(columns={'Value': 'cap_MW'}) + dfcurve = cost.merge(cap, on=['r', 'icbin'], how='left') + dfcurve['cost'] = dfcurve['cost'] / 1000 * deflator + + ## bin_upper is the uncapped backstop at GSw_POIUpperCost; every other bin needs a capacity + backstop = dfcurve.loc[dfcurve.icbin == 'bin_upper'].set_index('r')['cost'] + dfcurve = dfcurve.loc[dfcurve.icbin != 'bin_upper'].copy() + uncapped = dfcurve.loc[dfcurve.cap_MW.isnull()] + if len(uncapped): + raise ValueError( + f'{len(uncapped)} priced POI bins have a cost but no cap_poi_bin entry, which would ' + f'make them unlimited in eq_POI_binlim:\n{uncapped}' + ) + dfcurve['binnum'] = dfcurve.icbin.str.strip('bin').astype(int) + dfcurve = dfcurve.sort_values(['r', 'binnum']) + + ### Get the capacity built in each bin + dfbuilt = reeds.io.read_output(case, 'poi_capacity_bin', valname='MW') + years = sorted(dfbuilt.t.unique()) + year = max(years) if year is None else year + if year not in years: + raise ValueError(f'year={year} is not a solve year in {case}; have {years}') + built = dfbuilt.loc[dfbuilt.t == year].groupby('r').MW.sum() + + ### Plot it + regions = sorted(dfcurve.r.unique()) + pages = [ + regions[i:i + panels_per_figure] for i in range(0, len(regions), panels_per_figure) + ] + flatcost = float(sw.GSw_TransIntraCost) * deflator + + figs, axes = [], [] + for page in pages: + nrows = -(-len(page) // ncols) + f, ax = plt.subplots( + nrows, ncols, figsize=(4.2 * ncols, 3.0 * nrows), sharey=True, squeeze=False) + for col, region in enumerate(page): + _ax = ax[col // ncols, col % ncols] + dfregion = dfcurve.loc[dfcurve.r == region] + edges = np.concatenate([[0.], dfregion.cap_MW.cumsum().values]) + _ax.stairs( + dfregion.cost.values, edges, baseline=0, fill=True, + color='C0', alpha=0.2, edgecolor='C0', lw=1.5) + _ax.axhline(backstop[region], c='C4', ls='-.', lw=1.25) + _ax.axhline(flatcost, c='C3', ls='--', lw=1.25) + _ax.axvline(built.get(region, 0.), c='C1', lw=2) + + _ax.set_title(f'{region} ({built.get(region, 0.) / 1000:.1f} GW)', fontsize=11) + _ax.set_xlabel('Cumulative POI headroom [MW]', fontsize=10) + _ax.tick_params(labelsize=9) + _ax.margins(x=0) + _ax.set_xlim( + 0, max(built.get(region, 0.) * xlim_headroom, edges[min(len(dfregion), 6)])) + for col in range(len(page), nrows * ncols): + ax[col // ncols, col % ncols].axis('off') + + ax[0, 0].set_ylim(0, backstop.max() * 1.12) + f.supylabel(f'Reinforcement cost [{dollar_year}$/kW]', fontsize=12) + plots.despine(ax) + + handles = [ + plt.Line2D([], [], c='C0', lw=2, label='Regional reinforcement curve'), + plt.Line2D( + [], [], c='C4', ls='-.', lw=1.25, + label=f'GSw_POIUpperCost backstop, unlimited ({backstop.max():,.0f} $/kW)'), + plt.Line2D( + [], [], c='C3', ls='--', lw=1.25, + label=f'GSw_TransIntraCost ({flatcost:,.0f} $/kW)'), + plt.Line2D([], [], c='C1', lw=2, label=f'POI capacity added by {year}'), + ] + f.legend(handles=handles, loc='lower center', ncol=4, frameon=False, fontsize=10) + f.tight_layout(rect=[0, 0.05, 1, 1]) + figs.append(f) + axes.append(ax) + + return figs, axes, dfcurve.merge(built.rename('built_MW'), on='r', how='left') + + def plot_vresites_transmission( case, year=2050, crs='ESRI:102008', wscale=1.5, show_overlap=False, diff --git a/runreeds.py b/runreeds.py index 21444965..1cbbc44b 100644 --- a/runreeds.py +++ b/runreeds.py @@ -289,6 +289,39 @@ def check_compatibility(sw): reeds.inputs.validate_zoneset(sw['GSw_ZoneSet']) + if int(sw['GSw_RegIntraCurve']) and (float(sw['GSw_TransIntraCost']) == 0): + raise ValueError( + 'The regional POI reinforcement curve (GSw_RegIntraCurve=1) is gated on ' + 'GSw_TransIntraCost > 0; with GSw_TransIntraCost=0 the entire curve is disabled ' + '(no reinforcement cost is charged).\n' + 'Set GSw_TransIntraCost > 0 to use the curve, or GSw_RegIntraCurve = 0 to ' + 'to use GSw_TransIntraCost for all capacity additions\n' + f"GSw_RegIntraCurve={sw['GSw_RegIntraCurve']}, " + f"GSw_TransIntraCost={sw['GSw_TransIntraCost']}" + ) + + if sw['GSw_RegionResolution'] in ['county','mixed']: + err_switch_configs = [] + if sw['GSw_LoadAllocationMethod'] == 'state_lpf': + err_switch_configs.append('GSw_LoadAllocationMethod=state_lpf') + + if len(err_switch_configs) > 0: + raise NotImplementedError( + 'The following switch configurations are not implemented for ' + 'county/mixed resolution:\n{}\n' + .format('\n'.join(err_switch_configs)) + ) + + if int(sw['GSw_RegIntraCurve']) and (sw['GSw_ZoneSet'] != 'z90'): + raise ValueError( + 'The regional POI reinforcement curve (GSw_RegIntraCurve=1) requires\n' + 'z90 zoneset; others are not supported.\n' + f"GSw_RegIntraCurve={sw['GSw_RegIntraCurve']}, " + f"GSw_ZoneSet={sw['GSw_ZoneSet']}" + ) + + reeds.inputs.validate_zoneset(sw['GSw_ZoneSet']) + ### Parsed string switches ## Automatic inputs reeds_path = os.path.dirname(__file__)