readrawnix.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import os
  2. import sys
  3. import nixio as nix
  4. import mne
  5. def md_to_dict(section):
  6. sdict = dict()
  7. for prop in section.props:
  8. values = list(prop.values)
  9. if len(values) == 1:
  10. values = values[0]
  11. sdict[prop.name] = values
  12. for sec in section.sections:
  13. sdict[sec.name] = md_to_dict(sec)
  14. return sdict
  15. def main():
  16. if len(sys.argv) < 2:
  17. print("Please provide either a NIX filename as the first argument")
  18. sys.exit(1)
  19. nixfilename = sys.argv[1]
  20. nixfile = nix.File(nixfilename, mode=nix.FileMode.ReadOnly)
  21. root, ext = os.path.splitext(nixfilename)
  22. bvfilename = root + os.extsep + "vhdr"
  23. bvfile = mne.io.read_raw_brainvision(bvfilename, stim_channel=False)
  24. # Create MNE Info object
  25. infosec = nixfile.sections["Info"]
  26. nchan = infosec["nchan"]
  27. sfreq = infosec["sfreq"]
  28. info = mne.create_info(nchan, sfreq)
  29. print(info)
  30. info.update(md_to_dict(infosec))
  31. print(info)
  32. print(bvfile.info)
  33. nixfile.close()
  34. if __name__ == "__main__":
  35. main()