code: def transform_to_head(montage):
      """Transform a DigMontage object into head coordinate.
  
      Parameters
      ----------
      montage : instance of DigMontage
          The montage.
  
      Returns
      -------
      montage : instance of DigMontage
          The montage after transforming the points to head
          coordinate system.
  
      Notes
      -----
      This function requires that the LPA, RPA and Nasion fiducial
      points are available. If they are not, they will be added based by
      projecting the fiducials onto a sphere with radius equal to the average
      distance of each point to the origin (in the given coordinate frame).
  
      This function assumes that all fiducial points are in the same coordinate
      frame (e.g. 'unknown') and it will convert all the point in this coordinate
      system to Neuromag head coordinate system.
  
      .. versionchanged:: 1.2
         Fiducial points will be added automatically if the montage does not
         have them.
      """
      # Get fiducial points and their coord_frame
      native_head_t = compute_native_head_t(montage)
      montage = montage.copy()  # to avoid inplace modification
      if native_head_t["from"] != FIFF.FIFFV_COORD_HEAD:
          for d in montage.dig:
              if d["coord_frame"] == native_head_t["from"]:
                  d["r"] = apply_trans(native_head_t, d["r"])
                  d["coord_frame"] = FIFF.FIFFV_COORD_HEAD
      _ensure_fiducials_head(montage.dig)
      return montage
  
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 5 for calling a global function with example usage: transform_to_head(montage) and returns: montage