code: def freshet_start(tas, thresh='0 degC', window=5, freq='YS'):
      r
      thresh = utils.convert_units_to(thresh, tas)
      over = (tas > thresh)
      group = over.resample(time=freq)
      return group.apply(rl.first_run_ufunc, window=window, index='dayofyear')
docs: r"""First day consistently exceeding threshold temperature.
  
      Returns first day of period where a temperature threshold is exceeded
      over a given number of days.
  
      Parameters
      ----------
      tas : xarray.DataArray
        Mean daily temperature [℃] or [K]
      thresh : str
        Threshold temperature on which to base evaluation [℃] or [K]. Default '0 degC'
      window : int
        Minimum number of days with temperature above threshold needed for evaluation
      freq : str, optional
        Resampling frequency
  
      Returns
      -------
      float
        Day of the year when temperature exceeds threshold over a given number of days for the first time. If there are
        no such day, return np.nan.
  
      Notes
      -----
      Let :math:`x_i` be the daily mean temperature at day of the year :math:`i` for values of :math:`i` going from 1
      to 365 or 366. The start date of the freshet is given by the smallest index :math:`i` for which
  
      .. math::
  
         \prod_{j=i}^{i+w} [x_j > thresh]
  
      is true, where :math:`w` is the number of days the temperature threshold should be exceeded,  and :math:`[P]` is
      1 if :math:`P` is true, and 0 if false.