class_docstr: Montage for digitized electrode and headshape position data.
  
  .. warning:: Montages are typically created using one of the helper
               functions in the ``See Also`` section below instead of
               instantiating this class directly.
  
  Parameters
  ----------
  dig : list of dict
      The object containing all the dig points.
  ch_names : list of str
      The names of the EEG channels.
  
  See Also
  --------
  read_dig_captrak
  read_dig_dat
  read_dig_egi
  read_dig_fif
  read_dig_hpts
  read_dig_localite
  read_dig_polhemus_isotrak
  make_dig_montage
  
  Notes
  -----
  .. versionadded:: 0.9.0
class_docstr_tok: ["Montage","for","digitized","electrode","and","headshape","position","data",".","..","warning",":",":","Montages","are","typically","created","using","one","of","the","helper","functions","in","the","``","See","Also","``","section","below","instead","of","instantiating","this","class","directly",".","Parameters","--","--","--","--","--","dig",":","list","of","dict","The","object","containing","all","the","dig","points",".","ch_names",":","list","of","str","The","names","of","the","EEG","channels",".","See","Also","--","--","--","--","read_dig_captrak","read_dig_dat","read_dig_egi","read_dig_fif","read_dig_hpts","read_dig_localite","read_dig_polhemus_isotrak","make_dig_montage","Notes","--","--","-","..","versionadded",":",":","0.9.0"]
docstr: Get all channel and fiducial positions.
  
  Returns
  -------
  positions : dict
      A dictionary of the positions for channels (``ch_pos``),
      coordinate frame (``coord_frame``), nasion (``nasion``),
      left preauricular point (``lpa``),
      right preauricular point (``rpa``),
      Head Shape Polhemus (``hsp``), and
      Head Position Indicator(``hpi``).
      E.g.::
  
          {
              'ch_pos': {'EEG061': [0, 0, 0]},
              'nasion': [0, 0, 1],
              'coord_frame': 'mni_tal',
              'lpa': [0, 1, 0],
              'rpa': [1, 0, 0],
              'hsp': None,
              'hpi': None
          }
code: def get_positions(self):
      """Get all channel and fiducial positions.
  
      Returns
      -------
      positions : dict
          A dictionary of the positions for channels (``ch_pos``),
          coordinate frame (``coord_frame``), nasion (``nasion``),
          left preauricular point (``lpa``),
          right preauricular point (``rpa``),
          Head Shape Polhemus (``hsp``), and
          Head Position Indicator(``hpi``).
          E.g.::
  
              {
                  'ch_pos': {'EEG061': [0, 0, 0]},
                  'nasion': [0, 0, 1],
                  'coord_frame': 'mni_tal',
                  'lpa': [0, 1, 0],
                  'rpa': [1, 0, 0],
                  'hsp': None,
                  'hpi': None
              }
      """
      # get channel positions as dict
      ch_pos = self._get_ch_pos()
  
      # get coordframe and fiducial coordinates
      montage_bunch = _get_data_as_dict_from_dig(self.dig)
      coord_frame = _frame_to_str.get(montage_bunch.coord_frame)
  
      # return dictionary
      positions = dict(
          ch_pos=ch_pos,
          coord_frame=coord_frame,
          nasion=montage_bunch.nasion,
          lpa=montage_bunch.lpa,
          rpa=montage_bunch.rpa,
          hsp=montage_bunch.hsp,
          hpi=montage_bunch.hpi,
      )
      return positions
  
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 12 for calling the DigMontage obj's underlying member method code with example usage: obj.get_positions() and returns: positions