satpy.dependency_tree module
Implementation of a dependency tree.
- class satpy.dependency_tree.DependencyTree(readers, compositors=None, modifiers=None, available_only=False)[source]
Bases:
Tree
Structure to discover and store Dataset dependencies.
Used primarily by the Scene object to organize dependency finding. Dependencies are stored used a series of Node objects which this class is a subclass of.
Collect Dataset generating information.
Collect the objects that generate and have information about Datasets including objects that may depend on certain Datasets being generated. This includes readers, compositors, and modifiers.
Composites and modifiers are defined per-sensor. If multiple sensors are available, compositors and modifiers are searched for in sensor alphabetical order.
- Parameters
readers (dict) – Reader name -> Reader Object
compositors (dict) – Sensor name -> Composite ID -> Composite Object. Empty dictionary by default.
modifiers (dict) – Sensor name -> Modifier name -> (Modifier Class, modifier options). Empty dictionary by default.
available_only (bool) – Whether only reader’s available/loadable datasets should be used when searching for dependencies (True) or use all known/configured datasets regardless of whether the necessary files were provided to the reader (False). Note that when
False
loadable variations of a dataset will have priority over other known variations. Default isFalse
.
- copy()[source]
Copy this node tree.
Note all references to readers are removed. This is meant to avoid tree copies accessing readers that would return incompatible (Area) data. Theoretically it should be possible for tree copies to request compositor or modifier information as long as they don’t depend on any datasets not already existing in the dependency tree.
- class satpy.dependency_tree.Tree[source]
Bases:
object
A tree implementation.
Set up the tree.
- empty_node = <Node ('__EMPTY_LEAF_SENTINEL__')>
- leaves(limit_nodes_to: Optional[Iterable[DataID]] = None, unique: bool = True) list[satpy.node.Node] [source]
Get the leaves of the tree starting at the root.
- Parameters
limit_nodes_to – Limit leaves to Nodes with the names (DataIDs) specified.
unique – Only include individual leaf nodes once.
- Returns
list of leaf nodes
- trunk(limit_nodes_to: Optional[Iterable[DataID]] = None, unique: bool = True, limit_children_to: Optional[Container[DataID]] = None) list[satpy.node.Node] [source]
Get the trunk nodes of the tree starting at this root.
- Parameters
limit_nodes_to – Limit searching to trunk nodes with the names (DataIDs) specified and the children of these nodes.
unique – Only include individual trunk nodes once
limit_children_to – Limit searching to the children with the specified names. These child nodes will be included in the result, but not their children.
- Returns
list of trunk nodes