<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def freshet_start(tas, thresh='0 degC', window=5, freq='YS'):
 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. """

    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')