221 lines
5.6 KiB
Python
221 lines
5.6 KiB
Python
r"""Browse raw data.
|
|
|
|
This uses :func:`mne.io.read_raw` so it supports the same formats
|
|
(without keyword arguments).
|
|
|
|
Examples
|
|
--------
|
|
.. code-block:: console
|
|
|
|
$ mne browse_raw sample_audvis_raw.fif \
|
|
--proj sample_audvis_ecg-proj.fif \
|
|
--eve sample_audvis_raw-eve.fif
|
|
"""
|
|
|
|
# Authors: The MNE-Python contributors.
|
|
# License: BSD-3-Clause
|
|
# Copyright the MNE-Python contributors.
|
|
|
|
import sys
|
|
|
|
import mne
|
|
|
|
|
|
def run():
|
|
"""Run command."""
|
|
from mne.commands.utils import _add_verbose_flag, get_optparser
|
|
from mne.viz import _RAW_CLIP_DEF
|
|
|
|
parser = get_optparser(__file__, usage="usage: %prog raw [options]")
|
|
|
|
parser.add_option(
|
|
"--raw",
|
|
dest="raw_in",
|
|
help="Input raw FIF file (can also be specified "
|
|
"directly as an argument without the --raw prefix)",
|
|
metavar="FILE",
|
|
)
|
|
parser.add_option(
|
|
"--proj", dest="proj_in", help="Projector file", metavar="FILE", default=""
|
|
)
|
|
parser.add_option(
|
|
"--projoff",
|
|
dest="proj_off",
|
|
help="Disable all projectors",
|
|
default=False,
|
|
action="store_true",
|
|
)
|
|
parser.add_option(
|
|
"--eve", dest="eve_in", help="Events file", metavar="FILE", default=""
|
|
)
|
|
parser.add_option(
|
|
"-d",
|
|
"--duration",
|
|
dest="duration",
|
|
type="float",
|
|
help="Time window for plotting (s)",
|
|
default=10.0,
|
|
)
|
|
parser.add_option(
|
|
"-t",
|
|
"--start",
|
|
dest="start",
|
|
type="float",
|
|
help="Initial start time for plotting",
|
|
default=0.0,
|
|
)
|
|
parser.add_option(
|
|
"-n",
|
|
"--n_channels",
|
|
dest="n_channels",
|
|
type="int",
|
|
help="Number of channels to plot at a time",
|
|
default=20,
|
|
)
|
|
parser.add_option(
|
|
"-o",
|
|
"--order",
|
|
dest="group_by",
|
|
help="Order to use for grouping during plotting ('type' or 'original')",
|
|
default="type",
|
|
)
|
|
parser.add_option(
|
|
"-p",
|
|
"--preload",
|
|
dest="preload",
|
|
help="Preload raw data (for faster navigation)",
|
|
default=False,
|
|
action="store_true",
|
|
)
|
|
parser.add_option(
|
|
"-s",
|
|
"--show_options",
|
|
dest="show_options",
|
|
help="Show projection options dialog",
|
|
default=False,
|
|
)
|
|
parser.add_option(
|
|
"--allowmaxshield",
|
|
dest="maxshield",
|
|
help="Allow loading MaxShield processed data",
|
|
action="store_true",
|
|
)
|
|
parser.add_option(
|
|
"--highpass",
|
|
dest="highpass",
|
|
type="float",
|
|
help="Display high-pass filter corner frequency",
|
|
default=-1,
|
|
)
|
|
parser.add_option(
|
|
"--lowpass",
|
|
dest="lowpass",
|
|
type="float",
|
|
help="Display low-pass filter corner frequency",
|
|
default=-1,
|
|
)
|
|
parser.add_option(
|
|
"--filtorder",
|
|
dest="filtorder",
|
|
type="int",
|
|
help="Display filtering IIR order (or 0 to use FIR)",
|
|
default=4,
|
|
)
|
|
parser.add_option(
|
|
"--clipping",
|
|
dest="clipping",
|
|
help="Enable trace clipping mode. Can be 'clamp', 'transparent', a float, "
|
|
"or 'none'.",
|
|
default=_RAW_CLIP_DEF,
|
|
)
|
|
parser.add_option(
|
|
"--filterchpi",
|
|
dest="filterchpi",
|
|
help="Enable filtering cHPI signals.",
|
|
default=None,
|
|
action="store_true",
|
|
)
|
|
parser.add_option(
|
|
"--butterfly",
|
|
dest="butterfly",
|
|
help="Plot in butterfly mode",
|
|
default=False,
|
|
action="store_true",
|
|
)
|
|
_add_verbose_flag(parser)
|
|
options, args = parser.parse_args()
|
|
|
|
if len(args):
|
|
raw_in = args[0]
|
|
else:
|
|
raw_in = options.raw_in
|
|
duration = options.duration
|
|
start = options.start
|
|
n_channels = options.n_channels
|
|
group_by = options.group_by
|
|
preload = options.preload
|
|
show_options = options.show_options
|
|
proj_in = options.proj_in
|
|
proj_off = options.proj_off
|
|
eve_in = options.eve_in
|
|
maxshield = options.maxshield
|
|
highpass = options.highpass
|
|
lowpass = options.lowpass
|
|
filtorder = options.filtorder
|
|
clipping = options.clipping
|
|
if isinstance(clipping, str):
|
|
if clipping.lower() == "none":
|
|
clipping = None
|
|
else:
|
|
try:
|
|
clipping = float(clipping) # allow float and convert it
|
|
except ValueError:
|
|
pass
|
|
filterchpi = options.filterchpi
|
|
verbose = options.verbose
|
|
butterfly = options.butterfly
|
|
|
|
if raw_in is None:
|
|
parser.print_help()
|
|
sys.exit(1)
|
|
|
|
kwargs = dict(preload=preload)
|
|
if maxshield:
|
|
kwargs.update(allow_maxshield="yes")
|
|
raw = mne.io.read_raw(raw_in, **kwargs)
|
|
if len(proj_in) > 0:
|
|
projs = mne.read_proj(proj_in)
|
|
raw.info["projs"] = projs
|
|
if len(eve_in) > 0:
|
|
events = mne.read_events(eve_in)
|
|
else:
|
|
events = None
|
|
|
|
if filterchpi:
|
|
if not preload:
|
|
raise RuntimeError("Raw data must be preloaded for chpi, use --preload")
|
|
raw = mne.chpi.filter_chpi(raw)
|
|
|
|
highpass = None if highpass < 0 or filtorder < 0 else highpass
|
|
lowpass = None if lowpass < 0 or filtorder < 0 else lowpass
|
|
raw.plot(
|
|
duration=duration,
|
|
start=start,
|
|
n_channels=n_channels,
|
|
group_by=group_by,
|
|
show_options=show_options,
|
|
events=events,
|
|
highpass=highpass,
|
|
lowpass=lowpass,
|
|
filtorder=filtorder,
|
|
clipping=clipping,
|
|
butterfly=butterfly,
|
|
proj=not proj_off,
|
|
verbose=verbose,
|
|
show=True,
|
|
block=True,
|
|
)
|
|
|
|
|
|
mne.utils.run_command_if_main()
|