code: def _read_ctc(fname):
      """Read cross-talk correction matrix."""
      fname = _check_fname(fname, overwrite="read", must_exist=True)
      f, tree, _ = fiff_open(fname)
      with f as fid:
          sss_ctc = _read_maxfilter_record(fid, tree)["sss_ctc"]
          bad_str = "Invalid cross-talk FIF: %s" % fname
          if len(sss_ctc) == 0:
              raise ValueError(bad_str)
          node = dir_tree_find(tree, FIFF.FIFFB_DATA_CORRECTION)[0]
          comment = find_tag(fid, node, FIFF.FIFF_COMMENT).data
          if comment != "cross-talk compensation matrix":
              raise ValueError(bad_str)
          sss_ctc["creator"] = find_tag(
              fid, node, FIFF.FIFF_CREATOR
          ).data
          sss_ctc["date"] = find_tag(
              fid, node, FIFF.FIFF_MEAS_DATE
          ).data
      return sss_ctc
  
file_path: mne-python/mne/_fiff/proc_history.py
imports: import numpy
  from ..fixes import _csc_matrix_cast
  from ..utils import _check_fname, warn
  from .constants import FIFF
  from .open import fiff_open, read_tag
  from .tag import _float_item, _int_item, find_tag
  from .tree import dir_tree_find
  from .write import _safe_name_list, end_block, start_block, write_float, write_float_matrix, write_float_sparse, write_id, write_int, write_int_matrix, write_name_list_sanitized, write_string
label_desc: Use image node_id 3 for calling a global function with example usage: _read_ctc(fname) and returns: sss_ctc