diff --git a/cases.csv b/cases.csv index 7a4e462ae..3c07f895b 100644 --- a/cases.csv +++ b/cases.csv @@ -331,6 +331,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 f3a122adc..decd9c2fe 100644 --- a/cases_test.csv +++ b/cases_test.csv @@ -1,66 +1,67 @@ -,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,MultiMetricRA,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/NY.NJ,,,,st/MA.RI.CT.NY.NJ.PA.OH, -endyear,2032,,2050,2050,2050,2029,2060,2026,,,,,,,,,,,2035,2030,2030,2060,2035,2050,2050,2050,,,,, -yearset,,,,,,,2010..2060..10,,,,,,,,,,,,,2010..2050..5,2010..2050..5,2010..2060..10,,2010..2050..5,2010_2025_2050,2010..2050..5,,,,, -GSw_ZoneSet,,,,,,,z54,z3109,,,,,,,z3109,z3109,z3109,PJMcounty,,,,z54,z134,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_PRM_StressThresholdMetrics,,,,,,,,,,,,,,,,,,,,,,,,,,NEUE/LOLH/LOLE/LOLD/duration/depth,,,,, -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,MultiMetricRA,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/NY.NJ,,,,st/MA.RI.CT.NY.NJ.PA.OH,, +endyear,2032,,2050,2050,2050,2029,2060,2026,,,,,,,,,,,2035,2030,2030,2060,2035,2050,2050,2050,,,,,, +yearset,,,,,,,2010..2060..10,,,,,,,,,,,,,2010..2050..5,2010..2050..5,2010..2060..10,,2010..2050..5,2010_2025_2050,2010..2050..5,,,,,, +GSw_ZoneSet,,,,,,,z54,z3109,,,,,,,z3109,z3109,z3109,PJMcounty,,,,z54,z134,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_PRM_StressThresholdMetrics,,,,,,,,,,,,,,,,,,,,,,,,,,NEUE/LOLH/LOLE/LOLD/duration/depth,,,,,, +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 000000000..917834e4b --- /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 54a7099de..8627583c7 100644 --- a/docs/source/model_documentation.md +++ b/docs/source/model_documentation.md @@ -1864,6 +1864,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; @@ -1891,7 +1894,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). @@ -1900,7 +1903,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 297b99f99..1ee69f716 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 d7a36aee9..8200a3343 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 000000000..c33f5665e --- /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 000000000..3d32089e1 --- /dev/null +++ b/inputs/transmission/reinforcement_upgrade_cost_z90.csv @@ -0,0 +1,1103 @@ +region,capacity_GW,cum_cost_$,slope_$/kW +05e8138abf6b899ed6bf8f3327eb0c73,21.359283,0.0, +05e8138abf6b899ed6bf8f3327eb0c73,22.286406,49084097.1,52.9424 +05e8138abf6b899ed6bf8f3327eb0c73,23.414667,150536738.7,89.9195 +05e8138abf6b899ed6bf8f3327eb0c73,23.670394,194598882.5,172.3015 +05e8138abf6b899ed6bf8f3327eb0c73,24.408379,424590101.7,311.6476 +05e8138abf6b899ed6bf8f3327eb0c73,24.677172,548234677.5,459.9992 +05e8138abf6b899ed6bf8f3327eb0c73,27.547951,1916237647.2,476.5267 +05e8138abf6b899ed6bf8f3327eb0c73,29.195543,2968704697.0,638.7911 +05e8138abf6b899ed6bf8f3327eb0c73,33.033152,7393678092.9,1153.0548 +05e8138abf6b899ed6bf8f3327eb0c73,34.550431,9873480779.9,1634.3749 +05e8138abf6b899ed6bf8f3327eb0c73,35.802957,12923319470.9,2434.9504 +05e8138abf6b899ed6bf8f3327eb0c73,36.499654,14842219939.9,2754.2827 +05e8138abf6b899ed6bf8f3327eb0c73,36.517601,14910767659.3,3819.4528 +05e8138abf6b899ed6bf8f3327eb0c73,36.651525,15744733532.5,6227.1577 +05e8138abf6b899ed6bf8f3327eb0c73,36.662546,16101054725.4,32331.1127 +05e8138abf6b899ed6bf8f3327eb0c73,36.662637,16123406497.0,245623.8635 +067bc5f0cba3b80da70aaf152ea88d00,1.056667,0.0, +067bc5f0cba3b80da70aaf152ea88d00,1.619991,200992249.2,356.7969 +067bc5f0cba3b80da70aaf152ea88d00,1.624132,315705467.1,27701.8155 +07ff46e0a6fe222b9fdb2225db658ddf,10.539862,0.0, +07ff46e0a6fe222b9fdb2225db658ddf,12.604656,34009434.4,16.4711 +07ff46e0a6fe222b9fdb2225db658ddf,13.282259,64303702.5,44.708 +07ff46e0a6fe222b9fdb2225db658ddf,16.985379,494735217.5,116.2348 +07ff46e0a6fe222b9fdb2225db658ddf,17.701458,692999161.8,276.8744 +07ff46e0a6fe222b9fdb2225db658ddf,17.858996,753088973.0,381.4306 +07ff46e0a6fe222b9fdb2225db658ddf,21.482373,2461865306.1,471.5977 +07ff46e0a6fe222b9fdb2225db658ddf,21.896658,2877350498.6,1002.897 +07ff46e0a6fe222b9fdb2225db658ddf,22.169216,3151201223.4,1004.7429 +07ff46e0a6fe222b9fdb2225db658ddf,23.626323,4639862320.9,1021.6553 +07ff46e0a6fe222b9fdb2225db658ddf,23.739091,4760456433.3,1069.4001 +07ff46e0a6fe222b9fdb2225db658ddf,25.662818,6852889417.7,1087.6975 +07ff46e0a6fe222b9fdb2225db658ddf,25.885558,7150745964.2,1337.2387 +07ff46e0a6fe222b9fdb2225db658ddf,26.72116,8281236306.4,1352.9053 +07ff46e0a6fe222b9fdb2225db658ddf,27.520907,10256739603.1,2470.1603 +07ff46e0a6fe222b9fdb2225db658ddf,27.666193,10689620724.9,2979.5102 +07ff46e0a6fe222b9fdb2225db658ddf,28.562793,15433806687.9,5291.3071 +07ff46e0a6fe222b9fdb2225db658ddf,28.562793,15435882927.0, +089c2b774311033fb9333a520dfcc41d,10.698284,2525032998.9, +089c2b774311033fb9333a520dfcc41d,12.145397,1222119301.1,-900.3538 +089c2b774311033fb9333a520dfcc41d,14.904502,0.0,-442.9405 +089c2b774311033fb9333a520dfcc41d,15.548997,56080770.8,87.0151 +089c2b774311033fb9333a520dfcc41d,16.297668,158727180.8,137.1048 +089c2b774311033fb9333a520dfcc41d,17.174123,310266324.3,172.9001 +089c2b774311033fb9333a520dfcc41d,18.136129,666493548.6,370.2963 +089c2b774311033fb9333a520dfcc41d,18.412411,769417375.6,372.5318 +089c2b774311033fb9333a520dfcc41d,19.002585,1038971190.6,456.7362 +089c2b774311033fb9333a520dfcc41d,19.161357,1898800439.5,5415.4967 +097787fa704cd38e11959f16e41bf8c3,11.223532,3727221834.6, +097787fa704cd38e11959f16e41bf8c3,11.343158,0.0,-31157.2888 +097787fa704cd38e11959f16e41bf8c3,12.823898,35629030.1,24.0616 +097787fa704cd38e11959f16e41bf8c3,17.49013,2012546911.4,423.6647 +097787fa704cd38e11959f16e41bf8c3,21.185357,3795323078.4,482.4538 +097787fa704cd38e11959f16e41bf8c3,74.191376,37960606711.9,644.5548 +097787fa704cd38e11959f16e41bf8c3,188.702448,112308801140.8,649.2664 +097787fa704cd38e11959f16e41bf8c3,192.498333,114804509781.8,657.4774 +097787fa704cd38e11959f16e41bf8c3,194.609093,116269563966.1,694.0885 +097787fa704cd38e11959f16e41bf8c3,198.874608,120126167713.1,904.1355 +0aa95157ba94430c97499e6cdf5d9efc,2.906735,0.0, +0aa95157ba94430c97499e6cdf5d9efc,3.705306,56682277.5,70.9796 +0aa95157ba94430c97499e6cdf5d9efc,4.414056,118446334.5,87.1451 +0aa95157ba94430c97499e6cdf5d9efc,5.084074,230101226.8,166.6446 +0aa95157ba94430c97499e6cdf5d9efc,5.495171,306590407.2,186.0611 +0aa95157ba94430c97499e6cdf5d9efc,6.316259,635034162.8,400.0104 +0aa95157ba94430c97499e6cdf5d9efc,29.040867,17578939632.5,745.6193 +0aa95157ba94430c97499e6cdf5d9efc,41.546843,27086730780.3,760.2598 +0aa95157ba94430c97499e6cdf5d9efc,58.115014,39829393276.1,769.105 +0aa95157ba94430c97499e6cdf5d9efc,72.104983,51963870098.1,867.3698 +0aa95157ba94430c97499e6cdf5d9efc,206.377704,195187832238.4,1066.6646 +0aa95157ba94430c97499e6cdf5d9efc,210.858811,200229159660.8,1125.0183 +0aa95157ba94430c97499e6cdf5d9efc,211.442112,201935849714.1,2925.9166 +0c03add16b1ced2262e7d738a50e7c80,2.198791,0.0, +0c03add16b1ced2262e7d738a50e7c80,3.007271,56174849.1,69.4821 +0c03add16b1ced2262e7d738a50e7c80,3.232826,116851920.6,269.0123 +0c03add16b1ced2262e7d738a50e7c80,3.917332,670654501.7,809.0544 +0c03add16b1ced2262e7d738a50e7c80,4.000682,740680898.5,840.1487 +0c03add16b1ced2262e7d738a50e7c80,6.143767,2659942572.4,895.5602 +0c03add16b1ced2262e7d738a50e7c80,6.33272,2867338726.3,1097.6071 +0c03add16b1ced2262e7d738a50e7c80,7.251899,3976457549.5,1206.6407 +0c03add16b1ced2262e7d738a50e7c80,8.377064,6917639947.0,2614.001 +0c03add16b1ced2262e7d738a50e7c80,12.944816,19518972272.8,2758.7602 +0c03add16b1ced2262e7d738a50e7c80,13.450524,21318830363.8,3559.0857 +0c03add16b1ced2262e7d738a50e7c80,13.472807,21402222019.9,3742.3891 +0d4bd6d30244a4deedab26abc0164a54,5.507049,33717437.1, +0d4bd6d30244a4deedab26abc0164a54,6.057759,0.0,-61.2254 +0d4bd6d30244a4deedab26abc0164a54,8.361737,175374366.2,76.1181 +0d4bd6d30244a4deedab26abc0164a54,9.23864,252926437.8,88.4386 +0d4bd6d30244a4deedab26abc0164a54,13.715867,950457346.7,155.7953 +0d4bd6d30244a4deedab26abc0164a54,28.022678,3207833955.5,157.7834 +0d4bd6d30244a4deedab26abc0164a54,29.315435,3418128803.7,162.6716 +0d4bd6d30244a4deedab26abc0164a54,29.437881,3442396158.2,198.1882 +0d4bd6d30244a4deedab26abc0164a54,43.038732,6168490107.3,200.4355 +0d4bd6d30244a4deedab26abc0164a54,46.726259,7175977410.9,273.2149 +0d4bd6d30244a4deedab26abc0164a54,90.209976,20804322281.9,313.4126 +0d4bd6d30244a4deedab26abc0164a54,140.242244,40172235251.7,387.1084 +0d4bd6d30244a4deedab26abc0164a54,141.044818,40535218587.7,452.274 +0d4bd6d30244a4deedab26abc0164a54,172.108858,56246299472.1,505.7642 +0d4bd6d30244a4deedab26abc0164a54,184.65076,66829587301.5,843.8344 +0d4bd6d30244a4deedab26abc0164a54,186.603171,68564673947.9,888.6892 +0d4bd6d30244a4deedab26abc0164a54,189.987018,72240665313.7,1086.335 +0d4bd6d30244a4deedab26abc0164a54,191.480945,73968658445.7,1156.6784 +0d4bd6d30244a4deedab26abc0164a54,197.166244,81028357228.4,1241.7463 +0d4bd6d30244a4deedab26abc0164a54,198.583088,83329778506.4,1624.3293 +0d4bd6d30244a4deedab26abc0164a54,201.415966,88402037950.6,1790.497 +0d9a52e512b77d53cc23d6f85edc0754,15.329289,0.0, +0d9a52e512b77d53cc23d6f85edc0754,17.287914,61987058.6,31.6483 +0d9a52e512b77d53cc23d6f85edc0754,19.318165,231003651.9,83.2491 +0d9a52e512b77d53cc23d6f85edc0754,20.588601,385558237.2,121.6548 +0d9a52e512b77d53cc23d6f85edc0754,22.548734,1107054046.6,368.0851 +0e16acf16e3d99f420c9701ff23bb5c3,15.510076,0.0, +0e16acf16e3d99f420c9701ff23bb5c3,19.857349,48803780.3,11.2263 +0e16acf16e3d99f420c9701ff23bb5c3,22.128232,590680687.6,238.6195 +0e16acf16e3d99f420c9701ff23bb5c3,24.047904,1259687517.8,348.5006 +1942f1e052aae8e41b0202f1d3898d29,1.927623,0.0, +1942f1e052aae8e41b0202f1d3898d29,3.497969,556162774.1,354.1658 +1942f1e052aae8e41b0202f1d3898d29,9.24053,2650856754.4,364.7665 +1942f1e052aae8e41b0202f1d3898d29,19.528754,6665343445.3,390.2021 +1942f1e052aae8e41b0202f1d3898d29,23.04921,8686287332.4,574.0574 +1942f1e052aae8e41b0202f1d3898d29,23.477242,8932505228.0,575.2324 +1b666b7af4378554039c4072de3a5a8b,9.143956,8525953.8, +1b666b7af4378554039c4072de3a5a8b,9.179368,0.0,-240.7645 +2294909d054ac5ce7f5cf06357500314,7.42668,0.0, +2294909d054ac5ce7f5cf06357500314,8.787837,21740120.7,15.9718 +2294909d054ac5ce7f5cf06357500314,8.97428,44260121.7,120.7876 +2294909d054ac5ce7f5cf06357500314,9.141414,76493212.2,192.8578 +2294909d054ac5ce7f5cf06357500314,9.307145,130222293.4,324.1945 +2294909d054ac5ce7f5cf06357500314,9.457107,339673231.1,1396.6934 +2294909d054ac5ce7f5cf06357500314,9.526561,1282473902.3,13574.4618 +2294909d054ac5ce7f5cf06357500314,9.550927,1905245935.8,25559.0591 +2294909d054ac5ce7f5cf06357500314,9.555025,2342303138.6,106651.3428 +265605ffaaddcc3d13d5d95449d2285e,14.886938,0.0, +265605ffaaddcc3d13d5d95449d2285e,23.727623,932642428.2,105.4944 +265605ffaaddcc3d13d5d95449d2285e,28.664482,2146137072.9,245.803 +265605ffaaddcc3d13d5d95449d2285e,31.699493,3199814306.3,347.1741 +265605ffaaddcc3d13d5d95449d2285e,41.35692,7090079581.9,402.8263 +29caed99fc1dd3b1885e56417648e1e6,17.468516,0.0, +29caed99fc1dd3b1885e56417648e1e6,19.3117,57441523.6,31.1643 +29caed99fc1dd3b1885e56417648e1e6,20.293768,97555290.8,40.8462 +29caed99fc1dd3b1885e56417648e1e6,22.514801,190520863.2,41.8569 +29caed99fc1dd3b1885e56417648e1e6,22.921881,213445017.4,56.3136 +29caed99fc1dd3b1885e56417648e1e6,26.063663,515756919.6,96.2231 +29caed99fc1dd3b1885e56417648e1e6,27.924531,708396121.0,103.5212 +29caed99fc1dd3b1885e56417648e1e6,28.181442,737512310.0,113.3318 +29caed99fc1dd3b1885e56417648e1e6,29.892998,997524397.4,151.9156 +29caed99fc1dd3b1885e56417648e1e6,32.582931,1709896900.7,264.8291 +29caed99fc1dd3b1885e56417648e1e6,47.662976,6948530754.4,347.3885 +29caed99fc1dd3b1885e56417648e1e6,52.23482,9078549379.7,465.8992 +29caed99fc1dd3b1885e56417648e1e6,137.982515,53951811435.0,523.3174 +29caed99fc1dd3b1885e56417648e1e6,138.312235,54128482951.0,535.8229 +29caed99fc1dd3b1885e56417648e1e6,138.394296,54208533652.6,975.5024 +3821f559a445565a9d7e817f21878b66,4.253339,1404590596.9, +3821f559a445565a9d7e817f21878b66,4.542112,0.0,-4863.9956 +3821f559a445565a9d7e817f21878b66,5.015056,222449455.7,470.3505 +3821f559a445565a9d7e817f21878b66,5.12074,363940261.6,1338.8101 +3821f559a445565a9d7e817f21878b66,5.174272,441216599.2,1443.5541 +3821f559a445565a9d7e817f21878b66,5.301682,801125784.9,2824.8111 +3821f559a445565a9d7e817f21878b66,5.389787,1297992356.8,5639.4821 +3821f559a445565a9d7e817f21878b66,5.783557,3937070924.9,6702.0813 +3821f559a445565a9d7e817f21878b66,5.913006,4808660803.3,6733.0754 +3821f559a445565a9d7e817f21878b66,5.927851,5359495501.0,37105.7392 +3821f559a445565a9d7e817f21878b66,5.928032,5371116556.2,64204.7248 +4026f5142c9d6374247865fc12b78aed,4.96866,0.0, +4026f5142c9d6374247865fc12b78aed,5.661744,97387347.6,140.5131 +4026f5142c9d6374247865fc12b78aed,5.880927,147100395.6,226.8107 +4026f5142c9d6374247865fc12b78aed,6.508871,594936504.7,713.1784 +4026f5142c9d6374247865fc12b78aed,34.561656,35396819179.4,1240.5857 +4026f5142c9d6374247865fc12b78aed,35.584297,36790941057.2,1363.2564 +4026f5142c9d6374247865fc12b78aed,36.594759,38479114230.5,1670.6944 +4026f5142c9d6374247865fc12b78aed,37.312852,39773975243.7,1803.194 +4026f5142c9d6374247865fc12b78aed,48.477894,60317660523.0,1840.0007 +4026f5142c9d6374247865fc12b78aed,50.352554,64554537152.0,2260.0774 +4026f5142c9d6374247865fc12b78aed,58.046335,83794651232.6,2500.7359 +4026f5142c9d6374247865fc12b78aed,63.2158,99523956605.9,3042.7337 +4026f5142c9d6374247865fc12b78aed,71.368647,124615085442.4,3077.591 +4026f5142c9d6374247865fc12b78aed,71.891914,126605940520.0,3804.6639 +420e9f98c829e36511b29c4f3d3174fe,0.990617,176504552.5, +420e9f98c829e36511b29c4f3d3174fe,1.773,0.0,-225.5987 +420e9f98c829e36511b29c4f3d3174fe,2.358134,28971471.8,49.5125 +420e9f98c829e36511b29c4f3d3174fe,2.864526,57942943.6,57.2116 +420e9f98c829e36511b29c4f3d3174fe,3.749917,475788777.1,471.9337 +420e9f98c829e36511b29c4f3d3174fe,4.834225,1227312087.4,693.0903 +420e9f98c829e36511b29c4f3d3174fe,5.214384,1536108806.3,812.2831 +420e9f98c829e36511b29c4f3d3174fe,5.844096,2384815308.1,1347.7693 +420e9f98c829e36511b29c4f3d3174fe,13.856192,14163240033.7,1470.0803 +420e9f98c829e36511b29c4f3d3174fe,14.448345,15061953712.3,1517.7052 +420e9f98c829e36511b29c4f3d3174fe,14.44861,15068369529.1,24210.6296 +42c235ae41fc004e2bfd44da309b7153,17.394961,0.0, +42c235ae41fc004e2bfd44da309b7153,26.415454,173857384.8,19.2736 +42c235ae41fc004e2bfd44da309b7153,28.544449,238962786.4,30.5803 +42c235ae41fc004e2bfd44da309b7153,34.090141,434078271.2,35.1833 +42c235ae41fc004e2bfd44da309b7153,41.673121,1392462018.3,126.3862 +42c235ae41fc004e2bfd44da309b7153,259.242013,37150961645.9,164.3548 +44d960540028642474acfd25467e7a96,6.531242,0.0, +44d960540028642474acfd25467e7a96,8.820198,32339427.8,14.1285 +44d960540028642474acfd25467e7a96,11.411815,69971881.1,14.5208 +44d960540028642474acfd25467e7a96,13.831869,112599950.7,17.6145 +44d960540028642474acfd25467e7a96,15.779282,178211772.9,33.6918 +44d960540028642474acfd25467e7a96,17.937395,289288163.1,51.4692 +44d960540028642474acfd25467e7a96,19.214516,383086262.2,73.445 +44d960540028642474acfd25467e7a96,19.484428,468861709.1,317.7904 +44d960540028642474acfd25467e7a96,21.444202,1719848260.2,638.332 +44d960540028642474acfd25467e7a96,26.358217,5821098841.5,834.6028 +44d960540028642474acfd25467e7a96,26.674926,6180107835.5,1133.5611 +44d960540028642474acfd25467e7a96,26.779482,6301007759.2,1156.3174 +44d960540028642474acfd25467e7a96,37.107612,19159608112.3,1245.0076 +44d960540028642474acfd25467e7a96,59.743026,55574533634.2,1608.759 +44d960540028642474acfd25467e7a96,60.041493,56194914039.1,2078.5561 +44d960540028642474acfd25467e7a96,60.273222,56857561829.3,2859.5808 +44d960540028642474acfd25467e7a96,60.522645,58105581748.0,5003.628 +44d960540028642474acfd25467e7a96,60.529808,58196445265.3,12685.1204 +45a1cae9e3fb7425c15bc04bec28af32,11.818583,0.0, +45a1cae9e3fb7425c15bc04bec28af32,14.133783,39949282.1,17.2552 +45a1cae9e3fb7425c15bc04bec28af32,15.602422,98754485.4,40.0406 +45a1cae9e3fb7425c15bc04bec28af32,20.508871,299499295.4,40.9145 +45a1cae9e3fb7425c15bc04bec28af32,23.174175,566350755.8,100.1205 +45a1cae9e3fb7425c15bc04bec28af32,25.487927,870098671.7,131.2794 +45a1cae9e3fb7425c15bc04bec28af32,30.209963,2195156289.2,280.6115 +45a1cae9e3fb7425c15bc04bec28af32,33.385502,3184724426.3,311.6221 +45a1cae9e3fb7425c15bc04bec28af32,33.894336,3368934933.6,362.0248 +45a1cae9e3fb7425c15bc04bec28af32,34.900451,3771524930.6,400.1431 +45a1cae9e3fb7425c15bc04bec28af32,48.784634,10599811550.4,491.8033 +45a1cae9e3fb7425c15bc04bec28af32,52.355814,12825666852.1,623.2829 +45a1cae9e3fb7425c15bc04bec28af32,56.070271,15488570169.8,716.9024 +45a1cae9e3fb7425c15bc04bec28af32,56.180296,15571603408.5,754.6761 +45a1cae9e3fb7425c15bc04bec28af32,63.415006,21185584306.1,775.9787 +45a1cae9e3fb7425c15bc04bec28af32,63.74665,21727608167.0,1634.3545 +45a1cae9e3fb7425c15bc04bec28af32,64.073356,22529846238.3,2455.5352 +48285273eb070fb2eef952b7841e433b,7.858047,0.0, +48285273eb070fb2eef952b7841e433b,9.343368,246210348.3,165.7624 +48285273eb070fb2eef952b7841e433b,13.219188,1222059571.2,251.7788 +48285273eb070fb2eef952b7841e433b,13.661761,1389152917.8,377.5498 +48285273eb070fb2eef952b7841e433b,14.108967,1559207450.2,380.26 +48285273eb070fb2eef952b7841e433b,22.649535,5976261351.2,517.185 +48285273eb070fb2eef952b7841e433b,32.627187,12272478065.3,631.0319 +48285273eb070fb2eef952b7841e433b,38.975738,18040327704.4,908.5301 +48285273eb070fb2eef952b7841e433b,44.951053,25845536559.1,1306.2422 +48285273eb070fb2eef952b7841e433b,45.484511,26568053853.1,1354.4033 +48285273eb070fb2eef952b7841e433b,48.710088,32697215133.8,1900.1752 +48285273eb070fb2eef952b7841e433b,48.715321,32779786711.3,15779.0135 +4a2b617a69dbfb910b57246655ebdf3e,18.420282,1067179081.4, +4a2b617a69dbfb910b57246655ebdf3e,18.78908,0.0,-2893.6683 +4a2b617a69dbfb910b57246655ebdf3e,19.850048,38408384.2,36.2013 +4a2b617a69dbfb910b57246655ebdf3e,20.668593,97268263.2,71.9079 +4a2b617a69dbfb910b57246655ebdf3e,21.116037,130924652.4,75.2192 +4a2b617a69dbfb910b57246655ebdf3e,21.895489,194703825.7,81.8257 +4a2b617a69dbfb910b57246655ebdf3e,25.691768,688935670.8,130.1885 +4a2b617a69dbfb910b57246655ebdf3e,33.100938,2798870927.3,284.7735 +4a2b617a69dbfb910b57246655ebdf3e,38.029137,4350215654.7,314.7894 +4a2b617a69dbfb910b57246655ebdf3e,42.996078,6333362948.5,399.2693 +4a2b617a69dbfb910b57246655ebdf3e,53.47533,11697864122.4,511.9164 +4a2b617a69dbfb910b57246655ebdf3e,55.141932,14103319919.5,1443.3295 +4a2b617a69dbfb910b57246655ebdf3e,56.109038,15687442508.0,1638.0031 +4a2b617a69dbfb910b57246655ebdf3e,57.47406,19263631113.2,2619.8762 +4da38aec984d2f54d9c94ac5e0c52c4f,5.606776,0.0, +4da38aec984d2f54d9c94ac5e0c52c4f,7.097844,98769813.6,66.241 +4da38aec984d2f54d9c94ac5e0c52c4f,9.400372,792985104.8,301.5013 +4da38aec984d2f54d9c94ac5e0c52c4f,131.23198,52962627347.4,428.2111 +4da38aec984d2f54d9c94ac5e0c52c4f,174.329874,71546407746.5,431.1993 +4da38aec984d2f54d9c94ac5e0c52c4f,178.669011,73770895426.5,512.6567 +4da38aec984d2f54d9c94ac5e0c52c4f,178.685374,74499504788.1,44527.8593 +4e91093943d84c5d86a92cc691842322,1.08269,0.0, +4e91093943d84c5d86a92cc691842322,1.415427,20718514.5,62.2669 +4e91093943d84c5d86a92cc691842322,2.550138,143959807.7,108.6103 +4e91093943d84c5d86a92cc691842322,3.367063,255998598.5,137.147 +4e91093943d84c5d86a92cc691842322,4.748057,632095191.3,272.3376 +4e91093943d84c5d86a92cc691842322,8.48057,1735161445.8,295.5291 +4e91093943d84c5d86a92cc691842322,9.325054,2008596850.5,323.7899 +4e91093943d84c5d86a92cc691842322,10.030768,2246934245.6,337.7252 +4e91093943d84c5d86a92cc691842322,10.419867,2383415059.0,350.7612 +4e91093943d84c5d86a92cc691842322,11.993089,2989639749.4,385.3396 +4e91093943d84c5d86a92cc691842322,12.539751,3235225740.2,449.2465 +4e91093943d84c5d86a92cc691842322,13.526035,3762215079.6,534.318 +4e91093943d84c5d86a92cc691842322,15.067643,4849918384.7,705.5641 +4e91093943d84c5d86a92cc691842322,22.60556,10295375502.9,722.4087 +4ede11bf969e39ffa8bd7246f7269c96,9.871534,0.0, +4ede11bf969e39ffa8bd7246f7269c96,11.612124,116757862.1,67.0795 +4ede11bf969e39ffa8bd7246f7269c96,14.236774,366200072.7,95.0383 +4ede11bf969e39ffa8bd7246f7269c96,18.528193,1244619226.0,204.692 +4ede11bf969e39ffa8bd7246f7269c96,20.795668,1769686545.3,231.5648 +4ede11bf969e39ffa8bd7246f7269c96,23.15996,2424015994.1,276.7549 +4ede11bf969e39ffa8bd7246f7269c96,23.640913,2609511373.3,385.683 +4ede11bf969e39ffa8bd7246f7269c96,24.749493,3076602717.7,421.342 +4ede11bf969e39ffa8bd7246f7269c96,25.826196,3573549351.6,461.5448 +4ede11bf969e39ffa8bd7246f7269c96,33.034084,7854795751.9,593.9668 +4ede11bf969e39ffa8bd7246f7269c96,36.348325,10364727720.8,757.3173 +4ede11bf969e39ffa8bd7246f7269c96,59.05538,29447188291.4,840.3758 +4ede11bf969e39ffa8bd7246f7269c96,69.256422,39085702583.1,944.8559 +4ede11bf969e39ffa8bd7246f7269c96,99.553757,86742253126.8,1572.9618 +500d6a0d4f9d23ff8fb47b4178577eaa,3.902088,32230904.3, +500d6a0d4f9d23ff8fb47b4178577eaa,6.554454,0.0,-12.1518 +500d6a0d4f9d23ff8fb47b4178577eaa,8.181597,122724265.9,75.4232 +500d6a0d4f9d23ff8fb47b4178577eaa,9.337187,257155751.6,116.3315 +500d6a0d4f9d23ff8fb47b4178577eaa,10.375389,394709368.6,132.4922 +500d6a0d4f9d23ff8fb47b4178577eaa,11.15212,576543444.2,234.1017 +500d6a0d4f9d23ff8fb47b4178577eaa,12.246615,910433572.1,305.0632 +500d6a0d4f9d23ff8fb47b4178577eaa,12.309625,945123529.6,550.5469 +500d6a0d4f9d23ff8fb47b4178577eaa,12.79938,1269957252.6,663.2576 +500d6a0d4f9d23ff8fb47b4178577eaa,14.501557,2665966288.8,820.1315 +500d6a0d4f9d23ff8fb47b4178577eaa,19.302649,8131882642.9,1138.4736 +500d6a0d4f9d23ff8fb47b4178577eaa,19.369903,8212114708.2,1192.9709 +500d6a0d4f9d23ff8fb47b4178577eaa,26.983961,17674704702.8,1242.7788 +500d6a0d4f9d23ff8fb47b4178577eaa,27.25316,18028758680.8,1315.2128 +500d6a0d4f9d23ff8fb47b4178577eaa,52.626208,57124321426.3,1540.8304 +500d6a0d4f9d23ff8fb47b4178577eaa,53.047536,57890122058.0,1817.5878 +500d6a0d4f9d23ff8fb47b4178577eaa,53.46637,58867874348.2,2334.4626 +50d2aaa9eefb93cfec53b6cdacb24b6f,9.908139,0.0, +50d2aaa9eefb93cfec53b6cdacb24b6f,13.472756,491447599.2,137.8683 +50d2aaa9eefb93cfec53b6cdacb24b6f,15.369664,802605973.3,164.0345 +50d2aaa9eefb93cfec53b6cdacb24b6f,18.186598,1549892004.2,265.2835 +50d2aaa9eefb93cfec53b6cdacb24b6f,120.677573,73960817016.5,706.5103 +50d2aaa9eefb93cfec53b6cdacb24b6f,166.534758,108255685483.3,747.8625 +50d2aaa9eefb93cfec53b6cdacb24b6f,264.823047,185042613744.5,781.2419 +50d2aaa9eefb93cfec53b6cdacb24b6f,381.674726,282315610831.8,832.4484 +50d2aaa9eefb93cfec53b6cdacb24b6f,389.258239,289460178300.7,942.1184 +50d2aaa9eefb93cfec53b6cdacb24b6f,389.32737,289633987668.5,2514.203 +5327e56dde96d7a470ae99896c2e150b,17.666241,0.0, +5327e56dde96d7a470ae99896c2e150b,22.474556,235802249.8,49.0405 +5327e56dde96d7a470ae99896c2e150b,25.078327,515477463.2,107.4116 +5327e56dde96d7a470ae99896c2e150b,27.066307,1058255766.5,273.0301 +5327e56dde96d7a470ae99896c2e150b,38.312942,7620747562.2,583.5071 +5327e56dde96d7a470ae99896c2e150b,42.88064,10591270798.6,650.3327 +5327e56dde96d7a470ae99896c2e150b,57.892035,21564616561.8,731.0011 +5327e56dde96d7a470ae99896c2e150b,60.331077,23761102643.7,900.5528 +5350828dece3d87d6bc550ae59c1f716,2.632395,0.0, +5350828dece3d87d6bc550ae59c1f716,4.225555,202351261.6,127.0125 +5350828dece3d87d6bc550ae59c1f716,4.953315,359499837.7,215.9346 +5350828dece3d87d6bc550ae59c1f716,5.178468,408891269.8,219.3683 +5350828dece3d87d6bc550ae59c1f716,6.862702,791676192.3,227.2754 +5350828dece3d87d6bc550ae59c1f716,13.769114,2549456098.4,254.5142 +5350828dece3d87d6bc550ae59c1f716,14.673575,2788954598.0,264.7969 +5350828dece3d87d6bc550ae59c1f716,17.698441,3921031955.1,374.257 +5350828dece3d87d6bc550ae59c1f716,25.573758,7016458518.3,393.0542 +5350828dece3d87d6bc550ae59c1f716,30.674303,10113984392.5,607.2931 +5350828dece3d87d6bc550ae59c1f716,38.072207,14679637558.4,617.155 +5350828dece3d87d6bc550ae59c1f716,41.941411,17289821135.4,674.6048 +5350828dece3d87d6bc550ae59c1f716,45.590484,21481935627.6,1148.8163 +5350828dece3d87d6bc550ae59c1f716,45.595549,21489077272.2,1409.9989 +55b8e288c28c187ed6dde56c7213df9d,5.941645,0.0, +55b8e288c28c187ed6dde56c7213df9d,6.851105,102481759.2,112.6842 +55b8e288c28c187ed6dde56c7213df9d,7.503823,184968614.0,126.3744 +55b8e288c28c187ed6dde56c7213df9d,8.347987,418847358.8,277.0537 +55b8e288c28c187ed6dde56c7213df9d,8.571102,539775721.3,542.0001 +55b8e288c28c187ed6dde56c7213df9d,9.481567,1067543357.0,579.6682 +55b8e288c28c187ed6dde56c7213df9d,10.793582,2027894526.8,731.9666 +55b8e288c28c187ed6dde56c7213df9d,11.412137,2510115633.1,779.5929 +55b8e288c28c187ed6dde56c7213df9d,15.142163,7019240179.2,1208.8721 +55b8e288c28c187ed6dde56c7213df9d,21.75957,16739439347.3,1468.8834 +55b8e288c28c187ed6dde56c7213df9d,22.516598,17893818500.5,1524.883 +55b8e288c28c187ed6dde56c7213df9d,38.064816,43150118074.5,1624.3855 +55b8e288c28c187ed6dde56c7213df9d,49.690959,64078661001.2,1800.1278 +55b8e288c28c187ed6dde56c7213df9d,123.996543,198488211925.7,1808.8755 +55b8e288c28c187ed6dde56c7213df9d,135.062283,219119940719.9,1864.469 +55b8e288c28c187ed6dde56c7213df9d,135.38015,221037649392.7,6033.0537 +619c1be4c89a19705bf8e782db74d127,7.809195,0.0, +619c1be4c89a19705bf8e782db74d127,9.040526,43195508.1,35.0803 +619c1be4c89a19705bf8e782db74d127,11.681604,199154243.5,59.0512 +619c1be4c89a19705bf8e782db74d127,13.051218,293782299.7,69.091 +619c1be4c89a19705bf8e782db74d127,26.882009,1434461368.6,82.4739 +619c1be4c89a19705bf8e782db74d127,39.055575,2453632609.4,83.72 +619c1be4c89a19705bf8e782db74d127,111.182471,12429341858.9,138.3078 +619c1be4c89a19705bf8e782db74d127,435.069057,67162865836.3,168.9898 +619c1be4c89a19705bf8e782db74d127,618.81213,99024983621.9,173.4058 +619c1be4c89a19705bf8e782db74d127,723.717105,119577537320.1,195.9159 +619c1be4c89a19705bf8e782db74d127,887.451754,152937501317.1,203.7441 +619c1be4c89a19705bf8e782db74d127,1020.822514,186384173298.1,250.7796 +619c1be4c89a19705bf8e782db74d127,1041.804935,192009777166.6,268.1103 +619c1be4c89a19705bf8e782db74d127,1056.520091,197750700138.9,390.1367 +619c1be4c89a19705bf8e782db74d127,1057.436156,198554145396.4,877.0614 +619c1be4c89a19705bf8e782db74d127,1057.459555,198947355895.1,16804.5856 +67ba2895e1d3d0bc081c628e49775f30,9.804204,0.0, +67ba2895e1d3d0bc081c628e49775f30,13.622425,123315240.1,32.2965 +67ba2895e1d3d0bc081c628e49775f30,14.298372,175312389.1,76.9249 +67ba2895e1d3d0bc081c628e49775f30,16.858666,448187886.4,106.5798 +67ba2895e1d3d0bc081c628e49775f30,19.088208,828021214.7,170.3638 +67ba2895e1d3d0bc081c628e49775f30,19.551842,912092750.0,181.3317 +67ba2895e1d3d0bc081c628e49775f30,19.7686,1012769498.8,464.4661 +67ba2895e1d3d0bc081c628e49775f30,22.256753,2371098973.1,545.9188 +67ba2895e1d3d0bc081c628e49775f30,24.251863,3660520280.8,646.2908 +67ba2895e1d3d0bc081c628e49775f30,26.881134,5756204172.4,797.0589 +67ba2895e1d3d0bc081c628e49775f30,42.895019,18664889108.6,806.0933 +67ba2895e1d3d0bc081c628e49775f30,108.950644,72171325024.9,810.0209 +67ba2895e1d3d0bc081c628e49775f30,125.603748,85892278218.8,823.9277 +67ba2895e1d3d0bc081c628e49775f30,184.266949,134777960052.1,833.3279 +67ba2895e1d3d0bc081c628e49775f30,190.4857,140099549653.1,855.7329 +67ba2895e1d3d0bc081c628e49775f30,198.504676,147324682913.3,901.0045 +6dcecce2bf925ad09dd36d34a68b1f3e,5.446172,111334303.4, +6dcecce2bf925ad09dd36d34a68b1f3e,5.764707,0.0,-349.5198 +6dcecce2bf925ad09dd36d34a68b1f3e,8.777426,416103513.2,138.1156 +6dcecce2bf925ad09dd36d34a68b1f3e,11.23841,972158185.6,225.9481 +6dcecce2bf925ad09dd36d34a68b1f3e,11.779287,1095666283.4,228.3478 +6dcecce2bf925ad09dd36d34a68b1f3e,12.849538,1413027932.0,296.5301 +6dcecce2bf925ad09dd36d34a68b1f3e,13.061882,1481770820.7,323.7336 +6dcecce2bf925ad09dd36d34a68b1f3e,181.583547,60617606524.8,350.9094 +6dcecce2bf925ad09dd36d34a68b1f3e,182.065572,60793954769.0,365.8488 +6e2922432dd30a1b2ce963e779f3b32f,13.314142,0.0, +6e2922432dd30a1b2ce963e779f3b32f,18.962858,218075950.5,38.6063 +6e2922432dd30a1b2ce963e779f3b32f,22.683165,381848274.6,44.0212 +6e2922432dd30a1b2ce963e779f3b32f,24.870854,483006611.0,46.2398 +6e2922432dd30a1b2ce963e779f3b32f,31.25794,1055336350.4,89.6073 +6e2922432dd30a1b2ce963e779f3b32f,33.683957,1545934454.0,202.2237 +6e2922432dd30a1b2ce963e779f3b32f,34.554637,1726064355.8,206.8842 +6e2922432dd30a1b2ce963e779f3b32f,38.64048,2679988449.5,233.4706 +6e2922432dd30a1b2ce963e779f3b32f,40.962588,3510540041.5,357.6714 +6e2922432dd30a1b2ce963e779f3b32f,50.253804,7827135976.4,464.5889 +6e2922432dd30a1b2ce963e779f3b32f,57.858258,12740443261.1,646.1091 +6e2922432dd30a1b2ce963e779f3b32f,70.700534,22131353260.8,731.2497 +6e2922432dd30a1b2ce963e779f3b32f,83.097435,31974787770.8,794.0238 +6e2922432dd30a1b2ce963e779f3b32f,89.686456,40137253595.2,1238.798 +6e2922432dd30a1b2ce963e779f3b32f,89.705801,41120408755.6,50822.1846 +6e2922432dd30a1b2ce963e779f3b32f,89.706113,41149013708.0,91682.5398 +6e2922432dd30a1b2ce963e779f3b32f,89.706186,41177092929.0,384646.8626 +73ef543f06f457ad704934364529893c,4.246599,110285617.6, +73ef543f06f457ad704934364529893c,4.425539,0.0,-616.3274 +73ef543f06f457ad704934364529893c,7.855991,290628908.0,84.7203 +73ef543f06f457ad704934364529893c,9.702132,468950815.7,96.5917 +73ef543f06f457ad704934364529893c,10.062494,513259069.9,122.9548 +73ef543f06f457ad704934364529893c,17.678148,1648551147.8,149.0735 +73ef543f06f457ad704934364529893c,18.161129,1726715935.4,161.8382 +73ef543f06f457ad704934364529893c,82.286091,12801227760.8,172.702 +73ef543f06f457ad704934364529893c,94.818432,15022592671.1,177.2506 +73ef543f06f457ad704934364529893c,124.746014,21327824189.7,210.683 +73ef543f06f457ad704934364529893c,126.575418,21809634613.7,263.3702 +73ef543f06f457ad704934364529893c,224.245978,51109703227.5,299.9887 +73ef543f06f457ad704934364529893c,244.539542,57364238122.2,308.2029 +73ef543f06f457ad704934364529893c,252.914454,61268503694.4,466.1859 +73ef543f06f457ad704934364529893c,253.531287,61570748693.9,489.9949 +73ef543f06f457ad704934364529893c,256.232778,62930925560.5,503.4912 +746de7a2ddd516aba7e075df93ee1984,5.03755,0.0, +746de7a2ddd516aba7e075df93ee1984,5.383481,44929885.7,129.8811 +746de7a2ddd516aba7e075df93ee1984,8.127272,718516062.8,245.4947 +746de7a2ddd516aba7e075df93ee1984,8.472542,814718487.6,278.6296 +746de7a2ddd516aba7e075df93ee1984,8.606322,857535415.0,320.0548 +746de7a2ddd516aba7e075df93ee1984,10.194726,1409202212.1,347.3089 +746de7a2ddd516aba7e075df93ee1984,10.271571,1464023028.0,713.3947 +746de7a2ddd516aba7e075df93ee1984,30.014243,16457389959.5,759.4396 +746de7a2ddd516aba7e075df93ee1984,46.361217,35625120048.7,1172.5552 +78095380718d012c536fc85ad430b2ca,1.803726,0.0, +78095380718d012c536fc85ad430b2ca,3.730507,799702492.9,415.0459 +78095380718d012c536fc85ad430b2ca,5.051142,2345555506.0,1170.5377 +78095380718d012c536fc85ad430b2ca,29.609005,34380475261.0,1304.4669 +78095380718d012c536fc85ad430b2ca,42.868371,55117801368.0,1563.9757 +78095380718d012c536fc85ad430b2ca,72.326195,104931318103.3,1691.0114 +78095380718d012c536fc85ad430b2ca,73.765195,107419843397.3,1729.3435 +78095380718d012c536fc85ad430b2ca,85.623704,129283735477.9,1843.7303 +78095380718d012c536fc85ad430b2ca,92.796994,142548754250.2,1849.2238 +78095380718d012c536fc85ad430b2ca,96.261648,149557262737.9,2022.8596 +7a1f63f7dba60ce6146ec87d673f8f0a,2.340299,0.0, +7a1f63f7dba60ce6146ec87d673f8f0a,3.731965,159875007.5,114.8803 +7a1f63f7dba60ce6146ec87d673f8f0a,4.813636,381468651.6,204.8623 +7a1f63f7dba60ce6146ec87d673f8f0a,5.290036,557576561.2,369.664 +7a1f63f7dba60ce6146ec87d673f8f0a,5.55438,667150818.3,414.5139 +7a1f63f7dba60ce6146ec87d673f8f0a,6.990215,1379988117.2,496.4618 +7a1f63f7dba60ce6146ec87d673f8f0a,7.569191,1763470730.6,662.3463 +7a1f63f7dba60ce6146ec87d673f8f0a,9.678129,3426469354.4,788.5479 +7a1f63f7dba60ce6146ec87d673f8f0a,10.069381,3788720839.7,925.8777 +7a1f63f7dba60ce6146ec87d673f8f0a,37.29535,32253762550.9,1045.5107 +7a1f63f7dba60ce6146ec87d673f8f0a,38.698125,34962653614.5,1931.0945 +7a1f63f7dba60ce6146ec87d673f8f0a,38.718871,35005954306.8,2087.1827 +7a1f63f7dba60ce6146ec87d673f8f0a,38.718885,35033668355.9,1979574.9368 +7b56d37854e7ba51f10637e34fa89ab7,3.987347,35057723.1, +7b56d37854e7ba51f10637e34fa89ab7,5.049846,0.0,-32.9955 +7b56d37854e7ba51f10637e34fa89ab7,7.107879,93431941.6,45.3987 +7b56d37854e7ba51f10637e34fa89ab7,7.788743,148569651.7,80.982 +7b56d37854e7ba51f10637e34fa89ab7,8.822794,282896303.3,129.9033 +836c5e72d8a00e869414a49da87fa712,7.500401,0.0, +836c5e72d8a00e869414a49da87fa712,9.646751,64109957.0,29.8693 +836c5e72d8a00e869414a49da87fa712,10.568209,141505356.4,83.9923 +836c5e72d8a00e869414a49da87fa712,12.311831,358631937.5,124.5262 +836c5e72d8a00e869414a49da87fa712,12.509026,389010746.7,154.0547 +836c5e72d8a00e869414a49da87fa712,16.730563,1828808896.2,341.0602 +836c5e72d8a00e869414a49da87fa712,16.788269,1863858032.0,607.3742 +836c5e72d8a00e869414a49da87fa712,20.626683,4421282286.7,666.2711 +836c5e72d8a00e869414a49da87fa712,25.57187,8870295869.2,899.6654 +836c5e72d8a00e869414a49da87fa712,29.985601,13045713040.4,946.0063 +836c5e72d8a00e869414a49da87fa712,30.155132,13791852490.6,4401.1977 +83da8c6a48b3856ca8d1fb06e894d798,8.826596,33980195.4, +83da8c6a48b3856ca8d1fb06e894d798,13.433405,0.0,-7.3761 +83da8c6a48b3856ca8d1fb06e894d798,14.602497,333046366.1,284.8761 +83da8c6a48b3856ca8d1fb06e894d798,17.494907,1212381816.3,304.0148 +83da8c6a48b3856ca8d1fb06e894d798,22.57642,9842603834.6,1698.3568 +83da8c6a48b3856ca8d1fb06e894d798,22.632417,9950378028.4,1924.6423 +83da8c6a48b3856ca8d1fb06e894d798,25.254724,18466778587.2,3247.6749 +83da8c6a48b3856ca8d1fb06e894d798,25.412511,19163105464.3,4413.0814 +83da8c6a48b3856ca8d1fb06e894d798,25.473799,19496724724.8,5443.4679 +84627be9a4c4c58b839ec0de01f5ce71,0.465636,0.0, +84627be9a4c4c58b839ec0de01f5ce71,0.573299,6134881.9,56.9823 +84627be9a4c4c58b839ec0de01f5ce71,0.612062,8833232.4,69.6115 +84627be9a4c4c58b839ec0de01f5ce71,0.676052,33030594.7,378.1429 +84627be9a4c4c58b839ec0de01f5ce71,0.689713,82997878.8,3657.6593 +8575de00d4306c012cf42a221a3755c2,8.787322,0.0, +8575de00d4306c012cf42a221a3755c2,9.739016,47941770.8,50.3752 +8575de00d4306c012cf42a221a3755c2,10.559754,108688269.0,74.0145 +8575de00d4306c012cf42a221a3755c2,11.756195,292190544.9,153.3734 +8575de00d4306c012cf42a221a3755c2,12.07287,360272655.9,214.9905 +8575de00d4306c012cf42a221a3755c2,18.296742,2611353810.5,361.685 +8575de00d4306c012cf42a221a3755c2,19.898645,3326953592.0,446.7185 +8575de00d4306c012cf42a221a3755c2,21.410701,4213441465.8,586.2798 +8575de00d4306c012cf42a221a3755c2,22.26328,4827030995.5,719.6864 +8575de00d4306c012cf42a221a3755c2,24.805886,8089996095.6,1283.3153 +8575de00d4306c012cf42a221a3755c2,28.652467,13321747502.6,1360.1043 +8575de00d4306c012cf42a221a3755c2,28.82585,13625551156.4,1752.2113 +8575de00d4306c012cf42a221a3755c2,29.027834,14181575109.5,2752.8119 +8575de00d4306c012cf42a221a3755c2,29.063368,14374239889.2,5421.984 +8575de00d4306c012cf42a221a3755c2,29.169677,15068496581.3,6530.5543 +8575de00d4306c012cf42a221a3755c2,29.169782,15079061344.5,100616.7921 +8b16b8589a919b5ac2a8e967f5840851,1.85529,0.0, +8b16b8589a919b5ac2a8e967f5840851,3.167273,24214027.2,18.4561 +8b16b8589a919b5ac2a8e967f5840851,3.705376,100669516.0,142.0834 +8b16b8589a919b5ac2a8e967f5840851,4.552103,429260535.3,388.072 +8b16b8589a919b5ac2a8e967f5840851,5.035304,642161119.2,440.6046 +8b16b8589a919b5ac2a8e967f5840851,6.730207,1573946297.9,549.7572 +8b16b8589a919b5ac2a8e967f5840851,10.380149,5877916984.9,1179.1888 +8b16b8589a919b5ac2a8e967f5840851,13.587873,10474268783.5,1432.9013 +8b16b8589a919b5ac2a8e967f5840851,17.496364,17294920668.8,1745.0857 +8bb4fb487323fd17e6ebc62985b328af,18.858606,0.0, +8bb4fb487323fd17e6ebc62985b328af,25.796199,83483105.7,12.0334 +8bb4fb487323fd17e6ebc62985b328af,30.325457,165515117.1,18.1116 +8bb4fb487323fd17e6ebc62985b328af,44.29179,592847197.9,30.5973 +8bb4fb487323fd17e6ebc62985b328af,45.705735,680573882.0,62.0439 +8bb4fb487323fd17e6ebc62985b328af,100.173651,4624603392.2,72.4101 +8bb4fb487323fd17e6ebc62985b328af,100.664812,4670270184.4,92.9772 +8bb4fb487323fd17e6ebc62985b328af,118.870236,7893747601.2,177.0614 +8bb4fb487323fd17e6ebc62985b328af,139.70667,15776881621.5,378.3341 +8bb4fb487323fd17e6ebc62985b328af,139.804628,16606779957.9,8471.9812 +8bb4fb487323fd17e6ebc62985b328af,139.815049,16803057858.7,18834.8432 +8bb4fb487323fd17e6ebc62985b328af,139.815721,16836862751.2,50304.8995 +8bb4fb487323fd17e6ebc62985b328af,139.81577,16849013514.7,247974.7661 +8bcad4839a1e0e439e62911ff7b2d1c0,2.265,0.0, +8bcad4839a1e0e439e62911ff7b2d1c0,3.194934,56138848.5,60.3686 +8bcad4839a1e0e439e62911ff7b2d1c0,4.436377,208553189.8,122.7719 +8bcad4839a1e0e439e62911ff7b2d1c0,10.483216,1623674472.6,234.0266 +8bcad4839a1e0e439e62911ff7b2d1c0,17.679067,3568664092.1,270.2932 +8bcad4839a1e0e439e62911ff7b2d1c0,24.279514,5629250421.8,312.1889 +8bcad4839a1e0e439e62911ff7b2d1c0,27.592829,7058607134.7,431.3978 +8bcad4839a1e0e439e62911ff7b2d1c0,51.822504,17628872009.9,436.2529 +8bcad4839a1e0e439e62911ff7b2d1c0,54.185177,18818308355.4,503.4283 +8bcad4839a1e0e439e62911ff7b2d1c0,59.331642,21580968761.2,536.8074 +8bcad4839a1e0e439e62911ff7b2d1c0,125.160138,64467474626.4,651.4885 +8bcad4839a1e0e439e62911ff7b2d1c0,129.208423,67141359703.8,660.4982 +8bcad4839a1e0e439e62911ff7b2d1c0,133.199511,69877282175.5,685.5079 +8bcad4839a1e0e439e62911ff7b2d1c0,170.532533,95616032851.4,689.4366 +8bcad4839a1e0e439e62911ff7b2d1c0,175.346422,99888049588.9,887.4357 +94b7031bb5bd63658dccb1e100b9867e,20.794193,139164031.1, +94b7031bb5bd63658dccb1e100b9867e,21.290614,0.0,-280.3347 +94b7031bb5bd63658dccb1e100b9867e,22.731314,31575103.4,21.9165 +94b7031bb5bd63658dccb1e100b9867e,23.439448,67750825.1,51.086 +94b7031bb5bd63658dccb1e100b9867e,26.970081,334657042.7,75.5973 +94b7031bb5bd63658dccb1e100b9867e,27.585383,390155722.1,90.1975 +94b7031bb5bd63658dccb1e100b9867e,28.77112,861029770.5,397.1151 +94b7031bb5bd63658dccb1e100b9867e,29.349753,1119732288.2,447.0926 +94b7031bb5bd63658dccb1e100b9867e,29.983815,1423983354.5,479.8443 +94b7031bb5bd63658dccb1e100b9867e,30.171048,1524860755.1,538.78 +94b7031bb5bd63658dccb1e100b9867e,30.351825,1638650558.1,629.4485 +94b7031bb5bd63658dccb1e100b9867e,32.755262,3351211306.3,712.5466 +94b7031bb5bd63658dccb1e100b9867e,38.455479,9356268946.4,1053.4788 +94b7031bb5bd63658dccb1e100b9867e,38.57907,9488140107.9,1066.9965 +94b7031bb5bd63658dccb1e100b9867e,44.225477,16096803463.0,1170.4192 +94b7031bb5bd63658dccb1e100b9867e,44.624777,16655651722.0,1399.5699 +94b7031bb5bd63658dccb1e100b9867e,46.16153,19816278211.7,2056.6913 +94b7031bb5bd63658dccb1e100b9867e,46.201248,19910737235.1,2378.2422 +94b7031bb5bd63658dccb1e100b9867e,46.201283,19914615036.2,110794.3168 +95f010dcc44da9cb878c408bfd8e2c56,12.977187,0.0, +95f010dcc44da9cb878c408bfd8e2c56,14.275939,16026919.0,12.3402 +95f010dcc44da9cb878c408bfd8e2c56,15.930338,65931459.6,30.1648 +95f010dcc44da9cb878c408bfd8e2c56,17.25634,131034143.1,49.097 +95f010dcc44da9cb878c408bfd8e2c56,18.827621,352488021.7,140.9384 +95f010dcc44da9cb878c408bfd8e2c56,22.474677,1048076576.2,190.726 +95f010dcc44da9cb878c408bfd8e2c56,23.62669,1462201708.8,359.4796 +95f010dcc44da9cb878c408bfd8e2c56,23.952521,1750093196.8,883.5608 +99076f48936f656075dee0ad0473cfe2,16.514378,0.0, +99076f48936f656075dee0ad0473cfe2,18.602318,699702353.7,335.1161 +99076f48936f656075dee0ad0473cfe2,26.474438,4902504918.2,533.8845 +9b41b861cfb327b36569ebeac8912005,7.465648,427746511.1, +9b41b861cfb327b36569ebeac8912005,8.653208,0.0,-360.1894 +9b41b861cfb327b36569ebeac8912005,9.794069,48195221.1,42.2446 +9b41b861cfb327b36569ebeac8912005,10.829741,205751125.2,152.1292 +9b41b861cfb327b36569ebeac8912005,11.460445,365120425.3,252.6848 +9b41b861cfb327b36569ebeac8912005,12.069092,544333950.1,294.4458 +9b41b861cfb327b36569ebeac8912005,12.355586,710509518.1,580.0316 +9b41b861cfb327b36569ebeac8912005,18.608613,4360859489.4,583.7733 +9b41b861cfb327b36569ebeac8912005,50.944496,26945161481.4,698.4285 +9b41b861cfb327b36569ebeac8912005,54.793256,30188109173.4,842.5955 +9b41b861cfb327b36569ebeac8912005,55.734326,31016887901.4,880.677 +9b41b861cfb327b36569ebeac8912005,65.183652,39841997017.2,933.9406 +9b41b861cfb327b36569ebeac8912005,74.937982,49725805819.2,1013.274 +9b41b861cfb327b36569ebeac8912005,74.960388,49755986264.4,1346.9805 +9b41b861cfb327b36569ebeac8912005,74.971705,49783422301.9,2424.3207 +9b41b861cfb327b36569ebeac8912005,74.984746,50125664178.3,26243.5301 +9b41b861cfb327b36569ebeac8912005,74.98485,50231008356.8,1012924.7932 +9b962221bbdda9573305c5c7106f66fe,17.355338,0.0, +9b962221bbdda9573305c5c7106f66fe,18.089085,35739099.5,48.7077 +9b962221bbdda9573305c5c7106f66fe,19.112391,108784302.1,71.3816 +9b962221bbdda9573305c5c7106f66fe,22.201091,454665136.4,111.9827 +9b962221bbdda9573305c5c7106f66fe,23.205342,605462794.8,150.1593 +9b962221bbdda9573305c5c7106f66fe,23.303182,678833917.3,749.9093 +9b962221bbdda9573305c5c7106f66fe,25.307625,2256390480.3,787.0299 +9b962221bbdda9573305c5c7106f66fe,32.41259,8170007852.9,832.3218 +9b962221bbdda9573305c5c7106f66fe,36.422229,12405500933.3,1056.3278 +9b962221bbdda9573305c5c7106f66fe,39.799078,17207387356.1,1422.0021 +9b962221bbdda9573305c5c7106f66fe,45.684101,25923492133.8,1481.0655 +9b962221bbdda9573305c5c7106f66fe,54.428832,39090102787.5,1505.6622 +9b962221bbdda9573305c5c7106f66fe,85.41422,91277484113.6,1684.2578 +9b962221bbdda9573305c5c7106f66fe,110.295242,133902303136.2,1713.1458 +9b962221bbdda9573305c5c7106f66fe,159.7458,221585926410.7,1773.1574 +9b962221bbdda9573305c5c7106f66fe,172.054301,245520716593.5,1944.5739 +9b962221bbdda9573305c5c7106f66fe,181.575351,267258766491.2,2283.1568 +9b962221bbdda9573305c5c7106f66fe,183.161198,272960762022.0,3595.5521 +9f7e16bb747b8f99aefaf75261613b71,16.533213,0.0, +9f7e16bb747b8f99aefaf75261613b71,20.674441,26451577.7,6.3874 +9f7e16bb747b8f99aefaf75261613b71,22.281764,145435129.4,74.0259 +9f7e16bb747b8f99aefaf75261613b71,22.942396,215573498.3,106.1686 +9f7e16bb747b8f99aefaf75261613b71,24.313996,440775431.4,164.1892 +9f7e16bb747b8f99aefaf75261613b71,24.955911,551054785.9,171.7974 +9f7e16bb747b8f99aefaf75261613b71,25.410021,643220616.3,202.9593 +9f7e16bb747b8f99aefaf75261613b71,27.322699,1264548136.6,324.8469 +9f7e16bb747b8f99aefaf75261613b71,27.984879,1700308849.7,658.0699 +9f7e16bb747b8f99aefaf75261613b71,33.947163,11519915538.0,1646.9539 +9f7e16bb747b8f99aefaf75261613b71,34.008023,11630233352.4,1812.6489 +9f7e16bb747b8f99aefaf75261613b71,34.011207,12080532261.8,141425.5369 +9fc373d0ebace3e362fd05ce042e7579,1.299572,0.0, +9fc373d0ebace3e362fd05ce042e7579,2.093801,58960433.9,74.2361 +9fc373d0ebace3e362fd05ce042e7579,2.525735,92018438.7,76.5349 +9fc373d0ebace3e362fd05ce042e7579,3.52579,226207738.3,134.1819 +9fc373d0ebace3e362fd05ce042e7579,4.063352,308282135.9,152.6789 +9fc373d0ebace3e362fd05ce042e7579,5.082388,528700392.9,216.3008 +9fc373d0ebace3e362fd05ce042e7579,5.745212,679615871.9,227.6856 +9fc373d0ebace3e362fd05ce042e7579,64.387971,14493089355.9,235.5529 +9fc373d0ebace3e362fd05ce042e7579,67.167163,15178310244.3,246.554 +9fc373d0ebace3e362fd05ce042e7579,70.444285,15998714944.2,250.343 +9fc373d0ebace3e362fd05ce042e7579,78.145534,18158167928.4,280.403 +9fc373d0ebace3e362fd05ce042e7579,78.827609,18363620701.1,301.2173 +9fc373d0ebace3e362fd05ce042e7579,84.291733,20034256111.9,305.7462 +9fc373d0ebace3e362fd05ce042e7579,111.910982,28614707467.2,310.6692 +9fc373d0ebace3e362fd05ce042e7579,114.973187,29838610138.8,399.6802 +9fc373d0ebace3e362fd05ce042e7579,153.598041,46081638018.5,420.5331 +9fc373d0ebace3e362fd05ce042e7579,154.752015,46671048780.3,510.7661 +a182e260da3f30b54260bf499f0db584,3.69545,0.0, +a182e260da3f30b54260bf499f0db584,4.415072,32521175.6,45.192 +a182e260da3f30b54260bf499f0db584,4.938751,65037973.3,62.093 +a182e260da3f30b54260bf499f0db584,6.128173,160687218.3,80.4166 +a182e260da3f30b54260bf499f0db584,6.315096,186214938.8,136.5681 +a182e260da3f30b54260bf499f0db584,8.950158,837182220.5,247.0406 +a182e260da3f30b54260bf499f0db584,12.424623,2186279056.3,388.2891 +a182e260da3f30b54260bf499f0db584,13.6909,3851364174.5,1314.9454 +a182e260da3f30b54260bf499f0db584,13.731039,4019335436.0,4184.7396 +a182e260da3f30b54260bf499f0db584,13.76258,4628492556.5,19313.1835 +a69f0e7f6f71f675655d71b6d5c43893,4.369923,0.0, +a69f0e7f6f71f675655d71b6d5c43893,5.908618,142545872.7,92.6408 +a69f0e7f6f71f675655d71b6d5c43893,8.260352,369199084.6,96.3771 +a69f0e7f6f71f675655d71b6d5c43893,14.864443,1006484552.6,96.4986 +a69f0e7f6f71f675655d71b6d5c43893,120.876636,12809490242.6,111.3363 +a69f0e7f6f71f675655d71b6d5c43893,146.371169,15886239334.9,120.6827 +a69f0e7f6f71f675655d71b6d5c43893,217.968897,25161961792.0,129.5533 +a69f0e7f6f71f675655d71b6d5c43893,243.351857,28790988896.0,142.971 +a69f0e7f6f71f675655d71b6d5c43893,1237.237921,171293626162.5,143.3792 +a69f0e7f6f71f675655d71b6d5c43893,1255.845537,174154742740.6,153.7605 +a69f0e7f6f71f675655d71b6d5c43893,1255.982192,174791119907.7,4656.8158 +a6fce5e6ca5bec22c9b802d4f91da3eb,21.797274,0.0, +a6fce5e6ca5bec22c9b802d4f91da3eb,22.212953,16946754.4,40.7688 +a6fce5e6ca5bec22c9b802d4f91da3eb,22.922523,46050968.8,41.0167 +a6fce5e6ca5bec22c9b802d4f91da3eb,25.460258,199495053.7,60.465 +a6fce5e6ca5bec22c9b802d4f91da3eb,26.427325,310411088.7,114.6932 +a6fce5e6ca5bec22c9b802d4f91da3eb,27.540657,445617334.0,121.4429 +a6fce5e6ca5bec22c9b802d4f91da3eb,28.425418,597923290.6,172.1436 +a6fce5e6ca5bec22c9b802d4f91da3eb,31.402817,1222975509.9,209.9323 +a6fce5e6ca5bec22c9b802d4f91da3eb,32.147009,1408731109.1,249.6071 +a6fce5e6ca5bec22c9b802d4f91da3eb,33.264838,1746029149.5,301.7439 +a6fce5e6ca5bec22c9b802d4f91da3eb,45.057427,5996120541.3,360.4036 +a6fce5e6ca5bec22c9b802d4f91da3eb,45.340991,6225347568.1,808.3784 +a6fce5e6ca5bec22c9b802d4f91da3eb,45.64638,6473897719.2,813.8805 +a6fce5e6ca5bec22c9b802d4f91da3eb,45.904161,6725394903.7,975.6234 +a6fce5e6ca5bec22c9b802d4f91da3eb,48.561434,9336126523.7,982.4853 +a6fce5e6ca5bec22c9b802d4f91da3eb,48.62319,9420733059.9,1370.0132 +a6fce5e6ca5bec22c9b802d4f91da3eb,48.635459,9462402309.3,3396.3036 +a6fce5e6ca5bec22c9b802d4f91da3eb,48.736951,10072374932.0,6010.0562 +a6fce5e6ca5bec22c9b802d4f91da3eb,49.032815,11921330919.2,6249.3442 +a6fce5e6ca5bec22c9b802d4f91da3eb,49.040384,12050563824.4,17073.9735 +a6fce5e6ca5bec22c9b802d4f91da3eb,49.041665,12129947493.2,61970.0772 +ad2f0d0246c2984fbadd6170660c68b2,12.433523,0.0, +ad2f0d0246c2984fbadd6170660c68b2,14.757577,80117618.6,34.4732 +ad2f0d0246c2984fbadd6170660c68b2,16.547927,219749359.6,77.9913 +ad2f0d0246c2984fbadd6170660c68b2,16.92607,263990189.6,116.995 +ad2f0d0246c2984fbadd6170660c68b2,17.764974,364876737.5,120.2599 +ad2f0d0246c2984fbadd6170660c68b2,19.431645,645418578.8,168.3247 +ad2f0d0246c2984fbadd6170660c68b2,21.49365,1931540706.5,623.7241 +ad2f0d0246c2984fbadd6170660c68b2,22.132618,2990593495.4,1657.4426 +ad2f0d0246c2984fbadd6170660c68b2,25.576088,9985751913.3,2031.4271 +ad2f0d0246c2984fbadd6170660c68b2,25.672557,10401934848.8,4314.1624 +aedcebc1529b01e8bf77393c81406931,10.867463,0.0, +aedcebc1529b01e8bf77393c81406931,13.373343,79694237.9,31.8029 +aedcebc1529b01e8bf77393c81406931,14.230448,127988270.2,56.3455 +aedcebc1529b01e8bf77393c81406931,19.067223,726712692.1,123.7859 +aedcebc1529b01e8bf77393c81406931,20.017012,866846362.5,147.5419 +aedcebc1529b01e8bf77393c81406931,23.752301,1571995667.6,188.7804 +aedcebc1529b01e8bf77393c81406931,23.968743,1613172976.7,190.2464 +aedcebc1529b01e8bf77393c81406931,29.209992,3724397513.6,402.8094 +aedcebc1529b01e8bf77393c81406931,29.531372,3909579093.6,576.2075 +aedcebc1529b01e8bf77393c81406931,32.142162,5844163541.8,740.9958 +aedcebc1529b01e8bf77393c81406931,38.596354,11663778991.7,901.6799 +aedcebc1529b01e8bf77393c81406931,46.68122,19457259523.0,963.9591 +aedcebc1529b01e8bf77393c81406931,47.410574,20213212503.7,1036.4692 +aedcebc1529b01e8bf77393c81406931,48.237187,21179338381.7,1168.7765 +aedcebc1529b01e8bf77393c81406931,64.21142,45554235974.5,1525.8884 +b0a9bfcdece7417e88b93d054508e38e,11.416448,0.0, +b0a9bfcdece7417e88b93d054508e38e,14.341544,82936171.5,28.3533 +b0a9bfcdece7417e88b93d054508e38e,15.933997,165511981.9,51.8545 +b0a9bfcdece7417e88b93d054508e38e,16.567504,202474260.3,58.3455 +b0a9bfcdece7417e88b93d054508e38e,18.741029,375750942.6,79.7215 +b0a9bfcdece7417e88b93d054508e38e,20.185446,500541898.6,86.3954 +b0a9bfcdece7417e88b93d054508e38e,20.694337,571073443.2,138.5985 +b0a9bfcdece7417e88b93d054508e38e,21.89205,882826644.2,260.2904 +b0a9bfcdece7417e88b93d054508e38e,22.722667,1129247170.4,296.6717 +b0a9bfcdece7417e88b93d054508e38e,32.329757,5442539637.9,448.9697 +b0a9bfcdece7417e88b93d054508e38e,34.909611,6781359252.3,518.9517 +b0a9bfcdece7417e88b93d054508e38e,35.23999,7008447633.3,687.3572 +b0a9bfcdece7417e88b93d054508e38e,36.851781,8314395761.7,810.2466 +b0a9bfcdece7417e88b93d054508e38e,44.621457,14967412915.3,856.2799 +b0a9bfcdece7417e88b93d054508e38e,47.410449,17470422124.2,897.4602 +b0a9bfcdece7417e88b93d054508e38e,68.894768,37906198180.5,951.195 +b0a9bfcdece7417e88b93d054508e38e,80.972787,51557036288.1,1130.2216 +b0a9bfcdece7417e88b93d054508e38e,81.777587,53404529591.5,2295.5931 +b0a9bfcdece7417e88b93d054508e38e,81.802859,53480648723.4,3011.9948 +b355cb4ba1b964c33e6ff093d6501ed2,12.192547,0.0, +b355cb4ba1b964c33e6ff093d6501ed2,13.99082,29381160.9,16.3385 +b355cb4ba1b964c33e6ff093d6501ed2,15.135778,86073545.2,49.5148 +b355cb4ba1b964c33e6ff093d6501ed2,18.567332,562047833.6,138.7052 +b355cb4ba1b964c33e6ff093d6501ed2,19.895304,882318621.4,241.1728 +b355cb4ba1b964c33e6ff093d6501ed2,23.109143,2014689182.5,352.342 +b355cb4ba1b964c33e6ff093d6501ed2,25.075082,2842398771.0,421.0251 +b355cb4ba1b964c33e6ff093d6501ed2,27.510227,4213223897.3,562.9337 +b355cb4ba1b964c33e6ff093d6501ed2,28.560343,4970428168.8,721.0673 +b355cb4ba1b964c33e6ff093d6501ed2,29.944979,6342638942.8,991.0264 +b355cb4ba1b964c33e6ff093d6501ed2,31.228529,7926756102.9,1234.1686 +b355cb4ba1b964c33e6ff093d6501ed2,32.945246,10585882425.8,1548.9602 +b355cb4ba1b964c33e6ff093d6501ed2,32.969974,10639361587.3,2162.6966 +b355cb4ba1b964c33e6ff093d6501ed2,32.989341,10684963737.2,2354.6316 +b355cb4ba1b964c33e6ff093d6501ed2,34.753155,15672997380.8,2827.9817 +b355cb4ba1b964c33e6ff093d6501ed2,34.775762,15892484984.2,9708.8337 +b5be3a471b0c9c04dc99b1becf49e3dc,6.063592,1678712963.5, +b5be3a471b0c9c04dc99b1becf49e3dc,9.043735,0.0,-563.2995 +b5be3a471b0c9c04dc99b1becf49e3dc,9.67632,32749535.7,51.771 +b5be3a471b0c9c04dc99b1becf49e3dc,11.522679,199610764.3,90.3731 +b5be3a471b0c9c04dc99b1becf49e3dc,12.481605,407349245.0,216.6366 +b5be3a471b0c9c04dc99b1becf49e3dc,12.647002,612648807.6,1241.2532 +b5be3a471b0c9c04dc99b1becf49e3dc,13.132339,1273903511.1,1362.4651 +b5be3a471b0c9c04dc99b1becf49e3dc,13.204653,1382981095.4,1508.3882 +b5be3a471b0c9c04dc99b1becf49e3dc,13.551426,1997615600.6,1772.4405 +b5be3a471b0c9c04dc99b1becf49e3dc,13.957305,4466888021.5,6083.7649 +b5be3a471b0c9c04dc99b1becf49e3dc,13.988505,4754367177.6,9214.0755 +b5be3a471b0c9c04dc99b1becf49e3dc,14.356447,8231177686.7,9449.3439 +b5be3a471b0c9c04dc99b1becf49e3dc,14.35865,8279336796.6,21860.6945 +b5be3a471b0c9c04dc99b1becf49e3dc,14.358683,8838795588.0,16953296.7092 +b7687c633dd4a085a428626479838633,18.060226,0.0, +b7687c633dd4a085a428626479838633,22.973573,62899320.5,12.8017 +b7687c633dd4a085a428626479838633,25.780336,178232860.2,41.0913 +b7687c633dd4a085a428626479838633,27.15403,322324712.2,104.8937 +b7687c633dd4a085a428626479838633,30.0663,1004104604.5,234.106 +b7687c633dd4a085a428626479838633,86.316468,36873931490.1,637.6839 +b7687c633dd4a085a428626479838633,106.227354,49861889547.5,652.3044 +b7687c633dd4a085a428626479838633,189.314407,105774018738.8,672.9343 +b7687c633dd4a085a428626479838633,262.475167,155551445394.4,680.3842 +b7687c633dd4a085a428626479838633,278.205791,166565806215.8,700.1859 +b7687c633dd4a085a428626479838633,280.149395,168069925647.5,773.8816 +b7687c633dd4a085a428626479838633,481.740184,325529542550.3,781.0854 +b7687c633dd4a085a428626479838633,481.991443,326857526947.3,5285.3207 +bce66f1b478885743e24754e2296e7ad,9.019571,0.0, +bce66f1b478885743e24754e2296e7ad,10.485223,94115159.5,64.2139 +bce66f1b478885743e24754e2296e7ad,11.560736,171325540.5,71.7894 +bce66f1b478885743e24754e2296e7ad,12.77728,278304869.6,87.9371 +bce66f1b478885743e24754e2296e7ad,16.145153,768698605.4,145.6093 +bce66f1b478885743e24754e2296e7ad,17.746372,1181155136.2,257.5891 +bce66f1b478885743e24754e2296e7ad,17.982874,1246352761.9,275.6747 +bce66f1b478885743e24754e2296e7ad,19.600512,1897094212.3,402.2788 +bce66f1b478885743e24754e2296e7ad,20.083706,2198468122.3,623.712 +bce66f1b478885743e24754e2296e7ad,20.278647,2333642198.6,693.4102 +bce66f1b478885743e24754e2296e7ad,22.563041,4168205028.6,803.0851 +bce66f1b478885743e24754e2296e7ad,26.736327,7685142101.6,842.7261 +bce66f1b478885743e24754e2296e7ad,29.216626,10045289049.6,951.5574 +bce66f1b478885743e24754e2296e7ad,35.446309,18306900328.7,1326.1688 +bce66f1b478885743e24754e2296e7ad,35.765405,19194129792.1,2780.4468 +bce66f1b478885743e24754e2296e7ad,35.769104,19231788834.6,10180.8712 +c46de094adb6809e259eeb712bab99ab,13.169469,0.0, +c46de094adb6809e259eeb712bab99ab,13.777081,35667731.5,58.7015 +c46de094adb6809e259eeb712bab99ab,17.428013,272441739.9,64.853 +c46de094adb6809e259eeb712bab99ab,18.785106,440033787.2,123.4934 +c46de094adb6809e259eeb712bab99ab,20.810562,904492811.5,229.3108 +c46de094adb6809e259eeb712bab99ab,21.226915,1022957586.9,284.5297 +c46de094adb6809e259eeb712bab99ab,21.52664,1172166089.0,497.818 +c46de094adb6809e259eeb712bab99ab,21.591757,1208869477.3,563.6529 +c46de094adb6809e259eeb712bab99ab,21.743059,1305839477.1,640.9036 +c46de094adb6809e259eeb712bab99ab,22.561489,1979798504.0,823.4779 +c46de094adb6809e259eeb712bab99ab,23.769003,3066204522.7,899.7047 +c46de094adb6809e259eeb712bab99ab,25.684008,5062572521.8,1042.4871 +c46de094adb6809e259eeb712bab99ab,27.558934,7401480941.6,1247.4671 +c46de094adb6809e259eeb712bab99ab,30.493745,12806392293.0,1841.6557 +c46de094adb6809e259eeb712bab99ab,31.620623,15447257636.7,2343.5237 +c4bac66feffe913fc075a4fd7d7b9749,2.902138,0.0, +c4bac66feffe913fc075a4fd7d7b9749,3.75833,134861021.2,157.5126 +c4bac66feffe913fc075a4fd7d7b9749,4.241073,648041548.9,1063.0512 +c4bac66feffe913fc075a4fd7d7b9749,52.136107,68964453180.2,1426.3778 +c4bac66feffe913fc075a4fd7d7b9749,52.43508,70104095889.2,3811.8583 +c6df310b558954a2b696cddebacb33b4,13.925518,65306670.7, +c6df310b558954a2b696cddebacb33b4,18.513228,0.0,-14.2351 +c6df310b558954a2b696cddebacb33b4,19.562382,39154378.4,37.32 +c6df310b558954a2b696cddebacb33b4,25.675322,749629696.5,116.2248 +c6df310b558954a2b696cddebacb33b4,27.166122,950209727.3,134.5452 +c6df310b558954a2b696cddebacb33b4,27.284559,973906386.4,200.0782 +c6df310b558954a2b696cddebacb33b4,29.115755,2241691400.6,692.3262 +c6df310b558954a2b696cddebacb33b4,41.164529,10705255389.2,702.4419 +c6df310b558954a2b696cddebacb33b4,59.392021,25806092310.7,828.4649 +c6df310b558954a2b696cddebacb33b4,65.25711,30966123012.3,879.7873 +c6df310b558954a2b696cddebacb33b4,153.76565,123866151143.3,1049.6165 +c6df310b558954a2b696cddebacb33b4,158.063046,128757293852.0,1138.1643 +c6df310b558954a2b696cddebacb33b4,171.963152,148380425270.7,1411.7253 +c6df310b558954a2b696cddebacb33b4,171.977997,148572937519.1,12968.1541 +cbecf7f8ad2b6aed586ae7818efa528d,1.673502,0.0, +cbecf7f8ad2b6aed586ae7818efa528d,2.479364,356622242.6,442.5351 +cbecf7f8ad2b6aed586ae7818efa528d,4.265753,1834240005.6,827.1534 +cbecf7f8ad2b6aed586ae7818efa528d,4.809856,2296011386.3,848.6838 +cbecf7f8ad2b6aed586ae7818efa528d,16.985291,19216624291.4,1389.7337 +cbecf7f8ad2b6aed586ae7818efa528d,59.696603,79858024283.2,1419.7972 +cbecf7f8ad2b6aed586ae7818efa528d,81.663634,111162996654.2,1425.0889 +cd68f69f916d3a21378ed4f2c353a5f2,24.974807,0.0, +cd68f69f916d3a21378ed4f2c353a5f2,31.142448,282976774.5,45.8809 +cd68f69f916d3a21378ed4f2c353a5f2,33.548992,432105411.5,61.968 +cd68f69f916d3a21378ed4f2c353a5f2,40.382238,1462047762.6,150.7252 +cd68f69f916d3a21378ed4f2c353a5f2,43.676494,2090025313.0,190.628 +cd68f69f916d3a21378ed4f2c353a5f2,52.722166,4286547841.6,242.8258 +cd68f69f916d3a21378ed4f2c353a5f2,57.450276,5798884149.2,319.8606 +cd68f69f916d3a21378ed4f2c353a5f2,61.33855,7318430767.4,390.8024 +cd68f69f916d3a21378ed4f2c353a5f2,61.534863,7429686882.7,566.7282 +cd68f69f916d3a21378ed4f2c353a5f2,62.549256,8065547158.6,626.8382 +cd68f69f916d3a21378ed4f2c353a5f2,69.269681,12463472045.4,654.4117 +cd68f69f916d3a21378ed4f2c353a5f2,69.56637,12703312897.2,808.3915 +cd68f69f916d3a21378ed4f2c353a5f2,69.979786,13072250920.4,892.4135 +cd68f69f916d3a21378ed4f2c353a5f2,79.983527,23884088599.4,1080.7794 +cd68f69f916d3a21378ed4f2c353a5f2,96.824537,43799240751.0,1182.5391 +cd68f69f916d3a21378ed4f2c353a5f2,101.169838,49835640694.0,1389.1788 +cd68f69f916d3a21378ed4f2c353a5f2,102.948396,52442874578.1,1465.9257 +cd68f69f916d3a21378ed4f2c353a5f2,104.633133,55331661822.8,1714.6814 +cd68f69f916d3a21378ed4f2c353a5f2,104.878733,56090328842.0,3089.0351 +cd68f69f916d3a21378ed4f2c353a5f2,105.29513,57511516631.7,3413.0596 +d357ed0a280ef2316fad80a87b83bbb9,19.896484,0.0, +d357ed0a280ef2316fad80a87b83bbb9,21.966883,36712146.2,17.7319 +d357ed0a280ef2316fad80a87b83bbb9,23.05152,79970750.4,39.883 +d357ed0a280ef2316fad80a87b83bbb9,24.53232,236007025.0,105.373 +d357ed0a280ef2316fad80a87b83bbb9,25.223364,314187101.0,113.1333 +d357ed0a280ef2316fad80a87b83bbb9,26.448646,582480825.9,218.9649 +d357ed0a280ef2316fad80a87b83bbb9,26.780928,684680415.8,307.5688 +d357ed0a280ef2316fad80a87b83bbb9,31.217117,2485473725.0,405.9325 +d357ed0a280ef2316fad80a87b83bbb9,35.896425,5037975173.5,545.4869 +d357ed0a280ef2316fad80a87b83bbb9,37.074683,5982880729.1,801.9513 +d357ed0a280ef2316fad80a87b83bbb9,37.143172,6052837385.3,1021.4291 +d357ed0a280ef2316fad80a87b83bbb9,37.673318,6671601560.6,1167.1581 +d357ed0a280ef2316fad80a87b83bbb9,54.622984,27090002328.9,1204.6492 +d6f0e955341feea93248e49ec223acb4,3.99548,0.0, +d6f0e955341feea93248e49ec223acb4,4.732393,115740672.2,157.0615 +d6f0e955341feea93248e49ec223acb4,4.941851,158418355.9,203.7529 +d6f0e955341feea93248e49ec223acb4,5.228006,220197122.2,215.8927 +d6f0e955341feea93248e49ec223acb4,5.498996,330955009.6,408.7158 +d6f0e955341feea93248e49ec223acb4,5.681271,436407649.7,578.5359 +d6f0e955341feea93248e49ec223acb4,6.33862,852881091.0,633.5652 +d6f0e955341feea93248e49ec223acb4,8.351441,3932144883.4,1529.825 +d6f0e955341feea93248e49ec223acb4,11.525402,9236012480.1,1671.0563 +d6f0e955341feea93248e49ec223acb4,11.727351,9972824409.4,3648.505 +d6f0e955341feea93248e49ec223acb4,12.483143,13048621767.0,4069.6347 +dcb08f45f5327ad0a33a15d5c66f4111,3.983397,0.0, +dcb08f45f5327ad0a33a15d5c66f4111,7.989526,147305889.1,36.7701 +dcb08f45f5327ad0a33a15d5c66f4111,8.664506,180150720.7,48.6605 +dcb08f45f5327ad0a33a15d5c66f4111,11.140383,624123116.3,179.3192 +dcb08f45f5327ad0a33a15d5c66f4111,13.7618,1831785764.0,460.6908 +dcb08f45f5327ad0a33a15d5c66f4111,13.877006,2097617525.1,2307.4472 +dcb08f45f5327ad0a33a15d5c66f4111,14.793123,4767532579.0,2914.3822 +dcb08f45f5327ad0a33a15d5c66f4111,15.02903,5499097270.9,3101.0724 +dcb08f45f5327ad0a33a15d5c66f4111,15.061426,6472528891.5,30047.8954 +dcb08f45f5327ad0a33a15d5c66f4111,15.06185,6506957857.8,81200.3923 +dcb08f45f5327ad0a33a15d5c66f4111,15.062551,6671782347.4,235127.6599 +dcb08f45f5327ad0a33a15d5c66f4111,15.062786,6815352232.2,610935.6802 +de729e10d1f453d612fae15df776bdc8,0.429884,0.0, +de729e10d1f453d612fae15df776bdc8,56.17694,61426230601.7,1101.874 +de729e10d1f453d612fae15df776bdc8,56.228943,61567983908.9,2725.8679 +de73b430b6b6c4ff2c828349fcc586bd,8.45363,0.0, +de73b430b6b6c4ff2c828349fcc586bd,11.829868,114602842.5,33.9439 +de73b430b6b6c4ff2c828349fcc586bd,22.575726,2526488454.6,224.4479 +de73b430b6b6c4ff2c828349fcc586bd,26.182836,3645740994.4,310.2907 +de73b430b6b6c4ff2c828349fcc586bd,31.707743,5385830930.0,314.9537 +de73b430b6b6c4ff2c828349fcc586bd,32.625742,5837723098.4,492.2578 +de73b430b6b6c4ff2c828349fcc586bd,37.749827,8679083154.7,554.5107 +de73b430b6b6c4ff2c828349fcc586bd,43.509745,12704039505.3,698.7871 +de73b430b6b6c4ff2c828349fcc586bd,46.655963,14913570177.9,702.2815 +de73b430b6b6c4ff2c828349fcc586bd,55.494328,22044364064.7,806.8001 +de73b430b6b6c4ff2c828349fcc586bd,62.853887,28200006057.2,836.4145 +de73b430b6b6c4ff2c828349fcc586bd,66.482995,31713399863.9,968.115 +de73b430b6b6c4ff2c828349fcc586bd,72.919881,38019486585.6,979.6797 +de73b430b6b6c4ff2c828349fcc586bd,76.440506,42349412495.6,1229.8742 +de73b430b6b6c4ff2c828349fcc586bd,76.721195,42722641467.6,1329.6886 +df7ade404997eb2b3facb82d5524a172,3.858083,0.0, +df7ade404997eb2b3facb82d5524a172,5.25994,289360864.4,206.4125 +df7ade404997eb2b3facb82d5524a172,5.965224,473390632.8,260.93 +df7ade404997eb2b3facb82d5524a172,6.316444,588711550.4,328.3438 +df7ade404997eb2b3facb82d5524a172,7.744355,1142287712.8,387.6825 +df7ade404997eb2b3facb82d5524a172,10.019693,2132784777.5,435.3186 +df7ade404997eb2b3facb82d5524a172,22.15832,8001274592.8,483.4558 +df7ade404997eb2b3facb82d5524a172,22.610064,8457926976.8,1010.8654 +df7ade404997eb2b3facb82d5524a172,25.986669,12367823319.1,1157.9371 +df7ade404997eb2b3facb82d5524a172,56.40158,51859532045.3,1298.4325 +df7ade404997eb2b3facb82d5524a172,74.128407,76006425178.9,1362.1667 +df7ade404997eb2b3facb82d5524a172,77.177646,80446446367.4,1456.108 +df7ade404997eb2b3facb82d5524a172,95.68256,107689544517.9,1472.2088 +df7ade404997eb2b3facb82d5524a172,236.837331,324930836627.5,1539.029 +df7ade404997eb2b3facb82d5524a172,237.145284,326331951167.9,4549.7675 +df7ade404997eb2b3facb82d5524a172,237.436872,328678765881.7,8048.3926 +dfbe1abb61c4d077c4ffc926ea0d91c8,16.909935,0.0, +dfbe1abb61c4d077c4ffc926ea0d91c8,19.029058,95717539.8,45.1685 +dfbe1abb61c4d077c4ffc926ea0d91c8,19.636693,164170496.7,112.6547 +dfbe1abb61c4d077c4ffc926ea0d91c8,20.079488,246507015.4,185.9473 +dfbe1abb61c4d077c4ffc926ea0d91c8,21.01451,504590938.0,276.0191 +dfbe1abb61c4d077c4ffc926ea0d91c8,21.346115,840760660.8,1013.7655 +dfbe1abb61c4d077c4ffc926ea0d91c8,21.697902,1203261090.2,1030.4543 +dfbe1abb61c4d077c4ffc926ea0d91c8,24.096127,3757824739.3,1065.1893 +dfbe1abb61c4d077c4ffc926ea0d91c8,26.032095,6073369799.6,1196.0658 +dfbe1abb61c4d077c4ffc926ea0d91c8,26.458184,6689467167.7,1445.9359 +dfbe1abb61c4d077c4ffc926ea0d91c8,28.569347,10078106704.2,1605.1056 +dfbe1abb61c4d077c4ffc926ea0d91c8,46.717431,52933516258.4,2361.4289 +dfbe1abb61c4d077c4ffc926ea0d91c8,46.945119,54670151066.8,7627.2566 +e00b22b1c6734a2507a16cc866201315,2.563068,0.0, +e00b22b1c6734a2507a16cc866201315,4.153029,123189721.5,77.4797 +e00b22b1c6734a2507a16cc866201315,5.011177,336112022.9,248.1184 +e00b22b1c6734a2507a16cc866201315,6.511621,895415299.3,372.7585 +e00b22b1c6734a2507a16cc866201315,6.897212,1192475670.9,770.4028 +e00b22b1c6734a2507a16cc866201315,15.780048,8286564791.2,798.6289 +e00b22b1c6734a2507a16cc866201315,108.53726,87280782850.5,851.6235 +e00b22b1c6734a2507a16cc866201315,117.016592,94797069645.2,886.4244 +e00b22b1c6734a2507a16cc866201315,119.526816,97425543366.6,1047.1072 +e00b22b1c6734a2507a16cc866201315,120.606604,99763597996.8,2165.2904 +e00b22b1c6734a2507a16cc866201315,121.480577,101721369958.1,2240.0829 +e00b22b1c6734a2507a16cc866201315,121.878865,104339741822.0,6574.0667 +e17242ccdeab827e9f7075d809a18758,1.8416,0.0, +e17242ccdeab827e9f7075d809a18758,1.959559,27756797.1,235.3089 +e17242ccdeab827e9f7075d809a18758,2.074242,57685807.8,260.9716 +e17242ccdeab827e9f7075d809a18758,2.167733,89620353.8,341.5788 +e17242ccdeab827e9f7075d809a18758,2.258311,124872031.0,389.1859 +e17242ccdeab827e9f7075d809a18758,3.375574,1389217048.1,1131.6449 +e17242ccdeab827e9f7075d809a18758,3.566175,1656571835.5,1402.6935 +e17242ccdeab827e9f7075d809a18758,5.131727,3890111544.8,1426.6787 +e17242ccdeab827e9f7075d809a18758,7.525833,8107639631.7,1761.6296 +e17242ccdeab827e9f7075d809a18758,7.978063,9125020799.9,2249.6985 +e29b0ce7815148548561f1e505388a87,3.040217,0.0, +e29b0ce7815148548561f1e505388a87,3.883415,70786496.2,83.95 +e29b0ce7815148548561f1e505388a87,4.057517,91878428.0,121.147 +e29b0ce7815148548561f1e505388a87,4.540062,179178349.6,180.9156 +e29b0ce7815148548561f1e505388a87,4.731306,226472377.8,247.2968 +e29b0ce7815148548561f1e505388a87,5.245101,446477763.1,428.1968 +e29b0ce7815148548561f1e505388a87,6.817737,4745760580.3,2733.8067 +e29b0ce7815148548561f1e505388a87,7.082848,6324344977.8,5954.4281 +e29b0ce7815148548561f1e505388a87,7.085493,6460509273.4,51479.8849 +e29b0ce7815148548561f1e505388a87,7.086144,6596449727.7,208817.9021 +e29b0ce7815148548561f1e505388a87,7.087253,6977883517.0,343943.9038 +e29b0ce7815148548561f1e505388a87,7.087393,7133461158.1,1111268.8648 +e29b0ce7815148548561f1e505388a87,7.087417,7189707463.3,2343596.0488 +e29b0ce7815148548561f1e505388a87,7.087518,8280007860.9,10795053.4415 +e42599847f5cfd6fbca39160b796d928,16.601053,0.0, +e42599847f5cfd6fbca39160b796d928,21.090457,74522523.0,16.5996 +e42599847f5cfd6fbca39160b796d928,21.640014,116640745.6,76.6403 +e42599847f5cfd6fbca39160b796d928,21.952471,148526689.4,102.0491 +e42599847f5cfd6fbca39160b796d928,23.078686,347186382.1,176.3959 +e42599847f5cfd6fbca39160b796d928,23.196818,398142286.4,431.3472 +e42599847f5cfd6fbca39160b796d928,24.100852,836389692.5,484.7687 +e42599847f5cfd6fbca39160b796d928,24.731464,1337666349.6,794.905 +e42599847f5cfd6fbca39160b796d928,25.346042,3100641590.5,2868.5948 +e42599847f5cfd6fbca39160b796d928,25.390052,3245419842.9,3289.6672 +e42599847f5cfd6fbca39160b796d928,26.539519,7311210921.4,3537.1099 +e42599847f5cfd6fbca39160b796d928,26.625534,7624986021.4,3647.9114 +e42599847f5cfd6fbca39160b796d928,27.837138,12802874560.0,4273.5816 +e42599847f5cfd6fbca39160b796d928,28.558438,16555110980.3,5202.0469 +e42599847f5cfd6fbca39160b796d928,28.564317,16880823134.2,55402.6457 +e48598cd7a048a01fb0d19563bc12db8,15.469484,0.0, +e48598cd7a048a01fb0d19563bc12db8,22.590772,331151565.2,46.5016 +e48598cd7a048a01fb0d19563bc12db8,23.159367,401001617.0,122.8468 +e48598cd7a048a01fb0d19563bc12db8,29.822973,1461330778.0,159.1224 +e48598cd7a048a01fb0d19563bc12db8,33.671434,2164023106.7,182.5905 +e48598cd7a048a01fb0d19563bc12db8,33.851102,2199943989.6,199.9292 +e48598cd7a048a01fb0d19563bc12db8,36.705384,3162482885.2,337.2263 +e48598cd7a048a01fb0d19563bc12db8,41.969974,5514363811.0,446.7358 +e48598cd7a048a01fb0d19563bc12db8,50.132182,9513084416.9,489.9067 +e48598cd7a048a01fb0d19563bc12db8,52.968912,11411370545.5,669.1811 +e48598cd7a048a01fb0d19563bc12db8,53.810589,12088398502.9,804.3798 +e48598cd7a048a01fb0d19563bc12db8,54.452103,12730282697.9,1000.5771 +e48598cd7a048a01fb0d19563bc12db8,58.988811,17726271769.7,1101.2366 +e48598cd7a048a01fb0d19563bc12db8,61.016125,21084931520.8,1656.7043 +e48598cd7a048a01fb0d19563bc12db8,61.018669,21151860773.7,26308.6686 +e48598cd7a048a01fb0d19563bc12db8,61.019522,21185950122.3,39964.0664 +e9fd61aae466af5c81165444b0ec1149,3.866507,35363740.1, +e9fd61aae466af5c81165444b0ec1149,4.050378,0.0,-192.3291 +e9fd61aae466af5c81165444b0ec1149,4.734766,202313584.6,295.6124 +e9fd61aae466af5c81165444b0ec1149,5.177408,366588353.8,371.1233 +e9fd61aae466af5c81165444b0ec1149,5.358432,453053622.4,477.6453 +e9fd61aae466af5c81165444b0ec1149,5.630266,585508552.0,487.264 +e9fd61aae466af5c81165444b0ec1149,6.554224,1497465913.2,987.0117 +e9fd61aae466af5c81165444b0ec1149,61.472456,63163842115.9,1122.8762 +e9fd61aae466af5c81165444b0ec1149,86.873254,94455661636.4,1231.9227 +e9fd61aae466af5c81165444b0ec1149,87.751407,97597355969.4,3577.6161 +e9fd61aae466af5c81165444b0ec1149,87.979535,103891644656.6,27591.0396 +eafd9787fd06a55378a25ed10da9586c,21.890539,0.0, +eafd9787fd06a55378a25ed10da9586c,23.461633,65316492.6,41.5739 +eafd9787fd06a55378a25ed10da9586c,24.104527,99323936.6,52.8974 +eafd9787fd06a55378a25ed10da9586c,24.634685,182846340.9,157.5425 +eafd9787fd06a55378a25ed10da9586c,25.673015,401341021.9,210.4289 +eafd9787fd06a55378a25ed10da9586c,27.701215,909546292.9,250.5696 +eafd9787fd06a55378a25ed10da9586c,30.255854,1734963137.9,323.1051 +eafd9787fd06a55378a25ed10da9586c,30.824669,1921103137.5,327.2417 +eafd9787fd06a55378a25ed10da9586c,157.137429,52167818191.6,397.796 +eafd9787fd06a55378a25ed10da9586c,166.67736,56031413869.7,404.992 +f4736d2045b334cc746fa0838f667558,2.677749,0.0, +f4736d2045b334cc746fa0838f667558,2.946176,263047304.1,979.9584 +f4736d2045b334cc746fa0838f667558,3.335196,753458951.7,1260.6335 +f4736d2045b334cc746fa0838f667558,52.08186,80362122746.2,1633.11 +f4736d2045b334cc746fa0838f667558,52.245376,80886251157.8,3205.3647 +f4736d2045b334cc746fa0838f667558,52.365943,81320071431.5,3598.1676 +f53cd63c69a4fa922ba401ec01cbd256,16.558225,0.0, +f53cd63c69a4fa922ba401ec01cbd256,18.962456,59029709.0,24.5524 +f53cd63c69a4fa922ba401ec01cbd256,20.117094,153499058.4,81.8173 +f53cd63c69a4fa922ba401ec01cbd256,23.831029,473573235.9,86.182 +f53cd63c69a4fa922ba401ec01cbd256,27.703484,1098708765.6,161.4313 +f53cd63c69a4fa922ba401ec01cbd256,29.971676,1680906269.9,256.6791 +f53cd63c69a4fa922ba401ec01cbd256,32.995381,2590911932.0,300.9572 +f53cd63c69a4fa922ba401ec01cbd256,35.819966,3918456179.8,469.9962 +f53cd63c69a4fa922ba401ec01cbd256,46.191184,10529761033.6,637.4666 +f53cd63c69a4fa922ba401ec01cbd256,49.360155,12627667801.0,662.0151 +f53cd63c69a4fa922ba401ec01cbd256,100.858893,47889813952.4,684.7186 +f53cd63c69a4fa922ba401ec01cbd256,101.402963,48271314588.3,701.1977 +f53cd63c69a4fa922ba401ec01cbd256,102.738633,49546651458.1,954.8293 +f53cd63c69a4fa922ba401ec01cbd256,102.884527,50024965849.4,3278.5063 +f5c501e8c6a26a4244643ebdfa78a18d,6.911926,134252195.8, +f5c501e8c6a26a4244643ebdfa78a18d,11.600671,0.0,-28.6329 +f5c501e8c6a26a4244643ebdfa78a18d,13.018903,66223293.0,46.6943 +f5c501e8c6a26a4244643ebdfa78a18d,14.841009,199902349.2,73.3651 +f5c501e8c6a26a4244643ebdfa78a18d,16.628612,376645461.6,98.8716 +f5c501e8c6a26a4244643ebdfa78a18d,18.900141,908829685.3,234.2846 +f5c501e8c6a26a4244643ebdfa78a18d,22.365238,2240527251.0,384.3175 +f5c501e8c6a26a4244643ebdfa78a18d,97.66421,38226906986.2,477.9133 +f5c501e8c6a26a4244643ebdfa78a18d,100.294683,40613950428.3,907.4579 +f8644441280e76e07363ed18c744f98e,14.791827,86847143.7, +f8644441280e76e07363ed18c744f98e,18.641134,0.0,-22.5618 +f8644441280e76e07363ed18c744f98e,19.383247,21770435.5,29.3357 +f8644441280e76e07363ed18c744f98e,20.143812,50035286.7,37.163 +f8644441280e76e07363ed18c744f98e,22.348195,184690736.5,61.0853 +f8644441280e76e07363ed18c744f98e,24.957368,442547976.6,98.8272 +f8644441280e76e07363ed18c744f98e,26.918195,701003153.5,131.8093 +f8644441280e76e07363ed18c744f98e,28.577074,970215061.5,162.2854 +f8644441280e76e07363ed18c744f98e,36.840778,2927292935.9,236.8282 +f8644441280e76e07363ed18c744f98e,42.311276,4664051482.8,317.4772 +f8644441280e76e07363ed18c744f98e,44.08567,5739041608.3,605.8351 +f8644441280e76e07363ed18c744f98e,44.975846,6561764282.4,924.2247 +f8644441280e76e07363ed18c744f98e,46.303648,7854177919.9,973.3482 +f8644441280e76e07363ed18c744f98e,47.669585,9358351737.1,1101.2029 +f8644441280e76e07363ed18c744f98e,47.889719,9716049818.7,1624.9107 +f8644441280e76e07363ed18c744f98e,49.203591,11853691778.5,1626.9789 +f8644441280e76e07363ed18c744f98e,55.33687,29591468887.5,2892.0545 +f8644441280e76e07363ed18c744f98e,55.416303,29933353931.5,4304.0681 +fa341f156b16caed442301bf68792a80,2.884667,45263494.0, +fa341f156b16caed442301bf68792a80,3.014726,0.0,-348.0228 +fa341f156b16caed442301bf68792a80,4.121429,116991082.0,105.7114 +fa341f156b16caed442301bf68792a80,4.619155,219213784.2,205.3795 +fa341f156b16caed442301bf68792a80,4.985268,393218574.3,475.2762 +fa341f156b16caed442301bf68792a80,5.632804,740406398.6,536.1676 +fa341f156b16caed442301bf68792a80,5.909187,930914989.3,689.292 +fa341f156b16caed442301bf68792a80,8.287306,5669343358.0,1992.511 +fa341f156b16caed442301bf68792a80,8.582144,6460897630.1,2684.7091 +fa341f156b16caed442301bf68792a80,8.605829,7278770580.3,34531.2624 +fbdd35cdc8de9b2f34a18643c2014ab5,11.419663,0.0, +fbdd35cdc8de9b2f34a18643c2014ab5,11.955548,15791923.0,29.4689 +fbdd35cdc8de9b2f34a18643c2014ab5,14.361267,228642739.3,88.477 +fbdd35cdc8de9b2f34a18643c2014ab5,14.744375,267329593.5,100.9816 +fbdd35cdc8de9b2f34a18643c2014ab5,17.668696,645438985.6,129.2982 +fbdd35cdc8de9b2f34a18643c2014ab5,18.286002,745138092.5,161.5068 +fbdd35cdc8de9b2f34a18643c2014ab5,28.185032,2851106328.1,212.7449 +fbdd35cdc8de9b2f34a18643c2014ab5,31.814274,4061187515.7,333.4253 +fbdd35cdc8de9b2f34a18643c2014ab5,32.252113,4213392294.2,347.6273 +fbdd35cdc8de9b2f34a18643c2014ab5,32.644721,4446192161.0,592.9575 +fbdd35cdc8de9b2f34a18643c2014ab5,36.029124,7046360035.9,768.2796 +fbdd35cdc8de9b2f34a18643c2014ab5,39.399319,10177039925.3,928.9314 +fbdd35cdc8de9b2f34a18643c2014ab5,43.401769,14675511764.4,1123.9296 +fbdd35cdc8de9b2f34a18643c2014ab5,75.262701,57692029925.7,1350.1337 +fd832c2d91d094ad54b0e136d1568df0,2.771656,0.0, +fd832c2d91d094ad54b0e136d1568df0,3.301656,62608485.7,118.1292 +fd832c2d91d094ad54b0e136d1568df0,3.551212,94273612.1,126.8859 +fd832c2d91d094ad54b0e136d1568df0,3.878079,146176706.3,158.7896 +fd832c2d91d094ad54b0e136d1568df0,4.167788,194639877.9,167.2822 +fd832c2d91d094ad54b0e136d1568df0,4.755155,334803178.5,238.6299 +fd832c2d91d094ad54b0e136d1568df0,5.161289,555854280.9,544.2812 +fd832c2d91d094ad54b0e136d1568df0,5.868693,1134277740.5,817.6706 +fd832c2d91d094ad54b0e136d1568df0,6.075014,1309761772.3,850.5389 +fd832c2d91d094ad54b0e136d1568df0,6.838744,2089548570.1,1021.0242 +fd832c2d91d094ad54b0e136d1568df0,7.266662,2600288785.3,1193.5469 +fd832c2d91d094ad54b0e136d1568df0,8.310459,4593319451.1,1909.4045 +fd832c2d91d094ad54b0e136d1568df0,15.845742,20195315577.6,2070.5256 +fd832c2d91d094ad54b0e136d1568df0,15.971114,20565631431.2,2953.7365 +fd832c2d91d094ad54b0e136d1568df0,16.158449,21688086786.8,5991.7013 +fd832c2d91d094ad54b0e136d1568df0,16.626126,24514129464.4,6042.7232 +fd832c2d91d094ad54b0e136d1568df0,19.126288,40626801176.0,6444.6511 +fd832c2d91d094ad54b0e136d1568df0,20.652688,56378979375.0,10319.8232 +fd832c2d91d094ad54b0e136d1568df0,20.652689,56383430428.2,4451053.2454 diff --git a/poi_anchor_interpretations.png b/poi_anchor_interpretations.png new file mode 100644 index 000000000..2de34f439 --- /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 63c73ff98..0c4649ba3 100644 --- a/postprocessing/single_case_plots.py +++ b/postprocessing/single_case_plots.py @@ -250,6 +250,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 ca40947c6..8268109a5 100644 --- a/reeds/core/setup/b_inputs.gms +++ b/reeds/core/setup/b_inputs.gms @@ -298,6 +298,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" ; @@ -1098,6 +1101,9 @@ stfeas(st)$[sum{r$r_st(r,st), 1 }] = yes ; * -- existing capacity -- *========================== +* 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 $onempty parameter capnonrsc(i,r) "--MW-- existing (pre startyear) power capacity data for non resource supply curve (RSC) technologies" diff --git a/reeds/core/setup/c_model.gms b/reeds/core/setup/c_model.gms index 15efd6d37..6669d8853 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 only for interfaces (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" @@ -2005,27 +2006,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) } @@ -2033,6 +2035,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 2b32f9821..f876c47fe 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), @@ -203,8 +203,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 780fbd893..07cce33a8 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 32f61aeab..4e93396fe 100644 --- a/reeds/core/terminus/report.gms +++ b/reeds/core/terminus/report.gms @@ -1510,8 +1510,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) = @@ -1527,8 +1528,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) = @@ -1838,9 +1840,20 @@ net_import_ann_stress(r,t) sum{allh$h_stress_t(allh,t), net_import_h_stress(r,allh,t) * hours_t(allh,t) } ; +* 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 e30647243..84424e7d7 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 24e12fd16..2bb6be783 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 @@ -678,6 +679,133 @@ 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 + 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 = reeds.io.read_input(case, 'poi_cap_init').set_index('r')['Value'] + 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/inputs.h5, 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 @@ -751,6 +879,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, @@ -789,18 +921,21 @@ def main(case): 'val_cs': False, 'tscbin': False, } - sets = ['tscbin', 'routes_adjacent', 'r_cs', 'cs'] + sets = ['tscbin', 'icbin', 'routes_adjacent', 'r_cs', 'cs'] ## Write some copies for r2x (would be better to avoid by adding compatibility with inputs.h5) csvs = ['trancap_init_energy'] units_comment = { + 'cap_poi_bin': ('MW', 'incremental capacity width available in each POI bin (no row = unlimited)'), 'co2_injection_limit': ('metric tons/hr', 'co2 site injection rate upper bound'), 'co2_storage_limit': ('metric tons', 'total cumulative storage capacity per carbon storage site'), 'cost_co2_stor_bec': ('$/metric ton', 'breakeven cost for storing carbon - CF determined by GSw_CO2_BEC'), 'cost_hurdle_rate1': ('$/MWh', 'raw data cost for transmission hurdle rate for regiongrp1'), 'cost_hurdle_rate2': ('$/MWh', 'raw data cost for transmission hurdle rate for regiongrp2'), + 'cost_poi_bin': ('$/MW', 'POI / network-reinforcement cost in each bin'), 'cs': ('', 'CO2 storage sites'), 'distance': ('miles', 'distance between BAs by line type'), 'firm_import_limit': ('fraction', 'limit on net firm imports into NERC regions'), + 'icbin': ('', 'POI / network-reinforcement supply curve bins'), 'pipeline_cost_mult': ('fraction', 'cost multiplier for H2 pipelines (will be added to 1)'), 'r_cs_distance': ('miles', 'Euclidean distance between BA transmission endpoints and storage formations'), 'r_cs': ('', 'mapping from BA to carbon storage sites'), diff --git a/reeds/input_processing/writesupplycurves.py b/reeds/input_processing/writesupplycurves.py index f726a6252..8b5101e61 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 e71872a9b..e0942b51f 100644 --- a/reeds/io.py +++ b/reeds/io.py @@ -210,6 +210,21 @@ def get_county_zones( return county_zones +def get_reinforcement_drop_scope( + case: str | Path | None = None, + **kwargs +) -> str: + """Get the scope of regions dropping embedded reinforcement cost: all/single_county/none""" + sw = get_switches(case, **kwargs) + if sw.GSw_ZoneSet in reeds.inputs.get_applicable_zonesets( + 'drop_single_county_reinforcement_cost' + ): + return 'single_county' + if int(sw.GSw_RegIntraCurve) and (float(sw.GSw_TransIntraCost) != 0): + return 'all' + return 'none' + + def get_zone_nodes(case=None, crs='ESRI:102008', **kwargs): """Get the transmission node for each model zone""" sw = get_switches(case, **kwargs) @@ -1580,14 +1595,20 @@ def assemble_supplycurve( else: dfout['ba'] = dfout['region'].copy() - if sw.GSw_ZoneSet in reeds.inputs.get_applicable_zonesets( - 'drop_single_county_reinforcement_cost' - ): - counties = get_county_zones(GSw_ZoneSet=sw.GSw_ZoneSet) + ## Drop embedded reinforcement cost where reinforcement is represented elsewhere + scope = get_reinforcement_drop_scope(case, **kwargs) + if scope == 'all': + drop_reinforcement = pd.Series(True, index=dfout.index) + elif scope == 'single_county': + drop_reinforcement = dfout.region.isin( + get_county_zones(GSw_ZoneSet=sw.GSw_ZoneSet)) + else: + drop_reinforcement = pd.Series(False, index=dfout.index) + 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 c1771be29..beb0a1e40 100644 --- a/reeds/reedsplots.py +++ b/reeds/reedsplots.py @@ -1556,6 +1556,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/reeds/results.py b/reeds/results.py index 22743d651..1b488fd8d 100644 --- a/reeds/results.py +++ b/reeds/results.py @@ -582,18 +582,16 @@ def calc_reinforcement_spur_capacity_miles(case): .sort_values(by=['r', 'trtype', 'year']) ) - sw = reeds.io.get_switches(case) - if sw.GSw_ZoneSet in reeds.inputs.get_applicable_zonesets( - 'drop_single_county_reinforcement_cost' - ): + scope = reeds.io.get_reinforcement_drop_scope(case) + is_reinforcement = tech_trans_out.trtype == 'reinforcement' + if scope == 'all': + tech_trans_out = tech_trans_out.loc[~is_reinforcement] + elif scope == 'single_county': # Set reinforcement distance to zero for county level regions county_regions = reeds.io.get_county_zones(case) - tech_trans_out = tech_trans_out.loc[ - ~( - tech_trans_out.r.isin(county_regions) - & (tech_trans_out.trtype == 'reinforcement') - ) - ] + tech_trans_out = tech_trans_out.loc[ + ~(is_reinforcement & tech_trans_out.r.isin(county_regions)) + ] return tech_trans_out diff --git a/runreeds.py b/runreeds.py index 7e1db8ba8..ffbcc29d1 100644 --- a/runreeds.py +++ b/runreeds.py @@ -292,6 +292,25 @@ 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 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']}" + ) + ### Parsed string switches ## Automatic inputs reeds_path = os.path.dirname(__file__)