class_docstr: Reader for the OSISAF l3 netCDF format.
class_docstr_tok: ["Reader","for","the","OSISAF","l3","netCDF","format","."]
docstr: Load a dataset.
docstr_tok: ["Load","a","dataset","."]
code: def get_dataset(self, dataset_id, ds_info):
      """Load a dataset."""
      logger.debug(f"Reading {dataset_id['name']} from {self.filename}")
      var_path = ds_info.get("file_key", f"{dataset_id['name']}")
  
      shape = self[var_path + "/shape"]
      data = self[var_path]
      if shape[0] == 1:
          # Remove the time dimension from dataset
          data = data[0]
  
      file_units = self._get_ds_units(ds_info, var_path)
  
      # Try to get the valid limits for the data.
      # Not all datasets have these, so fall back on assuming no limits.
      valid_min = self.get(var_path + "/attr/valid_min")
      valid_max = self.get(var_path + "/attr/valid_max")
      if valid_min is not None and valid_max is not None:
          data = data.where(data >= valid_min)
          data = data.where(data <= valid_max)
  
      # Try to get the fill value for the data.
      # If there isn't one, assume all remaining pixels are valid.
      fill_value = self.get(var_path + "/attr/_FillValue")
      if fill_value is not None:
          data = data.where(data != fill_value)
  
      # Try to get the scale and offset for the data.
      # As above, not all datasets have these, so fall back on assuming no limits.
      scale_factor = self.get(var_path + "/attr/scale_factor")
      scale_offset = self.get(var_path + "/attr/add_offset")
      if scale_offset is not None and scale_factor is not None:
          data = data * scale_factor + scale_offset
  
      # Set proper dimension names
      if self.filetype_info["file_type"] == "osi_radflux_grid":
          data = data.rename({"lon": "x", "lat": "y"})
      else:
          data = data.rename({"xc": "x", "yc": "y"})
  
      ds_info.update(
          {
              "units": ds_info.get("units", file_units),
              "platform_name": self._get_platname(),
              "sensor": self._get_instname(),
          }
      )
      ds_info.update(dataset_id.to_dict())
      data.attrs.update(ds_info)
      return data
  
file_path: satpy/satpy/readers/osisaf_l3_nc.py
imports: import logging
  from datetime import datetime
  from satpy.readers.netcdf_utils import NetCDF4FileHandler
label_desc: Use image node_id 8 for calling the OSISAFL3NCFileHandler obj's underlying member method code with example usage: obj.get_dataset(dataset_id, ds_info) and returns: data