docs: def open_dataset(filename_or_obj, decode_cf=True, decode_times=True,
                   decode_coords=True, engine=None, gridfile=None, **kwargs):
      """
      Open an instance of :class:`xarray.Dataset`.
  
      This method has the same functionality as the :func:`xarray.open_dataset`
      method except that is supports an additional 'gdal' engine to open
      gdal Rasters (e.g. GeoTiffs) and that is supports absolute time units like
      ``'day as %Y%m%d.%f'`` (if `decode_cf` and `decode_times` are True).
  
      Parameters
      ----------
      %(xarray.open_dataset.parameters.no_engine)s
      engine: {'netcdf4', 'scipy', 'pydap', 'h5netcdf', 'gdal'}, optional
          Engine to use when reading netCDF files. If not provided, the default
          engine is chosen based on available dependencies, with a preference for
          'netcdf4'.
      %(CFDecoder.decode_coords.parameters.gridfile)s
  
      Returns
      -------
      xarray.Dataset
          The dataset that contains the variables from `filename_or_obj`"""
      # use the absolute path name (is saver when saving the project)
      if isstring(filename_or_obj) and osp.exists(filename_or_obj):
          filename_or_obj = osp.abspath(filename_or_obj)
      if engine == 'gdal':
          from psyplot.gdal_store import GdalStore
          filename_or_obj = GdalStore(filename_or_obj)
          engine = None
      ds = xr.open_dataset(filename_or_obj, decode_cf=decode_cf,
                           decode_coords=False, engine=engine,
                           decode_times=decode_times, **kwargs)
      if decode_cf:
          ds = CFDecoder.decode_ds(
              ds, decode_coords=decode_coords, decode_times=decode_times,
              gridfile=gridfile)
      return ds