'Two dimensional Airy model function'

@classmethod
def evaluate(cls, x, y, amplitude, x_0, y_0, radius):

    if (cls._rz is None):
        try:
            from scipy.special import j1, jn_zeros
            cls._rz = (jn_zeros(1, 1)[0] / np.pi)
            cls._j1 = j1
        except ValueError:
            raise ImportError(u'AiryDisk2D    model    requires    scipy    >    0.11.')
    r = (np.sqrt((((x - x_0) ** 2) + ((y - y_0) ** 2))) / (radius / cls._rz))
    if isinstance(r, Quantity):
        r = r.to_value(u.dimensionless_unscaled)
    z = np.ones(r.shape)
    rt = (np.pi * r[(r > 0)])
    z[(r > 0)] = (((2.0 * cls._j1(rt)) / rt) ** 2)
    if isinstance(amplitude, Quantity):
        z = Quantity(z, u.dimensionless_unscaled, copy=False)
    z *= amplitude
    return z
