class_docstr: GEOCAT netCDF4 file handler.
  
  **Loading data with decode_times=True**
  
  By default, this reader will use ``xarray_kwargs={"engine": "netcdf4", "decode_times": False}``.
  to match behavior of xarray when the geocat reader was first written.  To use different options
  use reader_kwargs when loading the Scene::
  
      scene = satpy.Scene(filenames,
                          reader='geocat',
                          reader_kwargs={'xarray_kwargs': {'engine': 'netcdf4', 'decode_times': True}})
class_docstr_tok: ["GEOCAT","netCDF4","file","handler",".","*","*","Loading","data","with","decode_times=True","*","*","By","default",",","this","reader","will","use","``","xarray_kwargs=","{","``","engine","''",":","``","netcdf4","''",",","``","decode_times","''",":","False","}","``",".","to","match","behavior","of","xarray","when","the","geocat","reader","was","first","written",".","To","use","different","options","use","reader_kwargs","when","loading","the","Scene",":",":","scene","=","satpy.Scene","(","filenames",",","reader='geocat","'",",","reader_kwargs=","{","'xarray_kwargs","'",":","{","'engine","'",":","'netcdf4","'",",","'decode_times","'",":","True","}","}",")"]
docstr: Get dataset.
docstr_tok: ["Get","dataset","."]
code: def get_dataset(self, dataset_id, ds_info):
      """Get dataset."""
      var_name = ds_info.get("file_key", dataset_id["name"])
      # FUTURE: Metadata retrieval may be separate
      info = self.get_metadata(dataset_id, ds_info)
      data = self[var_name]
      fill = self[var_name + "/attr/_FillValue"]
      factor = self.get(var_name + "/attr/scale_factor")
      offset = self.get(var_name + "/attr/add_offset")
      valid_range = self.get(var_name + "/attr/valid_range")
  
      data = data.where(data != fill)
      if valid_range is not None:
          data = data.where(
              (data >= valid_range[0]) & (data <= valid_range[1])
          )
      if factor is not None and offset is not None:
          data = data * factor + offset
  
      data.attrs.update(info)
      data = data.rename({"lines": "y", "elements": "x"})
      return data
  
imports: from __future__ import annotations
  import logging
  import numpy
  from pyproj import Proj
  from pyresample import geometry
  from satpy.readers.netcdf_utils import NetCDF4FileHandler, netCDF4
label_desc: Use image node_id 18 for calling the GEOCATFileHandler obj's underlying member method code with example usage: obj.get_dataset(dataset_id, ds_info) and returns: data