docstr: Return index in to coefficient arrays for this band's wavelength.
  
  This function search through the `COEFF_INDEX_MAP` dictionary and
  finds the first key where the nominal wavelength of `wavelength_range`
  falls between the minimum wavelength and maximum wavelength of the key.
  `wavelength_range` can also be the standard name of the band. For
  example, "M05" for VIIRS or "1" for MODIS.
  
  Args:
      wavelength_range: 3-element tuple of
          (min wavelength, nominal wavelength, max wavelength) or the
          string name of the band.
      resolution: resolution of the band to be corrected
  
  Returns:
      index in to coefficient arrays like `aH2O`, `aO3`, etc.
      None is returned if no matching wavelength is found
docstr_tok: ["Return","index","in","to","coefficient","arrays","for","this","band","'s","wavelength",".","This","function","search","through","the","`","COEFF_INDEX_MAP","`","dictionary","and","finds","the","first","key","where","the","nominal","wavelength","of","`","wavelength_range","`","falls","between","the","minimum","wavelength","and","maximum","wavelength","of","the","key",".","`","wavelength_range","`","can","also","be","the","standard","name","of","the","band",".","For","example",",","``","M05","''","for","VIIRS","or","``","1","''","for","MODIS",".","Args",":","wavelength_range",":","3-element","tuple","of","(","min","wavelength",",","nominal","wavelength",",","max","wavelength",")","or","the","string","name","of","the","band",".","resolution",":","resolution","of","the","band","to","be","corrected","Returns",":","index","in","to","coefficient","arrays","like","`","aH2O","`",",","`","aO3","`",",","etc",".","None","is","returned","if","no","matching","wavelength","is","found"]
code: def _find_coefficient_index(self, wavelength_range, resolution=0):
      """Return index in to coefficient arrays for this band's wavelength.
  
      This function search through the `COEFF_INDEX_MAP` dictionary and
      finds the first key where the nominal wavelength of `wavelength_range`
      falls between the minimum wavelength and maximum wavelength of the key.
      `wavelength_range` can also be the standard name of the band. For
      example, "M05" for VIIRS or "1" for MODIS.
  
      Args:
          wavelength_range: 3-element tuple of
              (min wavelength, nominal wavelength, max wavelength) or the
              string name of the band.
          resolution: resolution of the band to be corrected
  
      Returns:
          index in to coefficient arrays like `aH2O`, `aO3`, etc.
          None is returned if no matching wavelength is found
  
      """
      index_map = self.COEFF_INDEX_MAP
      # Find the best resolution of coefficients
      for res in sorted(index_map.keys()):
          if resolution <= res:
              index_map = index_map[res]
              break
      else:
          raise ValueError(
              "Unrecognized data resolution: {}", resolution
          )
      # Find the best wavelength of coefficients
      if isinstance(wavelength_range, str):
          # wavelength range is actually a band name
          return index_map[wavelength_range]
      for lut_wvl_range, v in index_map.items():
          if isinstance(lut_wvl_range, str):
              # we are analyzing wavelengths and ignoring dataset names
              continue
          if wavelength_range[1] in lut_wvl_range:
              return v
      raise ValueError(f"Can't find LUT for {wavelength_range}.")
  
imports: from __future__ import annotations
  import logging
  from typing import Optional, Type, Union
  import dask.array
  import numpy
  import xarray
  from satpy.dataset.dataid import WavelengthRange
label_desc: Use image node_id 3 for calling the _Coefficients obj's underlying member method code with example usage: obj._find_coefficient_index(wavelength_range, resolution) and returns: index_map, v