How to set montage for emotiv 14 channel

Temporary workaround

Extract electrode location defined in Standard-10-20-Cap81.locs which accessable via EEGLAB repo.

1 -23 0.41111 AF3
2 23 0.41111 AF4
3 -54 0.51111 F7
4 -39 0.33333 F3
5 39 0.33333 F4
6 54 0.51111 F8
7 -69 0.39444 FC5
8 69 0.39444 FC6
9 -90 0.51111 T7
10 90 0.51111 T8
11 -126 0.51111 P7
12 126 0.51111 P8
13 -162 0.51111 O1
14 162 0.51111 O2

The above coordinate can be copy-paste to notepad, and saved as extension .locs.

The full code to produced Evoked is as below.

import mne
import numpy as np
import pandas as pd


ch_pos=['AF3', 'AF4', 'F7', 'F3', 'F4',
        'F8', 'FC5', 'FC6', 'T7', 'T8',
        'P7', 'P8', 'O1', 'O2']

rng = np.random.RandomState(0)

x=[0,0,0,5,0,
   0,0,0,0,0,
   0,0,0,0]
# k=np.array(x)* 1e-6
data=np.reshape(np.array(   [0,0,0,5,0,
                            0,0,0,0,0,
                            0,0,0,0])* 1e-6,(1, len(ch_pos)))
# data = rng.normal(size=(1, n_channels)) * 1e-6

opath='Standard-10-20-Cap14.locs'
mont=mne.channels.read_custom_montage(opath)
# mont.plot()

fake_info = mne.create_info(ch_names=mont.ch_names, sfreq=250.,
                            ch_types='eeg')

df=pd.DataFrame(data, columns=ch_pos) # It is important to the columns label is tally with the mont.ch_name
fake_evoked = mne.EvokedArray(df.to_numpy().T, fake_info)
fake_evoked.set_montage(mont)
fake_evoked.plot_topomap(times=0)

But, it bother me as the topomaps generated is according to the EEGLAB channel layout :nauseated_face:.

topo_map