Post Processing
Tessif’s Post Processing Template and Utilitiy.
Transforming (optimized) energy systems to mappings.
ESTransformer defines an abstract base
class serving as template. Down the lineage the energy system transformer
family then divides into a triangular like structure:
A
Resultierbranch which is a set of classes being responsible for extracting result like information and mapping them to the respective node uid string representation. They serve as interface to post processing utilities further down the chain.A
Formatierbranch which is a set of classes being responsible for generating format like information and mapping them to the respective node uid string representation.They are all descendants of resultiers. They serve as interface for visualizing utilities further down the post processing chain.
A
Hybridierbranch which combines specific result and format results mapped to node uid string representations.They serve as specific post processing routines mainly for developing certain kinds of diagrams. See for example the
ICRHybridierin conjunction withtessif.analyze.Comparatier.ICR_graphs.
- class tessif.post_process.ESTransformer(optimized_es, **kwargs)[source]
Bases:
abc.ABCAbstract base class for the energy system transformer family.
All attributes needed to ensure framework compatibility are exposed here. Takes an optimized energy system instance and works its magic on it.
Calls:
_map_nodes()_map_edges()
- Parameters
optimized_es¶ – Optimized energy system model.
- defaults = {}
Dictionary of node and edge attribute defaults. Used by all attribute aggregating utilities throughout this framework to fill in attribute defaults instead of None.
- property nodes
Mapped system model nodes.
Containerof energy system component string representations interpretable as nodes.
- property uid_nodes
Mapped node uids.
Mappingof energy system component uids (interpretable as nodes) to their node uid string representation.
- property edges
Mapped system-model edges.
Containerof energy system component string representations interpretable as edges.
- property inbounds
Mappend inbound nodes.
Mappingof a list of inbound nodes (in fact their uid string representations) to the node (in fact its uid string representations) being the target of the inbounds.Meaning, for an energy system like
1 -> 2 <-3, this mapping would look likeinbounds['1'] == [] inbounds['2'] == ['1', '3']
- property outbounds
Mapped outbound nodes.
Mappingof a list of outbound nodes (in fact their uid string representations) to the node (in fact its uid string representations) being the source of the outbounds.Meaning, for an energy system like
1 <- 2 -> 3, this mapping would look likeoutbounds['1'] == [] outbounds['2'] == ['1', '3']
- node_data()[source]
Map node parameter to its attribute name.
Function to get a ready to use dictionary of node attribute names and parameters as expected by other utilities throughout this framework.
- Returns
attributes – Dictionary of node attributes and parameters as generated by this object provided all node attributes are of type
propertyand contain node_ as well as not contain _node in its name.Refer to
XmplResultierto see how this implementation works out.- Return type
Note
This assumes the naming convention is honored in that all node attributes are properties and contain node_ as well as not contain _node in their name. In fact being properties is not really necessary but a good practice anyways though.
- edge_data()[source]
Map edge parameter to its attribute name.
Function to get a ready to use dictionary of edge attribute names and parameters as expected by other utilities throughout tessif.
- Returns
attributes – Dictionary of edge attributes and parameters as generated by this object provided all edge attributes are of type
propertyand contain edge_ as well as not contain _edge in its name.Refer to
XmplResultierto see how this implementation works out.- Return type
Note
This assumes the naming convention is honored in that all edge attributes are properties and contain edge_ as well as not contain _edge in their name. In fact being properties is not really necessary but a good practice anyways though.
- class tessif.post_process.XmplResultier(optimized_es=None, **kwargs)[source]
Bases:
tessif.post_process.ESTransformerAn exemplary resultier like child of
ESTransformer.Serves as show case on how to use Resultier type objects when interfacing with other utilities in this framework. Often used in doctest like examples throughout the project. Therefor it needs to be independent of an optimized energy system. (Which is totally not what this family of classes is all about)
See
OmfNetResultierfor a real use case example.Example
Recreating the
XmplResultierto demonstrate a minimum working example. See the respective documentation below this example.>>> from tessif.transform.es2mapping.base import ESTransformer >>> class XmplResultier2(ESTransformer): ... def __init__(self, optimized_es=None): ... super().__init__(optimized_es=optimized_es) ... self._node_attr_xmpl = 'red' ... self._edge_attr_xmpl = { ... edge: sum(tuple(map(int, edge))) for edge in self.edges} ... ... def _map_nodes(self, optimized_es): ... return ['1', '2', '3'] ... ... def _map_node_uids(self, optimized_es): ... return ['1', '2', '3'] ... ... def _map_edges(self, optimized_es): ... return [('1', '2'), ('2', '3'), ('3', '1')] ... ... @property ... def node_attr_xmpl(self): return self._node_attr_xmpl ... ... @property ... def edge_attr_xmpl(self): return self._edge_attr_xmpl ... >>> XR = XmplResultier2() >>> print(XR.nodes) ['1', '2', '3'] >>> print(XR.edges) [('1', '2'), ('2', '3'), ('3', '1')] >>> print(XR.node_data()) {'node_attr_xmpl': 'red'} >>> print(XR.edge_data()) {'edge_attr_xmpl': {('1', '2'): 3, ('2', '3'): 5, ('3', '1'): 4}}
- property node_attr_xmpl
Exemplary node attribute. Makes every node red.
Note
Remember that
node_data()only detects attributes containing node_ and not containing _node in their name.
- property edge_attr_xmpl
Example edge attribute.
Calculates the sum of the edge nodes. Emulates “
optimized_esdependent logic”Note
Remember that
edge_data()only detects attributes containing edge_ and not containing _edge in their name.
- class tessif.post_process.Resultier(optimized_es, **kwargs)[source]
Bases:
tessif.post_process.ESTransformerTransform nodes and edges into their name representation.
Child of ESTransformer and mother of all model specific resultiers.
- Parameters
optimized_es¶ – Optimized energy system model.
- class tessif.post_process.IntegratedGlobalResultier(optimized_es, **kwargs)[source]
Bases:
tessif.post_process.ResultierMap integrated global results.
Extracting the integrated global results out of the energy system and conveniently aggregating them (rounded to unit place) inside a dictionary keyed by result name.
- Parameters
optimized_es¶ – Optimized energy system model.
See also
For examples check one of the plugin specific LoadResultier children like, e.g..:
es2mapping.omf.IntegratedGlobalResultier.- property global_results
Integrated global results (IGR) mapped by result name.
Integrated global results currently consist of meta and non-meta results. the meta results are handled by the:mod:~tessif.analyze module and consist of:
timememory
results, whereas the non-meta results consist of:
emissionscosts
results. The befornamed strings serve as key inside the mapping.
- class tessif.post_process.ScaleResultier(optimized_es, **kwargs)[source]
Bases:
tessif.post_process.ResultierExtract number of constraints and store them as int.
- Parameters
optimized_es¶ – Optimized energy system model.
See also
For examples check one of the plugin specific ScaleResultier children like
es2mapping.omf.ScaleResultier.- property number_of_constraints
Number of constraints describing the system model’s opt problem.
- class tessif.post_process.LoadResultier(optimized_es, **kwargs)[source]
Bases:
tessif.post_process.ResultierTransform flow results into dictionaries keyed by node.
- Parameters
optimized_es¶ – Optimized energy system model.
See also
For examples check one of the plugin specific LoadResultier children like, e.g..:
es2mapping.omf.LoadResultier.- property node_load
Mapped flow results.
Timeseries flow results mapped to their node uid representation.
Mapped are
pandas.DataFrameobjects containing:Inbound flows as negative values
Outbound flows as positive values
The mapped-to node uid representation as
pandas.DataFrame.columns.nameIn- or outbound node uid representation as
column names
- property node_inflows
Map inflow results to uid representations.
Incoming timeseries flow results as positive values mapped to their node uid representation.
Mapped are
pandas.DataFrameobjects containing:The mapped-to node uid representation as
pandas.DataFrame.columns.nameInbound node uid representation as
column names
- property node_outflows
Mapped outflow results to uid representations.
Outgoing timeseries flow results as positive values mapped to their node uid representation.
Mapped are
pandas.DataFrameobjects containing:The mapped-to node uid representation as
pandas.DataFrame.columns.nameOutbound node uid representation as
column names
- property node_summed_loads
Mapped summed load results to uid representations.
Summed timeseries flow results mapped to their node uid representation.
Mapped are
pandas.Seriesobjects containing:Inbound flows as positive values for sinks
Outbound flows as positive values for all other components
- class tessif.post_process.CapacityResultier(optimized_es, **kwargs)[source]
Bases:
tessif.post_process.ResultierTransforming installed capacity results dictionaries keyed by node.
- Parameters
See also
For examples check one of the plugin specific CapacityResultier children like, e.g..:
es2mapping.omf.CapacityResultier.- property node_installed_capacity
Mapped installed capacities to node uid representations.
Installed capacities of the energy system components mapped to their node uid representation.
Components of variable size have an installed capacity as stated in
tessif.frused.defaults.energy_system_nodes.\(P_{cap}= \text{installed capacity}\)
- property node_original_capacity
Mapped original capacities to node uid representations.
Installed pre-optimization capacities of the energy system components mapped to their node uid representation.
Components of variable size have an installed capacity as stated in
tessif.frused.defaults.energy_system_nodes.\(P_{origcap}= \text{installed capacity}\)
- property node_expansion_costs
Mapped expansion costs to node uid representations.
Installed capacity expansion costs for components mapped to their node uid representation.
- property node_characteristic_value
Mapped characteristic values to node uid representations.
Characteristic values of the energy system components mapped to their node uid representation.
Components of variable size or have a characteristic value as stated in
tessif.frused.defaults.energy_system_nodes.Characteristic value in this context means:
\(cv = \frac{\text{characteristic flow}} {\text{installed capacity}}\) for:
SourceobjectsSinkobjectsTransformerobjects
\(cv = \frac{\text{mean}\left(\text{SOC}\right)} {\text{capacity}}\) for:
Storage
Characteristic flow in this context means:
mean(LoadResultier.node_summed_loads)SourceobjectsSinkobjects
mean(0th outflow)for:Transformerobjects
The node fillsize of the advanced system visualization scales with the characteristic value. If no capacity is defined (i.e for nodes of variable size, like busses or excess sources and sinks, node size is set to it’s default (
nxgrph_visualize_defaults[node_fill_size]).
- property node_reference_capacity
Mapped reference capacities to node uid representations.
The systems reference capacity, most often used as scaling factor.
Usually the highest installed capacity throughout the energy system.
- property load_resultier
Used load resultier.
Plugin specific
LoadResultier, used for calculating thecharacteristic values.
- class tessif.post_process.StorageResultier(optimized_es, **kwargs)[source]
Bases:
tessif.post_process.ResultierTransforming storage results into dictionaries keyed by node.
- Parameters
optimized_es¶ – Optimized energy system model.
See also
For examples check one of the plugin specific StorageResultier children like, e.g..:
es2mapping.omf.StorageResultier.- property node_soc
Mapped state of charge results.
Node uid representation to state of charge (soc) mapping for all storages of the energy system.
- class tessif.post_process.NodeCategorizer(optimized_es, **kwargs)[source]
Bases:
tessif.post_process.ResultierCategorizing the nodes of an optimized oemof energy system.
Categorization utilizes
Uid.Nodes are categorized by:
- Parameters
optimized_es¶ – Optimized energy system model.
See also
For examples check one of the plugin specific NodeCategorizer children like, e.g.:
es2mapping.omf.NodeCategorizer.- groupings = {'components': 'component', 'energy_carriers': 'carrier', 'node_types': 'node_type', 'regions': 'region', 'sectors': 'sector'}
Groupings used to generate mappings of
Uidattributes. Meaning forcomponents: componenta property calledcomponent_groupedwill be generated using thecomponentattribute.
- categories = {'carriers': ['carrier'], 'coordinates': ['latitude', 'longitude']}
Categories of attributes that are mapped directly to each node uid representation of the energy system.
Meaning for an energy system like
1 -> 2 <-3, this mapping could look like{'1': 'wind', '2': 'electricity', '3': 'solar'}
for the
carriercategory.
- property node_components
Mapped component identifiers to node uid representations.
component identifiers of each node present in the energy system mapped to their node uid representation <Labeling_Concept>.
- property node_coordinates
Mapped coordinates to node uid representations.
Latitudeandlongitudeof each node present in the energy system mapped to their node uid representation <Labeling_Concept>.
- property node_region_grouped
Mapped region identifiers to node uid representations.
Node uid representations grouped by
region(i.e “World” “South” “Antinational”).
- property node_sector_grouped
Mapped sector identifiers to node uid representations.
Node uid representations of the nodes present in the energy system grouped by energy
sector(i.e “Power” “Heat” “Mobility” “Coupled”).
- property node_type_grouped
Mapped component type identifiers to node uid representations.
Node uid representations of the energy system’s nodes grouped by
node_type(arbitrary classification, i.e. “Combined_Cycle”, “Renewable”, …)
- property node_carrier_grouped
Mapped carrier identifiers to node uid representations.
Node uid representations of the energy system’s nodes grouped by energy
carrier. (i.e. “Electricity”, “Gas”, “Water”).
- property node_energy_carriers
Mapped energy carrier identifiers to node uid representations.
Energy
carriermapped to the node uid representations of the nodes present in the energy system.
- class tessif.post_process.FlowResultier(optimized_es, **kwargs)[source]
Bases:
tessif.post_process.ResultierTransforming flow results into dictionaries keyed by edges.
- Parameters
optimized_es¶ – Optimized energy system model.
See also
For examples check one of the plugin specific FlowResultier children like, e.g.:
es2mapping.omf.FlowResultier.- property edge_net_energy_flow
Mapped net energy flow results.
Time integrated flow results mapped to the respective
Edges.\(\sum\limits_{t} \text{flow}\left(Edge\right)\)
- property edge_total_costs_incurred
Mapped total cost results.
Energy specific flow costs mapped to the respective
Edges.\(c_{\text{flow}}\) ins \(\frac{\text{cost unit}}{\text{energy unit}}\)
- property edge_total_emissions_caused
Mapped total emission results.
Energy specific emissions mapped to the respective
Edges.\(e_{\text{flow}}\) in \(\frac{\text{emission unit}}{\text{energy unit}}\)
- property edge_specific_flow_costs
Mapped specific flow costs.
Energy specific flow costs mapped to the respective
Edges.\(c_{\text{flow}}\) in \(\frac{\text{cost unit}}{\text{energy unit}}\)
- property edge_specific_emissions
Mapped specific emission results.
Energy specific emissions mapped to the respective
Edges.\(e_{\text{flow}}\) in \(\frac{\text{emission unit}}{\text{energy unit}}\)
- property edge_weight
Mapped edge weights.
Edge weights mapped to the respective
Edges.Edges are weighed by specific costs, scaled by maximum costs present. The more expensive, the heavier.
Edge weights can for example be used during
visualizationor for finding shortest paths .
- property edge_len
Mapped edge len results.
- property edge_reference_emissions
Reference emissions.
- property edge_reference_net_energy_flow
Reference net energy flow.
- class tessif.post_process.LabelFormatier(optimized_es, **kwargs)[source]
Bases:
tessif.post_process.ResultierGenerate component summaries as multiline label dictionary entries.
- Parameters
optimized_es¶ – Optimized energy system model.
- property node_summaries
Mapped node summaries.
Multiline node summary strings mapped to their node uid representation. Useful for certain on-the-fly debug / testing applications. (See
tessif.visualize.nxgrph.draw_numerical_representation())Summary consists of:
NameInstalled capacity\(P_{cap}\)Characteristic value\(C_f\)
- property edge_summaries
Mapped edge summaries.
Multiline edge summary strings mapped to their
EdgeUseful for certain on-the-fly debug/testing applications. (Seetessif.visualize.nxgrph.draw_numerical_representation())Summary consists of:
Net energy flow\(\sum\limits_t\)Specific flow costs\(c_{\text{flow}}\)Specific emissions\(e_{\text{flow}}\)
- class tessif.post_process.MplLegendFormatier(optimized_es, cgrp='all', markers='formatier', **kwargs)[source]
Bases:
tessif.post_process.ResultierGenerating visually enhanced matplotlib legends for nodes and edges.
- Parameters
optimized_es¶ – Optimized energy system model.
Which group of color attribute(s) to return. One of:
{'name', 'carrier', 'sector'}
Color related attributes are grouped by
tessif.frused.namedtuples.NodeColorGroupingsand are thus returned as atyping.NamedTuple. Certain api functionalities expect those attributes to be dicts. (Usually those working only onESTransformerinput). Use this parameter on Formatier creation to provide the expected dictionary.markers¶ (str, default='formatier') –
What marker to use for legend entries. Either
'formatier'or one of thematplotlib.markers.If
'formatier'is used, markers will be inferred fromNodeFormatier.node_shape.
- property node_legend
Color grouped matplotlib legend attributes mapped to their parameter.
Grouping utilizes
NodeColorGroupings. Available groupings are:
- property node_style_legend
Mapped node style legend.
Matplotlib legend attributes mapped to their parameters to describe
fency node styles. Fency as in:variable node size being outer fading circles
cycle filling being proportional capacity factors
outer diameter being proportional installed capacities
- property edge_style_legend
Mapped edge style legend.
Matplotlib legend attributes mapped to their parameters to describe the chosen edge style. Current style represents:
net energy flow being proportional to edge width
specific_emissions being proportional to darkness
specific flow costs being proportional to edge length
- class tessif.post_process.NodeFormatier(optimized_es, cgrp='name', drawutil='nx', **kwargs)[source]
Bases:
tessif.post_process.ResultierTransforming energy system results into node visuals.
- Parameters
optimized_es¶ – Optimized energy system model.
Which group of color attribute(s) to return. One of:
{'name', 'carrier', 'sector'}
Color related attributes are grouped by
tessif.frused.namedtuples.NodeColorGroupingsand are thus returned as atyping.NamedTuple. Certain api functionalities expect those attributes to be dicts. (Usually those working only onESTransformerinput). Use this parameter on Formatier creation to provide the expected dictionary.drawutil¶ (str, default='nx') – Which drawuing utility backend to format node size, fil_size and shape to.
'dc'forplotly-dash-cytoscapeor'nx'fornetworkx-matplotlib.
- property node_shape
Mapped node shapes to uid representations.
Nodes shapes mapped to their respective node uid representation.
bus
o
solar
s
connector
o
storage
s
commodity_source
o
transformer
8
default_source
o
wind
h
sink
8
- property node_size
Mapped node sizes to uid representations.
Scaled node sizes mapped to their respective node uid representation.
Scaled by:
\(\frac{\text{installed capacity}}{\text{reference capacity}} \ \cdot\)
self.defaults['node_size'].Nodes of variable size will be set to default size.
installed capacityandreference capacityare evaluated usingCapacityResultieronoptimized_es.
- property node_fill_size
Mapped node fill sizes to uid representations.
Scaled node sizes mapped to their respective node uid representation.
Scaled using:
\(\text{capacity factor} \ \cdot\)
self.defaults['node_size']Nodes fillings of variably sized nodes will be set to default size.
installed capacityis evaluated usingCapacityResultieronoptimized_es.
- property node_color
Mapped node colors to uid representations.
Grouped node colors mapped to their respective node uid representation.
Grouping utilizes
NodeColorGroupings. Available groupings are:- Returns
node_colors – Depending on
cgrpeither all groupings are returned as atyping.NamedTupleor a single grouping asdictionary.- Return type
- property node_color_maps
Mapped node color maps to uid representations.
Same as
node_colorwithcolor mapsthat are cycled through for each member of the group.- Returns
node_color_maps – Depending on
cgrpeither all groupings are returned as atyping.NamedTupleor a single grouping asdictionary.- Return type
- class tessif.post_process.EdgeFormatier(optimized_es, drawutil='nx', cls=None, **kwargs)[source]
Bases:
tessif.post_process.ResultierTransforming energy system results into edge visuals.
- Parameters
optimized_es¶ – Optimized energy system model.
drawutil¶ (str, default='nx') – Which drawuing utility backend to format node size, fil_size and shape to.
'dc'forplotly-dash-cytoscapeor'nx'fornetworkx-matplotlib.2-Tuple /
CLS namedtupledefining the relative flow cost thresholds and the respective style specifications. Used to map specific flow costs to edge line style representations.If
None, default implementation is used based ondrawutil.For
drawutil='nx'Networkx-Matplotlib:cls = ([0, .33, .66], ['dotted', 'dashed', 'solid'])
For
drawutil='dc'Dash-Cytoscape styles are used:cls = ([0, .33, .66], ['dotted', 'dashed', 'solid'])
Translating to all edges of relative specific flows costs, between
0and.33are correlated to have a':'/'dotted'linestyle.
- property edge_width
Edge widths mapped to their respective Edges.
Widths are scaled with the edge’s energy flow. The bigger the flow, the wider the edge.
- property edge_color
Edge colors mapped to their respective Edge.
Greyscale is scaled with emissions. The less gray, the less emissions.
- property edge_linestyle
Edge line style mapped to their respective Edge.
Styles correlated specific
flow_coststo thresholds as defined during instance ceation. The less expansive, the less solid the line style.
- class tessif.post_process.ICRHybridier(optimized_es, node_formatier, edge_formatier, mpl_legend_formatier, **kwargs)[source]
Bases:
tessif.post_process.ResultierHybrid Resultier and Formatier.
Aggregate numerical and visual information for drawing the advanced system visualization.
- Parameters
optimized_es¶ – Optimized energy system model.
- property edge_color
Edge colors mapped to their Edge names.
The edge greyscale of the advanced system visualization scales with the specific emissions.
- property edge_len
Edge length mapped to their Edge names.
The edge length of the advanced system visualization scales with the specific flow costs.
- property edge_weight
Edge length mapped to their Edge names.
The edge length of the advanced system visualization scales with the specific flow costs.
- property edge_net_energy_flow
Mapped net energy flows.
Return sum of time series flow results mapped to
Edges.\(\sum\limits_{t} \text{flow}\left(Edge\right)\)
The edge width of the advanced system visualization scales with the net energy flow.
- property edge_specific_flow_costs
Mapped flow costs.
Return energy specific flow costs mapped to
Edges.\(c_{\text{flow}}\) in \(\frac{\text{cost unit}}{\text{energy unit}}\)
The edge length of the advanced system visualization scales with the specific flow costs.
- property edge_specific_emissions
Mapped specific emissions.
Return energy specific emissions mapped to
Edges.\(e_{\text{flow}}\) in \(\frac{\text{emission unit}}{\text{energy unit}}\)
The edge greyscale of the advanced system visualization scales with the specific emissions.
- property edge_width
Edge widths mapped to their Edge names.
The edge width of the advanced system visualization scales with the net energy flow.
- property node_characteristic_value
Mapped characteristic values.
Characteristic values of the energy system components mapped to their node uid representation.
Components of variable size or have a characteristic value as stated in
tessif.frused.defaults.energy_system_nodes.Characteristic value in this context means:
\(cv = \frac{\text{characteristic flow}} {\text{installed capacity}}\) for:
ConnectorobjectsSourceobjectsSinkobjectsTransformerobjects
\(cv = \frac{\text{mean}\left(\text{SOC}\right)} {\text{capacity}}\) for:
Storage
Characteristic flow in this context means:
mean(LoadResultier.node_summed_loads)SourceobjectsSinkobjects
mean(0th outflow)for:Transformerobjects
The node fillsize of the advanced system visualization scales with the characteristic value.
If no capacity is defined (i.e for nodes of variable size, like busses or excess sources and sinks, node size is set to it’s default (
nxgrph_visualize_defaults[node_fill_size]).
- property node_color
Grouped node colors mapped to their node names.
Grouping utilizes
NodeColorGroupings. Available groupings are:
- property node_installed_capacity
Mapped installe capacities.
Return the installed capacities of the energy system components as mapping keyed by node label. Components of variable size have an installed capacity of None
\(P_{cap}= \text{installed capacity}\)
The node size of the advanced system visualization scales with the installed capacity.
If no capacity is defined (i.e for nodes of variable size, like busses or excess sources and sinks, node size is set to it’s default (
nxgrph_visualize_defaults[node_size]).
- property node_shape
Nodes shapes mapped to their node names.
Node shape mapping ‘default_source’
‘o’
‘bus’
‘o’
‘commodity_source’
‘o’
‘transformer’
‘8’
‘solar’
‘s’
‘sink’
‘8’
‘wind’
‘h’
storage
s
- property node_size
Scaled node sizes mapped to their node names.
Scaled by:
\(\frac{\text{installed capacity}}{\text{reference capacity}} \ \cdot\)
self.defaults['node_size'].Installed capacityandreference capacityare evaluated usingCapacityResultieronoptimized_es.The node size of the advanced system visualization scales with the installed capacity.
If no capacity is defined (i.e for nodes of variable size, like busses or excess sources and sinks, node size is set to it’s default (
nxgrph_visualize_defaults[node_size]).
- property node_fill_size
Scaled node sizes mapped to their node names.
Scaled using:
\(\text{capacity factor} \ \cdot\)
self.defaults['node_size']Installed capacityis evaluated usingCapacityResultieronoptimized_es.The node fillsize of the advanced system visualization scales with the characteristic value.
If no capacity is defined (i.e for nodes of variable size, like busses or excess sources and sinks, node size is set to it’s default (
nxgrph_visualize_defaults[node_fill_size]).
- property legend_of_nodes
Color grouped matplotlib legend attributes mapped to their parameter.
Grouping utilizes
NodeColorGroupings. Available groupings are:
- property legend_of_node_styles
Mapped node style legends.
Matplotlib legend attributes mapped to their parameters to describe
fency node styles. Fency as in:variable node size being outer fading circles
cycle filling being proportional capacity factors
outer diameter being proportional installed capacities
- property legend_of_edge_styles
Mapped edge style legends.
Matplotlib legend attributes mapped to their parameters to describe the edge style of the advanced system visualization. As in:
edge length scaling with specific flow costs
edge width scaling with net energy flow
grey scale scaling with speficifc flow emissions