def get_bse(da, da_peak_times):
    """
    Takes an xarray DataArray containing veg_index values and calculates the vegetation 
    value base (bse) for each timeseries per-pixel. The base is calculated as the mean 
    value of two minimum values; the min of the slope to the left of peak of season, and
    the min of the slope to the right of the peak of season. Users must provide an existing
    peak of season (pos) data array, which can either be the max of the timeseries, or the
    middle of season (mos) values.
    
    Parameters
    ----------
    da: xarray DataArray
        A two-dimensional or multi-dimensional DataArray containing an array of veg_index
        values.
    da_peak_times: xarray DataArray
        An xarray DataArray type with an x and y dimension (no time). Each pixel must be
        the time (day of year) value calculated at either at peak of season (pos) or middle 
        of season (mos) prior.

    Returns
    -------
    da_bse_values : xarray DataArray
        An xarray DataArray type with an x and y dimension (no time). Each pixel is the 
        base (bse) veg_index value detected at across the timeseries at each pixel.
    """
    
    # notify user
    print('Beginning calculation of base (bse) values (times not possible).')

    # get vos values (min val in each pixel timeseries)
    print('> Calculating base (bse) values.')
    
    # split timeseries into left and right slopes via provided peak/middle values
    slope_l = da.where(da['time.dayofyear'] <= da_peak_times).min('time')
    slope_r = da.where(da['time.dayofyear'] >= da_peak_times).min('time')
    
    # get per pixel mean of both left and right slope min values 
    da_bse_values = (slope_l + slope_r) / 2
    
    # convert type
    da_bse_values = da_bse_values.astype('float32')
    
    # rename
    da_bse_values = da_bse_values.rename('bse_values')

    # notify user
    print('> Success!\n')
    
    return da_bse_values