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: Update dataset attributes.
code: def _update_attrs(self, dataset, dataset_info):
      """Update dataset attributes."""
      dataset.attrs.update(self.nc[dataset_info["nc_key"]].attrs)
      dataset.attrs.update(dataset_info)
      dataset.attrs["platform_name"] = (
          "Meteosat-" + SATNUM[self.platform_id]
      )
      dataset.attrs["sensor"] = "seviri"
      dataset.attrs["orbital_parameters"] = {
          "projection_longitude": self.mda["projection_parameters"][
              "ssp_longitude"
          ],
          "projection_latitude": 0.0,
          "projection_altitude": self.mda["projection_parameters"]["h"],
          "satellite_nominal_longitude": float(
              self.nc.attrs["nominal_longitude"]
          ),
          "satellite_nominal_latitude": 0.0,
      }
      dataset.attrs["time_parameters"] = {
          "nominal_start_time": self.nominal_start_time,
          "nominal_end_time": self.nominal_end_time,
          "observation_start_time": self.observation_start_time,
          "observation_end_time": self.observation_end_time,
      }
      try:
          actual_lon, actual_lat, actual_alt = self.satpos
          dataset.attrs["orbital_parameters"].update(
              {
                  "satellite_actual_longitude": actual_lon,
                  "satellite_actual_latitude": actual_lat,
                  "satellite_actual_altitude": actual_alt,
              }
          )
      except NoValidOrbitParams as err:
          logger.warning(err)
      dataset.attrs["georef_offset_corrected"] = (
          self._get_earth_model() == 2
      )
  
      # remove attributes from original file which don't apply anymore
      strip_attrs = [
          "comment",
          "long_name",
          "nc_key",
          "scale_factor",
          "add_offset",
          "valid_min",
          "valid_max",
      ]
      for a in strip_attrs:
          dataset.attrs.pop(a)
  
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 15 for calling the NCSEVIRIFileHandler obj's underlying member method code with example usage: obj._update_attrs(dataset, dataset_info) without return types