class_docstr: Method 1: CrossCorrelation algorithm.
  Ideas come from Paul Bourke(http://paulbourke.net/miscellaneous/correlate/).
docstr: Initializer
  :param TimeSeries time_series_a: TimeSeries a.
  :param TimeSeries time_series_b: TimeSeries b.
  :param int max_shift_milliseconds: allowed maximal shift seconds.
  :param time_period: if given, correlate the data inside the time period only.
code: def __init__(
      self,
      time_series_a,
      time_series_b,
      max_shift_seconds=None,
      shift_impact=None,
  ):
      """
      Initializer
      :param TimeSeries time_series_a: TimeSeries a.
      :param TimeSeries time_series_b: TimeSeries b.
      :param int max_shift_milliseconds: allowed maximal shift seconds.
      :param time_period: if given, correlate the data inside the time period only.
      """
      super(CrossCorrelator, self).__init__(
          self.__class__.__name__, time_series_a, time_series_b
      )
      self.shift_impact = shift_impact or DEFAULT_SHIFT_IMPACT
      if max_shift_seconds is not None:
          self.max_shift_milliseconds = max_shift_seconds
      else:
          self.max_shift_milliseconds = (
              DEFAULT_ALLOWED_SHIFT_SECONDS * 1000
          )
  
file_path: luminol/src/luminol/algorithms/correlator_algorithms/cross_correlator.py
imports: from luminol.algorithms.correlator_algorithms import CorrelatorAlgorithm
  from luminol.modules.correlation_result import CorrelationResult
  from luminol.constants import DEFAULT_SHIFT_IMPACT, DEFAULT_ALLOWED_SHIFT_SECONDS
label_desc: Use image node_id 1 to create a new CrossCorrelator object from inherited base classes: CorrelatorAlgorithm with example: obj = CrossCorrelator(time_series_a, time_series_b, max_shift_seconds, shift_impact)