code: def read_polhemus_fastscan(
      fname, unit="mm", on_header_missing="raise", *, verbose=None
  ):
      """Read Polhemus FastSCAN digitizer data from a ``.txt`` file.
  
      Parameters
      ----------
      fname : path-like
          The path of ``.txt`` Polhemus FastSCAN file.
      unit : ``'m'`` | ``'cm'`` | ``'mm'``
          Unit of the digitizer file. Polhemus FastSCAN systems data is usually
          exported in millimeters. Defaults to ``'mm'``.
      %(on_header_missing)s
      %(verbose)s
  
      Returns
      -------
      points : array, shape (n_points, 3)
          The digitization points in digitizer coordinates.
  
      See Also
      --------
      read_dig_polhemus_isotrak
      make_dig_montage
      """
      VALID_FILE_EXT = [".txt"]
      fname = str(
          _check_fname(fname, overwrite="read", must_exist=True)
      )
      _scale = _check_unit_and_get_scaling(unit)
  
      _, ext = op.splitext(fname)
      _check_option("fname", ext, VALID_FILE_EXT)
  
      if not _is_polhemus_fastscan(fname):
          msg = (
              "%s does not contain a valid Polhemus FastSCAN header"
              % fname
          )
          _on_missing(on_header_missing, msg)
  
      points = _scale * np.loadtxt(fname, comments="%", ndmin=2)
      _check_dig_shape(points)
      return points
  
imports: import os.path
  import re
  from collections import OrderedDict
  from copy import deepcopy
  from dataclasses import dataclass
  import numpy
  from .._fiff._digitization import _coord_frame_const, _count_points_by_type, _ensure_fiducials_head, _format_dig_points, _get_data_as_dict_from_dig, _get_dig_eeg, _get_fid_coords, _make_dig_points, _read_dig_fif, write_dig
  from .._fiff.constants import CHANNEL_LOC_ALIASES, FIFF
  from .._fiff.meas_info import create_info
  from .._fiff.open import fiff_open
  from .._fiff.pick import _picks_to_idx, channel_type, pick_types
  from .._freesurfer import get_mni_fiducials
  from ..defaults import HEAD_SIZE_DEFAULT
  from ..transforms import Transform, _ensure_trans, _fit_matched_points, _frame_to_str, _quat_to_affine, _sph_to_cart, _topo_to_sph, _verbose_frames, apply_trans, get_ras_to_neuromag_trans
  from ..utils import _check_fname, _check_option, _on_missing, _pl, _validate_type, copy_function_doc_to_method_doc, fill_doc, verbose, warn
  from ..utils.docs import docdict
  from ..viz import plot_montage
  from ._dig_montage_utils import _parse_brainvision_dig_montage, _read_dig_montage_egi
label_desc: Use image node_id 19 for calling a global function with example usage: read_polhemus_fastscan(fname, unit, on_header_missing) and returns: points