class_docstr: NWCSAF PPS&MSG NetCDF reader.
docstr: Load a dataset.
docstr_tok: ["Load","a","dataset","."]
code: def get_dataset(self, dsid, info):
      """Load a dataset."""
      dsid_name = dsid["name"]
      if dsid_name in self.cache:
          logger.debug("Get the data set from cache: %s.", dsid_name)
          return self.cache[dsid_name]
      if dsid_name in ["lon", "lat"] and dsid_name not in self.nc:
          # Get full resolution lon,lat from the reduced (tie points) grid
          lon, lat = self.upsample_geolocation()
          if dsid_name == "lon":
              return lon
          else:
              return lat
  
      logger.debug("Reading %s.", dsid_name)
      file_key = self._get_filekeys(dsid_name, info)
      variable = self.nc[file_key]
      variable = self.remove_timedim(variable)
      variable = self.scale_dataset(variable, info)
      variable = self.drop_xycoords(variable)
  
      self.get_orbital_parameters(variable)
      variable.attrs["start_time"] = self.start_time
      variable.attrs["end_time"] = self.end_time
  
      return variable
  
imports: import functools
  import logging
  import os
  from contextlib import suppress
  from datetime import datetime
  import dask.array
  import numpy
  import xarray
  from pyproj import CRS
  from pyresample.geometry import AreaDefinition
  from satpy.readers.file_handlers import BaseFileHandler
  from satpy.readers.utils import unzip_file
  from satpy.utils import get_chunk_size_limit
label_desc: Use image node_id 5 for calling the NcNWCSAF obj's underlying member method code with example usage: obj.get_dataset(dsid, info) and returns: variable, self, lon, lat