class_docstr: HRIT standard format reader.
class_docstr_tok: ["HRIT","standard","format","reader","."]
docstr: Open the file, read and get the basic file header info and set the mda dictionary.
docstr_tok: ["Open","the","file",",","read","and","get","the","basic","file","header","info","and","set","the","mda","dictionary","."]
code: def _get_hd(self, hdr_info):
      """Open the file, read and get the basic file header info and set the mda dictionary."""
      hdr_map, variable_length_headers, text_headers = hdr_info
  
      with utils.generic_open(self.filename, mode="rb") as fp:
          total_header_length = 16
          while fp.tell() < total_header_length:
              hdr_id = get_header_id(fp)
              the_type = hdr_map[hdr_id["hdr_id"]]
              if the_type in variable_length_headers:
                  field_length = int(
                      (hdr_id["record_length"] - 3) / the_type.itemsize
                  )
                  current_hdr = get_header_content(
                      fp, the_type, field_length
                  )
                  key = variable_length_headers[the_type]
                  if key in self.mda:
                      if not isinstance(self.mda[key], list):
                          self.mda[key] = [self.mda[key]]
                      self.mda[key].append(current_hdr)
                  else:
                      self.mda[key] = current_hdr
              elif the_type in text_headers:
                  field_length = int(
                      (hdr_id["record_length"] - 3) / the_type.itemsize
                  )
                  char = list(the_type.fields.values())[0][0].char
                  new_type = np.dtype(char + str(field_length))
                  current_hdr = get_header_content(fp, new_type)[0]
                  self.mda[text_headers[the_type]] = current_hdr
              else:
                  current_hdr = get_header_content(fp, the_type)[0]
                  self.mda.update(
                      dict(zip(current_hdr.dtype.names, current_hdr))
                  )
  
              total_header_length = self.mda["total_header_length"]
  
      self.mda.setdefault("number_of_bits_per_pixel", 10)
  
      self.mda["projection_parameters"] = {
          "a": 6378169.00,
          "b": 6356583.80,
          "h": 35785831.00,
          # FIXME: find a reasonable SSP
          "SSP_longitude": 0.0,
      }
      self.mda["orbital_parameters"] = {}
  
imports: import logging
  import os
  from contextlib import contextmanager, nullcontext
  from datetime import timedelta
  from io import BytesIO
  from subprocess import PIPE, Popen
  import dask
  import dask.array
  import numpy
  import xarray
  from pyresample import geometry
  import satpy.readers.utils
  from satpy import config
  from satpy.readers import FSFile
  from satpy.readers.eum_base import time_cds_short
  from satpy.readers.file_handlers import BaseFileHandler
  from satpy.readers.seviri_base import dec10216
label_desc: Use image node_id 2 for calling the HRITFileHandler obj's underlying member method code with example usage: obj._get_hd(hdr_info) without return types