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()