code: def d_deta_from_pfull(arr):
        # noqa: W605
      right = arr[{internal_names.PFULL_STR: slice(2, None, None)}].values
      left = arr[{internal_names.PFULL_STR: slice(0, -2, 1)}].values
      deriv = xr.DataArray(np.zeros(arr.shape), dims=arr.dims,
                           coords=arr.coords)
      deriv[{internal_names.PFULL_STR: slice(1, -1, 1)}] = (right - left) / 2.
      deriv[{internal_names.PFULL_STR: 0}] = (
          arr[{internal_names.PFULL_STR: 1}].values -
          arr[{internal_names.PFULL_STR: 0}].values)
      deriv[{internal_names.PFULL_STR: -1}] = (
          arr[{internal_names.PFULL_STR: -1}].values -
          arr[{internal_names.PFULL_STR: -2}].values)
      return deriv
docs: Compute $\partial/\partial\eta$ of the array on full hybrid levels.
  
      $\eta$ is the model vertical coordinate, and its value is assumed to simply
      increment by 1 from 0 at the surface upwards.  The data to be differenced
      is assumed to be defined at full pressure levels.
  
      Parameters
      ----------
      arr : xarray.DataArray containing the 'pfull' dim
  
      Returns
      -------
      deriv : xarray.DataArray with the derivative along 'pfull' computed via
              2nd order centered differencing.