@@ -104,6 +104,26 @@ def get_channel_type_constants(include_defaults=False):
104104 unit = FIFF .FIFF_UNIT_RAD ,
105105 coil_type = FIFF .FIFFV_COIL_FNIRS_FD_PHASE ,
106106 ),
107+ fnirs_td_gated_amplitude = dict (
108+ kind = FIFF .FIFFV_FNIRS_CH ,
109+ unit = FIFF .FIFF_UNIT_UNITLESS ,
110+ coil_type = FIFF .FIFFV_COIL_FNIRS_TD_GATED_AMPLITUDE ,
111+ ),
112+ fnirs_td_moments_intensity = dict (
113+ kind = FIFF .FIFFV_FNIRS_CH ,
114+ unit = FIFF .FIFF_UNIT_UNITLESS ,
115+ coil_type = FIFF .FIFFV_COIL_FNIRS_TD_MOMENTS_INTENSITY ,
116+ ),
117+ fnirs_td_moments_mean = dict (
118+ kind = FIFF .FIFFV_FNIRS_CH ,
119+ unit = FIFF .FIFF_UNIT_SEC ,
120+ coil_type = FIFF .FIFFV_COIL_FNIRS_TD_MOMENTS_MEAN ,
121+ ),
122+ fnirs_td_moments_variance = dict (
123+ kind = FIFF .FIFFV_FNIRS_CH ,
124+ unit = FIFF .FIFF_UNIT_SEC2 ,
125+ coil_type = FIFF .FIFFV_COIL_FNIRS_TD_MOMENTS_VARIANCE ,
126+ ),
107127 fnirs_od = dict (kind = FIFF .FIFFV_FNIRS_CH , coil_type = FIFF .FIFFV_COIL_FNIRS_OD ),
108128 hbo = dict (
109129 kind = FIFF .FIFFV_FNIRS_CH ,
@@ -197,6 +217,10 @@ def get_channel_type_constants(include_defaults=False):
197217 FIFF .FIFFV_COIL_FNIRS_FD_AC_AMPLITUDE : "fnirs_fd_ac_amplitude" ,
198218 FIFF .FIFFV_COIL_FNIRS_FD_PHASE : "fnirs_fd_phase" ,
199219 FIFF .FIFFV_COIL_FNIRS_OD : "fnirs_od" ,
220+ FIFF .FIFFV_COIL_FNIRS_TD_GATED_AMPLITUDE : "fnirs_td_gated_amplitude" ,
221+ FIFF .FIFFV_COIL_FNIRS_TD_MOMENTS_INTENSITY : "fnirs_td_moments_intensity" ,
222+ FIFF .FIFFV_COIL_FNIRS_TD_MOMENTS_MEAN : "fnirs_td_moments_mean" ,
223+ FIFF .FIFFV_COIL_FNIRS_TD_MOMENTS_VARIANCE : "fnirs_td_moments_variance" ,
200224 },
201225 ),
202226 "eeg" : (
@@ -385,6 +409,26 @@ def _triage_fnirs_pick(ch, fnirs, warned):
385409 return True
386410 elif ch ["coil_type" ] == FIFF .FIFFV_COIL_FNIRS_OD and "fnirs_od" in fnirs :
387411 return True
412+ elif (
413+ ch ["coil_type" ] == FIFF .FIFFV_COIL_FNIRS_TD_GATED_AMPLITUDE
414+ and "fnirs_td_gated_amplitude" in fnirs
415+ ):
416+ return True
417+ elif (
418+ ch ["coil_type" ] == FIFF .FIFFV_COIL_FNIRS_TD_MOMENTS_INTENSITY
419+ and "fnirs_td_moments_intensity" in fnirs
420+ ):
421+ return True
422+ elif (
423+ ch ["coil_type" ] == FIFF .FIFFV_COIL_FNIRS_TD_MOMENTS_MEAN
424+ and "fnirs_td_moments_mean" in fnirs
425+ ):
426+ return True
427+ elif (
428+ ch ["coil_type" ] == FIFF .FIFFV_COIL_FNIRS_TD_MOMENTS_VARIANCE
429+ and "fnirs_td_moments_variance" in fnirs
430+ ):
431+ return True
388432 return False
389433
390434
@@ -569,7 +613,7 @@ def pick_types(
569613 pick [k ] = _triage_meg_pick (info ["chs" ][k ], ref_meg )
570614 elif ch_type in ("eyegaze" , "pupil" ):
571615 pick [k ] = _triage_eyetrack_pick (info ["chs" ][k ], eyetrack )
572- else : # ch_type in ('hbo', 'hbr')
616+ else : # ch_type in ('hbo', 'hbr', ... )
573617 pick [k ] = _triage_fnirs_pick (info ["chs" ][k ], fnirs , warned )
574618
575619 # restrict channels to selection if provided
@@ -867,6 +911,10 @@ def channel_indices_by_type(info, picks=None, *, exclude=()):
867911 fnirs_fd_ac_amplitude = list (),
868912 fnirs_fd_phase = list (),
869913 fnirs_od = list (),
914+ fnirs_td_gated_amplitude = list (),
915+ fnirs_td_moments_intensity = list (),
916+ fnirs_td_moments_mean = list (),
917+ fnirs_td_moments_variance = list (),
870918 eyegaze = list (),
871919 pupil = list (),
872920 )
@@ -1104,6 +1152,10 @@ def _check_excludes_includes(chs, info=None, allow_bads=False):
11041152 "fnirs_fd_ac_amplitude" ,
11051153 "fnirs_fd_phase" ,
11061154 "fnirs_od" ,
1155+ "fnirs_td_gated_amplitude" ,
1156+ "fnirs_td_moments_intensity" ,
1157+ "fnirs_td_moments_mean" ,
1158+ "fnirs_td_moments_variance" ,
11071159)
11081160_EYETRACK_CH_TYPES_SPLIT = ("eyegaze" , "pupil" )
11091161_DATA_CH_TYPES_ORDER_DEFAULT = (
0 commit comments