ytree.data_structures.node_container.NodeContainer
- class ytree.data_structures.node_container.NodeContainer(nodes, arbor=None)[source]
A container to hold a persistent collection of unrelated TreeNodes.
This is a convenience object to hold a series of TreeNodes and provide simple field access similar to querying fields for an entire arbor. Field access for the container is cached for fast second-time access.
- Parameters:
nodes (Iterable of TreeNodes) – A list, array, or generator of TreeNode objects.
Examples
>>> import ytree >>> a = ytree.load("tiny_ctrees/locations.dat") >>> first = a[0] >>> last = a[-1] >>> container = a.container([first, last]) >>> for node in container: >>> print (node["mass"]) 1.0231655e+12 Msun 2.0633094e+11 Msun >>> print (container["mass"]) [1.0231655e+12 2.0633094e+11] Msun >>> fn = a.save_arbor(trees=container) >>> a_new = ytree.load(fn) >>> print (a_new["mass"]) [1.0231655e+12 2.0633094e+11] Msun
>>> import ytree >>> a = ytree.load("tiny_ctrees/locations.dat") >>> a_slice = a.container(a[::8]) >>> print (a.size, a_slice.size) 32 4 >>> print (a_slice["mass"]) [1.0231655e+12 6.7683457e+11 2.9294966e+11 2.8014389e+11] Msun >>> my_tree = a_slice[0] >>> print (my_tree) TreeNode[1457223360]
>>> import ytree >>> a = ytree.load("tiny_ctrees/locations.dat") >>> my_tree = a[0] >>> leaves = my_tree.get_leaf_nodes() >>> leaf_container = a.container(leaves) >>> print (leaf_container["mass"]) [2.6503598e+08 4.2388490e+08 5.6964032e+08 5.5640288e+08 3.5769786e+08 1.9870504e+08 6.3597126e+08] Msun >>> print (leaf_container.nodes) [TreeNode[1169524360], TreeNode[758740170], TreeNode[278238650], TreeNode[142383462], TreeNode[38885675], TreeNode[19602159], TreeNode[5057761]]
Methods
__init__(nodes[, arbor])Attributes
nodessize