class_docstr: Base reader class for VII products in netCDF format.
  
  Args:
      filename (str): File to read
      filename_info (dict): Dictionary with filename information
      filetype_info (dict): Dictionary with filetype information
      orthorect (bool): activates the orthorectification correction where available
class_docstr_tok: ["Base","reader","class","for","VII","products","in","netCDF","format",".","Args",":","filename","(","str",")",":","File","to","read","filename_info","(","dict",")",":","Dictionary","with","filename","information","filetype_info","(","dict",")",":","Dictionary","with","filetype","information","orthorect","(","bool",")",":","activates","the","orthorectification","correction","where","available"]
docstr: Get dataset using file_key in dataset_info.
docstr_tok: ["Get","dataset","using","file_key","in","dataset_info","."]
code: def get_dataset(self, dataset_id, dataset_info):
      """Get dataset using file_key in dataset_info."""
      var_key = dataset_info["file_key"]
      logger.debug(
          "Reading in file to get dataset with key %s.", var_key
      )
  
      if var_key == "cached_longitude" and self.longitude is not None:
          variable = self.longitude.copy()
      elif var_key == "cached_latitude" and self.latitude is not None:
          variable = self.latitude.copy()
      else:
          try:
              variable = self[var_key]
          except KeyError:
              logger.warning(
                  "Could not find key %s in NetCDF file, no valid Dataset created",
                  var_key,
              )
              return None
  
          # If the dataset is marked for interpolation, perform the interpolation from tie points to pixels
          if (
              dataset_info.get("interpolate", False)
              and self.interpolate
          ):
              variable = self._perform_interpolation(variable)
  
          # Perform the calibration if required
          if dataset_info.get("calibration") is not None:
              variable = self._perform_calibration(
                  variable, dataset_info
              )
  
      # Perform the orthorectification if required
      if self.orthorect:
          orthorect_data_name = dataset_info.get("orthorect_data", None)
          if orthorect_data_name is not None:
              variable = self._perform_orthorectification(
                  variable, orthorect_data_name
              )
  
      # Manage the attributes of the dataset
      variable.attrs.setdefault("units", None)
  
      variable.attrs.update(dataset_info)
      variable.attrs.update(self._get_global_attributes())
      variable = self._standardize_dims(variable)
      return variable
  
file_path: satpy/satpy/readers/vii_base_nc.py
imports: import logging
  from datetime import datetime
  from geotiepoints.viiinterpolator import tie_points_geo_interpolation, tie_points_interpolation
  from satpy.readers.netcdf_utils import NetCDF4FileHandler
  from satpy.readers.vii_utils import SCAN_ALT_TIE_POINTS, TIE_POINTS_FACTOR
label_desc: Use image node_id 3 for calling the ViiNCBaseFileHandler obj's underlying member method code with example usage: obj.get_dataset(dataset_id, dataset_info) and returns: variable, None