def METHOD_NAME(
    fmriprep_confounds_file,
    dummy_scans,
    TR,
    motion_filter_type,
    motion_filter_order,
    band_stop_min,
    band_stop_max,
    head_radius,
    fd_thresh,
):
    """Determine if a run has too many high-motion volumes to continue processing.
    Parameters
    ----------
    %(fmriprep_confounds_file)s
    %(dummy_scans)s
    %(TR)s
    %(motion_filter_type)s
    %(motion_filter_order)s
    %(band_stop_min)s
    %(band_stop_max)s
    %(head_radius)s
    %(fd_thresh)s
    brain_mask
    Returns
    -------
    post_scrubbing_duration : :obj:`float`
        Amount of time remaining in the run after dummy scan removal, in seconds.
    """
    if fd_thresh <= 0:
        # No scrubbing will be performed, so there's no point is calculating amount of "good time".
        return np.inf
    dummy_scans = _infer_dummy_scans(
        dummy_scans=dummy_scans,
        confounds_file=fmriprep_confounds_file,
    )
    # Read in fmriprep confounds tsv to calculate FD
    fmriprep_confounds_df = pd.read_table(fmriprep_confounds_file)
    # Remove dummy volumes
    fmriprep_confounds_df = fmriprep_confounds_df.drop(np.arange(dummy_scans))
    # Calculate filtered FD
    motion_df = load_motion(
        fmriprep_confounds_df,
        TR=TR,
        motion_filter_type=motion_filter_type,
        motion_filter_order=motion_filter_order,
        band_stop_min=band_stop_min,
        band_stop_max=band_stop_max,
    )
    fd_arr = compute_fd(confound=motion_df, head_radius=head_radius)
    return np.sum(fd_arr <= fd_thresh) * TR