From 422c2065bfcc32aab577fe1f77499be74a6d702a Mon Sep 17 00:00:00 2001 From: Hatice Karatay <66814693+haticekaratay@users.noreply.github.com> Date: Mon, 27 Nov 2023 15:04:23 -0500 Subject: [PATCH 1/2] Enhance navigation clarity on index page (#140) * Enhance navigation clarity on index page * Update wording for better clarity --- index.md | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/index.md b/index.md index d2ef21f85..ac70e8711 100644 --- a/index.md +++ b/index.md @@ -1,6 +1,19 @@ -# STScI HST Notebook Repository HQ -This page provides links to notebooks created by various Hubble Space -Telescope instrument teams and software groups, including: + +## STScI HST Notebook Repository HQ +Welcome to the STScI HST Notebook Repository +This resource provides comprehensive documentation and interactive notebooks created by the Hubble Space Telescope instruments teams. + +### Interactive Notebooks +Explore our interactive notebooks for hands-on experience with HST data. +- [ACS notebooks](./notebooks/ACS/README.md) +- [COS notebooks](./notebooks/COS/README.md) +- [DrizzlePac notebooks](./notebooks/DrizzlePac/README.md) +- [NICMOS notebooks](./notebooks/NICMOS/nicmos_unit_conversion/nicmos_unit_conversion.ipynb) +- [STIS notebooks](./notebooks/STIS/README.md) +- [WFC3 notebooks](./notebooks/WFC3/README.md) + +### Instrument Documentation +Here, you can find detailed documentation for each instrument the Hubble Space Telescope uses. - [Advanced Camera for Surveys (ACS)](https://www.stsci.edu/hst/instrumentation/acs) @@ -13,4 +26,3 @@ Telescope instrument teams and software groups, including: - [Space Telescope Imaging Spectrograph (STIS)](https://www.stsci.edu/hst/instrumentation/stis) - [Wide Field Camera 3 (WFC3)](https://www.stsci.edu/hst/instrumentation/wfc3) - From 0a07a7c05f3084e4a56002d155970cea378ab522 Mon Sep 17 00:00:00 2001 From: Michael Dulude Date: Tue, 28 Nov 2023 08:23:07 -0500 Subject: [PATCH 2/2] Add WFC3 notebook 'calwf3_recal_tvb.ipynb' (#99) * uncommented notebooks/WFC3/calwf3_recalibration/calwf3_recal_tvb.ipynb from _toc.yml * removed notebooks/WFC3/calwf3_recalibration/calwf3_recal_tvb.ipynb from exclude_patterns list in _config.yml * calwf3_recal_tvb.ipynb: cleared notebook outputs * Removed calwf3_recal notebook from _config * Uncommented calwf3_recal notebook from _toc * Update README for calwf3_recal * Update requirements for calwf3_recal * Added pre-requirements for calwf3_recal to install hstacl * Update calwf3_recal notebook to PEP8 standards * Updated README with dependency instructions * Updated code for file naming/moving * Fixed indentation error * Fix indentation in the loop * Fixed indentation bug --------- Co-authored-by: FDauphin Co-authored-by: Hatice Karatay <66814693+haticekaratay@users.noreply.github.com> --- _config.yml | 1 - _toc.yml | 2 +- notebooks/WFC3/calwf3_recalibration/README.md | 14 +- .../calwf3_recal_tvb.ipynb | 222 +++++++++++------- .../calwf3_recalibration/pre-requirements.sh | 1 + .../calwf3_recalibration/requirements.txt | 1 + 6 files changed, 148 insertions(+), 93 deletions(-) create mode 100644 notebooks/WFC3/calwf3_recalibration/pre-requirements.sh diff --git a/_config.yml b/_config.yml index e7f606c78..0008a5d0f 100644 --- a/_config.yml +++ b/_config.yml @@ -44,7 +44,6 @@ html: exclude_patterns: [notebooks/DrizzlePac/align_mosaics/align_mosaics.ipynb, notebooks/DrizzlePac/sky_matching/sky_matching.ipynb, notebooks/DrizzlePac/use_ds9_regions_in_tweakreg/use_ds9_regions_in_tweakreg.ipynb, - notebooks/WFC3/calwf3_recalibration/calwf3_recal_tvb.ipynb, notebooks/WFC3/dash/dash.ipynb, notebooks/WFC3/filter_transformations/filter_transformations.ipynb, notebooks/WFC3/flux_conversion_tool/flux_conversion_tool.ipynb, diff --git a/_toc.yml b/_toc.yml index 94dbd254f..8e6eb2729 100644 --- a/_toc.yml +++ b/_toc.yml @@ -59,7 +59,7 @@ parts: - caption: WFC3 chapters: - file: notebooks/WFC3/README.md -# - file: notebooks/WFC3/calwf3_recalibration/calwf3_recal_tvb.ipynb + - file: notebooks/WFC3/calwf3_recalibration/calwf3_recal_tvb.ipynb - file: notebooks/WFC3/calwf3_v1.0_cte/calwf3_with_v1.0_PCTE.ipynb # - file: notebooks/WFC3/dash/dash.ipynb - file: notebooks/WFC3/exception_report/wfc3_exception_report.ipynb diff --git a/notebooks/WFC3/calwf3_recalibration/README.md b/notebooks/WFC3/calwf3_recalibration/README.md index bbf6fa072..1f7a1e0ca 100644 --- a/notebooks/WFC3/calwf3_recalibration/README.md +++ b/notebooks/WFC3/calwf3_recalibration/README.md @@ -1 +1,13 @@ -A new Jupyter notebook provides `calwf3` reprocessing examples to improve calibrated WFC3/IR images affected by time-variable background. The notebook shows how to diagnose images with poor-quality ramp fits and rerun `calwf3` with the 'CRCORR' step turned off. This method is described as the 'Last-minus-first' technique [WFC3 ISR 2016-16](https://www.stsci.edu/files/live/sites/www/files/home/hst/instrumentation/wfc3/documentation/instrument-science-reports-isrs/_documents/2016/WFC3-2016-16.pdf). See Section 3.5.2 of the [WFC3 Data Handbook](https://hst-docs.stsci.edu/wfc3dhb) for more information. +This Jupyter notebook provides `calwf3` reprocessing examples to improve calibrated WFC3/IR images affected by time-variable background (TVB). The notebook shows how to diagnose images with poor-quality ramp fits and rerun `calwf3` with the 'CRCORR' step turned off. This method is described as the 'Last-minus-first' technique [WFC3 ISR 2016-16](https://www.stsci.edu/files/live/sites/www/files/home/hst/instrumentation/wfc3/documentation/instrument-science-reports-isrs/_documents/2016/WFC3-2016-16.pdf). See Section 3.5.2 of the [WFC3 Data Handbook](https://hst-docs.stsci.edu/wfc3dhb) for more information. + +Dependencies: + +Install the necessary packages using the pre-requirements.sh and requirements.txt: + + bash pre-requirements.sh + pip install -r requirements.txt + +If necessary, also install jupyter notebook: + + pip install notebook + diff --git a/notebooks/WFC3/calwf3_recalibration/calwf3_recal_tvb.ipynb b/notebooks/WFC3/calwf3_recalibration/calwf3_recal_tvb.ipynb index c5a53486a..37ccba91e 100755 --- a/notebooks/WFC3/calwf3_recalibration/calwf3_recal_tvb.ipynb +++ b/notebooks/WFC3/calwf3_recalibration/calwf3_recal_tvb.ipynb @@ -52,23 +52,21 @@ "\n", "## 1. Imports\n", "\n", - "This notebook assumes you have created the virtual environment in [WFC3 Library's](https://github.com/spacetelescope/WFC3Library) installation instructions.\n", + "This notebook assumes you have installed the required libraries as described [here](https://github.com/spacetelescope/hst_notebooks/tree/main/notebooks/WFC3/calwf3_recalibration).\n", "\n", "We import:\n", - "- *os* for setting environment variables\n", "- *glob* for finding lists of files\n", + "- *os* for setting environment variables\n", "- *shutil* for managing directories\n", "\n", - "- *numpy* for handling array functions\n", "- *matplotlib.pyplot* for plotting data\n", "- *astropy.io fits* for accessing FITS files\n", "- *astroquery.mast Observations* for downloading data from MAST\n", - "\n", - "- *wfc3tools pstat* for plotting statistics of WFC3 data\n", - "- *wfc3tools calwf3* for calibrating WFC3 data\n", "- *ccdproc* for building the association\n", + "- *drizzlepac astrodrizzle* for combining images\n", "- *stwcs* for updating the World Coordinate System\n", - "- *drizzlepac astrodrizzle* for combining images" + "\n", + "- *wfc3tools calwf3 and pstat* for calibrating WFC3 data and plotting statistics of WFC3 data" ] }, { @@ -79,20 +77,19 @@ "source": [ "%matplotlib inline\n", "\n", - "import os\n", "import glob\n", + "import os\n", "import shutil \n", "\n", - "import numpy as np\n", "import matplotlib.pyplot as plt\n", + "\n", "from astropy.io import fits\n", "from astroquery.mast import Observations\n", - "\n", - "from wfc3tools import pstat\n", - "from wfc3tools import calwf3\n", "from ccdproc import ImageFileCollection\n", + "from drizzlepac import astrodrizzle\n", "from stwcs import updatewcs\n", - "from drizzlepac import astrodrizzle" + "\n", + "from wfc3tools import calwf3, pstat" ] }, { @@ -110,22 +107,32 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "scrolled": true - }, + "metadata": {}, "outputs": [], "source": [ "data_list = Observations.query_criteria(obs_id='IBOHBF040')\n", "\n", - "Observations.download_products(data_list['obsid'],project='CALWF3',download_dir='./data',\n", - " mrp_only=False,productSubGroupDescription=['ASN','RAW','IMA','FLT','DRZ'])\n", + "Observations.download_products(\n", + " data_list['obsid'], \n", + " project='CALWF3', \n", + " download_dir='./data', \n", + " mrp_only=False, \n", + " productSubGroupDescription=['ASN', 'RAW', 'IMA', 'FLT', 'DRZ'])\n", "\n", "science_files = glob.glob('data/mastDownload/HST/*/*fits')\n", "\n", "for im in science_files:\n", - " root = im.split('/')[-1]\n", - " os.rename(im,'./'+root)\n", - "shutil.rmtree('data/')" + " root = os.path.basename(im)\n", + " new_path = os.path.join('.', root)\n", + " os.rename(im, new_path)\n", + "\n", + "data_directory = './data'\n", + "\n", + "try:\n", + " if os.path.isdir(data_directory):\n", + " shutil.rmtree(data_directory)\n", + "except Exception as e:\n", + " print(f\"An error occured while deleting the directory {data_directory}: {e}\")" ] }, { @@ -141,11 +148,32 @@ "metadata": {}, "outputs": [], "source": [ - "collec = ImageFileCollection('./',\n", - " keywords=[\"asn_id\",\"targname\",\"filter\",\"samp_seq\",\"nsamp\",\"exptime\",\n", - " \"postarg1\",\"postarg2\",\"date-obs\",\"time-obs\",], glob_include=\"*flt.fits\", ext=0)\n", - "out_table = collec.summary\n", - "out_table" + "image_collection = ImageFileCollection(\n", + " './',\n", + " keywords=[\n", + " \"asn_id\",\n", + " \"targname\",\n", + " \"filter\",\n", + " \"samp_seq\",\n", + " \"nsamp\",\n", + " \"exptime\",\n", + " \"postarg1\",\n", + " \"postarg2\",\n", + " \"date-obs\",\n", + " \"time-obs\",\n", + " ], \n", + " glob_include=\"*flt.fits\",\n", + " ext=0,\n", + ")\n", + "\n", + "try:\n", + " summary_table = image_collection.summary\n", + " if summary_table:\n", + " print(summary_table)\n", + " else:\n", + " print(\"No FITS files matched the pattern or no relevant data found.\")\n", + "except Exception as e:\n", + " print(f\"An error occurred while creating the summary table: {e}\")" ] }, { @@ -194,7 +222,7 @@ "raw_files = glob.glob('*_raw.fits')\n", "\n", "for file in raw_files:\n", - " command_line_input = 'crds bestrefs --files {:} --sync-references=1 --update-bestrefs'.format(file)\n", + " command_line_input = f'crds bestrefs --files {file} --sync-references=1 --update-bestrefs'\n", " os.system(command_line_input)" ] }, @@ -226,7 +254,7 @@ "metadata": {}, "outputs": [], "source": [ - "fits.getdata('ibohbf040_asn.fits',1)" + "fits.getdata('ibohbf040_asn.fits', 1)" ] }, { @@ -245,15 +273,15 @@ "b7q_data = fits.getdata('ibohbfb7q_flt.fits', ext=1)\n", "b9q_data = fits.getdata('ibohbfb9q_flt.fits', ext=1)\n", "\n", - "fig = plt.figure(figsize=(15,8))\n", - "ax1 = fig.add_subplot(1,2,1)\n", - "ax2 = fig.add_subplot(1,2,2)\n", + "fig = plt.figure(figsize=(15, 8))\n", + "ax1 = fig.add_subplot(1, 2, 1)\n", + "ax2 = fig.add_subplot(1, 2, 2)\n", "\n", - "ax1.imshow(b7q_data, vmin=0.25,vmax=1.25,cmap='Greys_r',origin='lower')\n", - "ax2.imshow(b9q_data, vmin=1.25,vmax=2.25,cmap='Greys_r',origin='lower')\n", + "ax1.imshow(b7q_data, vmin=0.25, vmax=1.25, cmap='Greys_r', origin='lower')\n", + "ax2.imshow(b9q_data, vmin=1.25, vmax=2.25, cmap='Greys_r', origin='lower')\n", "\n", - "ax1.set_title('ibohbfb7q (Linear Bkg)',fontsize=20)\n", - "ax2.set_title('ibohbfb9q (Non-linear Bkg)',fontsize=20)" + "ax1.set_title('ibohbfb7q (Linear Bkg)', fontsize=20)\n", + "ax2.set_title('ibohbfb9q (Non-linear Bkg)', fontsize=20)" ] }, { @@ -271,15 +299,20 @@ }, "outputs": [], "source": [ - "fig = plt.figure(figsize=(15,3))\n", - "ax1 = fig.add_subplot(1,2,1)\n", - "ax2 = fig.add_subplot(1,2,2)\n", + "fig = plt.figure(figsize=(15, 3))\n", + "ax1 = fig.add_subplot(1, 2, 1)\n", + "ax2 = fig.add_subplot(1, 2, 2)\n", + "\n", + "n, bins, patches = ax1.hist(b7q_data.flatten(), bins=200, range=(0, 1))\n", + "n, bins, patches = ax2.hist(b9q_data.flatten(), bins=200, range=(1, 2))\n", "\n", - "n, bins, patches = ax1.hist(b7q_data.flatten(),bins=200,range=(0,1))\n", - "n, bins, patches = ax2.hist(b9q_data.flatten(),bins=200,range=(1,2))\n", + "ax1.set_title('ibohbfb7q (Linear Bkg)', fontsize=15)\n", + "ax1.set_xlabel('Count Rate (e-/s)')\n", + "ax1.set_ylabel('Frequency')\n", "\n", - "ax1.set_title('ibohbfb7q (Linear Bkg)',fontsize=15)\n", - "ax2.set_title('ibohbfb9q (Non-linear Bkg)',fontsize=15)" + "ax2.set_title('ibohbfb9q (Non-linear Bkg)', fontsize=15)\n", + "ax2.set_xlabel('Count Rate (e-/s)')\n", + "ax2.set_ylabel('Frequency')" ] }, { @@ -357,14 +390,14 @@ "metadata": {}, "outputs": [], "source": [ - "os.mkdir('orig/')\n", + "os.makedirs('orig/', exist_ok=True)\n", "\n", - "for imas in glob.glob('ibohbf*_ima.fits'):\n", - " shutil.move(imas,'orig/')\n", - "for flts in glob.glob('ibohbf*_flt.fits'):\n", - " shutil.move(flts,'orig/') \n", - "for driz in glob.glob('ibohbf*_drz.fits'):\n", - " shutil.move(driz,'orig/') " + "for file_pattern in ['ibohbf*_ima.fits', 'ibohbf*_flt.fits', 'ibohbf*_drz.fits']:\n", + " for file in glob.glob(file_pattern):\n", + " destination_path = os.path.join('orig', os.path.basename(file))\n", + " if os.path.isfile(destination_path):\n", + " os.remove(destination_path)\n", + " shutil.move(file, destination_path) " ] }, { @@ -398,18 +431,18 @@ "metadata": {}, "outputs": [], "source": [ - "b9q_data = fits.getdata('orig/ibohbfb9q_flt.fits', ext=1)\n", - "b9q_newdata = fits.getdata('ibohbfb9q_flt.fits', ext=1)\n", + "b9q_data = fits.getdata('orig/ibohbfb9q_flt.fits', ext=1)\n", + "b9q_newdata = fits.getdata('ibohbfb9q_flt.fits', ext=1)\n", "\n", - "fig = plt.figure(figsize=(15,8))\n", - "ax1 = fig.add_subplot(1,2,1)\n", - "ax2 = fig.add_subplot(1,2,2)\n", + "fig = plt.figure(figsize=(15, 8))\n", + "ax1 = fig.add_subplot(1, 2, 1)\n", + "ax2 = fig.add_subplot(1, 2, 2)\n", "\n", - "ax1.imshow(b9q_data[520:720,750:970], vmin=1.25,vmax=2.25,cmap='Greys_r',origin='lower')\n", - "ax2.imshow(b9q_newdata[520:720,750:970], vmin=1.25,vmax=2.25,cmap='Greys_r',origin='lower')\n", + "ax1.imshow(b9q_data[520:720, 750:970], vmin=1.25, vmax=2.25, cmap='Greys_r', origin='lower')\n", + "ax2.imshow(b9q_newdata[520:720, 750:970], vmin=1.25, vmax=2.25, cmap='Greys_r', origin='lower')\n", "\n", - "ax1.set_title('ibohbfb9q (Original)', fontsize=20)\n", - "ax2.set_title('ibohbfb9q (Reprocessed)',fontsize=20)" + "ax1.set_title('ibohbfb9q (Original)', fontsize=20)\n", + "ax2.set_title('ibohbfb9q (Reprocessed)', fontsize=20)" ] }, { @@ -427,15 +460,20 @@ }, "outputs": [], "source": [ - "fig = plt.figure(figsize=(15,3))\n", - "ax1 = fig.add_subplot(1,2,1)\n", - "ax2 = fig.add_subplot(1,2,2)\n", + "fig = plt.figure(figsize=(15, 3))\n", + "ax1 = fig.add_subplot(1, 2, 1)\n", + "ax2 = fig.add_subplot(1, 2, 2)\n", "\n", - "n, bins, patches = ax1.hist(b9q_data.flatten(), bins=200,range=(1,2))\n", - "n, bins, patches = ax2.hist(b9q_newdata.flatten(),bins=200,range=(1,2))\n", + "n, bins, patches = ax1.hist(b9q_data.flatten(), bins=200, range=(1, 2))\n", + "n, bins, patches = ax2.hist(b9q_newdata.flatten(), bins=200, range=(1, 2))\n", "\n", - "ax1.set_title('ibohbfb9q (Original FLT)', fontsize=15)\n", - "ax2.set_title('ibohbfb9q (Reprocessed FLT)',fontsize=15)" + "ax1.set_title('ibohbfb9q (Original FLT)', fontsize=15)\n", + "ax1.set_xlabel('Count Rate (e-/s)')\n", + "ax1.set_ylabel('Frequency')\n", + "\n", + "ax2.set_title('ibohbfb9q (Reprocessed FLT)', fontsize=15)\n", + "ax2.set_xlabel('Count Rate (e-/s)')\n", + "ax2.set_ylabel('Frequency')" ] }, { @@ -468,7 +506,7 @@ "metadata": {}, "outputs": [], "source": [ - "dat = fits.getdata('ibohbf040_asn.fits',1)\n", + "dat = fits.getdata('ibohbf040_asn.fits', 1)\n", "dat" ] }, @@ -558,10 +596,10 @@ "source": [ "calwf3('ibohbf040_asn.fits')\n", "\n", - "#Alternatively, calwf3 may be run on a list of RAW files rather than the ASN\n", + "# Alternatively, calwf3 may be run on a list of RAW files rather than the ASN\n", "\n", - "#for raws in glob.glob('ibohbf*_raw.fits'):\n", - "# calwf3(raws)" + "# for raws in glob.glob('ibohbf*_raw.fits'):\n", + "# calwf3(raws)" ] }, { @@ -617,17 +655,17 @@ "outputs": [], "source": [ "drz_origdata = fits.getdata('orig/ibohbf040_drz.fits', ext=1)\n", - "drz_newdata = fits.getdata('ibohbf040_drz.fits', ext=1)\n", + "drz_newdata = fits.getdata('ibohbf040_drz.fits', ext=1)\n", "\n", - "fig = plt.figure(figsize=(15,8))\n", - "ax1 = fig.add_subplot(1,2,1)\n", - "ax2 = fig.add_subplot(1,2,2)\n", + "fig = plt.figure(figsize=(15, 8))\n", + "ax1 = fig.add_subplot(1, 2, 1)\n", + "ax2 = fig.add_subplot(1, 2, 2)\n", "\n", - "ax1.imshow(drz_origdata[520:720,750:970], vmin=0.4,vmax=0.6,cmap='Greys_r',origin='lower')\n", - "ax2.imshow(drz_newdata[520:720,750:970], vmin=0.4,vmax=0.6,cmap='Greys_r',origin='lower')\n", + "ax1.imshow(drz_origdata[520:720, 750:970], vmin=0.4, vmax=0.6, cmap='Greys_r', origin='lower')\n", + "ax2.imshow(drz_newdata[520:720, 750:970], vmin=0.4, vmax=0.6, cmap='Greys_r', origin='lower')\n", "\n", - "ax1.set_title('Original DRZ',fontsize=20)\n", - "ax2.set_title('Reprocessed DRZ',fontsize=20)" + "ax1.set_title('Original DRZ', fontsize=20)\n", + "ax2.set_title('Reprocessed DRZ', fontsize=20)" ] }, { @@ -636,15 +674,15 @@ "metadata": {}, "outputs": [], "source": [ - "fig = plt.figure(figsize=(15,3))\n", - "ax1 = fig.add_subplot(1,2,1)\n", - "ax2 = fig.add_subplot(1,2,2)\n", + "fig = plt.figure(figsize=(15, 3))\n", + "ax1 = fig.add_subplot(1, 2, 1)\n", + "ax2 = fig.add_subplot(1, 2, 2)\n", "\n", - "n, bins, patches = ax1.hist(drz_origdata.flatten(),bins=200,range=(0.4,0.52))\n", - "n, bins, patches = ax2.hist(drz_newdata.flatten(), bins=200,range=(0.4,0.52))\n", + "n, bins, patches = ax1.hist(drz_origdata.flatten(), bins=200, range=(0.4, 0.52))\n", + "n, bins, patches = ax2.hist(drz_newdata.flatten(), bins=200, range=(0.4, 0.52))\n", "\n", "ax1.set_title('Original DRZ', fontsize=15)\n", - "ax2.set_title('Reprocessed DRZ',fontsize=15)" + "ax2.set_title('Reprocessed DRZ', fontsize=15)" ] }, { @@ -683,19 +721,23 @@ "\n", "**Authors:** Jennifer Mack, Harish Khandrika; WFC3 Instrument Team\n", "\n", - "**Updated on:** 2021-09-13\n", + "**Created on:** 2021-09-13\n", + "\n", + "**Updated on:** 2023-11-16\n", + "\n", + "**Source:** The notebook is sourced from [hst_notebooks/notebooks/WFC3/calwf3_recalibration](https://github.com/spacetelescope/hst_notebooks/tree/main/notebooks/WFC3/calwf3_recalibration).\n", "\n", "\n", "## Citations\n", "\n", - "If you use `numpy`, `astropy`, `astroquery`, `wfc3tools`, or `drizzlepac` for published research, please cite the\n", + "If you use `matplotlib`, `astropy`, `astroquery`, `drizzlepac`, or `wfc3tools` for published research, please cite the\n", "authors. Follow these links for more information about citing the libraries below:\n", "\n", - "* [Citing `numpy`](https://numpy.org/citing-numpy/)\n", + "* [Citing `matplotlib`](https://matplotlib.org/stable/users/project/citing.html)\n", "* [Citing `astropy`](https://www.astropy.org/acknowledging.html)\n", - "* [Citing `astroquery`](https://astroquery.readthedocs.io/en/latest/)\n", - "* [Citing `wfc3tools`](https://wfc3tools.readthedocs.io/en/latest/)\n", + "* [Citing `astroquery`](https://astroquery.readthedocs.io/en/latest/license.html)\n", "* [Citing `drizzlepac`](https://drizzlepac.readthedocs.io/en/latest/LICENSE.html)\n", + "* [Citing `wfc3tools`](https://wfc3tools.readthedocs.io/en/latest/)\n", "\n", "***\n", "[Top of Page](#title)\n", @@ -712,7 +754,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -726,7 +768,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.5" + "version": "3.8.12" } }, "nbformat": 4, diff --git a/notebooks/WFC3/calwf3_recalibration/pre-requirements.sh b/notebooks/WFC3/calwf3_recalibration/pre-requirements.sh new file mode 100644 index 000000000..23a5dffae --- /dev/null +++ b/notebooks/WFC3/calwf3_recalibration/pre-requirements.sh @@ -0,0 +1 @@ +conda install --yes -c conda-forge hstcal \ No newline at end of file diff --git a/notebooks/WFC3/calwf3_recalibration/requirements.txt b/notebooks/WFC3/calwf3_recalibration/requirements.txt index 26df866c6..33e20b5ab 100644 --- a/notebooks/WFC3/calwf3_recalibration/requirements.txt +++ b/notebooks/WFC3/calwf3_recalibration/requirements.txt @@ -1,6 +1,7 @@ astropy==5.2.1 astroquery==0.4.6 ccdproc==2.4.0 +crds==11.17.9 drizzlepac==3.5.1 matplotlib==3.7.0 numpy==1.23.4