code: def _parse_brainvision_dig_montage(fname, scale):
      FID_NAME_MAP = {"Nasion": "nasion", "RPA": "rpa", "LPA": "lpa"}
      defusedxml = _soft_import(
          "defusedxml", "reading BrainVision montages"
      )
      root = defusedxml.ElementTree.parse(fname).getroot()
      sensors = root.find("CapTrakElectrodeList")
  
      fids, dig_ch_pos = dict(), dict()
  
      for s in sensors:
          name = s.find("Name").text
  
          is_fid = name in FID_NAME_MAP
          coordinates = scale * np.array(
              [
                  float(s.find("X").text),
                  float(s.find("Y").text),
                  float(s.find("Z").text),
              ]
          )
  
          # Fiducials
          if is_fid:
              fids[FID_NAME_MAP[name]] = coordinates
          # EEG Channels
          else:
              dig_ch_pos[name] = coordinates
  
      return dict(
          # BVCT stuff
          nasion=fids["nasion"],
          lpa=fids["lpa"],
          rpa=fids["rpa"],
          ch_pos=dig_ch_pos,
          coord_frame="unknown",
      )
  
imports: import numpy
  from ..utils import Bunch, _check_fname, _soft_import, warn
label_desc: Use image node_id 2 for calling a global function with example usage: _parse_brainvision_dig_montage(fname, scale) and returns: dict