'Two dimensional Box model function'

@staticmethod
def evaluate(x, y, amplitude, x_0, y_0, x_width, y_width):

    x_range = np.logical_and((x >= (x_0 - (x_width / 2.0))), (x <= (x_0 + (x_width / 2.0))))
    y_range = np.logical_and((y >= (y_0 - (y_width / 2.0))), (y <= (y_0 + (y_width / 2.0))))
    result = np.select([np.logical_and(x_range, y_range)], [amplitude], 0)
    if isinstance(amplitude, Quantity):
        return Quantity(result, unit=amplitude.unit, copy=False)
    else:
        return result
