class_docstr: File handler for NC seviri files.
  
  **Calibration**
  
  See :mod:`satpy.readers.seviri_base`. Note that there is only one set of
  calibration coefficients available in the netCDF files and therefore there
  is no `calib_mode` argument.
  
  **Metadata**
  
  See :mod:`satpy.readers.seviri_base`.
docstr: Get the area def.
  
  Note that the AreaDefinition area extents returned by this function for NetCDF data will be slightly
  different compared to the area extents returned by the SEVIRI HRIT reader.
  This is due to slightly different pixel size values when calculated using the data available in the files. E.g.
  for the 3 km grid:
  
  ``NetCDF:  self.nc.attrs['vis_ir_column_dir_grid_step'] == 3000.4031658172607``
  ``HRIT: np.deg2rad(2.**16 / pdict['lfac']) * pdict['h'] == 3000.4032785810186``
  
  This results in the Native 3 km full-disk area extents being approx. 20 cm shorter in each direction.
  
  The method for calculating the area extents used by the HRIT reader (CFAC/LFAC mechanism) keeps the
  highest level of numeric precision and is used as reference by EUM. For this reason, the standard area
  definitions defined in the `areas.yaml` file correspond to the HRIT ones.
code: def get_area_def(self, dataset_id):
      """Get the area def.
  
      Note that the AreaDefinition area extents returned by this function for NetCDF data will be slightly
      different compared to the area extents returned by the SEVIRI HRIT reader.
      This is due to slightly different pixel size values when calculated using the data available in the files. E.g.
      for the 3 km grid:
  
      ``NetCDF:  self.nc.attrs['vis_ir_column_dir_grid_step'] == 3000.4031658172607``
      ``HRIT: np.deg2rad(2.**16 / pdict['lfac']) * pdict['h'] == 3000.4032785810186``
  
      This results in the Native 3 km full-disk area extents being approx. 20 cm shorter in each direction.
  
      The method for calculating the area extents used by the HRIT reader (CFAC/LFAC mechanism) keeps the
      highest level of numeric precision and is used as reference by EUM. For this reason, the standard area
      definitions defined in the `areas.yaml` file correspond to the HRIT ones.
  
      """
      pdict = {}
      pdict["a"] = self.mda["projection_parameters"]["a"]
      pdict["b"] = self.mda["projection_parameters"]["b"]
      pdict["h"] = self.mda["projection_parameters"]["h"]
      pdict["ssp_lon"] = self.mda["projection_parameters"][
          "ssp_longitude"
      ]
  
      area_naming_input_dict = {
          "platform_name": "msg",
          "instrument_name": "seviri",
          "resolution": int(dataset_id["resolution"]),
      }
      area_naming = get_geos_area_naming(
          {
              **area_naming_input_dict,
              **get_service_mode("seviri", pdict["ssp_lon"]),
          }
      )
  
      if dataset_id["name"] == "HRV":
          pdict["nlines"] = self.mda["hrv_number_of_lines"]
          pdict["ncols"] = self.mda["hrv_number_of_columns"]
          pdict["a_name"] = area_naming["area_id"]
          pdict["a_desc"] = area_naming["description"]
          pdict["p_id"] = ""
      else:
          pdict["nlines"] = self.mda["number_of_lines"]
          pdict["ncols"] = self.mda["number_of_columns"]
          pdict["a_name"] = area_naming["area_id"]
          pdict["a_desc"] = area_naming["description"]
          pdict["p_id"] = ""
  
      area = get_area_definition(
          pdict, self.get_area_extent(dataset_id)
      )
  
      return area
  
imports: import datetime
  import logging
  from datetime import timedelta
  import numpy
  from satpy._compat import cached_property
  from satpy.readers._geos_area import get_area_definition, get_geos_area_naming
  from satpy.readers.eum_base import get_service_mode
  from satpy.readers.file_handlers import BaseFileHandler, open_dataset
  from satpy.readers.seviri_base import CHANNEL_NAMES, SATNUM, NoValidOrbitParams, OrbitPolynomialFinder, SEVIRICalibrationHandler, add_scanline_acq_time, get_cds_time, get_satpos, mask_bad_quality, round_nom_time
  from satpy.utils import get_legacy_chunk_size
label_desc: Use image node_id 16 for calling the NCSEVIRIFileHandler obj's underlying member method code with example usage: obj.get_area_def(dataset_id) and returns: area