code: def periodogram_auto(self, oversampling=5, nyquist_factor=3,
                           return_periods=True):
          
          N = len(self.t)
          T = np.max(self.t) - np.min(self.t)
          df = 1. / T / oversampling
          f0 = df
          Nf = int(0.5 * oversampling * nyquist_factor * N)
          freq = f0 + df * np.arange(Nf)
          return 1. / freq, self._score_frequency_grid(f0, df, Nf)
docs: Compute the periodogram on an automatically-determined grid
  
          This function uses heuristic arguments to choose a suitable frequency
          grid for the data. Note that depending on the data window function,
          the model may be sensitive to periodicity at higher frequencies than
          this function returns!
  
          The final number of frequencies will be
          Nf = oversampling * nyquist_factor * len(t) / 2
  
          Parameters
          ----------
          oversampling : float
              the number of samples per approximate peak width
          nyquist_factor : float
              the highest frequency, in units of the nyquist frequency for points
              spread uniformly through the data range.
  
          Returns
          -------
          period : ndarray
              the grid of periods
          power : ndarray
              the power at each frequency