class_docstr: Attitude prediction.
  
  Use .to_numba() to pass this object to jitted methods. This extra
  layer avoids usage of jitclasses and having to re-implement np.unwrap in
  numba.
docstr: Initialize attitude prediction.
  
  In order to accelerate interpolation, the 2-pi periodicity of angles
  is unwrapped here already (that means phase jumps greater than pi
  are wrapped to their 2*pi complement).
  
  Args:
      prediction_times: Timestamps of predicted attitudes
      attitude (Attitude): Attitudes at prediction times
docstr_tok: ["Initialize","attitude","prediction",".","In","order","to","accelerate","interpolation",",","the","2-pi","periodicity","of","angles","is","unwrapped","here","already","(","that","means","phase","jumps","greater","than","pi","are","wrapped","to","their","2","*","pi","complement",")",".","Args",":","prediction_times",":","Timestamps","of","predicted","attitudes","attitude","(","Attitude",")",":","Attitudes","at","prediction","times"]
code: def __init__(self, prediction_times, attitude):
      """Initialize attitude prediction.
  
      In order to accelerate interpolation, the 2-pi periodicity of angles
      is unwrapped here already (that means phase jumps greater than pi
      are wrapped to their 2*pi complement).
  
      Args:
          prediction_times: Timestamps of predicted attitudes
          attitude (Attitude): Attitudes at prediction times
      """
      self.prediction_times = prediction_times
      self.attitude = self._unwrap_angles(attitude)
  
imports: from collections import namedtuple
  import dask.array
  import numba
  import numpy
  from satpy.utils import get_legacy_chunk_size
label_desc: Use image node_id 1 to create a new AttitudePrediction object  with example: obj = AttitudePrediction(prediction_times, attitude)