code: def limb_correct_atms_bt(bt_data, surf_type_mask, coeff_fns, ds_info):
      """Gather data needed for limb correction."""
      idx = ds_info["channel_index"]
      LOG.info("Starting ATMS Limb Correction...")
  
      sea_bt = get_coeff_by_sfc(coeff_fns["sea"], bt_data, idx)
      land_bt = get_coeff_by_sfc(coeff_fns["land"], bt_data, idx)
  
      LOG.info("Finishing limb correction")
      is_sea = surf_type_mask == 0
      new_data = np.where(is_sea, sea_bt, land_bt)
  
      bt_corrected = xr.DataArray(
          new_data, dims=("y", "x"), attrs=ds_info
      )
  
      return bt_corrected
  
imports: import datetime
  import importlib
  import logging
  import os
  from collections import Counter
  import dask.array
  import numpy
  import xarray
  from satpy.aux_download import retrieve
  from satpy.readers.file_handlers import BaseFileHandler
  from satpy.utils import get_legacy_chunk_size
label_desc: Use image node_id 6 for calling a global function with example usage: limb_correct_atms_bt(bt_data, surf_type_mask, coeff_fns, ds_info) and returns: bt_corrected