code: def resample(self, data, cache_dir=None, mask_area=None, **kwargs):
          
          # default is to mask areas for SwathDefinitions
          if mask_area is None and isinstance(
                  self.source_geo_def, SwathDefinition):
              mask_area = True
  
          if mask_area:
              if isinstance(self.source_geo_def, SwathDefinition):
                  geo_dims = self.source_geo_def.lons.dims
              else:
                  geo_dims = ('y', 'x')
              flat_dims = [dim for dim in data.dims if dim not in geo_dims]
              # xarray <= 0.10.1 computes dask arrays during isnull
              if np.issubdtype(data.dtype, np.integer):
                  kwargs['mask'] = data == data.attrs.get('_FillValue', np.iinfo(data.dtype.type).max)
              else:
                  kwargs['mask'] = data.isnull()
              kwargs['mask'] = kwargs['mask'].all(dim=flat_dims)
          cache_id = self.precompute(cache_dir=cache_dir, **kwargs)
          return self.compute(data, cache_id=cache_id, **kwargs)
docs: Resample `data` by calling `precompute` and `compute` methods.
  
          Only certain resampling classes may use `cache_dir` and the `mask`
          provided when `mask_area` is True. The return value of calling the
          `precompute` method is passed as the `cache_id` keyword argument
          of the `compute` method, but may not be used directly for caching. It
          is up to the individual resampler subclasses to determine how this
          is used.
  
          Args:
              data (xarray.DataArray): Data to be resampled
              cache_dir (str): directory to cache precomputed results
                               (default False, optional)
              mask_area (bool): Mask geolocation data where data values are
                                invalid. This should be used when data values
                                may affect what neighbors are considered valid.
  
          Returns (xarray.DataArray): Data resampled to the target area