class_docstr: AHI gridded format reader.
  
  This data is flat binary, big endian unsigned short.
  It covers the region 85E -> 205E, 60N -> 60S at variable resolution:
  - 0.005 degrees for Band 3
  - 0.01 degrees for Bands 1, 2 and 4
  - 0.02 degrees for all other bands.
  These are approximately equivalent to 0.5, 1 and 2km.
  
  Files can either be zipped with bz2 compression (like the HSD format
  data), or can be uncompressed flat binary.
docstr: Determine if LUT is available and, if not, download it.
docstr_tok: ["Determine","if","LUT","is","available","and",",","if","not",",","download","it","."]
code: def _load_lut(self):
      """Determine if LUT is available and, if not, download it."""
      # First, check that the LUT is available. If not, download it.
      lut_file = self.lut_dir + self.product_name
      if not os.path.exists(lut_file):
          self._get_luts()
      try:
          # Load file, it has 2 columns: DN + Refl/BT. We only need latter.
          lut = np.loadtxt(lut_file)[:, 1]
      except FileNotFoundError:
          raise FileNotFoundError("No LUT file found:", lut_file)
      return lut
  
imports: import logging
  import os
  import dask.array
  import numpy
  import xarray
  from appdirs import AppDirs
  from pyresample import geometry
  from satpy.readers.file_handlers import BaseFileHandler
  from satpy.readers.utils import unzip_file
  from satpy.utils import get_legacy_chunk_size
label_desc: Use image node_id 3 for calling the AHIGriddedFileHandler obj's underlying member method code with example usage: obj._load_lut() and returns: lut