@@ -2045,13 +2045,13 @@ def _setup_plot_projector(info, noise_cov, proj=True, use_noise_cov=True, nave=1
20452045def _check_sss (info ):
20462046 """Check SSS history in info."""
20472047 ch_used = [ch for ch in _DATA_CH_TYPES_SPLIT if _contains_ch_type (info , ch )]
2048- has_meg = "mag" in ch_used and "grad" in ch_used
2049- has_sss = (
2050- has_meg
2048+ has_mag_and_grad = "mag" in ch_used and "grad" in ch_used
2049+ needs_meg_combined = (
2050+ has_mag_and_grad
20512051 and len (info ["proc_history" ]) > 0
20522052 and info ["proc_history" ][0 ].get ("max_info" ) is not None
20532053 )
2054- return ch_used , has_meg , has_sss
2054+ return ch_used , has_mag_and_grad , needs_meg_combined
20552055
20562056
20572057def _triage_rank_sss (info , covs , rank = None , scalings = None ):
@@ -2061,22 +2061,28 @@ def _triage_rank_sss(info, covs, rank=None, scalings=None):
20612061 # Only look at good channels
20622062 picks = _pick_data_channels (info , with_ref_meg = False , exclude = "bads" )
20632063 info = pick_info (info , picks )
2064- ch_used , has_meg , has_sss = _check_sss (info )
2065- if has_sss :
2064+ ch_used , has_mag_and_grad , needs_meg_combined = _check_sss (info )
2065+ if needs_meg_combined :
20662066 if "mag" in rank or "grad" in rank :
20672067 raise ValueError (
20682068 'When using SSS, pass "meg" to set the rank '
20692069 '(separate rank values for "mag" or "grad" are '
20702070 "meaningless)."
20712071 )
2072+ meg_combined = True
20722073 elif "meg" in rank :
2073- raise ValueError (
2074- "When not using SSS, pass separate rank values "
2075- 'for "mag" and "grad" (do not use "meg").'
2076- )
2074+ if needs_meg_combined :
2075+ start = "SSS has been applied to data"
2076+ else :
2077+ start = "Got a single MEG rank value"
2078+ logger .info ("%s. Showing mag and grad whitening jointly." , start )
2079+ meg_combined = True
2080+ else :
2081+ meg_combined = False
2082+ del needs_meg_combined
20772083
2078- picks_list = _picks_by_type (info , meg_combined = has_sss )
2079- if has_sss :
2084+ picks_list = _picks_by_type (info , meg_combined = meg_combined )
2085+ if meg_combined :
20802086 # reduce ch_used to combined mag grad
20812087 ch_used = list (zip (* picks_list ))[0 ]
20822088 # order pick list by ch_used (required for compat with plot_evoked)
@@ -2087,7 +2093,7 @@ def _triage_rank_sss(info, covs, rank=None, scalings=None):
20872093
20882094 picks_list2 = [k for k in picks_list ]
20892095 # add meg picks if needed.
2090- if has_meg :
2096+ if has_mag_and_grad :
20912097 # append ("meg", picks_meg)
20922098 picks_list2 += _picks_by_type (info , meg_combined = True )
20932099
@@ -2120,7 +2126,7 @@ def _triage_rank_sss(info, covs, rank=None, scalings=None):
21202126 this_rank [ch_type ] = rank [ch_type ]
21212127
21222128 rank_list .append (this_rank )
2123- return n_ch_used , rank_list , picks_list , has_sss
2129+ return n_ch_used , rank_list , picks_list , meg_combined
21242130
21252131
21262132def _check_cov (noise_cov , info ):
0 commit comments