class_docstr: Windows generated 'dyadically'.
  
  These are successive windows of increasing fineness. The windows are as
  follows:
      Depth 1: The global window over the full data.
      Depth 2: The windows of the first and second halves of the dataset.
      Depth 3: The dataset is split into quarters, and we take the windows of
          each quarter.
      ...
      Depth n: For a dataset of length L, we generate windows
          [0:L/(2^n), L/(2^n):(2L)/(2^n), ..., (2^(n-1))L/2^n:L].
  Each depth also contains all previous depths.
  
  Note: Ensure the depth, n, is chosen such that L/(2^n) >= 1, else it will
      be too high for the dataset.
  
  Parameters
  ----------
  depth: int, The depth of the dyadic window, explained in the class
      description.
code: def __init__(self, depth):
      super().__init__()
      self.depth = depth
  
imports: import collections
  import numpy
label_desc: Use image node_id 1 to create a new _Dyadic object from inherited base classes: _Window with example: obj = _Dyadic(depth)