{ "cells": [ { "cell_type": "markdown", "id": "cultural-twist", "metadata": {}, "source": [ "# DMS Level 1b Example\n", "\n", "## HR 8799 GTO 1194 \n", "\n", "This program will search for previously unknown planets using NIRCam in the F356W and F444W filters using the MASK430R for both filters. In addition, we will probe the physical characterization of the known planets, HR8789bcde, using multi-filter photometry with the LW Bar mask. The medium-band filters will be observed with a fiducial override to place the primary source on the narrow end of the occulting mask. The NIRCam observations will use two roll angles ($\\pm5$ deg) and a reference star to assist with suppression of residuals in the coronagraphic image.\n", "\n", "This notebook uses output from the APT file of PID 1194 to simulate the obsevations and save them to DMS-like FITS files (Level 1b data)." ] }, { "cell_type": "code", "execution_count": 1, "id": "backed-disabled", "metadata": {}, "outputs": [], "source": [ "# Import the usual libraries\n", "import numpy as np\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", "#import matplotlib.patches as mpatches\n", "\n", "# Enable inline plotting\n", "%matplotlib inline\n", "\n", "# Progress bar\n", "from tqdm.auto import trange, tqdm" ] }, { "cell_type": "code", "execution_count": 2, "id": "baking-council", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pyNRC log messages of level WARN and above will be shown.\n", "pyNRC log outputs will be directed to the screen.\n" ] } ], "source": [ "import pynrc\n", "from pynrc.simul.ngNRC import create_level1b_FITS\n", "\n", "# Disable informational messages and only include warnings and higher\n", "pynrc.setup_logging(level='WARN')" ] }, { "cell_type": "code", "execution_count": 3, "id": "according-saskatchewan", "metadata": {}, "outputs": [], "source": [ "from astropy import units as u\n", "from astropy.coordinates import SkyCoord, Distance\n", "from astropy.time import Time\n", "from astropy.table import Table" ] }, { "cell_type": "code", "execution_count": 4, "id": "entire-mississippi", "metadata": {}, "outputs": [], "source": [ "import os\n", "\n", "import pynrc\n", "from pynrc import nrc_utils\n", "from pynrc.simul.ngNRC import make_gaia_source_table, make_simbad_source_table\n", "from pynrc.simul.ngNRC import create_level1b_FITS\n", "\n", "pynrc.setup_logging('WARN', verbose=False)" ] }, { "cell_type": "markdown", "id": "animated-bermuda", "metadata": {}, "source": [ "## APT Inputs\n", "\n", "From the final APT file, we need to export a number of files, including the `.timing.json`, `.smart_accounting`, `.pointing`, and `.xml` files. These are then parsed by `pynrc` to configure a series of observation visits and associated NIRCam objects." ] }, { "cell_type": "code", "execution_count": 5, "id": "wired-experiment", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "../../notebooks/APT_output/pid1194.timing.json True\n", "../../notebooks/APT_output/pid1194.smart_accounting True\n", "../../notebooks/APT_output/pid1194.pointing True\n", "../../notebooks/APT_output/pid1194.xml True\n" ] } ], "source": [ "import os\n", "\n", "# Read in APT\n", "pid = 1194\n", "pid_str = f'pid{pid:05d}'\n", "\n", "save_dir = f'/Users/jarron/NIRCam/Data/NRC_Sims/Sim_{pid_str}/'\n", "# save_dir = f'/data/NIRData/NRC_Sims/Sim_{pid_str}/'\n", "\n", "# APT input files\n", "apt_file_dir = '../../notebooks/APT_output/'\n", "fprefix = f'pid{pid}'\n", "json_file = f'{apt_file_dir}{fprefix}.timing.json'\n", "sm_acct_file = f'{apt_file_dir}{fprefix}.smart_accounting'\n", "pointing_file = f'{apt_file_dir}{fprefix}.pointing'\n", "xml_file = f'{apt_file_dir}{fprefix}.xml'\n", "\n", "# Make sure files exist\n", "for f in [json_file, sm_acct_file, pointing_file, xml_file]:\n", " print(f, os.path.isfile(f))" ] }, { "cell_type": "markdown", "id": "grand-louisville", "metadata": {}, "source": [ "## Source Definitions\n", "\n", "We will utilize the `source_spectrum` class to generate a model fit to the known spectrophotometry. The user can find the relevant photometric data at http://vizier.u-strasbg.fr/vizier/sed/ and click download data as a VOTable.\n", "\n", "The output spectra will then be placed into a target dictionary to be ingested into the DMS simulator portion of pyNRC." ] }, { "cell_type": "code", "execution_count": 6, "id": "behavioral-essex", "metadata": {}, "outputs": [], "source": [ "# Define 2MASS Ks bandpass and source information\n", "bp_k = pynrc.bp_2mass('k')\n", "\n", "# Science source, dist, age, sptype, Teff, [Fe/H], log_g, mag, band\n", "args_sci = ('HR 8799', 39.0, 30, 'F0V', 7430, -0.47, 4.35, 5.24, bp_k)\n", "\n", "# References source, sptype, Teff, [Fe/H], log_g, mag, band\n", "args_ref = ('HD 220657', 'F8III', 5888, -0.01, 3.22, 3.04, bp_k)\n", "\n", "# Directory housing VOTables \n", "# http://vizier.u-strasbg.fr/vizier/sed/\n", "votdir = '../../notebooks/votables/'" ] }, { "cell_type": "code", "execution_count": 7, "id": "animated-history", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0.98590364]\n" ] } ], "source": [ "# Fit spectrum to SED photometry\n", "name_sci, dist_sci, age, spt_sci, Teff_sci, feh_sci, logg_sci, mag_sci, bp_sci = args_sci\n", "vot = votdir + name_sci.replace(' ' ,'') + '.vot'\n", "\n", "args = (name_sci, spt_sci, mag_sci, bp_sci, vot)\n", "kwargs = {'Teff':Teff_sci, 'metallicity':feh_sci, 'log_g':logg_sci}\n", "src = pynrc.source_spectrum(*args, **kwargs)\n", "\n", "src.fit_SED(use_err=False, robust=False, wlim=[1,5])\n", "\n", "# Final source spectrum (pysynphot)\n", "sp_sci = src.sp_model" ] }, { "cell_type": "code", "execution_count": 8, "id": "gorgeous-throw", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1.07580856]\n" ] } ], "source": [ "# Do the same for the reference source\n", "name_ref, spt_ref, Teff_ref, feh_ref, logg_ref, mag_ref, bp_ref = args_ref\n", "vot = votdir + name_ref.replace(' ' ,'') + '.vot'\n", "\n", "args = (name_ref, spt_ref, mag_ref, bp_ref, vot)\n", "kwargs = {'Teff':Teff_ref, 'metallicity':feh_ref, 'log_g':logg_ref}\n", "ref = pynrc.source_spectrum(*args, **kwargs)\n", "\n", "ref.fit_SED(use_err=False, robust=False, wlim=[0.5,10])\n", "\n", "# Final reference spectrum (pysynphot)\n", "sp_ref = ref.sp_model" ] }, { "cell_type": "code", "execution_count": 9, "id": "restricted-outside", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot spectra \n", "fig, axes = plt.subplots(1,2, figsize=(13,4))\n", "src.plot_SED(xr=[0.3,10], ax=axes[0])\n", "ref.plot_SED(xr=[0.3,10], ax=axes[1])\n", "\n", "axes[0].set_title('Science Specta -- {} ({})'.format(src.name, spt_sci))\n", "axes[1].set_title('Refrence Specta -- {} ({})'.format(ref.name, spt_ref))\n", "\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "id": "established-military", "metadata": {}, "source": [ "## Target Information\n", "\n", "For each target specified in the APT file, we want to populate a dictionary with coordinate information and astrophysical properties. The dictionary keys should match the APT \"Name in the Proposal\" so that \n", "\n", "For each designated target, there are four types of objects that can be added: stellar source, point source companions, disk object, and/or a table of point sources specifying magnitudes in NIRCam filters." ] }, { "cell_type": "markdown", "id": "intellectual-orientation", "metadata": {}, "source": [ "1. Stellar source:\n", "``` python\n", "params_star = {\n", " 'sptype' : 'A0V', 'Teff': 10325, 'metallicity' : 0, 'log_g' : 4.09,\n", " 'v_mag' : 5.690, 'j_mag': 5.768, 'h_mag': 5.753, 'k_mag': 5.751,\n", "},\n", "```\n", "to generate a spectrum using `pynrc.stellar_spectrum` or add the parameter directly\n", "``` python\n", " params_star = {'sp' : sp_star}\n", "```\n", "\n", "2. Companions (where `bp_renorm` is a `pysynphot` bandpass):\n", "``` python\n", " params_hci_companions = {\n", " 'b' : {'xy':(-1.625, 0.564), 'runits':'arcsec', 'renorm_args':(16.0, 'vegamag', bp_renorm)},\n", " 'c' : {'xy':( 0.319, 0.886), 'runits':'arcsec', 'renorm_args':(15.0, 'vegamag', bp_renorm)},\n", " 'd' : {'xy':( 0.588, -0.384), 'runits':'arcsec', 'renorm_args':(14.6, 'vegamag', bp_renorm)},\n", " 'e' : {'xy':( 0.249, 0.294), 'runits':'arcsec', 'renorm_args':(14.7, 'vegamag', bp_renorm)},\n", " }\n", "```\n", "See `obs_hci.add_planet()` function for more information and advanced functionality. \n", "\n", "3. Companion disk model:\n", "``` python\n", " params_disk_model = {\n", " 'file': 'HD10647.fits', # path to file\n", " 'wavelength': 3.0, # model wavelength (um)\n", " 'pixscale': 0.01575, # input image arcsec/pixel\n", " 'units': 'Jy/pixel', # model flux units (e.g., mJy/arcsec, Jy/pixel, etc)\n", " 'dist': 17.34, # assumed distance to model (pc)\n", " 'cen_star': True, # does the model include stellar flux?\n", " }\n", "```\n", "\n", "4. Table of stellar sources:\n", "``` python\n", " from astropy.io import ascii\n", " \n", " cat_file = 'lmc_catalog.cat'\n", " names = [\n", " 'index', 'ra', 'dec', 'F070W', 'F090W', 'F115W', 'F140M', 'F150W', 'F150W2',\n", " 'F162M', 'F164N', 'F182M', 'F187N', 'F200W', 'F210M', 'F212N', 'F250M', 'F277W', \n", " 'F300M','F322W2', 'F323N', 'F335M', 'F356W', 'F360M', 'F405N', 'F410M', 'F430M', \n", " 'F444W', 'F460M', 'F466N', 'F470N', 'F480M'\n", " ]\n", "\n", " src_tbl = ascii.read(cat_file, names=names)\n", "```\n", "Use `make_gaia_source_table` and `make_simbad_source_table` to query Gaia DR2 and Simbad to auto-generate tables." ] }, { "cell_type": "code", "execution_count": 10, "id": "falling-woman", "metadata": {}, "outputs": [], "source": [ "# Initialize target dictionary\n", "targ_dict = {}\n", "\n", "# Bandpass corresponding to companion renormalization flux\n", "bp_pl_norm = pynrc.read_filter('F430M')\n", "# Assumed companion magnitudes in filter bandpass\n", "comp_mags = np.array([16.0, 15.0, 14.6, 14.7])\n", "\n", "# Dictionary keywords should match APT target names\n", "targ_dict['HR8799'] = {\n", " 'type' : 'FixedTargetType',\n", " 'TargetName' : 'HR8799', 'TargetArchiveName' : 'HR8799',\n", " 'EquatorialCoordinates' : \"23 07 28.7155 +21 08 3.30\",\n", " 'RAProperMotion' : 108.551*u.mas/u.yr, \n", " 'DecProperMotion' : -49.639*u.mas/u.yr, \n", " 'parallax' : 24.76*u.mas, 'age_Myr' : 30,\n", " 'params_star' : {'sp' : sp_sci},\n", " 'params_companions' : {\n", " 'b' : {'xy':(-1.625, 0.564), 'runits':'arcsec', 'mass':10,\n", " 'renorm_args':(comp_mags[0], 'vegamag', bp_pl_norm)\n", " },\n", " 'c' : {'xy':( 0.319, 0.886), 'runits':'arcsec', 'mass':10, \n", " 'renorm_args':(comp_mags[1], 'vegamag', bp_pl_norm)\n", " },\n", " 'd' : {'xy':( 0.588, -0.384), 'runits':'arcsec', 'mass':10, \n", " 'renorm_args':(comp_mags[2], 'vegamag', bp_pl_norm)\n", " },\n", " 'e' : {'xy':( 0.249, 0.294), 'runits':'arcsec', 'mass':10, \n", " 'renorm_args':(comp_mags[3], 'vegamag', bp_pl_norm)\n", " },\n", " },\n", " 'params_disk_model' : None,\n", " 'src_tbl' : None,\n", "}" ] }, { "cell_type": "code", "execution_count": 11, "id": "direct-container", "metadata": {}, "outputs": [], "source": [ "# Reference source\n", "targ_dict['HD220657'] = {\n", " 'type' : 'FixedTargetType',\n", " 'TargetName' : 'HD220657', 'TargetArchiveName' : 'ups Peg',\n", " 'EquatorialCoordinates' : \"23 25 22.7835 +23 24 14.76\",\n", " 'RAProperMotion' : 192.19*u.mas/u.yr, \n", " 'DecProperMotion' : 36.12*u.mas/u.yr, \n", " 'parallax' : 19.14*u.mas, 'age_Myr' : None,\n", " 'params_star' : {'sp' : sp_ref},\n", " 'params_companions' : None,\n", " 'params_disk_model' : None,\n", " 'src_tbl' : None,\n", "}" ] }, { "cell_type": "code", "execution_count": 12, "id": "honey-tsunami", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO: Query finished. [astroquery.utils.tap.core]\n", "[astroquery:INFO] Query finished.\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Filters: 0%| | 0/29 [00:000 else None" ] }, { "cell_type": "markdown", "id": "exact-swing", "metadata": {}, "source": [ "## Create Observation Parameters\n", "\n", "These will used for input into the data ramp simulator and directly correspond to parameters for DMS FITS creation to ingest into the JWST pipeline" ] }, { "cell_type": "code", "execution_count": 13, "id": "physical-rachel", "metadata": {}, "outputs": [], "source": [ "sim_config = {\n", " # APT input files\n", " 'json_file' : json_file,\n", " 'sm_acct_file' : sm_acct_file,\n", " 'pointing_file' : pointing_file,\n", " 'xml_file' : xml_file,\n", " # Output directory\n", " 'save_dir' : save_dir,\n", " \n", " # Initialize random seeds if repeatability is required\n", " # Create separate random number generators for dithers and noise\n", " 'rand_seed_init' : 1234,\n", " \n", " # Date and time of observations\n", " 'obs_date' : '2022-11-04', \n", " 'obs_time' : '12:00:00',\n", " # Position angle of observatory\n", " # User should check acceptable range in APT's Roll Analysis\n", " 'pa_v3' : 90.0,\n", " \n", " # Source information\n", " 'params_targets' : targ_dict,\n", " \n", " # PSF size information for WebbPSF_ext\n", " 'params_webbpsf' : {'fov_pix': None, 'oversample': 2},\n", " # Position-dependent PSFs for convolution\n", " 'params_psfconv' : {'npsf_per_full_fov': 9, 'osamp': 1, 'sptype': 'G0V'},\n", " # Wavefront error drift settings\n", " 'params_wfedrift' : {'case': 'BOL', 'slew_init': 10, 'plot': False, 'figname': None},\n", " # For coronagraphic masks, sample large grid of points?\n", " 'large_grid' : True,\n", " \n", " # Slew and dither pointing uncertainties\n", " 'large_slew' : 100.0, # Slew to target (mas)\n", " 'ta_sam' : 5.0, # SAM movements from TA position (mas)\n", " 'std_sam' : 5.0, # Standard dither values (mas)\n", " 'sgd_sam' : 2.5, # Small grid dithers (mas)\n", " \n", " # Type of image files to save; can be supplied directly\n", " 'save_slope' : False, # Save ideal noiseless slope images to FITS\n", " 'save_dms' : False, # Save DMS-like ramps to FITS\n", " 'dry_run' : False, # Perform a dry-run, not generating any data, just printing visit info\n", " \n", " # Noise components to include in full DMS output\n", " 'params_noise' : {\n", " 'include_poisson' : True, # Photon Noise\n", " 'include_dark' : True, # Dark current\n", " 'include_bias' : True, # Bias image offset\n", " 'include_ktc' : True, # kTC Noise\n", " 'include_rn' : True, # Read Noise\n", " 'include_cpink' : True, # Correlated 1/f noise between channel\n", " 'include_upink' : True, # Channel-dependent 1/f noise\n", " 'include_acn' : True, # Alternating column noise\n", " 'apply_ipc' : True, # Interpixel capacitance\n", " 'apply_ppc' : True, # Post-pixel coupling\n", " 'amp_crosstalk' : True, # Amplifier crosstalk\n", " 'include_refoffsets': True, # Reference offsets\n", " 'include_refinst' : True, # Reference pixel instabilities\n", " 'include_colnoise' : True, # Transient detector column noise\n", " 'add_crs' : True, # Include cosmic ray\n", " 'cr_model' : 'SUNMAX', # Cosmic ray model ('SUNMAX', 'SUNMIN', or 'FLARES')\n", " 'cr_scale' : 1, # Cosmic ray probabilities scaling\n", " 'apply_nonlinearity': True, # Apply non-linearity\n", " 'random_nonlin' : True, # Add randomness to non-linearity\n", " 'apply_flats' : True, # pixel-to-pixel QE variations and field-dep illum\n", " },\n", "}" ] }, { "cell_type": "markdown", "id": "precise-presentation", "metadata": {}, "source": [ "## Perform simulations of observations\n", "\n", "The next few cells demonstrate how to simulate observations for a single visit in the program (`001:001`). In order to generate a subset of observations, the `create_level1b_FITS` function has a few keyword settings, including `visit_id`, `apname`, `filter`, and `detname`. \n", "\n", "In addition, there are some diagnostic-level options to ensure simulations are being generated as expected before going through the long process of making everything. makes sense during\n", "\n", " * `dry_run`: Won't generate any image data, but instead runs through each observation, printing detector info, SIAF aperture name, filter, visit IDs, exposure numbers, and dither information. If set to `None`, then grabs keyword from `sim_config` argument, otherwise defaults to `False` if not specified. If paired with `save_dms`, then will generate an empty set of DMS FITS files with headers populated, but data set to all zeros.\n", " * `save_slope`: Saves noiseless slope images to a separate DMS-like FITS file that is names `slope_{DMSfilename}`. If set to `None`, then grabs keyword from `sim_config`, otherwise defaults to False if not found. **Is effect if `dry_run=True`.**\n", " * `save_dms`: Option to disable simulation of ramp data and creation of DMS FITS. If `dry_run=True`, then setting `save_dms=True` will save DMS FITS files populated with all zeros. If set to `None`, then grabs keyword from `sim_config`; if no keyword is found, then defaults to `True` if `dry_run=False`, otherwise False.\n" ] }, { "cell_type": "code", "execution_count": 14, "id": "honest-mouth", "metadata": { "scrolled": false }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Obs Params: 0%| | 0/70 [00:00