<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def rain_on_frozen_ground_days(pr, tas, thresh='1 mm/d', freq='YS'):
 """Number of rain on frozen ground events Number of days with rain above a threshold after a series of seven days below freezing temperature. Precipitation is assumed to be rain when the temperature is above 0℃. Parameters pr : xarray.DataArray Mean daily precipitation flux [Kg m-2 s-1] or [mm] tas : xarray.DataArray Mean daily temperature [℃] or [K] thresh : str Precipitation threshold to consider a day as a rain event. Default : '1 mm/d' freq : str, optional Resampling frequency Returns ------- xarray.DataArray The number of rain on frozen ground events per period [days] Notes ----- Let :math:`PR_i` be the mean daily precipitation and :math:`TG_i` be the mean daily temperature of day :math:`i`. Then for a period :math:`j`, rain on frozen grounds days are counted where: .. math:: PR_{i} > Threshold [mm] and where .. math:: TG_{i} ≤ 0℃ is true for continuous periods where :math:`i ≥ 7` """

    t = utils.convert_units_to(thresh, pr)
    frz = utils.convert_units_to('0 C', tas)

    def func(x, axis):
        """Check that temperature conditions are below 0 for seven days and above after."""
        frozen = x == np.array([0, 0, 0, 0, 0, 0, 0, 1], bool)
        return frozen.all(axis=axis)

    tcond = (tas > frz).rolling(time=8).reduce(func)
    pcond = (pr > t)

    return (tcond * pcond * 1).resample(time=freq).sum(dim='time')