import calliope
# We increase logging verbosity
calliope.set_log_verbosity('INFO', include_solver_output=False)
model = calliope.examples.national_scale()
[2022-02-07 16:54:16] INFO Model: initialising [2022-02-07 16:54:16] INFO Model: preprocessing stage 1 (model_run) [2022-02-07 16:54:17] INFO Model: preprocessing stage 2 (model_data) [2022-02-07 16:54:17] INFO Model: preprocessing complete
# Model inputs can be viewed at `model.inputs`.
# Variables are indexed over any combination of `techs`, `locs`, `carriers`, `costs` and `timesteps`,
# although `techs`, `locs`, and `carriers` are often concatenated.
# e.g. `ccgt`, `region1`, `power` -> `region1::ccgt::power`
model.inputs
<xarray.Dataset> Dimensions: (loc_techs: 15, loc_techs_area: 3, loc_techs_supply_plus: 3, loc_techs_store: 4, loc_techs_finite_resource: 5, timesteps: 120, costs: 1, loc_techs_om_cost: 12, loc_techs_investment_cost: 7, loc_techs_transmission: 8, coordinates: 2, locs: 5, techs: 6, loc_carriers: 5, loc_techs_non_conversion: 15, carriers: 1) Coordinates: (12/16) * carriers (carriers) <U5 'power' * coordinates (coordinates) object 'lon' 'lat' * costs (costs) object 'monetary' * loc_carriers (loc_carriers) object 'region1::power' ..... * loc_techs (loc_techs) object 'region2::battery' ...... * loc_techs_area (loc_techs_area) object 'region1-3::csp' ... ... ... * loc_techs_store (loc_techs_store) object 'region2::batter... * loc_techs_supply_plus (loc_techs_supply_plus) object 'region1-3... * loc_techs_transmission (loc_techs_transmission) object 'region1-... * locs (locs) object 'region1' ... 'region1-2' * techs (techs) object 'free_transmission' ... 'b... * timesteps (timesteps) datetime64[ns] 2005-01-01 ...... Data variables: (12/34) lifetime (loc_techs) float64 25.0 nan ... nan 25.0 resource_area_max (loc_techs_area) float64 inf inf inf energy_ramping (loc_techs) float64 nan nan nan ... nan nan parasitic_eff (loc_techs_supply_plus) float64 0.9 0.9 0.9 storage_loss (loc_techs_store) float64 0.0 ... 0.002 energy_con (loc_techs) float64 1.0 1.0 nan ... 1.0 nan ... ... lookup_loc_carriers (loc_carriers) object 'region1::ac_transm... lookup_loc_techs (loc_techs_non_conversion) object 'region... lookup_loc_techs_area (locs) object '' ... 'region1-2::csp' timestep_resolution (timesteps) float64 1.0 1.0 1.0 ... 1.0 1.0 timestep_weights (timesteps) float64 1.0 1.0 1.0 ... 1.0 1.0 max_demand_timesteps (carriers) datetime64[ns] 2005-01-05T16:0... Attributes: calliope_version: 0.6.8-dev applied_overrides: scenario: None defaults: available_area: null\ncarrier_ratios: null\ncharge_r... allow_operate_mode: 1
array(['power'], dtype='<U5')
array(['lon', 'lat'], dtype=object)
array(['monetary'], dtype=object)
array(['region1::power', 'region1-2::power', 'region2::power', 'region1-3::power', 'region1-1::power'], dtype=object)
array(['region2::battery', 'region2::demand_power', 'region1-1::csp', 'region1-3::free_transmission:region1', 'region1-2::free_transmission:region1', 'region1-1::free_transmission:region1', 'region1::ccgt', 'region1::ac_transmission:region2', 'region1::free_transmission:region1-1', 'region2::ac_transmission:region1', 'region1::demand_power', 'region1::free_transmission:region1-2', 'region1-3::csp', 'region1::free_transmission:region1-3', 'region1-2::csp'], dtype=object)
array(['region1-3::csp', 'region1-2::csp', 'region1-1::csp'], dtype=object)
array(['region2::demand_power', 'region1-1::csp', 'region1::demand_power', 'region1-3::csp', 'region1-2::csp'], dtype=object)
array(['region2::battery', 'region2::ac_transmission:region1', 'region1-1::csp', 'region1::ccgt', 'region1-3::csp', 'region1::ac_transmission:region2', 'region1-2::csp'], dtype=object)
array(['region2::battery', 'region2::demand_power', 'region1-1::csp', 'region1-3::free_transmission:region1', 'region1-2::free_transmission:region1', 'region1-1::free_transmission:region1', 'region1::ccgt', 'region1::ac_transmission:region2', 'region1::free_transmission:region1-1', 'region2::ac_transmission:region1', 'region1::demand_power', 'region1::free_transmission:region1-2', 'region1-3::csp', 'region1::free_transmission:region1-3', 'region1-2::csp'], dtype=object)
array(['region1-1::csp', 'region1-3::free_transmission:region1', 'region1-2::free_transmission:region1', 'region1-1::free_transmission:region1', 'region1::ccgt', 'region2::ac_transmission:region1', 'region1::ac_transmission:region2', 'region1::free_transmission:region1-1', 'region1::free_transmission:region1-2', 'region1-3::csp', 'region1::free_transmission:region1-3', 'region1-2::csp'], dtype=object)
array(['region2::battery', 'region1-3::csp', 'region1-2::csp', 'region1-1::csp'], dtype=object)
array(['region1-3::csp', 'region1-2::csp', 'region1-1::csp'], dtype=object)
array(['region1-3::free_transmission:region1', 'region1-2::free_transmission:region1', 'region1::free_transmission:region1-2', 'region1::ac_transmission:region2', 'region1::free_transmission:region1-1', 'region2::ac_transmission:region1', 'region1::free_transmission:region1-3', 'region1-1::free_transmission:region1'], dtype=object)
array(['region1', 'region1-3', 'region2', 'region1-1', 'region1-2'], dtype=object)
array(['free_transmission', 'ac_transmission', 'csp', 'demand_power', 'ccgt', 'battery'], dtype=object)
array(['2005-01-01T00:00:00.000000000', '2005-01-01T01:00:00.000000000', '2005-01-01T02:00:00.000000000', '2005-01-01T03:00:00.000000000', '2005-01-01T04:00:00.000000000', '2005-01-01T05:00:00.000000000', '2005-01-01T06:00:00.000000000', '2005-01-01T07:00:00.000000000', '2005-01-01T08:00:00.000000000', '2005-01-01T09:00:00.000000000', '2005-01-01T10:00:00.000000000', '2005-01-01T11:00:00.000000000', '2005-01-01T12:00:00.000000000', '2005-01-01T13:00:00.000000000', '2005-01-01T14:00:00.000000000', '2005-01-01T15:00:00.000000000', '2005-01-01T16:00:00.000000000', '2005-01-01T17:00:00.000000000', '2005-01-01T18:00:00.000000000', '2005-01-01T19:00:00.000000000', '2005-01-01T20:00:00.000000000', '2005-01-01T21:00:00.000000000', '2005-01-01T22:00:00.000000000', '2005-01-01T23:00:00.000000000', '2005-01-02T00:00:00.000000000', '2005-01-02T01:00:00.000000000', '2005-01-02T02:00:00.000000000', '2005-01-02T03:00:00.000000000', '2005-01-02T04:00:00.000000000', '2005-01-02T05:00:00.000000000', '2005-01-02T06:00:00.000000000', '2005-01-02T07:00:00.000000000', '2005-01-02T08:00:00.000000000', '2005-01-02T09:00:00.000000000', '2005-01-02T10:00:00.000000000', '2005-01-02T11:00:00.000000000', '2005-01-02T12:00:00.000000000', '2005-01-02T13:00:00.000000000', '2005-01-02T14:00:00.000000000', '2005-01-02T15:00:00.000000000', '2005-01-02T16:00:00.000000000', '2005-01-02T17:00:00.000000000', '2005-01-02T18:00:00.000000000', '2005-01-02T19:00:00.000000000', '2005-01-02T20:00:00.000000000', '2005-01-02T21:00:00.000000000', '2005-01-02T22:00:00.000000000', '2005-01-02T23:00:00.000000000', '2005-01-03T00:00:00.000000000', '2005-01-03T01:00:00.000000000', '2005-01-03T02:00:00.000000000', '2005-01-03T03:00:00.000000000', '2005-01-03T04:00:00.000000000', '2005-01-03T05:00:00.000000000', '2005-01-03T06:00:00.000000000', '2005-01-03T07:00:00.000000000', '2005-01-03T08:00:00.000000000', '2005-01-03T09:00:00.000000000', '2005-01-03T10:00:00.000000000', '2005-01-03T11:00:00.000000000', '2005-01-03T12:00:00.000000000', '2005-01-03T13:00:00.000000000', '2005-01-03T14:00:00.000000000', '2005-01-03T15:00:00.000000000', '2005-01-03T16:00:00.000000000', '2005-01-03T17:00:00.000000000', '2005-01-03T18:00:00.000000000', '2005-01-03T19:00:00.000000000', '2005-01-03T20:00:00.000000000', '2005-01-03T21:00:00.000000000', '2005-01-03T22:00:00.000000000', '2005-01-03T23:00:00.000000000', '2005-01-04T00:00:00.000000000', '2005-01-04T01:00:00.000000000', '2005-01-04T02:00:00.000000000', '2005-01-04T03:00:00.000000000', '2005-01-04T04:00:00.000000000', '2005-01-04T05:00:00.000000000', '2005-01-04T06:00:00.000000000', '2005-01-04T07:00:00.000000000', '2005-01-04T08:00:00.000000000', '2005-01-04T09:00:00.000000000', '2005-01-04T10:00:00.000000000', '2005-01-04T11:00:00.000000000', '2005-01-04T12:00:00.000000000', '2005-01-04T13:00:00.000000000', '2005-01-04T14:00:00.000000000', '2005-01-04T15:00:00.000000000', '2005-01-04T16:00:00.000000000', '2005-01-04T17:00:00.000000000', '2005-01-04T18:00:00.000000000', '2005-01-04T19:00:00.000000000', '2005-01-04T20:00:00.000000000', '2005-01-04T21:00:00.000000000', '2005-01-04T22:00:00.000000000', '2005-01-04T23:00:00.000000000', '2005-01-05T00:00:00.000000000', '2005-01-05T01:00:00.000000000', '2005-01-05T02:00:00.000000000', '2005-01-05T03:00:00.000000000', '2005-01-05T04:00:00.000000000', '2005-01-05T05:00:00.000000000', '2005-01-05T06:00:00.000000000', '2005-01-05T07:00:00.000000000', '2005-01-05T08:00:00.000000000', '2005-01-05T09:00:00.000000000', '2005-01-05T10:00:00.000000000', '2005-01-05T11:00:00.000000000', '2005-01-05T12:00:00.000000000', '2005-01-05T13:00:00.000000000', '2005-01-05T14:00:00.000000000', '2005-01-05T15:00:00.000000000', '2005-01-05T16:00:00.000000000', '2005-01-05T17:00:00.000000000', '2005-01-05T18:00:00.000000000', '2005-01-05T19:00:00.000000000', '2005-01-05T20:00:00.000000000', '2005-01-05T21:00:00.000000000', '2005-01-05T22:00:00.000000000', '2005-01-05T23:00:00.000000000'], dtype='datetime64[ns]')
array([25., nan, 25., nan, nan, nan, 25., 25., nan, 25., nan, nan, 25., nan, 25.])
array([inf, inf, inf])
array([nan, nan, nan, nan, nan, nan, 0.8, nan, nan, nan, nan, nan, nan, nan, nan])
array([0.9, 0.9, 0.9])
array([0. , 0.002, 0.002, 0.002])
array([ 1., 1., nan, 1., 1., 1., nan, 1., 1., 1., 1., 1., nan, 1., nan])
array(['energy', 'energy_per_area', 'energy', 'energy_per_area', 'energy_per_area'], dtype=object)
array([nan, 1., nan, 1., 1.])
array([[-2.2540980e+03, -2.1311480e+03, -2.0901640e+03, -2.1311480e+03, -2.1721320e+03, -2.1721320e+03, -2.2131140e+03, -2.2950820e+03, -2.4590160e+03, -2.4590160e+03, -2.4180320e+03, -2.4180320e+03, -2.3770500e+03, -2.3360660e+03, -2.2950820e+03, -2.4590160e+03, -2.9098360e+03, -2.8688520e+03, -2.7868860e+03, -2.7459020e+03, -2.6229500e+03, -2.4590160e+03, -2.2540980e+03, -2.2950820e+03, -2.2540980e+03, -2.1311480e+03, -2.0901640e+03, -2.1311480e+03, -2.1721320e+03, -2.1721320e+03, -2.2131140e+03, -2.2950820e+03, -2.4590160e+03, -2.4590160e+03, -2.4180320e+03, -2.4180320e+03, -2.3770500e+03, -2.3360660e+03, -2.2950820e+03, -2.4590160e+03, -2.9098360e+03, -2.8688520e+03, -2.7868860e+03, -2.7459020e+03, -2.6229500e+03, -2.4590160e+03, -2.2540980e+03, -2.2950820e+03, -2.2540980e+03, -2.1311480e+03, -2.0901640e+03, -2.1311480e+03, -2.1721320e+03, -2.1721320e+03, -2.2131140e+03, -2.2950820e+03, -2.4590160e+03, -2.4590160e+03, -2.4180320e+03, -2.4180320e+03, -2.3770500e+03, -2.3360660e+03, -2.2950820e+03, -2.4590160e+03, -2.9098360e+03, -2.8688520e+03, -2.7868860e+03, -2.7459020e+03, -2.6229500e+03, -2.4590160e+03, -2.2540980e+03, -2.2950820e+03, -2.2540980e+03, -2.1311480e+03, -2.0901640e+03, -2.1311480e+03, -2.1721320e+03, -2.1721320e+03, -2.2131140e+03, -2.2950820e+03, ... 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 6.3446000e-02, 2.0942400e-01, 2.3574800e-01, 2.2675000e-01, 6.4664000e-02, 7.7960000e-03, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 9.2428000e-02, 1.3939100e-01, 1.9669800e-01, 1.4162400e-01, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 1.8872000e-02, 2.3097100e-01, 3.3558700e-01, 1.9994400e-01, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00]])
array([ 1., nan, 1., 1., 1., 1., 1., 1., 1., 1., nan, 1., 1., 1., 1.])
array([ inf, 614033., 614033., 614033.])
array([0.95, nan, 0.4 , 1. , 1. , 1. , 0.5 , 0.85, 1. , 0.85, nan, 1. , 0.4 , 1. , 0.4 ])
array([4, 1, 1, 1])
array([ 1., nan, 1., nan, nan])
array([ 1000., nan, 10000., inf, inf, inf, 30000., 10000., inf, 10000., nan, inf, 10000., inf, 10000.])
array([[0.002, 0. , 0. , 0. , nan, 0.002, 0.002, 0. , 0. , 0.002, 0. , 0.002]])
array([[ nan, 200., 1000., 750., 1000., 200., 1000.]])
array([[200., nan, 50., nan, 50., nan, 50.]])
array([[0.11016807, 0.11016807, 0.11016807, 0.11016807, 0.11016807, 0.11016807, 0.11016807]])
array([[ nan, nan, 200., nan, 200., nan, 200.]])
array([[ nan, nan, 200., nan, 200., nan, 200.]])
array([[ nan, nan, nan, nan, 0.02, nan, nan, nan, nan, nan, nan, nan]])
array(['region1::free_transmission:region1-3', 'region1::free_transmission:region1-2', 'region1-2::free_transmission:region1', 'region2::ac_transmission:region1', 'region1-1::free_transmission:region1', 'region1::ac_transmission:region2', 'region1-3::free_transmission:region1', 'region1::free_transmission:region1-1'], dtype=object)
array([[-2, -2, -8, -2, -1], [40, 39, 40, 41, 39]])
array(['#6783E3', '#8465A9', '#F9CF22', '#072486', '#E37A72', '#3B61E3'], dtype=object)
array(['transmission', 'transmission', 'supply_plus', 'demand', 'supply', 'storage'], dtype=object)
array(['Local power transmission', 'AC power transmission', 'Concentrating solar power', 'Power demand', 'Combined cycle gas turbine', 'Battery storage'], dtype=object)
array([ nan, nan, nan, nan, 100000., nan])
array(['region1::ac_transmission:region2::power,region1::free_transmission:region1-3::power,region1::free_transmission:region1-1::power,region1::free_transmission:region1-2::power,region1::demand_power::power,region1::ccgt::power', 'region1-2::csp::power,region1-2::free_transmission:region1::power', 'region2::battery::power,region2::demand_power::power,region2::ac_transmission:region1::power', 'region1-3::free_transmission:region1::power,region1-3::csp::power', 'region1-1::free_transmission:region1::power,region1-1::csp::power'], dtype=object)
array(['region2::battery::power', 'region2::demand_power::power', 'region1-1::csp::power', 'region1-3::free_transmission:region1::power', 'region1-2::free_transmission:region1::power', 'region1-1::free_transmission:region1::power', 'region1::ccgt::power', 'region1::ac_transmission:region2::power', 'region1::free_transmission:region1-1::power', 'region2::ac_transmission:region1::power', 'region1::demand_power::power', 'region1::free_transmission:region1-2::power', 'region1-3::csp::power', 'region1::free_transmission:region1-3::power', 'region1-2::csp::power'], dtype=object)
array(['', 'region1-3::csp', '', 'region1-1::csp', 'region1-2::csp'], dtype=object)
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
array(['2005-01-05T16:00:00.000000000'], dtype='datetime64[ns]')
# Individual data variables can be accessed easily, `to_pandas()` reformats the data to look nicer
model.inputs.resource.to_pandas()
timesteps | 2005-01-01 00:00:00 | 2005-01-01 01:00:00 | 2005-01-01 02:00:00 | 2005-01-01 03:00:00 | 2005-01-01 04:00:00 | 2005-01-01 05:00:00 | 2005-01-01 06:00:00 | 2005-01-01 07:00:00 | 2005-01-01 08:00:00 | 2005-01-01 09:00:00 | ... | 2005-01-05 14:00:00 | 2005-01-05 15:00:00 | 2005-01-05 16:00:00 | 2005-01-05 17:00:00 | 2005-01-05 18:00:00 | 2005-01-05 19:00:00 | 2005-01-05 20:00:00 | 2005-01-05 21:00:00 | 2005-01-05 22:00:00 | 2005-01-05 23:00:00 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
loc_techs_finite_resource | |||||||||||||||||||||
region2::demand_power | -2254.098 | -2131.148 | -2090.164 | -2131.148 | -2172.132 | -2172.132 | -2213.114 | -2295.082000 | -2459.016000 | -2459.016000 | ... | -2295.082000 | -2459.01600 | -2909.836 | -2868.852 | -2786.886 | -2745.902 | -2622.950 | -2459.016 | -2254.098 | -2295.082 |
region1-1::csp | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.021060 | 0.263805 | 0.434037 | ... | 0.322062 | 0.07927 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 |
region1::demand_power | -25284.480 | -24387.440 | -23730.656 | -23123.040 | -23119.600 | -23683.280 | -24364.720 | -25249.968000 | -26090.208000 | -26870.464000 | ... | -37078.160000 | -38203.12000 | -39033.520 | -38631.008 | -36990.800 | -35330.832 | -33623.456 | -31341.168 | -29390.624 | -28132.928 |
region1-3::csp | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000000 | 0.000000 | 0.026837 | ... | 0.118691 | 0.00000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 |
region1-2::csp | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.009056 | 0.096755 | 0.245351 | ... | 0.000000 | 0.00000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 |
5 rows × 120 columns
# To reformat the array, deconcatenating loc_techs / loc_tech_carriers, you can use model.get_formatted_array()
# You can then apply loc/tech/carrier only operations, like summing information over locations:
model.get_formatted_array('resource').sum('locs').to_pandas()
timesteps | 2005-01-01 00:00:00 | 2005-01-01 01:00:00 | 2005-01-01 02:00:00 | 2005-01-01 03:00:00 | 2005-01-01 04:00:00 | 2005-01-01 05:00:00 | 2005-01-01 06:00:00 | 2005-01-01 07:00:00 | 2005-01-01 08:00:00 | 2005-01-01 09:00:00 | ... | 2005-01-05 14:00:00 | 2005-01-05 15:00:00 | 2005-01-05 16:00:00 | 2005-01-05 17:00:00 | 2005-01-05 18:00:00 | 2005-01-05 19:00:00 | 2005-01-05 20:00:00 | 2005-01-05 21:00:00 | 2005-01-05 22:00:00 | 2005-01-05 23:00:00 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
techs | |||||||||||||||||||||
csp | 0.000 | 0.000 | 0.00 | 0.000 | 0.000 | 0.000 | 0.000 | 0.030116 | 0.36056 | 0.706225 | ... | 0.440753 | 0.07927 | 0.000 | 0.00 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.00 |
demand_power | -27538.578 | -26518.588 | -25820.82 | -25254.188 | -25291.732 | -25855.412 | -26577.834 | -27545.050000 | -28549.22400 | -29329.480000 | ... | -39373.242000 | -40662.13600 | -41943.356 | -41499.86 | -39777.686 | -38076.734 | -36246.406 | -33800.184 | -31644.722 | -30428.01 |
2 rows × 120 columns
# Solve the model. Results are loaded into `model.results`.
# By including logging (see package importing), we can see the timing of parts of the run, as well as the solver's log
model.run()
[2022-02-07 16:54:17] INFO Backend: starting model run [2022-02-07 16:54:17] INFO Loading sets [2022-02-07 16:54:17] INFO Loading parameters [2022-02-07 16:54:17] INFO constraints are loaded in the following order: ['capacity', 'dispatch', 'policy', 'energy_balance', 'costs', 'network', 'conversion', 'group', 'conversion_plus', 'export', 'milp'] [2022-02-07 16:54:17] INFO creating capacity constraints [2022-02-07 16:54:17] INFO creating dispatch constraints [2022-02-07 16:54:17] INFO creating policy constraints [2022-02-07 16:54:17] INFO creating energy_balance constraints [2022-02-07 16:54:17] INFO creating costs constraints [2022-02-07 16:54:17] INFO creating network constraints [2022-02-07 16:54:17] INFO creating conversion constraints [2022-02-07 16:54:17] INFO creating group constraints [2022-02-07 16:54:17] INFO creating conversion_plus constraints [2022-02-07 16:54:17] INFO creating export constraints [2022-02-07 16:54:17] INFO creating milp constraints [2022-02-07 16:54:17] INFO Backend: model generated. Time since start of model run: 0:00:00.628829 [2022-02-07 16:54:17] INFO Backend: sending model to solver [2022-02-07 16:54:18] INFO Backend: solver finished running. Time since start of model run: 0:00:01.310957 [2022-02-07 16:54:18] INFO Backend: loaded results [2022-02-07 16:54:18] INFO Backend: generated solution array. Time since start of model run: 0:00:01.442019 [2022-02-07 16:54:18] INFO Postprocessing: started [2022-02-07 16:54:18] INFO Postprocessing: All values < 1e-10 set to 0 in energy_cap, carrier_prod, carrier_con, cost, storage, cost_var, system_balance, cost_var_rhs [2022-02-07 16:54:18] INFO Postprocessing: ended. Time since start of model run: 0:00:01.582937
# Model results are held in the same structure as model inputs.
# The results consist of the optimal values for all decision variables, including capacities and carrier flow
# There are also results, like system capacity factor and levelised costs, which are calculated in postprocessing
# before being added to the results Dataset
model.results
<xarray.Dataset> Dimensions: (loc_techs: 15, loc_tech_carriers_prod: 13, timesteps: 120, loc_tech_carriers_con: 11, costs: 1, loc_techs_cost: 13, loc_techs_area: 3, loc_techs_store: 4, loc_techs_supply_plus: 3, loc_techs_om_cost: 12, loc_techs_investment_cost: 7, loc_carriers: 5, loc_carriers_system_balance_constraint: 5, loc_techs_balance_demand_constraint: 2, loc_techs_cost_investment_constraint: 7, carriers: 1, techs: 12) Coordinates: (12/17) * loc_carriers (loc_carriers) object 'region1-1:... * loc_carriers_system_balance_constraint (loc_carriers_system_balance_constraint) object ... * loc_tech_carriers_con (loc_tech_carriers_con) object 'r... * loc_tech_carriers_prod (loc_tech_carriers_prod) object '... * loc_techs_balance_demand_constraint (loc_techs_balance_demand_constraint) object ... * loc_techs_cost (loc_techs_cost) object 'region1-... ... ... * techs (techs) object 'ac_transmission' ... * costs (costs) object 'monetary' * loc_techs (loc_techs) object 'region2::batt... * loc_techs_area (loc_techs_area) object 'region1-... * timesteps (timesteps) datetime64[ns] 2005-0... * carriers (carriers) <U5 'power' Data variables: (12/20) energy_cap (loc_techs) float64 1e+03 ... 0.0 carrier_prod (loc_tech_carriers_prod, timesteps) float64 ... carrier_con (loc_tech_carriers_con, timesteps) float64 ... cost (costs, loc_techs_cost) float64 9... resource_area (loc_techs_area) float64 8.486e+0... storage_cap (loc_techs_store) float64 2.443e+... ... ... cost_investment_rhs (costs, loc_techs_cost_investment_constraint) float64 ... cost_var_rhs (costs, loc_techs_om_cost, timesteps) float64 ... capacity_factor (timesteps, loc_tech_carriers_prod) float64 ... systemwide_capacity_factor (carriers, techs) float64 nan ...... systemwide_levelised_cost (carriers, costs, techs) float64 ... total_levelised_cost (carriers, costs) float64 0.06701 Attributes: termination_condition: optimal objective_function_value: 277048.48266 solution_time: 1.442019 time_finished: 2022-02-07 16:54:18 calliope_version: 0.6.8-dev applied_overrides: scenario: None defaults: available_area: null\ncarrier_ratios: null\nch... allow_operate_mode: 1 model_config: calliope_version: 0.6.8\nname: National-scale ... run_config: backend: pyomo\nbigM: 1000000.0\ncyclic_storag...
array(['region1-1::power', 'region1-2::power', 'region1-3::power', 'region1::power', 'region2::power'], dtype=object)
array(['region1-1::power', 'region1-2::power', 'region1-3::power', 'region1::power', 'region2::power'], dtype=object)
array(['region1-1::free_transmission:region1::power', 'region1-2::free_transmission:region1::power', 'region1-3::free_transmission:region1::power', 'region1::ac_transmission:region2::power', 'region1::demand_power::power', 'region1::free_transmission:region1-1::power', 'region1::free_transmission:region1-2::power', 'region1::free_transmission:region1-3::power', 'region2::ac_transmission:region1::power', 'region2::battery::power', 'region2::demand_power::power'], dtype=object)
array(['region1-1::csp::power', 'region1-1::free_transmission:region1::power', 'region1-2::csp::power', 'region1-2::free_transmission:region1::power', 'region1-3::csp::power', 'region1-3::free_transmission:region1::power', 'region1::ac_transmission:region2::power', 'region1::ccgt::power', 'region1::free_transmission:region1-1::power', 'region1::free_transmission:region1-2::power', 'region1::free_transmission:region1-3::power', 'region2::ac_transmission:region1::power', 'region2::battery::power'], dtype=object)
array(['region1::demand_power', 'region2::demand_power'], dtype=object)
array(['region1-1::csp', 'region1-1::free_transmission:region1', 'region1-2::csp', 'region1-2::free_transmission:region1', 'region1-3::csp', 'region1-3::free_transmission:region1', 'region1::ac_transmission:region2', 'region1::ccgt', 'region1::free_transmission:region1-1', 'region1::free_transmission:region1-2', 'region1::free_transmission:region1-3', 'region2::ac_transmission:region1', 'region2::battery'], dtype=object)
array(['region1-1::csp', 'region1-2::csp', 'region1-3::csp', 'region1::ac_transmission:region2', 'region1::ccgt', 'region2::ac_transmission:region1', 'region2::battery'], dtype=object)
array(['region1-1::csp', 'region1-2::csp', 'region1-3::csp', 'region1::ac_transmission:region2', 'region1::ccgt', 'region2::ac_transmission:region1', 'region2::battery'], dtype=object)
array(['region1-1::csp', 'region1-1::free_transmission:region1', 'region1-2::csp', 'region1-2::free_transmission:region1', 'region1-3::csp', 'region1-3::free_transmission:region1', 'region1::ac_transmission:region2', 'region1::ccgt', 'region1::free_transmission:region1-1', 'region1::free_transmission:region1-2', 'region1::free_transmission:region1-3', 'region2::ac_transmission:region1'], dtype=object)
array(['region1-1::csp', 'region1-2::csp', 'region1-3::csp', 'region2::battery'], dtype=object)
array(['region1-1::csp', 'region1-2::csp', 'region1-3::csp'], dtype=object)
array(['ac_transmission', 'ac_transmission:region1', 'ac_transmission:region2', 'battery', 'ccgt', 'csp', 'demand_power', 'free_transmission', 'free_transmission:region1', 'free_transmission:region1-1', 'free_transmission:region1-2', 'free_transmission:region1-3'], dtype=object)
array(['monetary'], dtype=object)
array(['region2::battery', 'region2::demand_power', 'region1-1::csp', 'region1-3::free_transmission:region1', 'region1-2::free_transmission:region1', 'region1-1::free_transmission:region1', 'region1::ccgt', 'region1::ac_transmission:region2', 'region1::free_transmission:region1-1', 'region2::ac_transmission:region1', 'region1::demand_power', 'region1::free_transmission:region1-2', 'region1-3::csp', 'region1::free_transmission:region1-3', 'region1-2::csp'], dtype=object)
array(['region1-3::csp', 'region1-2::csp', 'region1-1::csp'], dtype=object)
array(['2005-01-01T00:00:00.000000000', '2005-01-01T01:00:00.000000000', '2005-01-01T02:00:00.000000000', '2005-01-01T03:00:00.000000000', '2005-01-01T04:00:00.000000000', '2005-01-01T05:00:00.000000000', '2005-01-01T06:00:00.000000000', '2005-01-01T07:00:00.000000000', '2005-01-01T08:00:00.000000000', '2005-01-01T09:00:00.000000000', '2005-01-01T10:00:00.000000000', '2005-01-01T11:00:00.000000000', '2005-01-01T12:00:00.000000000', '2005-01-01T13:00:00.000000000', '2005-01-01T14:00:00.000000000', '2005-01-01T15:00:00.000000000', '2005-01-01T16:00:00.000000000', '2005-01-01T17:00:00.000000000', '2005-01-01T18:00:00.000000000', '2005-01-01T19:00:00.000000000', '2005-01-01T20:00:00.000000000', '2005-01-01T21:00:00.000000000', '2005-01-01T22:00:00.000000000', '2005-01-01T23:00:00.000000000', '2005-01-02T00:00:00.000000000', '2005-01-02T01:00:00.000000000', '2005-01-02T02:00:00.000000000', '2005-01-02T03:00:00.000000000', '2005-01-02T04:00:00.000000000', '2005-01-02T05:00:00.000000000', '2005-01-02T06:00:00.000000000', '2005-01-02T07:00:00.000000000', '2005-01-02T08:00:00.000000000', '2005-01-02T09:00:00.000000000', '2005-01-02T10:00:00.000000000', '2005-01-02T11:00:00.000000000', '2005-01-02T12:00:00.000000000', '2005-01-02T13:00:00.000000000', '2005-01-02T14:00:00.000000000', '2005-01-02T15:00:00.000000000', '2005-01-02T16:00:00.000000000', '2005-01-02T17:00:00.000000000', '2005-01-02T18:00:00.000000000', '2005-01-02T19:00:00.000000000', '2005-01-02T20:00:00.000000000', '2005-01-02T21:00:00.000000000', '2005-01-02T22:00:00.000000000', '2005-01-02T23:00:00.000000000', '2005-01-03T00:00:00.000000000', '2005-01-03T01:00:00.000000000', '2005-01-03T02:00:00.000000000', '2005-01-03T03:00:00.000000000', '2005-01-03T04:00:00.000000000', '2005-01-03T05:00:00.000000000', '2005-01-03T06:00:00.000000000', '2005-01-03T07:00:00.000000000', '2005-01-03T08:00:00.000000000', '2005-01-03T09:00:00.000000000', '2005-01-03T10:00:00.000000000', '2005-01-03T11:00:00.000000000', '2005-01-03T12:00:00.000000000', '2005-01-03T13:00:00.000000000', '2005-01-03T14:00:00.000000000', '2005-01-03T15:00:00.000000000', '2005-01-03T16:00:00.000000000', '2005-01-03T17:00:00.000000000', '2005-01-03T18:00:00.000000000', '2005-01-03T19:00:00.000000000', '2005-01-03T20:00:00.000000000', '2005-01-03T21:00:00.000000000', '2005-01-03T22:00:00.000000000', '2005-01-03T23:00:00.000000000', '2005-01-04T00:00:00.000000000', '2005-01-04T01:00:00.000000000', '2005-01-04T02:00:00.000000000', '2005-01-04T03:00:00.000000000', '2005-01-04T04:00:00.000000000', '2005-01-04T05:00:00.000000000', '2005-01-04T06:00:00.000000000', '2005-01-04T07:00:00.000000000', '2005-01-04T08:00:00.000000000', '2005-01-04T09:00:00.000000000', '2005-01-04T10:00:00.000000000', '2005-01-04T11:00:00.000000000', '2005-01-04T12:00:00.000000000', '2005-01-04T13:00:00.000000000', '2005-01-04T14:00:00.000000000', '2005-01-04T15:00:00.000000000', '2005-01-04T16:00:00.000000000', '2005-01-04T17:00:00.000000000', '2005-01-04T18:00:00.000000000', '2005-01-04T19:00:00.000000000', '2005-01-04T20:00:00.000000000', '2005-01-04T21:00:00.000000000', '2005-01-04T22:00:00.000000000', '2005-01-04T23:00:00.000000000', '2005-01-05T00:00:00.000000000', '2005-01-05T01:00:00.000000000', '2005-01-05T02:00:00.000000000', '2005-01-05T03:00:00.000000000', '2005-01-05T04:00:00.000000000', '2005-01-05T05:00:00.000000000', '2005-01-05T06:00:00.000000000', '2005-01-05T07:00:00.000000000', '2005-01-05T08:00:00.000000000', '2005-01-05T09:00:00.000000000', '2005-01-05T10:00:00.000000000', '2005-01-05T11:00:00.000000000', '2005-01-05T12:00:00.000000000', '2005-01-05T13:00:00.000000000', '2005-01-05T14:00:00.000000000', '2005-01-05T15:00:00.000000000', '2005-01-05T16:00:00.000000000', '2005-01-05T17:00:00.000000000', '2005-01-05T18:00:00.000000000', '2005-01-05T19:00:00.000000000', '2005-01-05T20:00:00.000000000', '2005-01-05T21:00:00.000000000', '2005-01-05T22:00:00.000000000', '2005-01-05T23:00:00.000000000'], dtype='datetime64[ns]')
array(['power'], dtype='<U5')
array([ 1000. , 2909.836 , 10000. , 2280.3859, 0. , 9000. , 30000. , 3230.4729, 9000. , 3230.4729, 39033.52 , 0. , 2533.7621, 2280.3859, 0. ])
array([[ 0. , 0. , 0. , ..., 9000. , 9000. , 7998.4934], [ 0. , 0. , 0. , ..., 0. , 0. , 0. ], [ 0. , 0. , 0. , ..., 0. , 0. , 0. ], ..., [ 0. , 0. , 0. , ..., 0. , 0. , 0. ], [2254.098 , 2131.148 , 2090.164 , ..., 2459.016 , 2254.098 , 2295.082 ], [ 0. , 0. , 0. , ..., 0. , 0. , 0. ]])
array([[ 0. , 0. , 0. , ..., -9000. , -9000. , -7998.4934], [ 0. , 0. , 0. , ..., 0. , 0. , 0. ], [ 0. , 0. , 0. , ..., 0. , 0. , 0. ], ..., [ 0. , 0. , 0. , ..., 0. , 0. , 0. ], [ 0. , 0. , 0. , ..., 0. , 0. , 0. ], [-2254.098 , -2131.148 , -2090.164 , ..., -2459.016 , -2254.098 , -2295.082 ]])
array([[ 94592.428 , 0. , 0. , 0. , 9013.1214 , 0. , 487.52736, 170306.87 , 0. , 0. , 0. , 1067.1725 , 1581.3634 ]])
array([ 8486.0609, 0. , 130384.99 ])
array([244300.4 , 0. , 25300.418 , 5239.2461])
array([[0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 9.3962117e+03, 4.0969328e+04, 8.3102676e+04, 1.2515176e+05, 1.6711674e+05, 2.0067936e+05, 2.1497293e+05, 1.9763715e+05, 1.7224188e+05, 1.4689740e+05, 1.2160360e+05, 9.6360394e+04, 7.1167673e+04, 4.6025338e+04, 2.6902226e+04, 2.6848421e+04, 2.6794724e+04, 2.6741135e+04, 2.6687653e+04, 2.6634277e+04, 2.6581009e+04, 2.1391598e+04, 1.1165483e+04, 0.0000000e+00, 8.5433635e+03, 3.8940549e+04, 8.0362401e+04, 1.2241696e+05, 1.6420031e+05, 1.9716834e+05, 2.1070944e+05, 1.9375053e+05, 1.6836303e+05, 1.4302630e+05, 1.1774025e+05, 9.2504771e+04, 7.7622474e+04, 6.9301140e+04, 6.6680649e+04, 6.6547287e+04, 6.6414193e+04, 6.6281364e+04, 6.6148802e+04, 6.6016504e+04, 6.1419912e+04, 4.8877668e+04, 3.0920314e+04, 1.3068591e+04, 2.4843936e+04, 5.7829474e+04, 1.0222713e+05, 1.4738914e+05, 1.9287826e+05, 2.2932423e+05, 2.4430040e+05, 2.2820147e+05, 2.0274507e+05, 1.7733958e+05, 1.5198490e+05, 1.2922748e+05, 1.1142967e+05, 9.9914121e+04, 9.3597379e+04, 9.0654870e+04, 8.9736380e+04, 8.9556907e+04, 8.9112791e+04, 8.7147696e+04, 7.9807257e+04, 6.5511705e+04, 4.5721616e+04, 2.5616181e+04, ... 3.9417502e+03, 2.8891186e+03, 2.8459776e+03, 2.8459776e+03, 2.8459776e+03, 2.8459776e+03, 2.8459776e+03, 3.0182266e+03, 3.4854404e+03, 4.0694567e+03, 4.6924078e+03, 5.2392461e+03, 5.2392461e+03, 5.2392461e+03, 5.2392461e+03, 5.2392461e+03, 5.2392461e+03, 5.2392461e+03, 5.2392461e+03, 5.2392461e+03, 5.2392461e+03, 5.2392461e+03, 5.2392461e+03, 4.1866145e+03, 3.1339829e+03, 2.0813513e+03, 1.3756819e+03, 1.3756819e+03, 1.4924863e+03, 1.7650280e+03, 2.2322418e+03, 2.6605208e+03, 3.1277346e+03, 3.7117509e+03, 4.3347020e+03, 4.9187183e+03, 5.2392461e+03, 5.2392461e+03, 5.2392461e+03, 5.2392461e+03, 5.2392461e+03, 5.1809951e+03, 5.2392461e+03, 5.2392461e+03, 5.2392461e+03, 5.2392461e+03, 4.8761257e+03, 3.8234941e+03, 2.7708625e+03, 1.7182309e+03, 6.6559934e+02, 6.6559934e+02, 7.8240374e+02, 1.0549454e+03, 1.5221592e+03, 1.9504382e+03, 2.4176520e+03, 3.0016683e+03, 3.6246194e+03, 4.2086357e+03, 4.7537172e+03, 5.2392461e+03, 5.2392461e+03, 5.2392461e+03, 5.0313379e+03, 4.5679071e+03, 4.4949471e+03, 4.6101358e+03, 4.8623460e+03, 4.9068611e+03, 4.2105263e+03, 3.1578947e+03, 2.1052632e+03, 1.0526316e+03, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00]])
array([[ 0. , 0. , 0. , 0. , 0. , 0. , 0. , 2745.9078 , 34396.212 , 56591.909 , 67215.287 , 67215.287 , 67215.287 , 58896.855 , 39694.927 , 8094.1697 , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 2446.8047 , 33543.364 , 55414.272 , 66499.734 , 67215.287 , 67028.184 , 58296.432 , 38935.435 , 8462.5073 , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 3019.5859 , 34416.682 , 56468.826 , 67215.287 , 67215.287 , 67215.287 , 59079.655 , 40230.158 , 9389.6749 , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 2515.3872 , 33430.841 , 54433.125 , 66796.751 , 67215.287 , 67215.287 , 56210.403 , 38135.653 , 9638.4495 , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , ... 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 1048.7753 , 2291.9577 , 2291.9577 , 1792.3494 , 963.51583, 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 231.42337, 1502.7795 , 2291.9577 , 2291.9577 , 2053.6946 , 943.08989, 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 266.97147, 1430.071 , 2197.4739 , 2100.5801 , 1012.7265 , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 123.98135, 1010.2825 , 2066.4661 , 2123.3312 , 1007.219 , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ]])
array([67215.287 , 0. , 2291.9577])
array([[[ 0. , 0. , 0. , ..., 18. , 18. , 15.996987], [ 0. , 0. , 0. , ..., 0. , 0. , 0. ], [ 0. , 0. , 0. , ..., 0. , 0. , 0. ], ..., [ 0. , 0. , 0. , ..., 0. , 0. , 0. ], [ 0. , 0. , 0. , ..., 0. , 0. , 0. ], [ 4.508196, 4.262296, 4.180328, ..., 4.918032, 4.508196, 4.590164]]])
array([[93167.592 , 0. , 8986.0727 , 487.52736, 33955.913 , 487.52736, 1581.3634 ]])
array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])
array([[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ... 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.29999999e-05, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.00000002e-05, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]])
array([[-25284.48 , -24387.44 , -23730.656, -23123.04 , -23119.6 , -23683.28 , -24364.72 , -25249.968, -26090.208, -26870.464, -27096.64 , -27001.568, -27097.136, -27438.192, -28622.992, -30166.272, -31613.12 , -31965.28 , -31139.792, -30229.456, -29165.616, -27508.704, -26001.632, -25050.672, -24391.136, -24143.888, -24237.76 , -24841.728, -26832.752, -29293.6 , -31062.336, -32192.288, -32969.296, -33562.496, -33535.504, -33355.728, -33234.144, -33526. , -34474.864, -35769.216, -36819.424, -36838.016, -35330.4 , -33791.248, -32205.2 , -30046.832, -28241.6 , -27086.592, -26405.408, -26148.112, -26243.968, -26815.568, -29051.792, -31915.536, -33825.792, -34791.312, -35248.512, -35543.136, -35327.968, -35020.832, -34918.768, -35260.944, -36226.224, -37500.768, -38467.44 , -38202.432, -36510. , -34852.768, -33083.696, -30834.896, -28971.616, -27761.44 , -27034.912, -26741.904, -26864.928, -27412.8 , -29627.424, -32533.488, -34473.6 , -35410.48 , -35833.568, -36172.144, -35937.632, -35691.072, -35608.112, -35839.488, -36705.744, -37945.824, -38961.968, -38735.024, -37059.04 , -35364.128, -33644.608, -31305.44 , -29363.632, -28084.144, -27373.728, -27105.712, -27225.792, -27813.312, ... -2622.95 , -2459.016, -2254.098, -2295.082, -2254.098, -2131.148, -2090.164, -2131.148, -2172.132, -2172.132, -2213.114, -2295.082, -2459.016, -2459.016, -2418.032, -2418.032, -2377.05 , -2336.066, -2295.082, -2459.016, -2909.836, -2868.852, -2786.886, -2745.902, -2622.95 , -2459.016, -2254.098, -2295.082, -2254.098, -2131.148, -2090.164, -2131.148, -2172.132, -2172.132, -2213.114, -2295.082, -2459.016, -2459.016, -2418.032, -2418.032, -2377.05 , -2336.066, -2295.082, -2459.016, -2909.836, -2868.852, -2786.886, -2745.902, -2622.95 , -2459.016, -2254.098, -2295.082, -2254.098, -2131.148, -2090.164, -2131.148, -2172.132, -2172.132, -2213.114, -2295.082, -2459.016, -2459.016, -2418.032, -2418.032, -2377.05 , -2336.066, -2295.082, -2459.016, -2909.836, -2868.852, -2786.886, -2745.902, -2622.95 , -2459.016, -2254.098, -2295.082, -2254.098, -2131.148, -2090.164, -2131.148, -2172.132, -2172.132, -2213.114, -2295.082, -2459.016, -2459.016, -2418.032, -2418.032, -2377.05 , -2336.066, -2295.082, -2459.016, -2909.836, -2868.852, -2786.886, -2745.902, -2622.95 , -2459.016, -2254.098, -2295.082]])
array([[93167.5923743 , 0. , 8986.07268515, 487.52735843, 33955.91266131, 487.52735843, 1581.36340429]])
array([[[ 0. , 0. , 0. , ..., 18. , 18. , 15.9969868], [ 0. , 0. , 0. , ..., 0. , 0. , 0. ], [ 0. , 0. , 0. , ..., 0. , 0. , 0. ], ..., [ 0. , 0. , 0. , ..., 0. , 0. , 0. ], [ 0. , 0. , 0. , ..., 0. , 0. , 0. ], [ 4.508196 , 4.262296 , 4.180328 , ..., 4.918032 , 4.508196 , 4.590164 ]]])
array([[0. , 0. , 0. , ..., 0. , 0.697761 , 0. ], [0. , 0. , 0. , ..., 0. , 0.65970156, 0. ], [0. , 0. , 0. , ..., 0. , 0.64701487, 0. ], ..., [0.9 , 0. , 0. , ..., 0. , 0.76119382, 0. ], [0.9 , 0. , 0. , ..., 0. , 0.697761 , 0. ], [0.79984934, 0. , 0. , ..., 0. , 0.71044769, 0. ]])
array([[ nan, 0.74762675, 0. , 0.13173452, 0.94688162, 0.48265792, nan, nan, 0. , 0.65964629, inf, 0.04942274]])
array([[[ nan, 0.00368216, inf, 0.10003474, 0.04996133, 0.1427187 , nan, nan, nan, 0. , 0. , 0. ]]])
array([[0.06700544]])
# We can sum power output over all locations and turn the result into a pandas DataFrame
df_power = model.get_formatted_array('carrier_prod').loc[{'carriers':'power'}].sum('locs').to_pandas().T
#The information about the dataframe tells us about the amount of data it holds in the index and in each column
df_power.info()
<class 'pandas.core.frame.DataFrame'> DatetimeIndex: 120 entries, 2005-01-01 00:00:00 to 2005-01-05 23:00:00 Data columns (total 9 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 ac_transmission:region1 120 non-null float64 1 ac_transmission:region2 120 non-null float64 2 battery 120 non-null float64 3 ccgt 120 non-null float64 4 csp 120 non-null float64 5 free_transmission:region1 120 non-null float64 6 free_transmission:region1-1 120 non-null float64 7 free_transmission:region1-2 120 non-null float64 8 free_transmission:region1-3 120 non-null float64 dtypes: float64(9) memory usage: 13.4 KB
# Using .head() to see the first few rows of power generation and demand
# Note: power output in ac_transmission:region1 is power received by the high voltage line at any location connected to `r1`
df_power.head()
techs | ac_transmission:region1 | ac_transmission:region2 | battery | ccgt | csp | free_transmission:region1 | free_transmission:region1-1 | free_transmission:region1-2 | free_transmission:region1-3 |
---|---|---|---|---|---|---|---|---|---|
timesteps | |||||||||
2005-01-01 00:00:00 | 2254.098 | 0.0 | 0.0 | 27936.360 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
2005-01-01 01:00:00 | 2131.148 | 0.0 | 0.0 | 26894.673 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
2005-01-01 02:00:00 | 2090.164 | 0.0 | 0.0 | 26189.672 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
2005-01-01 03:00:00 | 2131.148 | 0.0 | 0.0 | 25630.273 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
2005-01-01 04:00:00 | 2172.132 | 0.0 | 0.0 | 25675.049 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
# We can plot this by using the timeseries plotting functionality.
# The top-left dropdown gives us the chance to scroll through other timeseries data too.
model.plot.timeseries()
[2022-02-07 16:54:19] WARNING /Users/brynmorp/Repos/calliope-project/calliope/calliope/postprocess/plotting/plotting.py:105: FutureWarning: Plotting will no longer be available as a method of the Calliope model object infuture versions of Calliope. In the meantime, as of v0.6.6, plotting is untested; this functionality should now be used with caution. We expect to reintroduce it as a seperate module in v0.7.0.