Repository: mne-tools/mne-python

Issue:
DOC: creating custom montages without fiducials
Currently, it is possible to create custom montages with mne.channels.Montage. This now gives a
DeprecationWarning with the redirection to use DigMontage instead. 

As far as I understood it, this function requires reference points on the head, which I don't have. I only have standard coordinates for channels, for custom EEG caps. Below is the example use case which still works, but will not anymore in the next version. It would be great if this functionality would still be preserved. Or is it also currently possible with DigMontage somehow?

I also use the same type of workflow to create custom montages for working with ECoG grids, which also lack the reference points.

```python
import mne
import pandas as pd

df = pd.read_csv('channels.txt')
ch_names = df.name.to_list()
pos = df[['x','y','z']].values
montage = mne.channels.Montage(pos=pos, ch_names=ch_names, 
                               kind='motor-cap', selection=range(64))
montage.plot()
```
channel file: [channels.txt](https://github.com/mne-tools/mne-python/files/3871332/channels.txt)

Desired output:
![Screenshot from 2019-11-20 12-50-04](https://user-images.githubusercontent.com/1282430/69277027-5f4a6d80-0b94-11ea-9e6f-829dddf58e0f.png)



Discussion:
did you have a look at new documentation?

https://mne.tools/stable/auto_tutorials/misc/plot_ecog.html?highlight=make_dig_montage
https://mne.tools/stable/auto_examples/visualization/plot_3d_to_2d.html?highlight=make_dig_montage
https://mne.tools/stable/auto_tutorials/source-modeling/plot_eeg_no_mri.html?highlight=make_standard_montage
https://mne.tools/stable/auto_examples/visualization/plot_montage.html?highlight=make_standard_montage

does it help?

>

Ah, I know understand that for ```mne.channels.make_dig_montage``` the parameter ```coord_frame``` has to be set to ```'head'```. Then it works. Thank you. 
If this is not the case, following ValueError is thrown, which made me assume that you need fiducials:
```python
    648     for pt in (nasion, lpa, rpa):
    649         if pt.ndim != 1 or len(pt) != 3:
--> 650             raise ValueError("Points have to be provided as one dimensional "
    651                              "arrays of length 3.")
ValueError: Points have to be provided as one dimensional arrays of length 3.
```


For this example:
```python
import mne
import pandas as pd

df = pd.read_csv('channels.txt')
ch_names = df.name.to_list()

pos = df[['x','y','z']].values
dig_ch_pos = dict(zip(ch_names,pos))
montage = mne.channels.make_dig_montage(ch_pos=dig_ch_pos)
montage.plot()
```

Maybe the documentation of the parameter for ```mne.channels.make_dig_montage``` could be extended to clarify this. :slightly_smiling_face: 
@nschawor can you maybe give a try to a PR to help us with the documentation? thanks for your help and feedback
Can i work on this issue please

sir can you help me in this because i am first time start contribution in open source code
please sir it is kind request


Or sir can you explain in more detail sir about this

@codewithvicky fixing this issue will require some familiarity with neuroscience (electrode montages, etc).  I see from your profile that maybe you are just starting out learning python?  Perhaps our "EASY" label was misleading; the code changes are not too involved but the background knowledge required may be considerable.
ok sir 
I'll work on this! :)

Resolving patch:
diff --git a/mne/channels/montage.py b/mne/channels/montage.py
--- a/mne/channels/montage.py
+++ b/mne/channels/montage.py
@@ -118,6 +118,12 @@ def make_dig_montage(ch_pos=None, nasion=None, lpa=None, rpa=None,
     read_dig_egi
     read_dig_fif
     read_dig_polhemus_isotrak
+
+    Notes
+    -----
+    Valid ``coord_frame`` arguments are 'meg', 'mri', 'mri_voxel', 'head',
+    'mri_tal', 'ras', 'fs_tal', 'ctf_head', 'ctf_meg', 'unknown'. For custom
+    montages without fiducials this parameter has to be set to 'head'.
     """
     _validate_type(ch_pos, (dict, None), 'ch_pos')
     if ch_pos is None:


Test patch: