<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load_asdf(asdf_obj, data_key='sci', wcs_key='wcs', header_key='meta'):
 """ Load from an ASDF object. Parameters asdf_obj : obj ASDF or ASDF-in-FITS object. data_key, wcs_key, header_key : str Key values to specify where to find data, WCS, and header in ASDF. Returns ------- data : ndarray or `None` Image data, if found. wcs : obj or `None` GWCS object or models, if found. ahdr : dict Header containing metadata. """

    asdf_keys = asdf_obj.keys()

    if wcs_key in asdf_keys:
        wcs = asdf_obj[wcs_key]
    else:
        wcs = None

    if header_key in asdf_keys:
        ahdr = asdf_obj[header_key]
    else:
        ahdr = {}

    # TODO: What about non-image ASDF data, such as table?
    if data_key in asdf_keys:
        data = np.asarray(asdf_obj[data_key])
    else:
        data = None

    return data, wcs, ahdr