Skip to content

ENH: MAST: Option for Observations.get_cloud_uris() to filter out None results #3362

@jkrick

Description

@jkrick

Currently, the astroquery.mast.Observations.get_cloud_uris() function returns a list of cloud URIs corresponding to input products. However, at times it returns None for that entry. This leads to downstream errors (e.g., FileNotFoundError). I don't know why the query is returning None, but assuming there is a good reason, I would rather not have anything returned.

Please consider adding an option to get_cloud_uris() such as: get_cloud_uris(products, filter_none=True)

or, let me filter for that higher up in my workflow in either query_criteria or filter_products, something better phrased than "only return actual filenames"

minimum viable example for my target: SkyCoord(150.1024475, 2.2815559, unit=u.deg)

        search_radius_arcsec=0.5

        query_results = Observations.query_criteria(
            coordinates=search_coords, radius=search_radius_arcsec * u.arcsec,
            dataproduct_type=["spectrum"], obs_collection=["JWST"], intentType="science",
            calib_level=[2, 3, 4], instrument_name=['NIRSPEC/MSA', 'NIRSPEC/SLIT'],
            dataRights=['PUBLIC'])

        data_products = [Observations.get_product_list(obs) for obs in query_results]
        data_products_list = vstack(data_products)

       data_products_list_filter = Observations.filter_products(
            data_products_list, productType=["SCIENCE"], extension="fits",
            calib_level=[2, 3, 4],  # only calibrated data
            productSubGroupDescription=["X1D"],  # only 1D spectra
            dataRights=['PUBLIC'])  # only public data

        cloud_uris = Observations.get_cloud_uris(data_products_list_filter)
        print('cloud_uris', cloud_uris)

Thanks for your work on Astroquery and MAST integration!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions