diff --git a/docs/glossary.md b/docs/glossary.md index 652a20c0b..1db87a945 100644 --- a/docs/glossary.md +++ b/docs/glossary.md @@ -1,89 +1,213 @@ # Glossary -**Activity:** The flow of input/s or output/s of a *Process* that are limited by its capacity. For -example, a 500MW power station can output 500MWh per hour of electrical power, or a 50MW -electrolyser consumes up to 50MWh per hour of electrical power to produce hydrogen. +**Activity:** The operational quantity describing how much a *Process* is operated. *Activity* is +limited by an *Asset*'s *Capacity* and *Availability*, and is multiplied by the *Process*'s flow +coefficients to determine its input and output flows. For example, a 500MW power station can +output 500MWh per hour of electrical power, or a 50MW electrolyser consumes up to 50MWh per hour +of electrical power to produce hydrogen. **Agent:** A decision-making entity in the system. An *Agent* is responsible for serving a user-specified portion of a *Commodity* demand or *Service Demand*. *Agents* invest in and operate -*Assets* to serve demands and produce commodities. +*Assets* to serve demands and produce *Commodities*. -**Agent Objective/s:** One or more objectives that an *Agent* considers when deciding which -*Process* to invest in. Objectives can be economic, environmental, or others. +**Agent Objective:** One or more objectives that an *Agent* considers when deciding which *Process* +to invest in. Objectives can be economic, environmental, or others. An *Agent* can use multiple +objectives when applying a *Decision Rule*. + +**Agent Share:** The portion of a *Commodity* demand for which an *Agent* is responsible. *Agent* +shares determine how total demand is divided between agents and can also scale investment limits. +For example, if total electricity demand is 100 PJ and an *Agent* has a 25% *Agent Share*, that +*Agent* is responsible for 25 PJ of demand. + +**Annualised Capital Cost:** The annual cost equivalent of an upfront *Capital Cost*, calculated +using the *Capital Recovery Factor* for the relevant *Asset* *Lifetime* and *Discount Rate*. For +example, an *Asset* with a £1 million *Capital Cost*, a 10-year *Lifetime*, and a 5% *Discount Rate* +has an annualised *Capital Cost* of approximately £129,500 per year before any *Fixed Operating Cost* +is added. **Asset:** Once an *Agent* makes an investment, the related capacity of their chosen *Process* becomes an *Asset* that they own and operate. An *Asset* is an instance of a *Process*, it has a -specific capacity, and a decommissioning year. A set of *Assets* must exist in the base year -sufficient to serve base year demands (i.e. a calibrated base year, based on user input data). +specific *Capacity*, and a decommissioning *Year*. A set of *Assets* must exist in the *Base Year* +sufficient to serve *Base Year* demands (i.e. a calibrated *Base Year*, based on user input data). + +**Asset Commissioning:** The point at which an *Asset* becomes active and available for *Dispatch*. +An *Asset* is commissioned according to its commission *Year*, either from user input or following +an investment decision. + +**Asset Decommissioning:** The permanent removal of an *Asset* from the active model. An *Asset* can +be decommissioned when it reaches the end of its allowed *Lifetime* or after remaining mothballed for +the configured period. + +**Asset Mothballing:** The temporary withdrawal of an *Asset* or some of its units from the active +pool when it is not selected for retention. A mothballed *Asset* is not dispatched, but may be +reactivated in a later investment period; it is permanently decommissioned if it remains mothballed +for longer than a configured number of years. **Availability:** The maximum, minimum or fixed percentage of maximum output (or input) that a -*Process* delivers over a period. The time period could be a single time slice, a season, or a year. +*Process* can deliver over a period. *Availability* limits the *Activity* of an *Asset* and can be +specified for a single *Time Slice*, a *Season*, or a *Year*. For example, an *Asset* with 100 MW of +*Capacity* and 50% *Availability* can provide at most 50 MW during the specified period. This is a +limit, not a measure of how much the *Asset* is actually used; that is its *Utilisation*. -**Base Year:** The starting year of a model run. The base year is typically calibrated to known -data, including **Process** stock and commodity consumption/production. +**Base Year:** The starting *Year* of a model run. The *Base Year* is typically calibrated to known +data, including *Process* stock and *Commodity* consumption/production. **Calibration:** The act of ensuring that the model represents the system being modelled in a historical base year. -**Capacity:** The maximum output (or input) of an *Asset*. +**Candidate Asset:** A hypothetical *Asset* representing a *Process* that is available for an +*Agent* to invest in, but has not yet been selected or commissioned. Its *Capacity* is assigned for +investment appraisal and can be adjusted during the investment process. + +**Capacity:** The installed size of an *Asset*, used with its *Process*'s *Capacity-to-activity factor* +to determine the maximum *Activity* it can perform. In general, maximum *Activity* equals *Capacity* +multiplied by the *Capacity-to-activity factor*. The resulting *Activity*, multiplied by the +*Process*'s flow coefficients, determines the maximum input and output flows. + +**Capacity-to-activity factor:** The factor that converts an *Asset*'s capacity into its maximum +*Activity*. It expresses the maximum *Activity* that one unit of capacity can perform over the relevant +period. The factor must use the units of the relevant *Commodity*. For example, if *Capacity* is +measured in GW and commodities are expressed in PJ, one GW operating for a full year can produce +8,760 GWh, equivalent to approximately 31.54 PJ. Its capacity-to-activity factor is therefore +31.54 PJ per GW-year (or 0.03154 PJ per MW-year). -**Capital Cost:** The overnight capital cost of a process. +**Capital Cost:** The overnight capital cost of a *Process*. It is a cost of establishing capacity, +rather than a short-term cost that varies directly with *Activity*. + +**Capital Recovery Factor:** The factor used to convert an upfront *Capital Cost* into an annualised +cost over an *Asset*'s *Lifetime* at a given *Discount Rate*. It represents the proportion of the +upfront capital cost that is paid each year to spread that cost over the asset's lifetime. The +factor increases with the discount rate and decreases as the lifetime increases. When the discount +rate is zero, it is the reciprocal of the lifetime. + +**Circular Commodity Dependency:** A dependency cycle in which the production or consumption of one +*Commodity* depends, directly or indirectly, on another *Commodity* that eventually depends on the +first. For example, electricity can be used to produce hydrogen, which is then used to produce +electricity. **Commodity:** A substance (e.g. CO2) or form of energy (e.g. electricity) that can be -produced and/or consumed by *Process*es in the model. A *Service Demand* is a type of commodity that +produced and/or consumed by *Process*es in the model. A *Service Demand* is a type of *Commodity* that is defined at the end point of the system. -**Commodity Levy:** Represents a tax, levy or other external cost on a commodity. Levies can be -applied to all commodity production (sum of output of all processes for that commodity), net -production (sum of output and input for all processes), or all consumption (sum of input for all -processes). It can also be negative, indicating an incentive on commodity +**Commodity Balance:** The constraint applied to balanced *Commodities* at their *Time-slice Level* +and separately by *Region* and *Time-slice Selection*. For *Service Demand* (SVD) commodities, the +balance must meet the fixed demand specified in the input data. For *Supply Equals Demand* (SED) +commodities, production must meet the consumption created by processes in the system. *OTH +(other)-type commodity* entries, such as emissions or side products, are not subject to *Commodity +Balance* constraints. + +**Commodity Levy:** Represents a tax, levy or other external cost on a *Commodity*. Levies can be +applied to all *Commodity* production (sum of output of all *Processes* for that *Commodity*), net +production (sum of output and input for all *Processes*), or all consumption (sum of input for all +*Processes*). It can also be negative, indicating an incentive on *Commodity* production/consumption/net. -**Decision Rule:** The rule via which an *Agent* uses the *Objective/s* to decide between *Process* +**Commodity Market:** The market for a particular *Commodity* in a *Region*. MUSE2 evaluates each +market during investment and calculates prices for the *Commodity* based on the operation of +relevant *Assets* and the applicable *Pricing Strategy*. + +**Decision Rule:** The rule via which an *Agent* uses the *Agent Objective* to decide between *Process* options to invest in. Examples include single objective, weighted sum between multiple objectives, or epsilon constraint where a secondary objective is considered if two options with similar primary objectives are identified. -**Dispatch:** The way in which *Assets* are operated to serve demand. MUSE2 uses merit order -dispatch, subject to *Availability* and other constraints that can be defined by the user. +**Demand Distribution:** The allocation of annual *Service Demand* across *Time Slices* within a +*Year*. It specifies how much of the annual demand occurs in each *Time Slice*, while the total +across the year remains equal to the annual demand. + +**Discount Rate:** The discount rate used to calculate any *Process*-specific *Agent Objective* +that require a discount rate. For example, *Equivalent Annual Cost*, *Net Present Value*, +*Levelised Cost of X*, etc. -**End Year:** The final year in the model time horizon. +**Dispatch:** The way in which *Assets* are operated to serve demand. Within the limits imposed by +*Availability*, *Commodity* balances, and other user-defined constraints, MUSE2 effectively dispatches +*Assets* in *Merit Order*: cheaper *Assets* are used first, up to their available capacity or until +demand is met. The resulting operation is calculated by a least-cost linear programme. -**Equivalent Annual Cost (EAC):** An *Agent* objective, representing the annualised cost of serving -all or part of an *Agent's* demand for a year, considering the *Asset's* entire lifetime. +**End Year:** The final year in the model *Time Horizon*. + +**Equivalent Annual Cost (EAC):** An *Agent Objective*, representing the annualised cost of serving +all or part of an *Agent's* demand for a year, considering the *Asset's* entire *Lifetime*. **Fixed Operating Cost:** The *Asset* or *Process* annual operating cost charged per unit of -capacity. +*Capacity*. Unlike *Variable Operating Cost*, it does not vary directly with *Activity*. + +**Flow Coefficient:** The factor that converts one unit of *Activity* into the corresponding input +or output flow of a *Commodity*. For example, a flow coefficient of 2 means that one unit of +*Activity* produces or consumes two units of that *Commodity*. + +**Full Cost:** The cost of producing a unit of output including *Marginal Cost*, annualised *Capital +Cost*, and *Fixed Operating Cost*. For example, a *Process* with low fuel costs but high *Capital +Cost* may have a low *Marginal Cost* but a higher *Full Cost*. -**Input Commodity/ies:** The commodities that flow into a *Process*. +**Input Commodity:** A *Commodity* that flows into a *Process*. A *Process* may have multiple input +commodities. -**Levelised Cost of X (LCOX):** An *Agent* objective, representing the discounted cost of 1 unit of -output commodity X from a process over its lifetime under a specified discount rate. +**Investment Appraisal:** The process of evaluating existing and *Candidate Asset*s to determine +which investments an *Agent* should make in a particular *Commodity Market* and *Milestone Year*. +Appraisal considers the *Agent Objective*, expected costs, prices, and the asset's operation. + +**Investment Order:** The sequence in which *Commodity* markets are considered for investment. +MUSE2 generally processes downstream markets before upstream markets, so that demand for input +*Commodities* created by committed *Assets* is known when the upstream markets are evaluated. For +example, investment in electricity generation is considered before investment in gas production +when gas is used to generate electricity. + +**Ironing-out Loop:** The repeated sequence of *Agent* investment and *Dispatch* used to resolve +price instability introduced by new capacity commitments. The loop stops when time-slice-weighted +market prices converge within the configured tolerance or the maximum number of iterations is reached. + +**Levelised Cost of X (LCOX):** An *Agent Objective*, representing the discounted cost of 1 unit of +output *Commodity* X from a *Process* over its *Lifetime* under a specified *Discount Rate*. **Lifetime:** The lifetime of a *Process*, measured in years. -**Milestone Years:** A set of years in the model time horizon where model results are recorded. For -example, with a 2025 Base Year and End Year 2100, a user might choose to record outputs in -5-year steps. +**Marginal Cost:** The additional cost of producing one more unit of output from a *Process* or +*Asset*. It generally includes costs that vary with *Activity*, such as fuel and variable operating +costs, but not costs that do not change with short-term output. For example, the marginal cost of a +gas generator includes the cost of the gas used to produce an additional unit of electricity. **Merit Order:** A method of operating *Assets* when the cheapest is dispatched first, followed by -the next most expensive, etc, until demand is served. Also called “unit commitment.” +the next most expensive, etc, until demand is served. + +**Milestone Year:** A *Year* in the *Time Horizon* where model results are recorded. A model can +have multiple *Milestone Year*s. For example, with a 2025 *Base Year* and *End Year* 2100, a user +might choose to record outputs in 5-year steps. -**OTH (other)-type commodity:** A commoodity that is not supply-demand balanced in the model. +**Net Present Value (NPV):** The value of an investment's future costs and benefits expressed in +the present, calculated by discounting them using a specified *Discount Rate*. NPV is an *Agent +Objective* used to compare investment options. + +**OTH (other)-type commodity:** A *Commodity* that is not supply-demand balanced in the model. Includes side products and emissions such as CO₂, or any raw materials that are not output by -modelled processes. +modelled *Processes*. + +**Output Commodity:** A *Commodity* that flows out of a *Process*. A *Process* may have multiple +output commodities. + +**Partial Equilibrium:** An equilibrium in which only the user-defined *Commodities* and markets are +balanced. MUSE2 does not attempt to equilibrate the whole economy. -**Output Commodity/ies:** The commodities that flow out of a *Process*. +**Pricing Strategy:** The method used to calculate a *Commodity*'s price. This includes *Marginal +Cost* pricing, *Full Cost* pricing, and *Shadow Price* pricing. -**Process:** A blueprint of an available *Process* that converts input commodities to output -commodities. *Process*es have economic attributes of capital cost, fixed operating cost per unit -capacity, non-fuel variable operating cost per unit activity, and risk discount rate. They have -physical attributes of quantity and type of input and output commodities (which implicitly specify -efficiency), *Availability* limits (by time slice, season and/or year), lifetime (years). When a -*Process* is selected by an *Agent* for investment an instance of it called an *Asset* is created. +**Process:** A blueprint of an available *Process* that converts *Input Commodities* to *Output +Commodities*. *Process*es have economic attributes of *Capital Cost*, *Fixed Operating Cost* per +unit *Capacity*, *Variable Operating Cost* per unit *Activity*, and risk *Discount Rate*. They have +physical attributes of quantity and type of *Input Commodities* and *Output Commodities* (which +implicitly specify efficiency), *Availability* limits (by *Time Slice*, *Season*, and/or *Year*), and +*Lifetime* (years). +When a *Process* is selected by an *Agent* for investment an instance of it called an *Asset* is +created. -**Region:** A geographical area that is modelled. Regions primarily determine trade boundaries. +**Region:** A geographical area represented in the model. Regions contain the *Assets*, *Processes*, +*Agents*, demands, and *Commodity* markets that apply in that area, and define the boundaries within +which trade and other regional interactions are modelled. + +**Search Space:** The set of *Processes* an *Agent* is allowed to consider for investment, defined +for a particular *Commodity*, *Region*, and *Year*. It determines which *Candidate Assets* are +available during investment appraisal. **Season:** A year is usually broken down into seasons in the model. For example, summer, winter, other. @@ -92,28 +216,52 @@ other. *Service Demands* or specific *Commodity* production. For example, the residential sector, the power sector, etc. -**Service Demand (SVD):** A Service Demand is a type of commodity that is consumed at the boundary -of the modelled system. For example, tonne-kilometers of road freight, PJ of useful heat demand, +**Service Demand (SVD):** A *Service Demand* is a type of *Commodity* that is consumed at the +boundary of the modelled system. For example, tonne-kilometers of road freight, PJ of useful heat demand, etc. -**Supply Equals Demand (SED):**: An SED commodity is a type of commodity that is both consumed and -produced by processes in the system. In fully resolved systems, supply of these commodities is -constrained to be equal to or greater than demand. +**Shadow Price:** The value of relaxing a *Commodity* balance constraint by one unit, as calculated +by the *Dispatch* optimisation. For example, a high *Shadow Price* indicates that one additional +unit of a *Commodity* would substantially improve the optimisation objective because supply is scarce. -**Discount Rate:** The discount rate used to calculate any process-specific agent economic -objectives that require a discount rate. For example, Equivalent Annual Cost, Net Present Value, -Levelised Cost of X, etc. +**Supply Equals Demand (SED):** An SED *Commodity* is a type of *Commodity* that is both consumed and +produced by *Processes* in the system. In fully resolved systems, supply of these *Commodities* is +constrained to be equal to or greater than demand. **Time Horizon:** The overall period modelled. For example, 2025–2100. -**Time Period:** Refers to a specific *Milestone Year* in the time horizon. - -**Time Slice:** The finest time period in the model. The maximum time slice length is 1 year (where -a model does not represent seasons or within-day (diurnal) variation). A typical model will have -several diurnal time slices, and several seasonal time slices. - -**Utilisation:** The percentage of an *Asset*'s capacity that is actually used to produce its -commodities. Must be between 0 and 1, and can be measured at time slice, season, or year level. - -**Variable Operating Cost:** The variable operating cost charged per unit of activity of the - *Process*. +**Time Period:** Refers to a specific *Milestone Year* in the *Time Horizon*. + +**Time Slice:** A discrete operational sub-period within a *Year*, identified by a *Season* and +a time-of-day category. For example, a *Time Slice* might represent winter-day or summer-night. +*Time Slices* are the within-year periods over which *Activity*, demand, and flows are modelled. A +*Time Slice* can be grouped with other *Time Slices* in a *Time-slice Selection* to represent a +*Season*, an entire *Year*, or another temporal grouping. + +**Time-slice Level:** The temporal resolution at which a *Commodity*'s balance constraints are +applied. MUSE2 supports annual, seasonal, and day-night levels, from a whole year to a particular +time of day. For example, an annual level balances total supply and demand across the year, whereas +a day-night level requires the balance to be met separately in each time-of-day group. + +**Time-slice Selection:** A group of model *Time Slices* treated as one period when applying an +*Asset*'s *Activity* or *Availability* constraints, or balancing a *Commodity* at its +*Time-slice Level*. For example, a selection can group all winter *Time Slices* so that a seasonal +*Availability* limit applies to their combined *Activity*. + +**Unit Size:** The capacity of one unit of an *Asset*. Every *Asset* has a *Unit Size*, either defined +when the *Asset* is created or inferred when an investment is made. *Unit Size* defines the granularity +at which retention, mothballing, and decommissioning decisions are made. For example, a 100 MW +*Asset* with a 25 MW *Unit Size* has four units, which can be retained or mothballed independently. + +**Utilisation:** The percentage of an *Asset*'s *Capacity* that is actually used to produce its +*Commodities*. Must be between 0 and 1, and can be measured at *Time Slice*, *Season*, or *Year* level. +For example, an *Asset* operating at 25 MW from 100 MW of available *Capacity* has 0.25 +*Utilisation*. *Availability* describes what the *Asset* could provide; *Utilisation* describes +what it actually provides. + +**Variable Operating Cost:** The variable operating cost charged per unit of *Activity* of the +*Process*. + +**Year:** A calendar year used to identify a *Base Year*, *Milestone Year*, or *End Year* and to +specify when an *Asset* is commissioned or decommissioned. A *Year* is distinct from a *Time Slice*, +which represents a subdivision within a year. diff --git a/docs/user_guide.md b/docs/user_guide.md index 5e4496cb2..6f917b39e 100644 --- a/docs/user_guide.md +++ b/docs/user_guide.md @@ -15,6 +15,7 @@ muse2 example list It should print something like the following: ```sh +circularity missing_commodity muse1_default simple @@ -62,9 +63,18 @@ muse2 example extract simple new_model This will create a new subdirectory called `new_model` in the current folder. +### Validating this model + +Before running a model, you can check that its input files can be read and that the model is +internally consistent with: + +```sh +muse2 validate new_model +``` + ### Running this model -First, let's run this model so you can see the output for a working model. You can do this by +Next, let's run this model so you can see the output for a working model. You can do this by running: ```sh @@ -77,7 +87,7 @@ the simulation (which should finish very quickly). The first few lines should look something like: ```txt -[12:24:20 INFO muse2::cli] Starting MUSE2 v2.1.0 +[12:24:20 INFO muse2::cli] Starting MUSE2 vX.Y.Z [12:24:20 INFO muse2::cli] Loaded model from new_model/ [12:24:20 INFO muse2::cli] Output folder: muse2_results/new_model ... @@ -106,7 +116,7 @@ have a question, feel free to [open an issue]. ## Visualising commodity graphs -To visualise the structure of your model, you can use the [the `muse2 save-graphs` command] to +To visualise the structure of your model, you can use the [`muse2 save-graphs` command] to create graphs of commodity/process relationships. This command will output a graph for each region/year in the simulation, where nodes are commodities and edges are processes. @@ -115,7 +125,7 @@ with [Graphviz online]. Dashed lines are used to indicate flows for non-primary outputs of a process (as defined in the `processes.csv` input file). -[the `muse2 save-graphs` command]: command_line_help.md#muse2-save-graphs +[`muse2 save-graphs` command]: command_line_help.md#muse2-save-graphs [DOT format]: https://graphviz.org/doc/info/lang.html [Graphviz]: https://graphviz.org/ [Graphviz online]: https://dreampuf.github.io/GraphvizOnline @@ -128,17 +138,18 @@ You can configure the behaviour of MUSE2 with a `settings.toml` file. To edit th muse2 settings edit ``` -There are also some more commands for working with the settings file; for details, run: `muse2 -settings help`. +There are also some more commands for working with the settings file. For details, run +`muse2 settings help` or see the [`muse2 settings` command documentation]. For information about the available settings, see [the documentation for the `settings.toml` file][settings.toml-docs]. [settings.toml-docs]: file_formats/program_settings.md +[`muse2 settings` command documentation]: command_line_help.md#muse2-settings ## Setting the log level -MUSE uses the [`fern`] crate for logging. The default log level is `info`, though this can be +MUSE2 uses the [`fern`] crate for logging. The default log level is `info`, though this can be configured either via the `log_level` option in `settings.toml` or by setting the `MUSE2_LOG_LEVEL` environment variable. (If both are used, the environment variable takes precedence.) @@ -152,7 +163,7 @@ The possible options are: - `trace` - `off` -By default, MUSE will colourise the log output if this is available (i.e. it is outputting to a +By default, MUSE2 will colourise the log output if this is available (i.e. it is outputting to a terminal rather than a file). For more information, please consult [the `fern` documentation]. diff --git a/examples/circularity/README.txt b/examples/circularity/README.txt index adc5a67e6..67bde8de4 100644 --- a/examples/circularity/README.txt +++ b/examples/circularity/README.txt @@ -2,7 +2,3 @@ This model extends "two_outputs" to showcase circular commodity flows, adding a turns electricity into hydrogen and back again. Note: this model is currently experimental and only included for development purposes. -For now, this uses the "shadow" pricing strategy for ELCTRI and H2YPRD, as the default -"full_average" strategy is not supported for commodities involved in circularities. -This also uses a slightly wider `capacity_margin` compared to the default value, as this is -required for this model to find a solution. diff --git a/examples/circularity/model.toml b/examples/circularity/model.toml index 6a8e606d0..98be065bf 100644 --- a/examples/circularity/model.toml +++ b/examples/circularity/model.toml @@ -1,2 +1 @@ milestone_years = [2020, 2030, 2040] -capacity_margin = 0.3 diff --git a/schemas/settings.yaml b/schemas/settings.yaml index 8e333c352..fde51ea89 100644 --- a/schemas/settings.yaml +++ b/schemas/settings.yaml @@ -7,7 +7,8 @@ description: | All settings are optional. If the `settings.toml` file does not exist, the default settings will be used. - The `settings.toml` file must be in the current working directory. + The `settings.toml` file is read from MUSE2's platform-specific configuration directory, in a + `muse2` subdirectory. Use `muse2 settings path` to find the exact location on your system. type: object properties: log_level: diff --git a/tests/data/circularity/asset_capacities.csv b/tests/data/circularity/asset_capacities.csv index 90a6bb2a0..40e38176c 100644 --- a/tests/data/circularity/asset_capacities.csv +++ b/tests/data/circularity/asset_capacities.csv @@ -35,12 +35,12 @@ milestone_year,asset_id,capacity,num_units 2040,20,165.3505808753475,27 2040,21,942.563016229748,28 2040,22,2198.390989008045,39 -2040,23,34.19605824723177,15 +2040,23,38.755532680196005,17 2040,24,5.471369319196239,6 -2040,25,9.118948865327066,9 -2040,26,132.08198143321187,15 -2040,27,453.28514602874316,33 +2040,25,8.10573232473517,8 +2040,26,153.84953248060512,21 +2040,27,358.63594983962076,37 2040,28,972.485651665613,26 2040,29,2349.6972514094086,33 -2040,30,475.9494033301804,33 +2040,30,376.5677473316019,37 2040,31,2627.9227668603858,37 diff --git a/tests/data/circularity/commodity_flows.csv b/tests/data/circularity/commodity_flows.csv index bdb712692..47bbbcb80 100644 --- a/tests/data/circularity/commodity_flows.csv +++ b/tests/data/circularity/commodity_flows.csv @@ -1135,70 +1135,70 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2030,20,BIOPRD,autumn.day,17.224018896298894 2030,20,BIOPRD,autumn.peak,5.1672056523546095 2030,20,BIOPRD,autumn.evening,6.889607591589672 -2040,5,ELCTRI,winter.night,1.9247459536298377 +2040,5,ELCTRI,winter.night,1.9156830851254099 2040,5,ELCTRI,winter.day,7.075379933645912 -2040,5,ELCTRI,winter.peak,1.971250126105113 -2040,5,ELCTRI,winter.evening,2.5696653598405335 -2040,5,ELCTRI,peak.night,1.9247459536298377 -2040,5,ELCTRI,peak.day,6.3713620320039785 -2040,5,ELCTRI,peak.peak,1.7776452018191917 -2040,5,ELCTRI,peak.evening,1.72484387381507 +2040,5,ELCTRI,winter.peak,1.9712501261051125 +2040,5,ELCTRI,winter.evening,2.569665359840533 +2040,5,ELCTRI,peak.night,1.9156830851254099 +2040,5,ELCTRI,peak.day,6.371362032003979 +2040,5,ELCTRI,peak.peak,1.7776452018191915 +2040,5,ELCTRI,peak.evening,1.7248438738150702 2040,5,ELCTRI,summer.night,1.6368416242136155 2040,5,ELCTRI,summer.day,4.55851592811161 2040,5,ELCTRI,summer.peak,1.3376340127470945 -2040,5,ELCTRI,summer.evening,1.056026860137062 -2040,5,ELCTRI,autumn.night,1.9247459536298377 +2040,5,ELCTRI,summer.evening,1.0560268601370622 +2040,5,ELCTRI,autumn.night,1.9156830851254099 2040,5,ELCTRI,autumn.day,6.001752635595889 2040,5,ELCTRI,autumn.peak,1.5488393825638174 2040,5,ELCTRI,autumn.evening,1.9008483513729915 2040,6,GASNAT,winter.night,0.0 2040,6,ELCTRI,winter.night,-0.0 2040,6,CO2EMT,winter.night,-0.0 -2040,6,GASNAT,winter.day,-3.385957931275973 -2040,6,ELCTRI,winter.day,2.2573052875173154 -2040,6,CO2EMT,winter.day,173.12402902614048 -2040,6,GASNAT,winter.peak,-1.713823317479355 -2040,6,ELCTRI,winter.peak,1.1425488783195699 -2040,6,CO2EMT,winter.peak,87.62778622271941 -2040,6,GASNAT,winter.evening,-2.2850977749199224 -2040,6,ELCTRI,winter.evening,1.5233985166132815 -2040,6,CO2EMT,winter.evening,116.83704923165561 +2040,6,GASNAT,winter.day,-0.13461070355775817 +2040,6,ELCTRI,winter.day,0.08974046903850545 +2040,6,CO2EMT,winter.day,6.882645272908175 +2040,6,GASNAT,winter.peak,-0.8931204907957104 +2040,6,ELCTRI,winter.peak,0.5954136605304736 +2040,6,CO2EMT,winter.peak,45.66525069438467 +2040,6,GASNAT,winter.evening,-1.1908273305875654 +2040,6,ELCTRI,winter.evening,0.793884887058377 +2040,6,CO2EMT,winter.evening,60.88700141294222 2040,6,GASNAT,peak.night,0.0 2040,6,ELCTRI,peak.night,-0.0 2040,6,CO2EMT,peak.night,-0.0 -2040,6,GASNAT,peak.day,-7.395949762296604 -2040,6,ELCTRI,peak.day,4.930633174864403 -2040,6,CO2EMT,peak.day,378.1549113462254 -2040,6,GASNAT,peak.peak,-2.663423936792142 -2040,6,ELCTRI,peak.peak,1.775615957861428 -2040,6,CO2EMT,peak.peak,136.1808658881822 -2040,6,GASNAT,peak.evening,-3.5512319441327103 -2040,6,ELCTRI,peak.evening,2.36748796275514 -2040,6,CO2EMT,peak.evening,181.57448930350546 +2040,6,GASNAT,peak.day,-5.102655934559747 +2040,6,ELCTRI,peak.day,3.4017706230398312 +2040,6,CO2EMT,peak.day,260.8987979340398 +2040,6,GASNAT,peak.peak,-1.7289002390649735 +2040,6,ELCTRI,peak.peak,1.152600159376649 +2040,6,CO2EMT,peak.peak,88.39866922339209 +2040,6,GASNAT,peak.evening,-2.992497723358964 +2040,6,ELCTRI,peak.evening,1.9949984822393094 +2040,6,CO2EMT,peak.evening,153.00640859534383 2040,6,GASNAT,summer.night,0.0 2040,6,ELCTRI,summer.night,-0.0 2040,6,CO2EMT,summer.night,-0.0 -2040,6,GASNAT,summer.day,-14.72860028390987 -2040,6,ELCTRI,summer.day,9.819066855939914 -2040,6,CO2EMT,summer.day,753.0733325163117 -2040,6,GASNAT,summer.peak,-4.433834062499999 -2040,6,ELCTRI,summer.peak,2.9558893749999995 -2040,6,CO2EMT,summer.peak,226.70193561562493 +2040,6,GASNAT,summer.day,-13.062629180566177 +2040,6,ELCTRI,summer.day,8.708419453710784 +2040,6,CO2EMT,summer.day,667.8922300023485 +2040,6,GASNAT,summer.peak,-4.4338340625 +2040,6,ELCTRI,summer.peak,2.955889375 +2040,6,CO2EMT,summer.peak,226.70193561562496 2040,6,GASNAT,summer.evening,-5.91177879729423 2040,6,ELCTRI,summer.evening,3.94118586486282 2040,6,CO2EMT,summer.evening,302.26924990565396 2040,6,GASNAT,autumn.night,0.0 2040,6,ELCTRI,autumn.night,-0.0 2040,6,CO2EMT,autumn.night,-0.0 -2040,6,GASNAT,autumn.day,-7.3144912816787855 -2040,6,ELCTRI,autumn.day,4.87632752111919 -2040,6,CO2EMT,autumn.day,373.9899392322363 -2040,6,GASNAT,autumn.peak,-3.093618950053272 -2040,6,ELCTRI,autumn.peak,2.0624126333688477 -2040,6,CO2EMT,autumn.peak,158.17673691622377 -2040,6,GASNAT,autumn.evening,-4.711762455816208 -2040,6,ELCTRI,autumn.evening,3.1411749705441387 -2040,6,CO2EMT,autumn.evening,240.9124143658827 +2040,6,GASNAT,autumn.day,-4.9338002681413755 +2040,6,ELCTRI,autumn.day,3.289200178760917 +2040,6,CO2EMT,autumn.day,252.2652077100685 +2040,6,GASNAT,autumn.peak,-2.57871157541815 +2040,6,ELCTRI,autumn.peak,1.7191410502787667 +2040,6,CO2EMT,autumn.peak,131.84952285113 +2040,6,GASNAT,autumn.evening,-4.1552984889807085 +2040,6,ELCTRI,autumn.evening,2.7701989926538055 +2040,6,CO2EMT,autumn.evening,212.46041174158358 2040,16,BIOPEL,winter.night,-40.48351055539363 2040,16,RSHEAT,winter.night,33.73625879616136 2040,16,BIOPEL,winter.day,-139.77917968782327 @@ -1266,27 +1266,27 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,19,OILCRD,winter.night,64.31028942216543 2040,19,GASPRD,winter.night,6.4310289422165425 2040,19,CO2EMT,winter.night,471.5873523327391 -2040,19,OILCRD,winter.day,91.87184190566923 -2040,19,GASPRD,winter.day,9.187184190566922 -2040,19,CO2EMT,winter.day,673.6962166942725 -2040,19,OILCRD,winter.peak,27.561552483503796 +2040,19,OILCRD,winter.day,91.87184190566924 +2040,19,GASPRD,winter.day,9.187184190566924 +2040,19,CO2EMT,winter.day,673.6962166942726 +2040,19,OILCRD,winter.peak,27.5615524835038 2040,19,GASPRD,winter.peak,2.75615524835038 -2040,19,CO2EMT,winter.peak,202.10886436153334 -2040,19,OILCRD,winter.evening,36.74873693866162 -2040,19,GASPRD,winter.evening,3.6748736938661626 -2040,19,CO2EMT,winter.evening,269.4784879712057 +2040,19,CO2EMT,winter.peak,202.10886436153336 +2040,19,OILCRD,winter.evening,36.74873693866158 +2040,19,GASPRD,winter.evening,3.674873693866158 +2040,19,CO2EMT,winter.evening,269.47848797120537 2040,19,OILCRD,peak.night,64.31028942216543 2040,19,GASPRD,peak.night,6.4310289422165425 2040,19,CO2EMT,peak.night,471.5873523327391 -2040,19,OILCRD,peak.day,91.87184190566924 -2040,19,GASPRD,peak.day,9.187184190566924 -2040,19,CO2EMT,peak.day,673.6962166942726 -2040,19,OILCRD,peak.peak,27.5615524835038 +2040,19,OILCRD,peak.day,91.87184190566923 +2040,19,GASPRD,peak.day,9.187184190566922 +2040,19,CO2EMT,peak.day,673.6962166942725 +2040,19,OILCRD,peak.peak,27.561552483503796 2040,19,GASPRD,peak.peak,2.75615524835038 -2040,19,CO2EMT,peak.peak,202.10886436153336 -2040,19,OILCRD,peak.evening,36.74873693866158 -2040,19,GASPRD,peak.evening,3.674873693866158 -2040,19,CO2EMT,peak.evening,269.47848797120537 +2040,19,CO2EMT,peak.peak,202.10886436153334 +2040,19,OILCRD,peak.evening,36.74873693866162 +2040,19,GASPRD,peak.evening,3.6748736938661626 +2040,19,CO2EMT,peak.evening,269.4784879712057 2040,19,OILCRD,summer.night,64.31028942216543 2040,19,GASPRD,summer.night,6.4310289422165425 2040,19,CO2EMT,summer.night,471.5873523327391 @@ -1407,206 +1407,206 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,22,RSHEAT,autumn.peak,33.37111099736366 2040,22,BIOPEL,autumn.evening,-23.969297616016814 2040,22,RSHEAT,autumn.evening,19.97441468001401 -2040,23,ELCTRI,winter.night,16.60058371563915 -2040,23,ELCTRI,winter.day,61.02386483106282 -2040,23,ELCTRI,winter.peak,17.001673743570592 -2040,23,ELCTRI,winter.evening,22.162896275616557 -2040,23,ELCTRI,peak.night,16.60058371563915 -2040,23,ELCTRI,peak.day,54.95183849871748 -2040,23,ELCTRI,peak.peak,15.331866490666757 -2040,23,ELCTRI,peak.evening,14.876464641827273 -2040,23,ELCTRI,summer.night,14.117461247681433 -2040,23,ELCTRI,summer.day,39.31637063113666 -2040,23,ELCTRI,summer.peak,11.536850028242725 -2040,23,ELCTRI,summer.evening,9.108039564706266 -2040,23,ELCTRI,autumn.night,16.60058371563915 -2040,23,ELCTRI,autumn.day,51.76402469108842 -2040,23,ELCTRI,autumn.peak,13.358457922117184 -2040,23,ELCTRI,autumn.evening,16.39447124343487 +2040,23,ELCTRI,winter.night,18.725407206557566 +2040,23,ELCTRI,winter.day,69.1603801418712 +2040,23,ELCTRI,winter.peak,19.26856357604667 +2040,23,ELCTRI,winter.evening,25.117949112365434 +2040,23,ELCTRI,peak.night,18.725407206557566 +2040,23,ELCTRI,peak.day,62.278750298546484 +2040,23,ELCTRI,peak.peak,17.37611535608899 +2040,23,ELCTRI,peak.evening,16.85999326073758 +2040,23,ELCTRI,summer.night,15.99978941403896 +2040,23,ELCTRI,summer.day,44.55855338195488 +2040,23,ELCTRI,summer.peak,13.07509669867509 +2040,23,ELCTRI,summer.evening,10.322444840000436 +2040,23,ELCTRI,autumn.night,18.725407206557566 +2040,23,ELCTRI,autumn.day,58.66589464990022 +2040,23,ELCTRI,autumn.peak,15.139585645066143 +2040,23,ELCTRI,autumn.evening,18.580400742559522 2040,24,H2YPRD,winter.night,-0.0 2040,24,ELCTRI,winter.night,0.0 -2040,24,H2YPRD,winter.day,-6.038959977357639 -2040,24,ELCTRI,winter.day,4.025973318238425 -2040,24,H2YPRD,winter.peak,-1.1764338769701976 -2040,24,ELCTRI,winter.peak,0.784289251313465 -2040,24,H2YPRD,winter.evening,-2.415584002537858 -2040,24,ELCTRI,winter.evening,1.6103893350252387 +2040,24,H2YPRD,winter.day,-7.017264450390703 +2040,24,ELCTRI,winter.day,4.678176300260469 +2040,24,H2YPRD,winter.peak,-1.3940248839738376 +2040,24,ELCTRI,winter.peak,0.929349922649225 +2040,24,H2YPRD,winter.evening,-2.806905793629429 +2040,24,ELCTRI,winter.evening,1.8712705290862859 2040,24,H2YPRD,peak.night,-0.0 2040,24,ELCTRI,peak.night,0.0 2040,24,H2YPRD,peak.day,-0.0 2040,24,ELCTRI,peak.day,0.0 -2040,24,H2YPRD,peak.peak,-0.13453588823156842 -2040,24,ELCTRI,peak.peak,0.08969059215437895 -2040,24,H2YPRD,peak.evening,-9.496441968634127 -2040,24,ELCTRI,peak.evening,6.330961312422751 +2040,24,H2YPRD,peak.peak,-1.4283695596707782 +2040,24,ELCTRI,peak.peak,0.9522463731138521 +2040,24,H2YPRD,peak.evening,-9.789825568323192 +2040,24,ELCTRI,peak.evening,6.526550378882128 2040,24,H2YPRD,summer.night,-0.0 2040,24,ELCTRI,summer.night,0.0 2040,24,H2YPRD,summer.day,-0.0 2040,24,ELCTRI,summer.day,0.0 2040,24,H2YPRD,summer.peak,-0.0 2040,24,ELCTRI,summer.peak,0.0 -2040,24,H2YPRD,summer.evening,-9.614130359644246 -2040,24,ELCTRI,summer.evening,6.409420239762831 +2040,24,H2YPRD,summer.evening,-9.789825568323192 +2040,24,ELCTRI,summer.evening,6.526550378882128 2040,24,H2YPRD,autumn.night,-0.0 2040,24,ELCTRI,autumn.night,0.0 -2040,24,H2YPRD,autumn.day,-5.665281089074719 -2040,24,ELCTRI,autumn.day,3.776854059383146 -2040,24,H2YPRD,autumn.peak,-1.6995843212837456 -2040,24,ELCTRI,autumn.peak,1.1330562141891638 -2040,24,H2YPRD,autumn.evening,-2.2661124465072278 -2040,24,ELCTRI,autumn.evening,1.5107416310048185 +2040,24,H2YPRD,autumn.day,-6.598938306858228 +2040,24,ELCTRI,autumn.day,4.399292204572152 +2040,24,H2YPRD,autumn.peak,-1.9796814857224874 +2040,24,ELCTRI,autumn.peak,1.319787657148325 +2040,24,H2YPRD,autumn.evening,-2.6395753354132534 +2040,24,ELCTRI,autumn.evening,1.7597168902755023 2040,25,GASNAT,winter.night,-0.0 2040,25,ELCTRI,winter.night,0.0 2040,25,CO2EMT,winter.night,0.0 -2040,25,GASNAT,winter.day,-10.295557597683967 -2040,25,ELCTRI,winter.day,6.8637050651226446 -2040,25,CO2EMT,winter.day,526.4118599695812 -2040,25,GASNAT,winter.peak,-5.211159451917116 -2040,25,ELCTRI,winter.peak,3.474106301278077 -2040,25,CO2EMT,winter.peak,266.4465827765221 -2040,25,GASNAT,winter.evening,-6.948212658141857 -2040,25,ELCTRI,winter.evening,4.632141772094571 -2040,25,CO2EMT,winter.evening,355.26211321079313 +2040,25,GASNAT,winter.day,-0.3638273861565402 +2040,25,ELCTRI,winter.day,0.24255159077102678 +2040,25,CO2EMT,winter.day,18.6024942541839 +2040,25,GASNAT,winter.peak,-2.413936522883004 +2040,25,ELCTRI,winter.peak,1.6092910152553361 +2040,25,CO2EMT,winter.peak,123.424574415008 +2040,25,GASNAT,winter.evening,-3.218582056259328 +2040,25,ELCTRI,winter.evening,2.145721370839552 +2040,25,CO2EMT,winter.evening,164.5661005365394 2040,25,GASNAT,peak.night,-0.0 2040,25,ELCTRI,peak.night,0.0 2040,25,CO2EMT,peak.night,0.0 -2040,25,GASNAT,peak.day,-22.488592095001874 -2040,25,ELCTRI,peak.day,14.99239473000125 -2040,25,CO2EMT,peak.day,1149.8417138174457 -2040,25,GASNAT,peak.peak,-8.098575087127593 -2040,25,ELCTRI,peak.peak,5.399050058085062 -2040,25,CO2EMT,peak.peak,414.0801442048338 -2040,25,GASNAT,peak.evening,-10.798100202554924 -2040,25,ELCTRI,peak.evening,7.198733468369949 -2040,25,CO2EMT,peak.evening,552.1068633566332 +2040,25,GASNAT,peak.day,-13.791518222995226 +2040,25,ELCTRI,peak.day,9.194345481996818 +2040,25,CO2EMT,peak.day,705.1603267417458 +2040,25,GASNAT,peak.peak,-4.6728918152822 +2040,25,ELCTRI,peak.peak,3.1152612101881334 +2040,25,CO2EMT,peak.peak,238.92495851537888 +2040,25,GASNAT,peak.evening,-8.088157895274145 +2040,25,ELCTRI,peak.evening,5.392105263516097 +2040,25,CO2EMT,peak.evening,413.547513185367 2040,25,GASNAT,summer.night,-0.0 2040,25,ELCTRI,summer.night,0.0 2040,25,CO2EMT,summer.night,0.0 -2040,25,GASNAT,summer.day,-44.78471251977853 -2040,25,ELCTRI,summer.day,29.856475013185687 -2040,25,CO2EMT,summer.day,2289.842351136276 -2040,25,GASNAT,summer.peak,-13.481795963081982 -2040,25,ELCTRI,summer.peak,8.987863975387988 -2040,25,CO2EMT,summer.peak,689.3242275923817 -2040,25,GASNAT,summer.evening,-17.975728094581804 -2040,25,ELCTRI,summer.evening,11.983818729721202 -2040,25,CO2EMT,summer.evening,919.0989774759676 +2040,25,GASNAT,summer.day,-35.305827140694944 +2040,25,ELCTRI,summer.day,23.53721809379663 +2040,25,CO2EMT,summer.day,1805.1869417037321 +2040,25,GASNAT,summer.peak,-11.983818633850653 +2040,25,ELCTRI,summer.peak,7.9892124225671015 +2040,25,CO2EMT,summer.peak,612.7326467487838 +2040,25,GASNAT,summer.evening,-15.978424972961601 +2040,25,ELCTRI,summer.evening,10.652283315307734 +2040,25,CO2EMT,summer.evening,816.9768688675266 2040,25,GASNAT,autumn.night,-0.0 2040,25,ELCTRI,autumn.night,0.0 2040,25,CO2EMT,autumn.night,0.0 -2040,25,GASNAT,autumn.day,-22.240904292600693 -2040,25,ELCTRI,autumn.day,14.827269528400462 -2040,25,CO2EMT,autumn.day,1137.1774364806734 -2040,25,GASNAT,autumn.peak,-9.406653222521705 -2040,25,ELCTRI,autumn.peak,6.271102148347803 -2040,25,CO2EMT,autumn.peak,480.96217926753474 -2040,25,GASNAT,autumn.evening,-14.326882594250044 -2040,25,ELCTRI,autumn.evening,9.551255062833363 -2040,25,CO2EMT,autumn.evening,732.5335070440048 -2040,26,ELCTRI,winter.night,-12.838093483201968 -2040,26,H2YPRD,winter.night,9.630977856865693 +2040,25,GASNAT,autumn.day,-13.335133150136908 +2040,25,ELCTRI,autumn.day,8.89008876675794 +2040,25,CO2EMT,autumn.day,681.8253579665001 +2040,25,GASNAT,autumn.peak,-6.9697718482946485 +2040,25,ELCTRI,autumn.peak,4.646514565529766 +2040,25,CO2EMT,autumn.peak,356.36443460330537 +2040,25,GASNAT,autumn.evening,-11.230989423492542 +2040,25,ELCTRI,autumn.evening,7.487326282328361 +2040,25,CO2EMT,autumn.evening,574.2404892231737 +2040,26,ELCTRI,winter.night,-14.95385410561596 +2040,26,H2YPRD,winter.night,11.218195127993969 2040,26,ELCTRI,winter.day,-0.0 2040,26,H2YPRD,winter.day,0.0 2040,26,ELCTRI,winter.peak,-0.0 2040,26,H2YPRD,winter.peak,0.0 2040,26,ELCTRI,winter.evening,-0.0 2040,26,H2YPRD,winter.evening,0.0 -2040,26,ELCTRI,peak.night,-12.838093483201968 -2040,26,H2YPRD,peak.night,9.630977856865693 +2040,26,ELCTRI,peak.night,-14.95385410561596 +2040,26,H2YPRD,peak.night,11.218195127993969 2040,26,ELCTRI,peak.day,-0.0 2040,26,H2YPRD,peak.day,0.0 2040,26,ELCTRI,peak.peak,-0.0 2040,26,H2YPRD,peak.peak,0.0 2040,26,ELCTRI,peak.evening,-0.0 2040,26,H2YPRD,peak.evening,0.0 -2040,26,ELCTRI,summer.night,-10.067066685828031 -2040,26,H2YPRD,summer.night,7.55218806138637 -2040,26,ELCTRI,summer.day,-2.3041999927867587 -2040,26,H2YPRD,summer.day,1.7285821401251005 -2040,26,ELCTRI,summer.peak,-0.44436909079098913 -2040,26,H2YPRD,summer.peak,0.33336015813277503 +2040,26,ELCTRI,summer.night,-11.949394852185556 +2040,26,H2YPRD,summer.night,8.964287210941903 +2040,26,ELCTRI,summer.day,-0.1164784219867897 +2040,26,H2YPRD,summer.day,0.08738066165550616 +2040,26,ELCTRI,summer.peak,-0.983964208402468 +2040,26,H2YPRD,summer.peak,0.7381576957257825 2040,26,ELCTRI,summer.evening,-0.0 2040,26,H2YPRD,summer.evening,0.0 -2040,26,ELCTRI,autumn.night,-12.838093483201968 -2040,26,H2YPRD,autumn.night,9.630977856865693 +2040,26,ELCTRI,autumn.night,-14.95385410561596 +2040,26,H2YPRD,autumn.night,11.218195127993969 2040,26,ELCTRI,autumn.day,-0.0 2040,26,H2YPRD,autumn.day,0.0 2040,26,ELCTRI,autumn.peak,-0.0 2040,26,H2YPRD,autumn.peak,0.0 2040,26,ELCTRI,autumn.evening,-0.0 2040,26,H2YPRD,autumn.evening,0.0 -2040,27,GASPRD,winter.night,-9.138441429218783 -2040,27,GASNAT,winter.night,8.703277551636937 -2040,27,CO2EMT,winter.night,22.249929060759833 -2040,27,GASPRD,winter.day,-13.054916309551523 -2040,27,GASNAT,winter.day,12.433253628144307 -2040,27,CO2EMT,winter.day,31.785612900350923 -2040,27,GASPRD,winter.peak,-3.916474880332737 -2040,27,GASNAT,winter.peak,3.729976076507368 -2040,27,CO2EMT,winter.peak,9.535683839591087 -2040,27,GASPRD,winter.evening,-5.221966548886048 -2040,27,GASNAT,winter.evening,4.973301475129569 -2040,27,CO2EMT,winter.evening,12.714245221168744 -2040,27,GASPRD,peak.night,-16.842486124420443 -2040,27,GASNAT,peak.night,16.040462975638516 -2040,27,CO2EMT,peak.night,41.00744359721987 -2040,27,GASPRD,peak.day,-24.06069443046026 -2040,27,GASNAT,peak.day,22.914947076628817 -2040,27,CO2EMT,peak.day,58.58206220140158 -2040,27,GASPRD,peak.peak,-7.218208306039808 -2040,27,GASNAT,peak.peak,6.874484100990293 -2040,27,CO2EMT,peak.peak,17.574618604181687 -2040,27,GASPRD,peak.evening,-9.624277818380634 -2040,27,GASNAT,peak.evening,9.165978874648221 -2040,27,CO2EMT,peak.evening,23.43282499303818 -2040,27,GASPRD,summer.night,-31.028162744831466 -2040,27,GASNAT,summer.night,29.550631185553776 -2040,27,CO2EMT,summer.night,75.54618862586824 -2040,27,GASPRD,summer.day,-44.325946717540816 -2040,27,GASNAT,summer.day,42.21518735003887 -2040,27,CO2EMT,summer.day,107.92312646037438 -2040,27,GASPRD,summer.peak,-13.297783972709329 -2040,27,GASNAT,summer.peak,12.664556164485075 -2040,27,CO2EMT,summer.peak,32.3769378345061 -2040,27,GASPRD,summer.evening,-17.730378772122133 -2040,27,GASNAT,summer.evening,16.8860750210687 -2040,27,CO2EMT,summer.evening,43.16925079136213 -2040,27,GASPRD,autumn.night,-18.71013330474847 -2040,27,GASNAT,autumn.night,17.819174575950925 -2040,27,CO2EMT,autumn.night,45.55471980341854 -2040,27,GASPRD,autumn.day,-26.7287618272698 -2040,27,GASNAT,autumn.day,25.455963645018855 -2040,27,CO2EMT,autumn.day,65.07817105849071 -2040,27,GASPRD,autumn.peak,-8.018628522521329 -2040,27,GASNAT,autumn.peak,7.636789069067932 -2040,27,CO2EMT,autumn.peak,19.52345125507217 -2040,27,GASPRD,autumn.evening,-10.691504782227142 -2040,27,GASNAT,autumn.evening,10.182385506882992 -2040,27,CO2EMT,autumn.evening,26.03126854834637 -2040,28,OILCRD,winter.night,-64.31028942216541 -2040,28,GASOLI,winter.night,49.09182398638581 -2040,28,CO2EMT,winter.night,1080.0201277004878 +2040,27,GASPRD,winter.night,-2.5158145015735793 +2040,27,GASNAT,winter.night,2.3960138110224563 +2040,27,CO2EMT,winter.night,6.12540930787891 +2040,27,GASPRD,winter.day,-3.5940207116047427 +2040,27,GASNAT,winter.day,3.422876868194993 +2040,27,CO2EMT,winter.day,8.7505847135405 +2040,27,GASPRD,winter.peak,-1.0782062100311627 +2040,27,GASNAT,winter.peak,1.026863057172536 +2040,27,CO2EMT,winter.peak,2.6251754056615884 +2040,27,GASPRD,winter.evening,-1.4376082915424158 +2040,27,GASNAT,winter.evening,1.3691507538499197 +2040,27,CO2EMT,winter.evening,3.50023390221732 +2040,27,GASPRD,peak.night,-11.140340441967332 +2040,27,GASNAT,peak.night,10.609848039968888 +2040,27,CO2EMT,peak.night,27.124076514180466 +2040,27,GASPRD,peak.day,-15.914772038127358 +2040,27,GASNAT,peak.day,15.156925750597484 +2040,27,CO2EMT,peak.day,38.74868068140247 +2040,27,GASPRD,peak.peak,-4.774431596160027 +2040,27,GASNAT,peak.peak,4.547077710628597 +2040,27,CO2EMT,peak.peak,11.624604167222008 +2040,27,GASPRD,peak.evening,-6.365908845807305 +2040,27,GASNAT,peak.evening,6.062770329340291 +2040,27,CO2EMT,peak.evening,15.499472346958454 +2040,27,GASPRD,summer.night,-26.5446208064528 +2040,27,GASNAT,summer.night,25.280591244240764 +2040,27,CO2EMT,summer.night,64.62983151590151 +2040,27,GASPRD,summer.day,-37.920886814355384 +2040,27,GASNAT,summer.day,36.11513029938608 +2040,27,CO2EMT,summer.day,92.32833061038052 +2040,27,GASPRD,summer.peak,-11.376266007902558 +2040,27,GASNAT,summer.peak,10.834539055145292 +2040,27,CO2EMT,summer.peak,27.698499094478944 +2040,27,GASPRD,summer.evening,-15.168354798550247 +2040,27,GASNAT,summer.evening,14.446052189095473 +2040,27,CO2EMT,summer.evening,36.93133242142258 +2040,27,GASPRD,autumn.night,-13.231134588615348 +2040,27,GASNAT,autumn.night,12.601080560586045 +2040,27,CO2EMT,autumn.night,32.214662453138224 +2040,27,GASPRD,autumn.day,-18.901620814956853 +2040,27,GASNAT,autumn.day,18.00154363329224 +2040,27,CO2EMT,autumn.day,46.02094629851162 +2040,27,GASPRD,autumn.peak,-5.670486226341498 +2040,27,GASNAT,autumn.peak,5.400463072706188 +2040,27,CO2EMT,autumn.peak,13.80628384537337 +2040,27,GASPRD,autumn.evening,-7.56064836227385 +2040,27,GASNAT,autumn.evening,7.200617487879857 +2040,27,CO2EMT,autumn.evening,18.408378607764856 +2040,28,OILCRD,winter.night,-64.31028942216543 +2040,28,GASOLI,winter.night,49.09182398638582 +2040,28,CO2EMT,winter.night,1080.020127700488 2040,28,OILCRD,winter.day,-91.87184190566923 2040,28,GASOLI,winter.day,70.13117702722842 2040,28,CO2EMT,winter.day,1542.8858945990253 -2040,28,OILCRD,winter.peak,-27.561552483503796 -2040,28,GASOLI,winter.peak,21.03935304084259 -2040,28,CO2EMT,winter.peak,462.865766898537 -2040,28,OILCRD,winter.evening,-36.74873693866162 -2040,28,GASOLI,winter.evening,28.05247094554322 -2040,28,CO2EMT,winter.evening,617.1543608019508 -2040,28,OILCRD,peak.night,-64.31028942216543 -2040,28,GASOLI,peak.night,49.09182398638582 -2040,28,CO2EMT,peak.night,1080.020127700488 +2040,28,OILCRD,winter.peak,-27.5615524835038 +2040,28,GASOLI,winter.peak,21.039353040842595 +2040,28,CO2EMT,winter.peak,462.8657668985371 +2040,28,OILCRD,winter.evening,-36.748736938661594 +2040,28,GASOLI,winter.evening,28.052470945543202 +2040,28,CO2EMT,winter.evening,617.1543608019505 +2040,28,OILCRD,peak.night,-64.31028942216541 +2040,28,GASOLI,peak.night,49.09182398638581 +2040,28,CO2EMT,peak.night,1080.0201277004878 2040,28,OILCRD,peak.day,-91.87184190566923 2040,28,GASOLI,peak.day,70.13117702722842 2040,28,CO2EMT,peak.day,1542.8858945990253 -2040,28,OILCRD,peak.peak,-27.5615524835038 -2040,28,GASOLI,peak.peak,21.039353040842595 -2040,28,CO2EMT,peak.peak,462.8657668985371 -2040,28,OILCRD,peak.evening,-36.748736938661594 -2040,28,GASOLI,peak.evening,28.052470945543202 -2040,28,CO2EMT,peak.evening,617.1543608019505 +2040,28,OILCRD,peak.peak,-27.561552483503796 +2040,28,GASOLI,peak.peak,21.03935304084259 +2040,28,CO2EMT,peak.peak,462.865766898537 +2040,28,OILCRD,peak.evening,-36.74873693866162 +2040,28,GASOLI,peak.evening,28.05247094554322 +2040,28,CO2EMT,peak.evening,617.1543608019508 2040,28,OILCRD,summer.night,-64.31028942216543 2040,28,GASOLI,summer.night,49.09182398638582 2040,28,CO2EMT,summer.night,1080.020127700488 @@ -1663,38 +1663,38 @@ milestone_year,asset_id,commodity_id,time_slice,flow 2040,29,BIOPEL,autumn.peak,33.379999363565155 2040,29,BIOPRD,autumn.evening,-46.73199948284718 2040,29,BIOPEL,autumn.evening,44.50666617414017 -2040,30,GASPRD,winter.night,2.7074124870022427 -2040,30,CO2EMT,winter.night,13.843000046042468 -2040,30,GASPRD,winter.day,3.8677321189845997 -2040,30,CO2EMT,winter.day,19.77571432436826 -2040,30,GASPRD,winter.peak,1.1603196319823579 -2040,30,CO2EMT,winter.peak,5.932714278325796 -2040,30,GASPRD,winter.evening,1.5470928550198855 -2040,30,CO2EMT,winter.evening,7.910285767716675 -2040,30,GASPRD,peak.night,10.411457182203902 -2040,30,CO2EMT,peak.night,53.23378057260856 -2040,30,GASPRD,peak.day,14.873510239893331 -2040,30,CO2EMT,peak.day,76.04825785657461 -2040,30,GASPRD,peak.peak,4.4620530576894275 -2040,30,CO2EMT,peak.peak,22.814477283966045 -2040,30,GASPRD,peak.evening,5.949404124514472 -2040,30,CO2EMT,peak.evening,30.4193032886425 -2040,30,GASPRD,summer.night,24.597133802614927 -2040,30,CO2EMT,summer.night,125.76514513277013 -2040,30,GASPRD,summer.day,35.13876252697388 -2040,30,CO2EMT,summer.day,179.66449280041746 -2040,30,GASPRD,summer.peak,10.54162872435895 -2040,30,CO2EMT,summer.peak,53.89934766764732 -2040,30,GASPRD,summer.evening,14.055505078255974 -2040,30,CO2EMT,summer.evening,71.8657974651228 -2040,30,GASPRD,autumn.night,12.27910436253193 -2040,30,CO2EMT,autumn.night,62.783060605625764 -2040,30,GASPRD,autumn.day,17.54157763670288 -2040,30,CO2EMT,autumn.day,89.69008645646183 -2040,30,GASPRD,autumn.peak,5.262473274170947 -2040,30,CO2EMT,autumn.peak,26.907025850836057 -2040,30,GASPRD,autumn.evening,7.01663108836098 -2040,30,CO2EMT,autumn.evening,35.87603475478969 +2040,30,GASPRD,winter.night,0.0 +2040,30,CO2EMT,winter.night,0.0 +2040,30,GASPRD,winter.day,0.0 +2040,30,CO2EMT,winter.day,0.0 +2040,30,GASPRD,winter.peak,0.0 +2040,30,CO2EMT,winter.peak,0.0 +2040,30,GASPRD,winter.evening,0.0 +2040,30,CO2EMT,winter.evening,0.0 +2040,30,GASPRD,peak.night,4.7093114997507906 +2040,30,CO2EMT,peak.night,24.078709698225794 +2040,30,GASPRD,peak.day,6.7275878475604385 +2040,30,CO2EMT,peak.day,34.398156664576526 +2040,30,GASPRD,peak.peak,2.018276347809647 +2040,30,CO2EMT,peak.peak,10.319446966350727 +2040,30,GASPRD,peak.evening,2.6910351519411435 +2040,30,CO2EMT,peak.evening,13.759262731875069 +2040,30,GASPRD,summer.night,20.11359186423627 +2040,30,CO2EMT,summer.night,102.84079520184005 +2040,30,GASPRD,summer.day,28.73370262378845 +2040,30,CO2EMT,summer.day,146.91542151543035 +2040,30,GASPRD,summer.peak,8.62011075955218 +2040,30,CO2EMT,summer.peak,44.0746263135903 +2040,30,GASPRD,summer.evening,11.493481104684088 +2040,30,CO2EMT,summer.evening,58.766168888249744 +2040,30,GASPRD,autumn.night,6.800105646398808 +2040,30,CO2EMT,autumn.night,34.768940170037105 +2040,30,GASPRD,autumn.day,9.714436624389927 +2040,30,CO2EMT,autumn.day,49.6699144605057 +2040,30,GASPRD,autumn.peak,2.914330977991119 +2040,30,CO2EMT,autumn.peak,14.900974290468591 +2040,30,GASPRD,autumn.evening,3.885774668407689 +2040,30,CO2EMT,autumn.evening,19.867965879568516 2040,31,BIOPRD,winter.night,186.91599597141777 2040,31,BIOPRD,winter.day,267.0228510215368 2040,31,BIOPRD,winter.peak,80.1068550501191 diff --git a/tests/data/circularity/commodity_prices.csv b/tests/data/circularity/commodity_prices.csv index f65aa8fcc..ac0087c86 100644 --- a/tests/data/circularity/commodity_prices.csv +++ b/tests/data/circularity/commodity_prices.csv @@ -351,30 +351,30 @@ milestone_year,commodity_id,region_id,time_slice,price 2030,RSHEAT,GBR,autumn.day,50.8262403129185 2030,RSHEAT,GBR,autumn.peak,98.13878163369219 2030,RSHEAT,GBR,autumn.evening,48.89768270671781 -2040,GASPRD,GBR,winter.night,5.877556100764694 -2040,GASPRD,GBR,winter.day,5.877556100764694 -2040,GASPRD,GBR,winter.peak,5.877556100764694 -2040,GASPRD,GBR,winter.evening,5.877556100764694 -2040,GASPRD,GBR,peak.night,5.97769899389699 -2040,GASPRD,GBR,peak.day,5.97769899389699 -2040,GASPRD,GBR,peak.peak,5.97769899389699 -2040,GASPRD,GBR,peak.evening,5.97769899389699 -2040,GASPRD,GBR,summer.night,6.032007451371473 -2040,GASPRD,GBR,summer.day,6.032007451371473 -2040,GASPRD,GBR,summer.peak,6.032007451371473 -2040,GASPRD,GBR,summer.evening,6.032007451371473 -2040,GASPRD,GBR,autumn.night,5.98955644733037 -2040,GASPRD,GBR,autumn.day,5.98955644733037 -2040,GASPRD,GBR,autumn.peak,5.98955644733037 -2040,GASPRD,GBR,autumn.evening,5.98955644733037 -2040,OILCRD,GBR,winter.night,5.785387816705663 -2040,OILCRD,GBR,winter.day,5.785387816705663 -2040,OILCRD,GBR,winter.peak,5.785387816705663 -2040,OILCRD,GBR,winter.evening,5.785387816705663 -2040,OILCRD,GBR,peak.night,5.785387816705664 -2040,OILCRD,GBR,peak.day,5.785387816705664 -2040,OILCRD,GBR,peak.peak,5.785387816705664 -2040,OILCRD,GBR,peak.evening,5.785387816705664 +2040,GASPRD,GBR,winter.night,5.785387816705663 +2040,GASPRD,GBR,winter.day,5.785387816705663 +2040,GASPRD,GBR,winter.peak,5.785387816705663 +2040,GASPRD,GBR,winter.evening,5.785387816705663 +2040,GASPRD,GBR,peak.night,6.329611733271024 +2040,GASPRD,GBR,peak.day,6.329611733271024 +2040,GASPRD,GBR,peak.peak,6.329611733271024 +2040,GASPRD,GBR,peak.evening,6.329611733271024 +2040,GASPRD,GBR,summer.night,6.760897929308668 +2040,GASPRD,GBR,summer.day,6.760897929308668 +2040,GASPRD,GBR,summer.peak,6.760897929308668 +2040,GASPRD,GBR,summer.evening,6.760897929308668 +2040,GASPRD,GBR,autumn.night,6.447051412930846 +2040,GASPRD,GBR,autumn.day,6.447051412930846 +2040,GASPRD,GBR,autumn.peak,6.447051412930846 +2040,GASPRD,GBR,autumn.evening,6.447051412930846 +2040,OILCRD,GBR,winter.night,5.785387816705664 +2040,OILCRD,GBR,winter.day,5.785387816705664 +2040,OILCRD,GBR,winter.peak,5.785387816705664 +2040,OILCRD,GBR,winter.evening,5.785387816705664 +2040,OILCRD,GBR,peak.night,5.785387816705663 +2040,OILCRD,GBR,peak.day,5.785387816705663 +2040,OILCRD,GBR,peak.peak,5.785387816705663 +2040,OILCRD,GBR,peak.evening,5.785387816705663 2040,OILCRD,GBR,summer.night,5.785387816705664 2040,OILCRD,GBR,summer.day,5.785387816705664 2040,OILCRD,GBR,summer.peak,5.785387816705664 @@ -399,22 +399,22 @@ milestone_year,commodity_id,region_id,time_slice,price 2040,BIOPRD,GBR,autumn.day,0.8586931712935483 2040,BIOPRD,GBR,autumn.peak,0.8586931712935483 2040,BIOPRD,GBR,autumn.evening,0.8586931712935483 -2040,GASNAT,GBR,winter.night,8.5725174917129 -2040,GASNAT,GBR,winter.day,8.5725174917129 -2040,GASNAT,GBR,winter.peak,8.5725174917129 -2040,GASNAT,GBR,winter.evening,8.5725174917129 -2040,GASNAT,GBR,peak.night,8.677667529501813 -2040,GASNAT,GBR,peak.day,8.677667529501813 -2040,GASNAT,GBR,peak.peak,8.677667529501813 -2040,GASNAT,GBR,peak.evening,8.677667529501813 -2040,GASNAT,GBR,summer.night,8.734691409850017 -2040,GASNAT,GBR,summer.day,8.734691409850017 -2040,GASNAT,GBR,summer.peak,8.734691409850017 -2040,GASNAT,GBR,summer.evening,8.734691409850017 -2040,GASNAT,GBR,autumn.night,8.69011785560686 -2040,GASNAT,GBR,autumn.day,8.69011785560686 -2040,GASNAT,GBR,autumn.peak,8.69011785560686 -2040,GASNAT,GBR,autumn.evening,8.69011785560686 +2040,GASNAT,GBR,winter.night,8.69378001598546 +2040,GASNAT,GBR,winter.day,8.69378001598546 +2040,GASNAT,GBR,winter.peak,8.69378001598546 +2040,GASNAT,GBR,winter.evening,8.69378001598546 +2040,GASNAT,GBR,peak.night,9.26521512837909 +2040,GASNAT,GBR,peak.day,9.26521512837909 +2040,GASNAT,GBR,peak.peak,9.26521512837909 +2040,GASNAT,GBR,peak.evening,9.26521512837909 +2040,GASNAT,GBR,summer.night,9.718065634218616 +2040,GASNAT,GBR,summer.day,9.718065634218616 +2040,GASNAT,GBR,summer.peak,9.718065634218616 +2040,GASNAT,GBR,summer.evening,9.718065634218616 +2040,GASNAT,GBR,autumn.night,9.388526792021903 +2040,GASNAT,GBR,autumn.day,9.388526792021903 +2040,GASNAT,GBR,autumn.peak,9.388526792021903 +2040,GASNAT,GBR,autumn.evening,9.388526792021903 2040,GASOLI,GBR,winter.night,11.020289470145302 2040,GASOLI,GBR,winter.day,11.020289470145302 2040,GASOLI,GBR,winter.peak,11.020289470145302 @@ -447,54 +447,54 @@ milestone_year,commodity_id,region_id,time_slice,price 2040,BIOPEL,GBR,autumn.day,2.0521757118191575 2040,BIOPEL,GBR,autumn.peak,2.0521757118191575 2040,BIOPEL,GBR,autumn.evening,2.0521757118191575 -2040,ELCTRI,GBR,winter.night,12.666779906312678 -2040,ELCTRI,GBR,winter.day,15.400561545167262 -2040,ELCTRI,GBR,winter.peak,15.701781223272143 -2040,ELCTRI,GBR,winter.evening,16.23472324906633 -2040,ELCTRI,GBR,peak.night,12.666779906312678 -2040,ELCTRI,GBR,peak.day,15.356932622597753 -2040,ELCTRI,GBR,peak.peak,16.008900547009176 -2040,ELCTRI,GBR,peak.evening,21.871263033120883 -2040,ELCTRI,GBR,summer.night,12.666779906312678 -2040,ELCTRI,GBR,summer.day,17.916933571612063 -2040,ELCTRI,GBR,summer.peak,17.987467024138684 -2040,ELCTRI,GBR,summer.evening,27.12814425228211 -2040,ELCTRI,GBR,autumn.night,12.666779906312678 -2040,ELCTRI,GBR,autumn.day,16.757687029249475 -2040,ELCTRI,GBR,autumn.peak,17.849859678977158 -2040,ELCTRI,GBR,autumn.evening,18.384489641841526 -2040,H2YPRD,GBR,winter.night,10.26368794377605 -2040,H2YPRD,GBR,winter.day,10.26368794377605 -2040,H2YPRD,GBR,winter.peak,10.26368794377605 -2040,H2YPRD,GBR,winter.evening,10.26368794377605 -2040,H2YPRD,GBR,peak.night,10.26368794377605 -2040,H2YPRD,GBR,peak.day,10.26368794377605 -2040,H2YPRD,GBR,peak.peak,10.26368794377605 -2040,H2YPRD,GBR,peak.evening,10.26368794377605 -2040,H2YPRD,GBR,summer.night,20.385586642405183 -2040,H2YPRD,GBR,summer.day,20.385586642405183 -2040,H2YPRD,GBR,summer.peak,20.385586642405183 -2040,H2YPRD,GBR,summer.evening,20.385586642405183 -2040,H2YPRD,GBR,autumn.night,10.26368794377605 -2040,H2YPRD,GBR,autumn.day,10.26368794377605 -2040,H2YPRD,GBR,autumn.peak,10.26368794377605 -2040,H2YPRD,GBR,autumn.evening,10.26368794377605 -2040,TPASKM,GBR,winter.night,22.478451994815018 -2040,TPASKM,GBR,winter.day,24.81415665842707 -2040,TPASKM,GBR,winter.peak,25.071514523781698 -2040,TPASKM,GBR,winter.evening,25.52685271077892 -2040,TPASKM,GBR,peak.night,22.478451994815018 -2040,TPASKM,GBR,peak.day,24.77688071931561 -2040,TPASKM,GBR,peak.peak,25.33391296356291 -2040,TPASKM,GBR,peak.evening,30.34263319343926 -2040,TPASKM,GBR,summer.night,22.478451994815018 -2040,TPASKM,GBR,summer.day,26.964109600540116 -2040,TPASKM,GBR,summer.peak,27.024372392441855 -2040,TPASKM,GBR,summer.evening,34.83403872676269 -2040,TPASKM,GBR,autumn.night,22.478451994815018 -2040,TPASKM,GBR,autumn.day,25.973665624770742 -2040,TPASKM,GBR,autumn.peak,26.906802608054935 -2040,TPASKM,GBR,autumn.evening,27.36358294479472 +2040,ELCTRI,GBR,winter.night,12.674145938031948 +2040,ELCTRI,GBR,winter.day,14.339976439520271 +2040,ELCTRI,GBR,winter.peak,14.92481876929989 +2040,ELCTRI,GBR,winter.evening,15.46948631976746 +2040,ELCTRI,GBR,peak.night,12.674145938031948 +2040,ELCTRI,GBR,peak.day,14.834682567014008 +2040,ELCTRI,GBR,peak.peak,16.2082588450763 +2040,ELCTRI,GBR,peak.evening,21.465272750980397 +2040,ELCTRI,GBR,summer.night,12.67414593803195 +2040,ELCTRI,GBR,summer.day,18.466340027583783 +2040,ELCTRI,GBR,summer.peak,18.982342291193035 +2040,ELCTRI,GBR,summer.evening,27.90957856268472 +2040,ELCTRI,GBR,autumn.night,12.674145938031948 +2040,ELCTRI,GBR,autumn.day,16.307136738382315 +2040,ELCTRI,GBR,autumn.peak,17.878218828227617 +2040,ELCTRI,GBR,autumn.evening,18.647279983667556 +2040,H2YPRD,GBR,winter.night,10.559756733182441 +2040,H2YPRD,GBR,winter.day,10.559756733182441 +2040,H2YPRD,GBR,winter.peak,10.559756733182441 +2040,H2YPRD,GBR,winter.evening,10.559756733182441 +2040,H2YPRD,GBR,peak.night,10.559756733182441 +2040,H2YPRD,GBR,peak.day,10.559756733182441 +2040,H2YPRD,GBR,peak.peak,10.559756733182441 +2040,H2YPRD,GBR,peak.evening,10.559756733182441 +2040,H2YPRD,GBR,summer.night,20.681654985604197 +2040,H2YPRD,GBR,summer.day,20.681654985604197 +2040,H2YPRD,GBR,summer.peak,20.681654985604197 +2040,H2YPRD,GBR,summer.evening,20.681654985604197 +2040,H2YPRD,GBR,autumn.night,10.559756733182441 +2040,H2YPRD,GBR,autumn.day,10.559756733182441 +2040,H2YPRD,GBR,autumn.peak,10.559756733182441 +2040,H2YPRD,GBR,autumn.evening,10.559756733182441 +2040,TPASKM,GBR,winter.night,22.484745428933703 +2040,TPASKM,GBR,winter.day,23.908007629474238 +2040,TPASKM,GBR,winter.peak,24.407688707775844 +2040,TPASKM,GBR,winter.evening,24.873045018486266 +2040,TPASKM,GBR,peak.night,22.484745428933703 +2040,TPASKM,GBR,peak.day,24.330677601604386 +2040,TPASKM,GBR,peak.peak,25.504241895437747 +2040,TPASKM,GBR,peak.evening,29.995760794452032 +2040,TPASKM,GBR,summer.night,22.484745428933703 +2040,TPASKM,GBR,summer.day,27.43351476560274 +2040,TPASKM,GBR,summer.peak,27.874379857538717 +2040,TPASKM,GBR,summer.evening,35.50168523414014 +2040,TPASKM,GBR,autumn.night,22.484745428933703 +2040,TPASKM,GBR,autumn.day,25.588721779727173 +2040,TPASKM,GBR,autumn.peak,26.93103226715387 +2040,TPASKM,GBR,autumn.evening,27.588107324588435 2040,RSHEAT,GBR,winter.night,31.73564906753376 2040,RSHEAT,GBR,winter.day,31.73564906753376 2040,RSHEAT,GBR,winter.peak,31.73564906753376