class_docstr: JMA HRIT format reader.
  
  By default, the reader uses the start time parsed from the filename. To use exact time, computed
  from the metadata, the user can define a keyword argument::
  
      scene = Scene(filenames=filenames,
                    reader='ahi_hrit',
                    reader_kwargs={'use_acquisition_time_as_start_time': True})
  
  As this time is different for every channel, time-dependent calculations like SZA correction
  can be pretty slow when multiple channels are used.
  
  The exact scanline times are always available as coordinates of an individual channels::
  
      scene.load(["B03"])
      print(scene["B03].coords["acq_time"].data)
  
  would print something similar to::
  
      array(['2021-12-08T06:00:20.131200000', '2021-12-08T06:00:20.191948000',
             '2021-12-08T06:00:20.252695000', ...,
             '2021-12-08T06:09:39.449390000', '2021-12-08T06:09:39.510295000',
             '2021-12-08T06:09:39.571200000'], dtype='datetime64[ns]')
  
  The first value represents the exact start time, and the last one the exact end time of the data
  acquisition.
docstr: Initialize the reader.
docstr_tok: ["Initialize","the","reader","."]
code: def __init__(
      self,
      filename,
      filename_info,
      filetype_info,
      use_acquisition_time_as_start_time=False,
  ):
      """Initialize the reader."""
      super(HRITJMAFileHandler, self).__init__(
          filename,
          filename_info,
          filetype_info,
          (jma_hdr_map, jma_variable_length_headers, jma_text_headers),
      )
  
      self._use_acquisition_time_as_start_time = (
          use_acquisition_time_as_start_time
      )
      self.mda["segment_sequence_number"] = self.mda[
          "image_segm_seq_no"
      ]
      self.mda["planned_end_segment_number"] = self.mda[
          "total_no_image_segm"
      ]
      self.mda["planned_start_segment_number"] = 1
  
      items = self.mda["image_data_function"].decode().split("\r")
      if items[0].startswith("$HALFTONE"):
          self.calibration_table = []
          for item in items[1:]:
              if item == "":
                  continue
              key, value = item.split(":=")
              if key.startswith("_UNIT"):
                  self.mda["unit"] = item.split(":=")[1]
              elif key.startswith("_NAME"):
                  pass
              elif key.isdigit():
                  key = int(key)
                  value = float(value)
                  self.calibration_table.append((key, value))
  
          self.calibration_table = np.array(self.calibration_table)
  
      self.projection_name = (
          self.mda["projection_name"].decode().strip()
      )
      sublon = float(self.projection_name.split("(")[1][:-1])
      self.mda["projection_parameters"]["SSP_longitude"] = sublon
      self.platform = self._get_platform()
      self.is_segmented = self.mda["segment_sequence_number"] > 0
      self.area_id = filename_info.get("area", UNKNOWN_AREA)
      if self.area_id not in AREA_NAMES:
          self.area_id = UNKNOWN_AREA
      self.area = self._get_area_def()
      self.acq_time = self._get_acq_time()
  
imports: import logging
  from datetime import datetime
  import numpy
  import xarray
  from satpy.readers._geos_area import get_area_definition, get_area_extent
  from satpy.readers.hrit_base import HRITFileHandler, ancillary_text, annotation_header, base_hdr_map, image_data_function
  from satpy.readers.utils import get_geostationary_mask
label_desc: Use image node_id 1 to create a new HRITJMAFileHandler object from inherited base classes: HRITFileHandler with example: obj = HRITJMAFileHandler(filename, filename_info, filetype_info, use_acquisition_time_as_start_time)