code: def _read_theta_phi_in_degrees(
      fname, head_size, fid_names=None, add_fiducials=False
  ):
      ch_names, theta, phi = _safe_np_loadtxt(
          fname, skip_header=1, dtype=(_str, "i4", "i4")
      )
      if add_fiducials:
          # Add fiducials based on 10/20 spherical coordinate definitions
          # http://chgd.umich.edu/wp-content/uploads/2014/06/
          # 10-20_system_positioning.pdf
          # extrapolated from other sensor coordinates in the Easycap layouts
          # https://www.easycap.de/wp-content/uploads/2018/02/
          # Easycap-Equidistant-Layouts.pdf
          assert fid_names is None
          fid_names = ["Nasion", "LPA", "RPA"]
          ch_names.extend(fid_names)
          theta = np.append(theta, [115, -115, 115])
          phi = np.append(phi, [90, 0, 0])
  
      radii = np.full(len(phi), head_size)
      pos = _sph_to_cart(
          np.array([radii, np.deg2rad(phi), np.deg2rad(theta)]).T
      )
      ch_pos = _check_dupes_odict(ch_names, pos)
  
      nasion, lpa, rpa = None, None, None
      if fid_names is not None:
          nasion, lpa, rpa = (ch_pos.pop(n, None) for n in fid_names)
  
      return make_dig_montage(
          ch_pos=ch_pos,
          coord_frame="unknown",
          nasion=nasion,
          lpa=lpa,
          rpa=rpa,
      )
  
imports: import csv
  import os.path
  from collections import OrderedDict
  from functools import partial
  import numpy
  from .._freesurfer import get_mni_fiducials
  from ..transforms import _sph_to_cart
  from ..utils import _pl, _soft_import, warn
  from .None import __file__
  from .montage import make_dig_montage
label_desc: Use image node_id 12 for calling a global function with example usage: _read_theta_phi_in_degrees(fname, head_size, fid_names, add_fiducials) and returns: make_dig_montage