Release v0.7.0.dev2 #554
brynpickering
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
v0.7 includes a major change to how Calliope internally operates.
Along with this, there are multiple changes to how Calliope models are defined and configured.
This requires adapting models to work with v0.7.
Due to the scale of these changes, we are staging the development with a series of pre-releases for users to test the functionality.
Below is a summary of the changes made in this pre-release. For more detail on the changes in v0.7 compared to v0.6, see our page on migrating between the two in our documentation.
|new| Storage buffers available in all technology base classes.
|new| Multiple carriers and different carriers in/out available in all technology base classes.
|new|
node_groups
added to matchtech_groups
.|new| technology efficiencies split into inflow and outflow efficiencies.
|new| Technology capacities and efficiencies can be differentiated between technology carriers.
|new| Parameters can be defined outside the scope of
nodes
andtechs
using the top-levelparameters
key in YAML.|new| Any parameters can be indexed over arbitrary dimensions, both core Calliope dimensions and new, user-defined dimensions.
|new| Non-timeseries data can be loaded from CSV files or in-memory Pandas DataFrames using the top-level
data_sources
key in YAML.|new| User-defined mathematical formulations using the new Calliope math syntax can be loaded when creating a model.
|new| Shadow prices obtained from a dual LP problem can be read by using
model.backend.shadow_prices.get("constraint_name")
.|changed| |backwards-incompatible| Updated to support Python versions >= 3.10.
|changed| |backwards-incompatible| Updated to Pandas >= v2.1, Pyomo >= v6.4, Xarray >= v2023.10.
|changed| |backwards-incompatible| Flat technology definitions, removing the distinction between
essentials
,constraints
andcosts
.|changed| |backwards-incompatible| Timeseries data is defined under the
data_sources
top-level key, not withfile=
/df=
at the technology level.|changed| |backwards-incompatible| Demand and carrier consumption values are strictly positive instead of strictly negative.
|changed| |backwards-incompatible|
model.run()
method → two-stagemodel.build()
+model.solve()
methods.|changed| |backwards-incompatible|
model
andrun
top-level keys →config.init
/.build
/.solve
.|changed| |backwards-incompatible|
locations
top-level key andloc
data dimensions →nodes
.|changed| |backwards-incompatible|
parent
technology parameter →base_tech
+inherit
.|changed| |backwards-incompatible| Cost parameters are flattened and use the indexed parameter syntax.
|changed| |backwards-incompatible|
links
top-level key → transmission links defined intechs
.|changed| |backwards-incompatible| Various parameters/decision variables renamed (namely
energy_
→flow_
,carrier_prod
/_con
→flow_out
/_in
, andresource
→source_use
/sink_use
).|changed| |backwards-incompatible| Various configuration options renamed.
|changed| |backwards-incompatible|
force_resource
technology parameter →source_use_equals
/sink_use_equals
.|changed| |backwards-incompatible|
units
+purchased
decision variables →purchased_units
.|changed| |backwards-incompatible| Parameters added to explicitly trigger MILP and storage decision variables/constraints.
|changed| |backwards-incompatible| Structure of input and output data within a Calliope model updated to remove concatenated
loc::tech::carrier
sets and technology subsets (e.g.techs_supply
) in favour of sparse arrays indexed over core dimensions only (nodes
,techs
,carriers
,timesteps
).|changed| |backwards-incompatible|
coordinates.lat
/lon
node parameter →latitude
/longitude
.|changed| |backwards-incompatible| Distance units default to kilometres and can be reverted to metres with
config.init.distance_unit
.|changed| |backwards-incompatible|
operate
mode input parameters now expected to matchplan
mode decision variable names (e.g.,flow_cap
).|changed| |backwards-incompatible| Cyclic storage is defined per-technology, not as a top-level configuration option.
|changed| Documentation has been overhauled.
|removed|
_equals
constraints.Use both
_min
and_max
constraints to the same value.|removed|
x
/y
coordinates.Use geographic lat/lon coordinates (in
EPSG:4326
projection) instead.|removed| Comma-separated node definitions.
Inheriting duplicate definitions from
node_groups
instead.|removed|
supply_plus
andconversion_plus
technology base classes.Use
supply
andconversion
technology base classes instead.|removed|
carrier
key.Use
carrier_in
andcarrier_out
instead.|removed|
carrier_tiers
andcarrier_ratios
.Use indexed parameter definitions for
flow_out_eff
and custom math instead.|removed|
calliope.Model.get_formatted_array
.The Calliope internal representation of data now matches the format achieved by calling this method in v0.6.
|removed| Group constraints.
Use custom math instead.
|removed| Configuration options for features we no longer support.
|removed| Plotting.
See our documentation for example of how to visualise your data with Plotly.
|removed| Clustering.
Cluster your data before creating your Calliope model.
Mapping of timeseries dates to representative days is still possible.
This discussion was created from the release Release v0.7.0.dev2.
Beta Was this translation helpful? Give feedback.
All reactions