code: def select_resample_op(da, op, freq="YS", **indexer):
      
      da = select_time(da, **indexer)
      r = da.resample(time=freq, keep_attrs=True)
      if isinstance(op, str):
          return getattr(r, op)(dim='time', keep_attrs=True)
  
      return r.apply(op)
docs: Apply operation over each period that is part of the index selection.
  
      Parameters
      ----------
      da : xarray.DataArray
        Input data.
      op : str {'min', 'max', 'mean', 'std', 'var', 'count', 'sum', 'argmax', 'argmin'} or func
        Reduce operation. Can either be a DataArray method or a function that can be applied to a DataArray.
      freq : str
        Resampling frequency defining the periods
        defined in http://pandas.pydata.org/pandas-docs/stable/timeseries.html#resampling.
      **indexer : {dim: indexer, }, optional
        Time attribute and values over which to subset the array. For example, use season='DJF' to select winter values,
        month=1 to select January, or month=[6,7,8] to select summer months. If not indexer is given, all values are
        considered.
  
      Returns
      -------
      xarray.DataArray
        The maximum value for each period.