finesse.model.Model.component_tree¶
- Model.component_tree(root: finesse.element.ModelElement | str | None = None, network_type: str | finesse.utilities.network_filter.NetworkType = NetworkType.COMPONENT, show_detectors: bool = False, show_ports: bool = False, radius: int | None = None, directed: bool = False) TreeNode[source]¶
 Retrieves a tree containing the network representing the components connected to the specified root. See also Visualizing the model.
- Parameters
 - rootstr | ModelElement | Node | None, optional
 Root element/node to start drawing the tree from. Is also used in combination with
radius, for distance based filtering, by defaultNone. Whennetwork_typeiscomponents,Nonewill default to the firstfinesse.components.laser.Laserfound in the model.- network_typestr | NetworkType, optional
 Which network to plot, can be one of ‘optical’, ‘component’, ‘full’, by default NetworkType.COMPONENT
- show_detectorsbool, optional
 Whether to add detectors to the graph, by default False
- show_portsbool, optional
 Whether to show by which ports components are connected, by default False
- radiusint >= 1 | None, optional
 Must be used in combination with
root, only include nodes of the network that areradiusor less edges away from the root node, by default None, meaning that no nodes are filtered out.- directedbool, optional
 Whether to use directed distance-based filtering, by default False. If set to True, will only include outgoing edges from the root node. See also the
undirectedargument ofnetworkx.generators.ego.ego_graph()
- Returns
 TreeNodeThe root tree node, with connected components as branches.
- Raises
 - ValueError
 If the specified root is not a model element.
Notes
Uses
networkx.generators.ego.ego_graph()for the distance-based filtering.