Using the call (raw._get_channel_positions()) to I can bring the xyz coordinates of each of my electrodes. I am not sure why get_montage() results in an empty object as I am not receiving an error messages.
Thanks @Richard and @adam2392 for your replies. Greatly appreciate your time and support on this. Apologies for the delayed reply.
@adam2392 - yes, info['dig'] is empty as well. I found a work-around that allows me to proceed with the pipeline by manually creating the montage instead of using the montage = raw.get_montage() call. Here is the code I use:
names = raw.ch_names
locations = raw._get_channel_positions()
x = dict(zip(names, locations)) # creates a dictionary with channel names and locations - this gets passed to the make_dig_montage function later
fiducials = mne.coreg.get_mni_fiducials('subject','/Users/cm2020/Desktop/subject_recon')
LPA = fiducials
LPA = (list(LPA.values()))
Nasion = fiducials
Nasion = (list(Nasion.values()))
RPA = fiducials
RPA = (list(RPA.values()))
montage = mne.channels.make_dig_montage(ch_pos=x,nasion=Nasion, lpa=LPA, rpa=RPA, coord_frame='head')
# head --> mri transformation
# now let's load our Talairach transform and apply it (mri --> mni_tal transformation)
mri_mni_t = mne.read_talxfm('subject','/Users/cm2020/Desktop/subject_recon')
montage.apply_trans(mri_mni_t) # mri to mni_tal (MNI Taliarach)
If possible, can you confirm if there are any potential issues with this method? Still unsure why the montage is empty. Thanks so much!