def bounds1D(stop, step_size, start=0):
    """
    Return the bbox coordinates for a single dimension given
    the size of the chunked dimension and the size of each box
    """
    assert step_size > 0, f"invalid step_size: {step_size}"

    i = start // step_size
    beg = start
    end = (i+1) * step_size

    bounds = []
    while end < stop:
        bounds.append(slice(beg, end))

        i += 1
        beg = end
        end += step_size

    # last window
    bounds.append(slice(beg, stop))

    return bounds