class_docstr: Method 1: CrossCorrelation algorithm.
  Ideas come from Paul Bourke(http://paulbourke.net/miscellaneous/correlate/).
docstr: Find the first element in timestamps whose value is bigger than target.
  param list values: list of timestamps(epoch number).
  param target: target value.
  param lower_bound: lower bound for binary search.
  param upper_bound: upper bound for binary search.
code: def _find_first_bigger(
      self, timestamps, target, lower_bound, upper_bound
  ):
      """
      Find the first element in timestamps whose value is bigger than target.
      param list values: list of timestamps(epoch number).
      param target: target value.
      param lower_bound: lower bound for binary search.
      param upper_bound: upper bound for binary search.
      """
      while lower_bound < upper_bound:
          pos = lower_bound + (upper_bound - lower_bound) / 2
          pos = int(pos)
          if timestamps[pos] > target:
              upper_bound = pos
          else:
              lower_bound = pos + 1
      return pos
  
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 4 for calling the CrossCorrelator obj's underlying member method code with example usage: obj._find_first_bigger(timestamps, target, lower_bound, upper_bound) and returns: pos