class_docstr: 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.
class_docstr_tok: ["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","."]
docstr: 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.
docstr_tok: ["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","do","n't","depend","on","any","datasets","not","already","existing","in","the","dependency","tree","."]
code: def copy(self):
      """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.
      """
      new_tree = DependencyTree({}, self.compositors, self.modifiers)
      for c in self._root.children:
          c = c.copy(node_cache=new_tree._all_nodes)
          new_tree.add_child(new_tree._root, c)
      return new_tree
  
imports: from __future__ import annotations
  from typing import Container, Iterable, Optional
  import numpy
  from satpy import DataID, DatasetDict
  from satpy.dataset import ModifierTuple, create_filtered_query
  from satpy.dataset.data_dict import TooManyResults, get_key
  from satpy.node import EMPTY_LEAF_NAME, LOG, CompositorNode, MissingDependencies, Node, ReaderNode
label_desc: Use image node_id 3 for calling the DependencyTree obj's underlying member method code with example usage: obj.copy() and returns: new_tree