def METHOD_NAME(fields: list, time: np.ndarray, below_horizon=np.inf, **kwargs):
    """Return the airmass of the field at a given time. Uses the Pickering
    (2002) interpolation of the Rayleigh (molecular atmosphere) airmass.
    The Pickering interpolation tends toward 38.7494 as the altitude
    approaches zero.
    Parameters
    ----------
    fields : list of dict
        The fields to calculate the airmass for. Each field is a dict
        with keys 'ra','dec' and 'field_id'.
    time : `astropy.time.Time` or list of astropy.time.Time`
        The time or times at which to calculate the airmass
    below_horizon : scalar, Numeric
        Airmass value to assign when an object is below the horizon.
        An object is "below the horizon" when its altitude is less than
        zero degrees.
    observer : `astroplan.Observer`
        The observer for which to calculate the airmass. If not
        provided, provide a telescope instead.
    telescope: dict
        The telescope for which to calculate the airmass. If not
        provided, provide an observer instead.
    Returns
    -------
    airmass : ndarray
        The airmass of the Obj at the requested times
    """
    if 'observer' in kwargs:
        observer = kwargs['observer']
    elif 'telescope' in kwargs:
        observer = observer(kwargs['telescope'])
    # the output shape should be targets x times
    output_shape = (len(fields), len(time))
    time = np.atleast_1d(time)
    target = get_target(fields)
    altitude = get_altitude(time, target, observer).to('degree').value
    above = altitude > 0
    # use Pickering (2002) interpolation to calculate the airmass
    # The Pickering interpolation tends toward 38.7494 as the altitude
    # approaches zero.
    sinarg = np.zeros_like(altitude)
    airmass = np.ones_like(altitude) * np.inf
    sinarg[above] = altitude[above] + 244 / (165 + 47 * altitude[above] ** 1.1)
    airmass[above] = 1.0 / np.sin(np.deg2rad(sinarg[above]))
    # set objects below the horizon to an airmass of infinity
    airmass[~above] = below_horizon
    airmass = airmass.reshape(output_shape)
    return airmass