Astroquery: Exploring Metadata from the James Webb Space Telescope#


Learning Goals#

By the end of this tutorial, you will:

  • Understand how to use the astroquery.mast module to access metadata from the James Webb Space Telescope (JWST).

  • Run metadata queries based on coordinates, an object name, or non-positional criteria.

  • Use optional search parameters to further refine query results.

Table of Contents#

  • Introduction

  • Querying MAST for JWST Metadata

    • Setup

    • Optional Search Parameters

    • Query by Object Name

    • Query by Region

    • Query by Criteria

  • Additional Resources

  • Exercise Solutions

Introduction#

Welcome! This tutorial focuses on using the astroquery.mast module to search for metadata from the James Webb Space Telescope (JWST). Launched in December of 2021, JWST is an advanced space observatory designed for observations in the infrared light spectrum.

The Mikulski Archive for Space Telescopes (MAST) hosts publicly accessible data products from space telescopes like JWST. astroquery.mast provides access to a broad set of JWST metadata, including header keywords, proposal information, and observational parameters. The available metadata can also be found using the MAST JWST Search interface.

Please note that astroquery.mast.MastMissions and the MAST JWST Search API do not yet support data product downloads.

Imports#

This notebook uses the following packages:

  • astroquery.mast to query the MAST Archive

  • astropy.coordinates to assign coordinates of interest

from astroquery.mast import MastMissions
from astropy.coordinates import SkyCoord

Querying MAST for JWST Metadata#

Setup#

In order to make queries on JWST metadata, we will have to perform some setup. First, we will instantiate an object of the MastMissions class and assign its mission to be 'jwst'. Its service is set to the default of 'search'.

# Create MastMissions object and assign mission to 'jwst'
missions = MastMissions(mission='jwst')

print(f'Mission: {missions.mission}')
print(f'Service: {missions.service}')
Mission: jwst
Service: search

When writing queries, keyword arguments can be used to specify output characteristics (see the following section) and filter on values like instrument, exposure type, and proposal ID. The available column names for a mission are returned by the get_column_list function. Below, we will print out the name, data type, and description for the first 10 columns in JWST metadata.

# Get available columns for JWST mission
columns = missions.get_column_list()
columns[:10]
Table length=10
namedata_typedescription
str17str9str1594
search_posstringSearch Position (RA and Dec)
ArchiveFileIDintegerArchiveFileID
fileSetNamestringOf the form jwpppppooovvv_ggsaa_eeeee where ppppp - Program Number, ooo - Observation Number, vvv - Visit Number, gg - Visit Group, s - Parallel Sequence id (1 prime, 2-5 parallel), aa - Activity (base 36), and eeeee - Exposure Number, all padded by zeros where necessary. Source-based data set names are expressed as jwppppp-oOOO_tTTT_instrument, where: ppppp - Program number, OOO - observation number, TTT - target number, and instrument - Instrument name
productLevelstringProduct levels, 1b is an Uncal FITS file, 2a = Countrate exposure, 2b = calibrated exposure, 2c = cosmic-ray-flagged exposure, and 3 = combined data.
targpropstringProposer prefered name for the target
targnamestringStandard astronomical catalog name for the target
targ_raraRight Ascension (J2000), from 0 to 360, in degrees
targ_decdecDeclination (J2000), from -90 to +90, in degrees
instrumestringIdentifies the instrument used to acquire the data.
exp_typestringExposure type is used by DMS to direct Science Data Processing code (SDP) and calibration, as well as provide metadata for archive searches. For a given template the EXP_TYPE keyword value is obtained for each exposure from the EXPOSURE_TYPE exposure-level parameter in the Observatory Status File (OSF). In a few cases, additional information is required to set the value for the EXP_TYPE keyword

Optional Search Parameters#

Before we dive in to the actual queries, it’s important to know how we can refine our results with optional keyword arguments. The following parameters are available:

  • radius: For positional searches only. Only return results within a certain distance from an object or set of coordinates. Default is 3 arcminutes.

  • limit: The maximum number of results to return. Default is 5000.

  • offset: Skip the first n results. Useful for paging through results.

  • select_cols: A list of columns to be returned in the response.

As we walk through different types of queries, we will see these parameters in action!

Query by Object Name#

We’ve reached our first query! We can use object names to perform metadata queries using the query_object function.

To start, let’s query for the Messier 1 object, a supernova remnant in the Taurus constellation. You may know it better as the Crab Nebula!

# Query for Messier 1 ('M1')
results = missions.query_object('M1')

# Display the first 5 results
print(f'Total number of results: {len(results)}')
results[:5]
Total number of results: 250
Table masked=True length=5
ArchiveFileIDfileSetNameproductLeveltargproptarg_ratarg_decinstrumeexp_typeopticalElementsdate_obsdurationprogramobservtnvisitpublicReleaseDatepi_nameproposal_typeproposal_cycletargtypeaccessang_sep
int64str25str14str18float64float64str6str9str77str27float64int64int64int64str19str10str2int64str5str16float64
85452887jw01714001001_02101_000011b, 2a, 2b, 2cCRAB-NEBULA83.6360495833333322.01641666666667MIRIMIR_IMAGEF560W2023-02-24T00:50:42.9710000138.7521714112024-02-24T13:30:27Temim, TeaGO1FIXEDPUBLIC1.331273005820459
85452927jw01714001001_02101_000021b, 2a, 2b, 2cCRAB-NEBULA83.6360495833333322.01641666666667MIRIMIR_IMAGEF560W2023-02-24T00:54:27.7390000138.7521714112024-02-24T13:33:03Temim, TeaGO1FIXEDPUBLIC1.0681813609695832
85452908jw01714001001_02101_000031b, 2a, 2b, 2cCRAB-NEBULA83.6360495833333322.01641666666667MIRIMIR_IMAGEF560W2023-02-24T00:58:07.0030000138.7521714112024-02-24T13:32:24Temim, TeaGO1FIXEDPUBLIC1.2193221921015729
85452963jw01714001001_02101_000041b, 2a, 2b, 2cCRAB-NEBULA83.6360495833333322.01641666666667MIRIMIR_IMAGEF560W2023-02-24T01:01:46.2660000138.7521714112024-02-24T13:33:18Temim, TeaGO1FIXEDPUBLIC1.3888896315547088
85452842jw01714001001_02103_000011b, 2a, 2b, 2cCRAB-NEBULA83.6360495833333322.01641666666667MIRIMIR_IMAGEF1130W2023-02-24T01:07:30.3500000105.4521714112024-02-24T13:34:12Temim, TeaGO1FIXEDPUBLIC1.3305044761512126

There were 250 total results, meaning that 250 JWST datasets were targeting the Crab Nebula. Now, let’s try refining our search a bit more.

  • Each dataset is associated with a celestial coordinate, given by targ_ra (right ascension) and targ_dec (declination). By default, the query returns all datasets that fall within 3 arcminutes from the object’s coordinates. Let’s set the radius parameter to be 1 arcminute instead.

  • Say that we’re not interested in the first 4 results. We can assign offset to skip a certain number of rows.

  • By default, a subset of recommended columns are returned for each query. However, we can specify exactly which columns to return using the select_cols keyword argument. The ArchiveFileID column is included automatically.

# Refined query for Messier 1 ('M1')
results = missions.query_object('M1',
                                radius=1,  # Search within a 1 arcminute radius
                                offset=4,  # Skip the first 4 results
                                select_cols=['fileSetName', 'targprop', 'date_obs'])  # Select certain columns

# Display the first 5 results
print(f'Total number of results: {len(results)}')
results[:5]
Total number of results: 151
Table masked=True length=5
ArchiveFileIDfileSetNametargpropdate_obs
int64str25str18str27
85452592jw01714001003_02101_00001CRAB-NEBULA2023-02-24T02:49:57.2040000
85452596jw01714001003_02101_00002CRAB-NEBULA2023-02-24T02:53:39.2200000
85452584jw01714001003_02101_00003CRAB-NEBULA2023-02-24T02:57:23.9880000
85452177jw01714001003_02101_00004CRAB-NEBULA2023-02-24T03:01:06.0030000
85452330jw01714001003_02103_00001CRAB-NEBULA2023-02-24T03:06:50.0870000

Exercise 1#

Now it’s your turn! Try querying for the Whirlpool Galaxy object. Search within a radius of 1 arcminute, skip the first 300 results, and select the fileSetName and opticalElements columns.

# # Query for Whirlpool Galaxy
# results = missions.query_object(...)  # Write your query!

# # Display the first 5 results
# print(f'Total number of results: {len(results)}')
# results[:5]

Query by Region#

The missions object also allows us to query by a region in the sky. By passing in a set of coordinates to the query_region function, we can return datasets that fall within a certain radius value of that point. This type of search is also known as a cone search.

# Create coordinate object
coords = SkyCoord(210.80227, 54.34895, unit=('deg'))

# Query for results within 10 arcminutes of coords
results = missions.query_region(coords, radius=10)

# Display results
print(f'Total number of results: {len(results)}')
results[:5]
Total number of results: 395
Table masked=True length=5
ArchiveFileIDfileSetNameproductLeveltargproptarg_ratarg_decinstrumeexp_typeopticalElementsdate_obsdurationprogramobservtnvisitpublicReleaseDatepi_nameproposal_typeproposal_cycletargtypeaccessang_sep
int64str27str14str25float64float64str7str17str89str27float64int64int64int64str19str25str6int64str7str16float64
104386304jw01995001001_02101_000011b, 2a, 2b, 2cMESSIER-101210.87646554.36092777777778NIRCAMNRC_IMAGEF115W;CLEAR, F444W;CLEAR2023-05-30T15:23:35.5330000311.3661995112024-05-30T23:55:17Freedman, Wendy L.GO1FIXEDPUBLIC0.9317195976624251
104386207jw01995001001_02101_000021b, 2a, 2b, 2cMESSIER-101210.87646554.36092777777778NIRCAMNRC_IMAGEF115W;CLEAR, F444W;CLEAR2023-05-30T15:30:23.5330000311.3661995112024-05-30T23:56:39Freedman, Wendy L.GO1FIXEDPUBLIC0.9247099787034783
104386069jw01995001001_02101_000031b, 2a, 2b, 2cMESSIER-101210.87646554.36092777777778NIRCAMNRC_IMAGEF115W;CLEAR, F444W;CLEAR2023-05-30T15:37:00.7800000311.3661995112024-05-30T23:58:44Freedman, Wendy L.GO1FIXEDPUBLIC0.9387390545558567
104385967jw01995001001_02201_000011b, 2a, 2b, 2cMESSIER-101210.87646554.36092777777778NIRISSNIS_IMAGECLEAR;F115W2023-05-30T15:23:38.9100000311.3661995112024-05-30T23:55:55Freedman, Wendy L.GO1FIXEDPUBLIC7.239582698074742
104385970jw01995001001_02201_000021b, 2a, 2b, 2cMESSIER-101210.87646554.36092777777778NIRISSNIS_IMAGECLEAR;F115W2023-05-30T15:30:26.3340000311.3661995112024-05-30T23:55:49Freedman, Wendy L.GO1FIXEDPUBLIC7.233995178717605

395 JWST datasets fall within our cone search. In other words, their target coordinates are within 10 arcminutes of the coordinates that we defined.

Exercise 2:#

JWST has observed the star Vega, which has a right ascension of 279.23473 degrees and a declination of 38.78369 degrees. Use the query_region function to search for datasets within 15 arcminutes of Vega. Select the fileSetName, targprop, targ_ra, and targ_dec columns.

# # Vega coordinates
# vega = SkyCoord(_, _, unit=('deg'))  # Fill in with Vega's coordinates

# # Query for datasets around Vega
# results = missions.query_region(...)  # Write your query!

# # Display the first 5 results
# print(f'Total number of results: {len(results)}')
# results[:5]

Query by Criteria#

In some cases, we may want to run queries with non-positional parameters. To accomplish this, we use the query_criteria function.

For any of our query functions, we can filter our results by the value of columns in the dataset.

Let’s say that we only want observations from JWST’s Near Infrared Camera (NIRCam) instrument, and that we only want datasets connected to program number 1189.

# Query with column criteria
results = missions.query_criteria(instrume='NIRCAM',  # From Near Infrared Camera
                                  program=1189,
                                  select_cols=['fileSetName', 'instrume', 'exp_type', 'program', 'pi_name'])

# Display the first 5 results
print(f'Total number of results: {len(results)}')
results[:5]
Total number of results: 79
Table masked=True length=5
ArchiveFileIDfileSetNameinstrumeexp_typeprogrampi_name
int64str25str6str13int64str17
103431933jw01189010001_02101_00001NIRCAMNRC_IMAGE1189Roellig, Thomas L
103431875jw01189010001_02101_00002NIRCAMNRC_IMAGE1189Roellig, Thomas L
103431770jw01189010001_02101_00003NIRCAMNRC_IMAGE1189Roellig, Thomas L
103431722jw01189010001_02101_00004NIRCAMNRC_IMAGE1189Roellig, Thomas L
103431669jw01189010001_04101_00001NIRCAMNRC_IMAGE1189Roellig, Thomas L

To exclude and filter out a certain value from the results, we can prepend the value with !.

Let’s run the same query as above, but this time, we will filter out datasets coming from the NIRCam instrument.

# Filtered query, excluding NIRCam datasets
results = missions.query_criteria(program=1189,
                                  instrume='!NIRCAM',  # Exclude datasets from the NIRCam instrument
                                  select_cols=['fileSetName', 'instrume', 'exp_type', 'program', 'pi_name'])

# Display the first 5 results
print(f'Total number of results: {len(results)}')
results[:5]
Total number of results: 96
Table masked=True length=5
ArchiveFileIDfileSetNameinstrumeexp_typeprogrampi_name
int64str27str7str17int64str17
103431025jw01189001001_02101_00001NIRSPECNRS_WATA1189Roellig, Thomas L
103430996jw01189001001_02101_00002NIRSPECNRS_TACONFIRM1189Roellig, Thomas L
103431005jw01189001001_04101_00001NIRSPECNRS_FIXEDSLIT1189Roellig, Thomas L
103430949jw01189001001_04101_00002NIRSPECNRS_FIXEDSLIT1189Roellig, Thomas L
103430874jw01189001001_04101_00003NIRSPECNRS_FIXEDSLIT1189Roellig, Thomas L

We can also use wildcards for more advanced filtering. Let’s use the same query from above, but we will add an exposure type filter for fixed slits (FS) spectroscopy.

# Filtered query with wildcard
results = missions.query_criteria(program=1189,
                                  instrume='!NIRCAM',  # Exclude datasets from the NIRCam instrument
                                  exp_type='*FIXEDSLIT*', # Any exposure type that contains 'FIXEDSLIT'
                                  select_cols=['fileSetName', 'instrume', 'exp_type', 'program', 'pi_name'])

# Display the first 10 results
print(f'Total number of results: {len(results)}')
results[:10]
Total number of results: 42
Table masked=True length=10
ArchiveFileIDfileSetNameinstrumeexp_typeprogrampi_name
int64str27str7str17int64str17
103431005jw01189001001_04101_00001NIRSPECNRS_FIXEDSLIT1189Roellig, Thomas L
103430949jw01189001001_04101_00002NIRSPECNRS_FIXEDSLIT1189Roellig, Thomas L
103430874jw01189001001_04101_00003NIRSPECNRS_FIXEDSLIT1189Roellig, Thomas L
103430827jw01189001001_06101_00001NIRSPECNRS_FIXEDSLIT1189Roellig, Thomas L
103430762jw01189001001_06101_00002NIRSPECNRS_FIXEDSLIT1189Roellig, Thomas L
103430721jw01189001001_06101_00003NIRSPECNRS_FIXEDSLIT1189Roellig, Thomas L
103430672jw01189001001_08101_00001NIRSPECNRS_FIXEDSLIT1189Roellig, Thomas L
103430621jw01189001001_08101_00002NIRSPECNRS_FIXEDSLIT1189Roellig, Thomas L
103430556jw01189001001_08101_00003NIRSPECNRS_FIXEDSLIT1189Roellig, Thomas L
103432165jw01189002001_03102_00001MIRIMIR_LRS-FIXEDSLIT1189Roellig, Thomas L

To filter by multiple values for a single column, we use a string of the values delimited by commas.

To illustrate this, we will use a slightly different query. We query for datasets that have a fixed slits spectroscopy exposure type and targets with moving coordinates (targtype='MOVING'). We will add another filter to match three different last names for principal investigators (PIs).

# Filtered query with multiple values
results = missions.query_criteria(exp_type='*FIXEDSLIT*', # Any exposure type that contains 'FIXEDSLIT'
                                  targtype='MOVING',  # Only return moving targets
                                  pi_name='Stansberry, Parker, Lunine',  # Last name of PI can be any of these 3 values
                                  select_cols=['fileSetName', 'targtype', 'instrume', 'exp_type', 'program', 'pi_name'])

# Display the first 10 results
print(f'Total number of results: {len(results)}')
results[:10]
Total number of results: 17
Table masked=True length=10
ArchiveFileIDfileSetNameinstrumeexp_typeprogrampi_nametargtype
int64str25str4str17int64str21str6
90652789jw01191018001_03102_00001MIRIMIR_LRS-FIXEDSLIT1191Stansberry, John A.MOVING
90652807jw01191018001_03102_00002MIRIMIR_LRS-FIXEDSLIT1191Stansberry, John A.MOVING
90656062jw01191-o018_t002_miriMIRIMIR_LRS-FIXEDSLIT1191Stansberry, John A.MOVING
90092649jw01254001001_03102_00001MIRIMIR_LRS-FIXEDSLIT1254Parker, Alex HarrisonMOVING
90092583jw01254001001_03102_00002MIRIMIR_LRS-FIXEDSLIT1254Parker, Alex HarrisonMOVING
90093194jw01254-o001_t001_miriMIRIMIR_LRS-FIXEDSLIT1254Parker, Alex HarrisonMOVING
100129970jw01273001001_04102_00001MIRIMIR_LRS-FIXEDSLIT1273Lunine, Jonathan I.MOVING
100131628jw01273001001_04102_00002MIRIMIR_LRS-FIXEDSLIT1273Lunine, Jonathan I.MOVING
100131677jw01273009001_04102_00001MIRIMIR_LRS-FIXEDSLIT1273Lunine, Jonathan I.MOVING
100131817jw01273009001_04102_00002MIRIMIR_LRS-FIXEDSLIT1273Lunine, Jonathan I.MOVING

For columns with numeric or date values, we can filter using comparison values:

  • <: Return values less than or before the given number/date

  • >: Return values greater than or after the given number/date

  • <=: Return values less than or equal to the given number/date

  • >=: Return values greater than or equal to the given number/date

As an example, let’s write a query to return all datasets with an observation date before February 1, 2022.

# Query using comparison operator
results = missions.query_criteria(date_obs='<2022-02-01',  # Must be observed before February 1, 2022
                                  select_cols=['fileSetName', 'program', 'date_obs'])

# Display results
print(f'Total number of results: {len(results)}')
results
Total number of results: 7
Table masked=True length=7
ArchiveFileIDfileSetNamedate_obsprogram
int64str25str27int64
91445440jw01173001001_02101_000012022-01-28T14:23:42.61800001173
91445554jw01173002001_02101_000012022-01-28T14:36:52.92700001173
91445294jw01173003001_02101_000012022-01-28T15:00:36.65500001173
91445352jw01173004001_02101_000012022-01-28T15:09:07.18300001173
91445310jw01173005001_02101_000012022-01-28T15:26:27.60200001173
91445363jw01173006001_02101_000012022-01-28T15:34:25.77300001173
91445306jw01173007001_02101_000012022-01-28T15:43:44.30100001173

For numeric or date data types, we can also filter with ranges. This requires the following syntax: '#..#'.

Let’s write a query that uses range syntax to return datasets that belong to a program number between 1150 and 1155. We will also select for exposure durations that are greater than or equal to 100 seconds.

# Query using range operator
results = missions.query_criteria(program='1150..1155', # Program number between 1150 and 1155
                                  duration='>100',  # Exposure duration is greater than or equal to 100 seconds
                                  select_cols=['fileSetName', 'program', 'duration'])

# Display results
print(f'Total number of results: {len(results)}')
results
Total number of results: 77
Table masked=True length=77
ArchiveFileIDfileSetNamedurationprogram
int64str25float64int64
56863803jw01151001001_02101_00001203.9991151
56863873jw01151001001_02101_00002203.9991151
56863512jw01151001001_03101_00001214.7351151
56863800jw01151001001_05101_00001203.9991151
56863856jw01151001001_05101_00002203.9991151
56863823jw01151001001_06101_00001214.7351151
56863853jw01151001001_08101_00001203.9991151
56875469jw01151020001_03101_00001214.7351151
56876309jw01151021001_02102_00001118.1041151
............
56968427jw01155005001_0210a_00002150.3151155
56968592jw01155005001_0210b_00001150.3151155
56968483jw01155005001_0210b_00002150.3151155
56967461jw01155007001_02102_000011191.7811155
56967484jw01155007001_02103_000011191.7811155
56967455jw01155007001_02104_000011191.7811155
56969427jw01155-o001_t018_nircam246.9461155
56969260jw01155-o003_t018_nircam150.3151155
56969340jw01155-o005_t018_nircam246.9461155
56969363jw01155-o007_t018_nircam4767.1241155

Exercise 3#

It’s time to apply all that you’ve learned! Write a non-positional query based on the following:

  • Fixed targets (HINT: targtype='FIXED')

  • Instument is Mid-Infrared Instrument (MIRI) or Fine Guidance Sensor (FGS)

  • Proposal type should NOT include General Observers (GO)

  • Exposure type includes the string 'IMAGE'

  • Right ascension is between 70 and 75 degrees

  • Program number is less than 1200.

  • Skip the first 5 entries.

  • Select the following columns: fileSetName, targtype, instrume, proposal_type, exp_type, targ_ra, program

# # A non-positional query with column criteria
# results = missions.query_criteria(...)  # Write your query here!

# # Display results
# print(f'Total number of results: {len(results)}')
# results

Additional Resources#

Exercise Solutions#

Exercise 1#

# Query for Whirlpool Galaxy
results = missions.query_object('Whirlpool',
                                radius=1,  # Search radius of 1 arcminute
                                offset=300,  # Skip the first 300 rows
                                select_cols=['fileSetName', 'opticalElements'])

# Display the first 5 results
print(f'Total number of results: {len(results)}')
results[:5]
Total number of results: 60
Table masked=True length=5
ArchiveFileIDfileSetNameopticalElements
int64str25str77
101357435jw03435008001_0210l_00003CH12;SHORT, CH34;SHORT, F770W
101357394jw03435008001_0210l_00004CH12;SHORT, CH34;SHORT, F770W
101357354jw03435008001_0210n_00001CH12;SHORT, CH34;SHORT, F770W
101357300jw03435008001_0210n_00002CH12;SHORT, CH34;SHORT, F770W
101357254jw03435008001_0210n_00003CH12;SHORT, CH34;SHORT, F770W

Exercise 2#

# Vega coordinates
vega = SkyCoord(279.23473, 38.78369, unit=('deg'))

# Query for datasets around Vega
results = missions.query_region(vega,
                                radius=15,  # Search radius of 15 arcminutes
                                select_cols=['fileSetName', 'targprop', 'targ_ra', 'targ_dec'])

# Display the first 5 results
print(f'Total number of results: {len(results)}')
results[:5]
Total number of results: 51
Table masked=True length=5
ArchiveFileIDfileSetNametargproptarg_ratarg_dec
int64str25str20float64float64
98240946jw01193026001_02101_00001VEGA279.236426614517138.78556769656323
98240935jw01193026001_02101_00002VEGA279.236426615314138.7855676974483
98240928jw01193026001_02101_00003VEGA279.236426616117238.78556769833999
98240908jw01193026001_02101_00004VEGA279.236426616916338.78556769922733
98241079jw01193027001_02101_00001VEGA-COPY-MIRI-CORON279.236426619141138.78556770169765

Exercise 3#

# A non-positional query with column criteria
results = missions.query_criteria(targtype='FIXED',  # Fixed target
                                  instrume='MIRI, FGS',  # Select MIRI and FGS observations
                                  proposal_type='!GO',  # Not from a general observer proposal
                                  exp_type='*IMAGE*',  # Contains the string "IMAGE"
                                  targ_ra='70..75',  # Between 70 and 75
                                  program='<1200',  # Less than 1200
                                  offset=5,  # Skip the first 5 results
                                  select_cols=['fileSetName', 'targtype', 'instrume', 'proposal_type', 
                                               'exp_type', 'targ_ra', 'program'])

# Display results
print(f'Total number of results: {len(results)}')
results
Total number of results: 11
Table masked=True length=11
ArchiveFileIDfileSetNametarg_rainstrumeexp_typeprogramproposal_typetargtype
int64str25float64str4str9int64str3str5
103428041jw01189005001_02101_0000674.72636096419268MIRIMIR_IMAGE1189GTOFIXED
103428045jw01189005001_02101_0000774.72636096470079MIRIMIR_IMAGE1189GTOFIXED
103427981jw01189005001_02101_0000874.72636096498769MIRIMIR_IMAGE1189GTOFIXED
103432656jw01189015001_02101_0000174.72636283573928MIRIMIR_MRS1189GTOFIXED
103432616jw01189015001_02101_0000274.72636283830163MIRIMIR_MRS1189GTOFIXED
103433605jw01189015001_02103_0000174.72636284146016MIRIMIR_MRS1189GTOFIXED
103432532jw01189015001_02103_0000274.72636284400124MIRIMIR_MRS1189GTOFIXED
103432477jw01189015001_02105_0000174.72636284716255MIRIMIR_MRS1189GTOFIXED
103432925jw01189015001_02105_0000274.72636284973676MIRIMIR_MRS1189GTOFIXED
103431227jw01189-o005_t002_miri74.72636096235495MIRIMIR_IMAGE1189GTOFIXED
103438341jw01189-o015_t002_miri74.72636283572731MIRIMIR_IMAGE1189GTOFIXED

Citations#

If you use astroquery for published research, please cite the authors. Follow these links for more information about citing astroquery:

About this Notebook#

Author(s): Sam Bianco
Keyword(s): Tutorial, JWST, Astroquery, MastMissions
First published: June 2024
Last updated: June 2024


Top of Page Space Telescope Logo