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: Get line offset for the current segment.
  
  Read line offset from the file and adapt it to the current segment
  or half disk scan so that
  
      y(l) ~ l - loff
  
  because this is what get_geostationary_area_extent() expects.
docstr_tok: ["Get","line","offset","for","the","current","segment",".","Read","line","offset","from","the","file","and","adapt","it","to","the","current","segment","or","half","disk","scan","so","that","y","(","l",")","~","l","-","loff","because","this","is","what","get_geostationary_area_extent","(",")","expects","."]
code: def _get_line_offset(self):
      """Get line offset for the current segment.
  
      Read line offset from the file and adapt it to the current segment
      or half disk scan so that
  
          y(l) ~ l - loff
  
      because this is what get_geostationary_area_extent() expects.
      """
      # Get line offset from the file
      nlines = int(self.mda["number_of_lines"])
      loff = np.float32(self.mda["loff"])
  
      # Adapt it to the current segment
      if self.is_segmented:
          # loff in the file specifies the offset of the full disk image
          # centre (1375/2750 for VIS/IR)
          segment_number = self.mda["segment_sequence_number"] - 1
          loff -= (
              self.mda["total_no_image_segm"] - segment_number - 1
          ) * nlines
      elif self.area_id in (NORTH_HEMIS, SOUTH_HEMIS):
          # loff in the file specifies the start line of the half disk image
          # in the full disk image
          loff = nlines - loff
      elif self.area_id == UNKNOWN_AREA:
          logger.error("Cannot compute line offset for unknown area")
  
      return loff
  
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 4 for calling the HRITJMAFileHandler obj's underlying member method code with example usage: obj._get_line_offset() and returns: loff