class_docstr: Class implementing the MTG FCI L1c Filehandler.
  
  This class implements the Meteosat Third Generation (MTG) Flexible
  Combined Imager (FCI) Level-1c NetCDF reader.
  It is designed to be used through the :class:`~satpy.Scene`
  class using the :mod:`~satpy.Scene.load` method with the reader
  ``"fci_l1c_nc"``.
docstr: Load dataset corresponding to channel measurement.
  
  Load a dataset when the key refers to a measurand, whether uncalibrated
  (counts) or calibrated in terms of brightness temperature, radiance, or
  reflectance.
docstr_tok: ["Load","dataset","corresponding","to","channel","measurement",".","Load","a","dataset","when","the","key","refers","to","a","measurand",",","whether","uncalibrated","(","counts",")","or","calibrated","in","terms","of","brightness","temperature",",","radiance",",","or","reflectance","."]
code: def _get_dataset_measurand(self, key, info=None):
      """Load dataset corresponding to channel measurement.
  
      Load a dataset when the key refers to a measurand, whether uncalibrated
      (counts) or calibrated in terms of brightness temperature, radiance, or
      reflectance.
      """
      # Get the dataset
      # Get metadata for given dataset
      measured = self.get_channel_measured_group_path(key["name"])
      data = self[measured + "/effective_radiance"]
  
      attrs = dict(data.attrs).copy()
      info = info.copy()
      data = _ensure_dataarray(data)
  
      fv = attrs.pop(
          "FillValue",
          default_fillvals.get(data.dtype.str[1:], np.float32(np.nan)),
      )
      vr = attrs.get(
          "valid_range", [np.float32(-np.inf), np.float32(np.inf)]
      )
      if key["calibration"] == "counts":
          attrs["_FillValue"] = fv
          nfv = data.dtype.type(fv)
      else:
          nfv = np.float32(np.nan)
      data = data.where((data >= vr[0]) & (data <= vr[1]), nfv)
  
      res = self.calibrate(data, key)
  
      # pre-calibration units no longer apply
      attrs.pop("units")
  
      # For each channel, the effective_radiance contains in the
      # "ancillary_variables" attribute the value "pixel_quality".  In
      # FileYAMLReader._load_ancillary_variables, satpy will try to load
      # "pixel_quality" but is lacking the context from what group to load
      # it: in the FCI format, each channel group (data/<channel>/measured) has
      # its own data variable 'pixel_quality'.
      # Until we can have multiple pixel_quality variables defined (for
      # example, with https://github.com/pytroll/satpy/pull/1088), rewrite
      # the ancillary variable to include the channel. See also
      # https://github.com/pytroll/satpy/issues/1171.
      if "pixel_quality" in attrs["ancillary_variables"]:
          attrs["ancillary_variables"] = attrs[
              "ancillary_variables"
          ].replace("pixel_quality", key["name"] + "_pixel_quality")
      else:
          raise ValueError(
              "Unexpected value for attribute ancillary_variables, "
              "which the FCI file handler intends to rewrite (see "
              "https://github.com/pytroll/satpy/issues/1171 for why). "
              f"Expected 'pixel_quality', got {attrs['ancillary_variables']:s}"
          )
  
      res.attrs.update(key.to_dict())
      res.attrs.update(info)
      res.attrs.update(attrs)
  
      res.attrs["platform_name"] = self._platform_name_translate.get(
          self["attr/platform"], self["attr/platform"]
      )
  
      # remove unpacking parameters for calibrated data
      if key["calibration"] in [
          "brightness_temperature",
          "reflectance",
      ]:
          res.attrs.pop("add_offset")
          res.attrs.pop("warm_add_offset")
          res.attrs.pop("scale_factor")
          res.attrs.pop("warm_scale_factor")
  
      # remove attributes from original file which don't apply anymore
      res.attrs.pop("long_name")
      # Add time_parameter attributes
      res.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,
      }
      res.attrs.update(self.orbital_param)
  
      return res
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  from datetime import timedelta
  from functools import cached_property
  import dask.array
  import numpy
  import xarray
  from netCDF4 import default_fillvals
  from pyresample import geometry
  from satpy.readers._geos_area import get_geos_area_naming
  from satpy.readers.eum_base import get_service_mode
  from .netcdf_utils import NetCDF4FsspecFileHandler
label_desc: Use image node_id 12 for calling the FCIL1cNCFileHandler obj's underlying member method code with example usage: obj._get_dataset_measurand(key, info) and returns: res