# EEG Sensor Coordinates

**URL:** <https://mne.discourse.group/t/eeg-sensor-coordinates/6429>\
**Category:** Support & Discussions\
**Tags:** eeg, visualization\
**Created:** [February 27, 2023, 8:39pm UTC](https://mne.discourse.group/t/eeg-sensor-coordinates/6429 "2023-02-27T20:39:16Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![sds](https://yyz2.discourse-cdn.com/free1/user_avatar/mne.discourse.group/sds/32/1810_2.png) [@sds](https://mne.discourse.group/u/sds)\
**Post date:** [February 27, 2023, 8:39pm UTC](https://mne.discourse.group/t/eeg-sensor-coordinates/6429/1 "2023-02-27T20:39:16Z")

</div>

I want to plot the band magnitudes topographically, using [`mne.viz.plot_topomap`](https://mne.tools/stable/generated/mne.viz.plot_topomap.html#mne.viz.plot_topomap).

Alas, that requires the `pos` argument, specifying `(x,y)` position of each sensor.

My EDF files, produced by ANT Neuro, do not have _montage_ information ([`info.get_montage`](https://mne.tools/stable/generated/mne.Info.html#mne.Info.get_montage) always returns `None`).

The channels are [standard](https://en.wikipedia.org/wiki/10%E2%80%9320_system_(EEG)) like `EEG Oz-Ref` &c.

Where can I find the appropriate `pos` argument?

```python
Platform: Linux-6.0.12-76060006-generic-x86_64-with-glibc2.35
Python: 3.10.6 (main, Nov 14 2022, 16:10:14) [GCC 11.3.0]
Executable: /usr/bin/python3
CPU: x86_64: 8 cores
Memory: 15.3 GB

mne: 1.3.0
numpy: 1.24.2 {OpenBLAS 0.3.21 with 8 threads}
scipy: 1.10.1
matplotlib: 3.7.0 {backend=module://matplotlib_inline.backend_inline}

sklearn: 1.2.1
numba: Not found
nibabel: Not found
nilearn: Not found
dipy: Not found
openmeeg: Not found
cupy: Not found
pandas: 1.5.3
pyvista: Not found
pyvistaqt: Not found
ipyvtklink: Not found
vtk: Not found
qtpy: 2.3.0 {PyQt5=5.15.3}
ipympl: Not found
pyqtgraph: Not found
pooch: v1.6.0

mne_bids: Not found
mne_nirs: Not found
mne_features: Not found
mne_qt_browser: Not found
mne_connectivity: 0.5.0
mne_icalabel: Not found

```

---

<div class="post-metadata">

**Author:** ![sds](https://yyz2.discourse-cdn.com/free1/user_avatar/mne.discourse.group/sds/32/1810_2.png) [@sds](https://mne.discourse.group/u/sds)\
**Post date:** [February 27, 2023, 9:03pm UTC](https://mne.discourse.group/t/eeg-sensor-coordinates/6429/2 "2023-02-27T21:03:03Z")

</div>

The only 32-channel standard montage in [`mne.channels.get_builtin_montages`](https://mne.tools/dev/auto_tutorials/intro/40_sensor_locations.html) is `biosemi32`:

```python
<DigMontage | 0 extras (headshape), 0 HPIs, 3 fiducials, 32 channels>

```

However, the `ch_names` there are different from mine (`biosemi32` is missing `AFz`, `FT10`, `FT9`, `Fpz` but has `AF3`, `AF4`, `PO3`, `PO4` instead).

Looking through _all_ the standard montages, I see that

- `standard_1005`
- `standard_1020`
- `easycap-M1`
- `brainproducts-RNP-BA-128`

contain **all** the ANT Neuro channels.  
Should I use one of them and then drop all the extra ones?  
Which one?  
Should I ask ANT Neuro for a montage file?

Thank you!

---

<div class="post-metadata">

**Author:** ![mscheltienne](https://yyz2.discourse-cdn.com/free1/user_avatar/mne.discourse.group/mscheltienne/32/827_2.png) [@mscheltienne](https://mne.discourse.group/u/mscheltienne)\
**Post date:** [February 27, 2023, 9:06pm UTC](https://mne.discourse.group/t/eeg-sensor-coordinates/6429/3 "2023-02-27T21:06:59Z")

</div>

Hello,

I use the `standard_1005` with ANT Neuro, specifically the subset `standard_1020` for 64 channel caps.

Mathieu

---

<div class="post-metadata">

**Author:** ![sds](https://yyz2.discourse-cdn.com/free1/user_avatar/mne.discourse.group/sds/32/1810_2.png) [@sds](https://mne.discourse.group/u/sds)\
**Post date:** [February 28, 2023, 3:47am UTC](https://mne.discourse.group/t/eeg-sensor-coordinates/6429/4 "2023-02-28T03:47:19Z")

</div>

Hi,  
I am now confused because those montages give 3d coordinates and `mne.viz.plot_topomap` wand 2d `pos` argument. Do I need to project them mylself?  
Thank you!

---

<div class="post-metadata">

**Author:** ![mscheltienne](https://yyz2.discourse-cdn.com/free1/user_avatar/mne.discourse.group/mscheltienne/32/827_2.png) [@mscheltienne](https://mne.discourse.group/u/mscheltienne)\
**Post date:** [February 28, 2023, 9:55am UTC](https://mne.discourse.group/t/eeg-sensor-coordinates/6429/5 "2023-02-28T09:55:24Z")

</div>

> pos: array, shape (n\_channels, 2) | instance of Info
> 
> ```
> Location information for the channels. If an array, should provide the x and y 
> coordinates for plotting the channels in 2D. If an Info object it must contain 
> only one channel type and exactly len(data) channels; the x/y coordinates will 
> be inferred from the montage in the Info object.
> 
> ```

Indeed, if you want to use the `array of shape (n_channels, 2)`, you need to project the 3D coordinates. This is not handy, instead use the second option: provide an `Info` with the correct channel name and the correct montage set. For instance:

```python
info = create_info(ch_names=ch_names, sfreq=fs, ch_types="eeg")
info.set_montage("standard_1020")

```

Mathieu
