class_docstr: SEVIRI HRIT format reader.
  
  **Calibration**
  
  See :mod:`satpy.readers.seviri_base`.
  
  
  **Padding of the HRV channel**
  
  By default, the HRV channel is loaded padded with no-data, returning
  a full-disk dataset. If you want the original, unpadded data,
  just provide the `fill_hrv` as False in the `reader_kwargs`::
  
      scene = satpy.Scene(filenames,
                          reader='seviri_l1b_hrit',
                          reader_kwargs={'fill_hrv': False})
  
  **Metadata**
  
  See :mod:`satpy.readers.seviri_base`.
class_docstr_tok: ["SEVIRI","HRIT","format","reader",".","*","*","Calibration","*","*","See",":","mod",":","`","satpy.readers.seviri_base","`",".","*","*","Padding","of","the","HRV","channel","*","*","By","default",",","the","HRV","channel","is","loaded","padded","with","no-data",",","returning","a","full-disk","dataset",".","If","you","want","the","original",",","unpadded","data",",","just","provide","the","`","fill_hrv","`","as","False","in","the","`","reader_kwargs","`",":",":","scene","=","satpy.Scene","(","filenames",",","reader='seviri_l1b_hrit","'",",","reader_kwargs=","{","'fill_hrv","'",":","False","}",")","*","*","Metadata","*","*","See",":","mod",":","`","satpy.readers.seviri_base","`","."]
docstr: Get the area definition of the band.
code: def get_area_def(self, dsid):
      """Get the area definition of the band."""
      # Common parameters for both HRV and other channels
      nlines = int(self.mda["number_of_lines"])
      loff = np.float32(self.mda["loff"])
      pdict = dict()
      pdict["cfac"] = np.int32(self.mda["cfac"])
      pdict["lfac"] = np.int32(self.mda["lfac"])
      pdict["coff"] = np.float32(self.mda["coff"])
  
      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"
      ]
  
      pdict["nlines"] = nlines
      pdict["ncols"] = int(self.mda["number_of_columns"])
      if (
          self.prologue["ImageDescription"]["Level15ImageProduction"][
              "ImageProcDirection"
          ]
          == 0
      ):
          pdict["scandir"] = "N2S"
      else:
          pdict["scandir"] = "S2N"
  
      area_naming_input_dict = {
          "platform_name": "msg",
          "instrument_name": "seviri",
          "resolution": int(dsid["resolution"]),
      }
      area_naming = get_geos_area_naming(
          {
              **area_naming_input_dict,
              **get_service_mode("seviri", pdict["ssp_lon"]),
          }
      )
  
      # Compute area definition for non-HRV channels:
      if dsid["name"] != "HRV":
          pdict["loff"] = loff - nlines
          aex = self._get_area_extent(pdict)
          pdict["a_name"] = area_naming["area_id"]
          pdict["a_desc"] = area_naming["description"]
          pdict["p_id"] = ""
          area = get_area_definition(pdict, aex)
          self.area = area
          return self.area
  
      segment_number = self.mda["segment_sequence_number"]
  
      current_first_line = (
          segment_number - self.mda["planned_start_segment_number"]
      ) * pdict["nlines"]
  
      # Or, if we are processing HRV:
      pdict["a_name"] = area_naming["area_id"]
      pdict["p_id"] = ""
      bounds = self.epilogue["ImageProductionStats"][
          "ActualL15CoverageHRV"
      ].copy()
      if self.fill_hrv:
          bounds["UpperEastColumnActual"] = 1
          bounds["UpperWestColumnActual"] = HRV_NUM_COLUMNS
          bounds["LowerEastColumnActual"] = 1
          bounds["LowerWestColumnActual"] = HRV_NUM_COLUMNS
          pdict["ncols"] = HRV_NUM_COLUMNS
  
      upper_south_line = (
          bounds["LowerNorthLineActual"] - current_first_line - 1
      )
      upper_south_line = min(max(upper_south_line, 0), pdict["nlines"])
      lower_coff = 5566 - bounds["LowerEastColumnActual"] + 1
      upper_coff = 5566 - bounds["UpperEastColumnActual"] + 1
  
      # First we look at the lower window
      pdict["nlines"] = upper_south_line
      pdict["loff"] = loff - upper_south_line
      pdict["coff"] = lower_coff
      pdict["a_desc"] = area_naming["description"]
      lower_area_extent = self._get_area_extent(pdict)
      lower_area = get_area_definition(pdict, lower_area_extent)
  
      # Now the upper window
      pdict["nlines"] = nlines - upper_south_line
      pdict["loff"] = loff - pdict["nlines"] - upper_south_line
      pdict["coff"] = upper_coff
      pdict["a_desc"] = area_naming["description"]
      upper_area_extent = self._get_area_extent(pdict)
      upper_area = get_area_definition(pdict, upper_area_extent)
  
      area = geometry.StackedAreaDefinition(lower_area, upper_area)
  
      self.area = area.squeeze()
      return self.area
  
imports: from __future__ import division
  import copy
  import logging
  from datetime import timedelta
  import dask.array
  import numpy
  import xarray
  from pyresample import geometry
  import satpy.readers.utils
  from satpy._compat import cached_property
  from satpy.readers._geos_area import get_area_definition, get_area_extent, get_geos_area_naming
  from satpy.readers.eum_base import get_service_mode, recarray2dict, time_cds_short
  from satpy.readers.hrit_base import HRITFileHandler, ancillary_text, annotation_header, base_hdr_map, image_data_function
  from satpy.readers.seviri_base import CHANNEL_NAMES, HRV_NUM_COLUMNS, REPEAT_CYCLE_DURATION, SATNUM, NoValidOrbitParams, OrbitPolynomialFinder, SEVIRICalibrationHandler, add_scanline_acq_time, create_coef_dict, get_cds_time, get_satpos, mask_bad_quality, pad_data_horizontally, round_nom_time
  from satpy.readers.seviri_l1b_native_hdr import hrit_epilogue, hrit_prologue, impf_configuration
  from satpy.utils import get_legacy_chunk_size
label_desc: Use image node_id 11 for calling the HRITMSGFileHandler obj's underlying member method code with example usage: obj.get_area_def(dsid) and returns: self, self