diff --git a/notebooks/ACS/acs_cte_forward_model/acs_cte_forward_model_example.ipynb b/notebooks/ACS/acs_cte_forward_model/acs_cte_forward_model_example.ipynb index 68f6366d2..d65619284 100644 --- a/notebooks/ACS/acs_cte_forward_model/acs_cte_forward_model_example.ipynb +++ b/notebooks/ACS/acs_cte_forward_model/acs_cte_forward_model_example.ipynb @@ -89,7 +89,6 @@ "- *os* for setting environment variables\n", "- *shutil* for managing directories\n", "- *numpy* for math and array calculations\n", - "- *collections OrderedDict* for making dictionaries easily\n", "- *matplotlib pyplot* for plotting\n", "- *matplotlib.colors LogNorm* for scaling images\n", "- *astropy.io fits* for working with FITS files\n", @@ -110,10 +109,10 @@ "import os\n", "import shutil\n", "import numpy as np\n", - "from collections import OrderedDict\n", "import matplotlib.pyplot as plt\n", "from astropy.io import fits\n", - "from photutils import datasets\n", + "from astropy.modeling.models import Gaussian2D\n", + "from photutils.datasets import make_noise_image, make_model_params, make_model_image\n", "from astroquery.mast import Observations\n", "from acstools import acsccd\n", "from acstools import acscte\n", @@ -298,7 +297,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "First, we generate a table of random Gaussian sources of typical brightness for our 47 Tuc field with $\\mathrm{FWHM}\\sim2.5$ pixels. Because $\\mathrm{FWHM} = 2.355\\sigma$, we will generate Gaussian sources with $\\sigma \\sim 1.06$ pixels in both $x$ and $y$. " + "First, we generate a table of random Gaussian sources of typical brightness for our 47 Tuc field with $\\mathrm{FWHM}\\sim2.5$ pixels. Because $\\mathrm{FWHM} = 2.355\\sigma$, we will generate Gaussian sources with $\\sigma \\sim 1.06$ pixels in both $x$ and $y$. We get use the shape of one of the flc image SCI extensions for creating the (x, y) coordinates of the sources." ] }, { @@ -307,27 +306,31 @@ "metadata": {}, "outputs": [], "source": [ - "n_sources = 300\n", - "param_ranges = [('amplitude', [500, 30000]),\n", - " ('x_mean', [0, 4095]),\n", - " ('y_mean', [0, 2047]),\n", - " ('x_stddev', [1.05, 1.07]),\n", - " ('y_stddev', [1.05, 1.07]),\n", - " ('theta', [0, np.pi])]\n", + "wfc2 = fits.getdata('jd0q14ctq_flc.fits', ext=1)\n", "\n", - "param_ranges = OrderedDict(param_ranges)\n", + "shape = wfc2.shape" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "n_sources = 300\n", "\n", - "sources = datasets.make_random_gaussians_table(n_sources, param_ranges, \n", - " seed=12345)\n", + "sources = make_model_params(shape, n_sources, x_name='x_mean', y_name='y_mean',\n", + " amplitude=(500, 30000), x_stddev=(1.05, 1.07), \n", + " y_stddev=(1.05, 1.07), theta=(0, np.pi), seed=12345)\n", "\n", - "print(sources)" + "sources" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Next, we get the shape of one of the `flc` image `SCI` extensions and make an image from the table of Gaussian sources. Note that this step may take a few minutes. Finally, we run the synthetic image through a Poisson sampler in order to simulate the Poisson noise of the scene." + "Next, we make an image from the table of Gaussian sources. Finally, we run the synthetic image through a Poisson sampler in order to simulate the Poisson noise of the scene." ] }, { @@ -336,11 +339,9 @@ "metadata": {}, "outputs": [], "source": [ - "wfc2 = fits.getdata('jd0q14ctq_flc.fits', ext=1)\n", - "\n", - "shape = wfc2.shape\n", - "\n", - "synth_stars_image = datasets.make_gaussian_sources_image(shape, sources)\n", + "model = Gaussian2D()\n", + "synth_stars_image = make_model_image(shape, model, sources, \n", + " x_name='x_mean', y_name='y_mean', progress_bar=True)\n", "\n", "synth_stars_image = np.random.poisson(synth_stars_image)" ] @@ -382,7 +383,7 @@ "ax.imshow(flc, vmin=0, vmax=200, interpolation='nearest', cmap='Greys_r', origin='lower')\n", "\n", "ax.set_xlim(2000, 2800)\n", - "ax.set_ylim(1200, 1700)" + "ax.set_ylim(800, 1300)" ] }, { @@ -442,7 +443,7 @@ " markerfacecolor='none', markeredgecolor='red', linestyle='none')\n", "\n", "ax.set_xlim(2000, 2800)\n", - "ax.set_ylim(1200, 1700)" + "ax.set_ylim(800, 1300)" ] }, { @@ -722,9 +723,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "scrolled": true - }, + "metadata": {}, "outputs": [], "source": [ "flt_stars = fits.getdata('jd0q14ctq_stars_ctefmod_flt.fits', ext=1)\n", @@ -737,15 +736,13 @@ " markerfacecolor='none', markeredgecolor='red', linestyle='none')\n", "\n", "ax.set_xlim(2000, 2800)\n", - "ax.set_ylim(1200, 1700)" + "ax.set_ylim(800, 1300)" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "scrolled": true - }, + "metadata": {}, "outputs": [], "source": [ "flc_stars = fits.getdata('jd0q14ctq_stars_ctefmod_flc.fits', ext=1)\n", @@ -758,7 +755,7 @@ " markerfacecolor='none', markeredgecolor='red', linestyle='none')\n", "\n", "ax.set_xlim(2000, 2800)\n", - "ax.set_ylim(1200, 1700)" + "ax.set_ylim(800, 1300)" ] }, { @@ -829,7 +826,7 @@ "metadata": {}, "outputs": [], "source": [ - "noise_image = datasets.make_noise_image(shape, distribution='poisson', mean=40, seed=12345)\n", + "noise_image = make_noise_image(shape, distribution='poisson', mean=40, seed=12345)\n", "\n", "wfc1 += noise_image + synth_stars_image\n", "wfc2 += noise_image + synth_stars_image\n", @@ -860,7 +857,7 @@ " markerfacecolor='none', markeredgecolor='red', linestyle='none')\n", "\n", "ax.set_xlim(2000, 2800)\n", - "ax.set_ylim(1200, 1700)" + "ax.set_ylim(800, 1300)" ] }, { @@ -986,14 +983,14 @@ "rn_C = hdr['READNSEC']\n", "rn_D = hdr['READNSED']\n", "\n", - "img_rn_A = datasets.make_noise_image((shape[0], int(shape[1]/2)), distribution='gaussian', \n", - " mean=0., stddev=rn_A)\n", - "img_rn_B = datasets.make_noise_image((shape[0], int(shape[1]/2)), distribution='gaussian', \n", - " mean=0., stddev=rn_B)\n", - "img_rn_C = datasets.make_noise_image((shape[0], int(shape[1]/2)), distribution='gaussian', \n", - " mean=0., stddev=rn_C)\n", - "img_rn_D = datasets.make_noise_image((shape[0], int(shape[1]/2)), distribution='gaussian', \n", - " mean=0., stddev=rn_D)\n", + "img_rn_A = make_noise_image((shape[0], int(shape[1]/2)), distribution='gaussian', \n", + " mean=0., stddev=rn_A)\n", + "img_rn_B = make_noise_image((shape[0], int(shape[1]/2)), distribution='gaussian', \n", + " mean=0., stddev=rn_B)\n", + "img_rn_C = make_noise_image((shape[0], int(shape[1]/2)), distribution='gaussian', \n", + " mean=0., stddev=rn_C)\n", + "img_rn_D = make_noise_image((shape[0], int(shape[1]/2)), distribution='gaussian', \n", + " mean=0., stddev=rn_D)\n", "\n", "wfc1_rn = np.hstack((img_rn_A, img_rn_B))\n", "wfc2_rn = np.hstack((img_rn_C, img_rn_D))" @@ -1290,7 +1287,7 @@ " markerfacecolor='none', markeredgecolor='red', linestyle='none')\n", "\n", "ax.set_xlim(2000, 2800)\n", - "ax.set_ylim(1200, 1700)" + "ax.set_ylim(800, 1300)" ] }, { @@ -1309,7 +1306,7 @@ " markerfacecolor='none', markeredgecolor='red', linestyle='none')\n", "\n", "ax.set_xlim(2000, 2800)\n", - "ax.set_ylim(1200, 1700)" + "ax.set_ylim(800, 1300)" ] }, { @@ -1365,7 +1362,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.12" + "version": "3.12.7" } }, "nbformat": 4, diff --git a/notebooks/ACS/acs_cte_forward_model/requirements.txt b/notebooks/ACS/acs_cte_forward_model/requirements.txt index 5f2e62ee7..ee44cb0f3 100644 --- a/notebooks/ACS/acs_cte_forward_model/requirements.txt +++ b/notebooks/ACS/acs_cte_forward_model/requirements.txt @@ -3,6 +3,6 @@ astropy>=5.3.3 astroquery>=0.4.6 matplotlib>=3.7.0 numpy>=1.23.4 -photutils>=1.6.0 +photutils>=2.0.2 crds>=11.17.7 -stsci.tools>=4.1.0 \ No newline at end of file +stsci.tools>=4.1.0 diff --git a/notebooks/ACS/acs_sbc_dark_analysis/acs_sbc_dark_analysis.ipynb b/notebooks/ACS/acs_sbc_dark_analysis/acs_sbc_dark_analysis.ipynb index f44d60093..4b5cc173a 100644 --- a/notebooks/ACS/acs_sbc_dark_analysis/acs_sbc_dark_analysis.ipynb +++ b/notebooks/ACS/acs_sbc_dark_analysis/acs_sbc_dark_analysis.ipynb @@ -762,7 +762,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.7" + "version": "3.12.7" } }, "nbformat": 4, diff --git a/notebooks/ACS/acs_sbc_dark_analysis/requirements.txt b/notebooks/ACS/acs_sbc_dark_analysis/requirements.txt index 5907c0856..2670c06cb 100644 --- a/notebooks/ACS/acs_sbc_dark_analysis/requirements.txt +++ b/notebooks/ACS/acs_sbc_dark_analysis/requirements.txt @@ -3,4 +3,3 @@ astroquery>=0.4.6 drizzlepac>=3.5.1 matplotlib>=3.7.0 numpy>=1.23.4 -photutils>=1.12.0 # The drizzlepac needs deprecated methods such as DAOGroup. diff --git a/notebooks/DrizzlePac/align_mosaics/align_mosaics.ipynb b/notebooks/DrizzlePac/align_mosaics/align_mosaics.ipynb index 12465cab6..82e8898f0 100755 --- a/notebooks/DrizzlePac/align_mosaics/align_mosaics.ipynb +++ b/notebooks/DrizzlePac/align_mosaics/align_mosaics.ipynb @@ -17,7 +17,7 @@ "\n", "## Learning Goals\n", "\n", - "By the end of this notebook tutorial, you will:\n", + "By the end of this notebook tutorial, you will: \n", "\n", "- Download WFC3 UVIS & IR images with `astroquery`\n", "- Check the active WCS (world coordinate system) solution in the FITS images\n", @@ -1244,7 +1244,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.4" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/DrizzlePac/align_mosaics/requirements.txt b/notebooks/DrizzlePac/align_mosaics/requirements.txt index 1d4d0bdc2..7f7448994 100644 --- a/notebooks/DrizzlePac/align_mosaics/requirements.txt +++ b/notebooks/DrizzlePac/align_mosaics/requirements.txt @@ -4,4 +4,3 @@ drizzlepac>=3.5.1 ipython>=8.11.0 matplotlib>=3.7.0 numpy>=1.23.4 -photutils==1.12.0 # The drizzlepac needs deprecated methods such as DAOGroup. diff --git a/notebooks/DrizzlePac/align_multiple_visits/requirements.txt b/notebooks/DrizzlePac/align_multiple_visits/requirements.txt index 273282af5..425f0943a 100644 --- a/notebooks/DrizzlePac/align_multiple_visits/requirements.txt +++ b/notebooks/DrizzlePac/align_multiple_visits/requirements.txt @@ -6,4 +6,3 @@ ipython matplotlib numpy jupyter -photutils==1.12.0 diff --git a/notebooks/DrizzlePac/align_sparse_fields/align_sparse_fields.ipynb b/notebooks/DrizzlePac/align_sparse_fields/align_sparse_fields.ipynb index 136328cb9..d5a9a6e9b 100755 --- a/notebooks/DrizzlePac/align_sparse_fields/align_sparse_fields.ipynb +++ b/notebooks/DrizzlePac/align_sparse_fields/align_sparse_fields.ipynb @@ -63,7 +63,7 @@ "## Introduction \n", "[Table of Contents](#toc)\n", "\n", - "This notebook demonstrates aligning long exposures which have relatively few stars and a large number of cosmic rays. It is based on the example described in the ISR linked here ([ACS ISR 2015-04: Basic Use of SExtractor Catalogs With TweakReg - I](https://ui.adsabs.harvard.edu/abs/2015acs..rept....4L/abstract)), but uses a much simpler methodology.\n", + "This notebook demonstrates aligning long exposures which have relatively few stars and a large number of cosmic rays. It is based on the example described in the ISR linked here ([ACS ISR 2015-04: Basic Use of SExtractor Catalogs With TweakReg - I](https://ui.adsabs.harvard.edu/abs/2015acs..rept....4L/abstract)), but uses a much simpler methodology. \n", "\n", "Rather than making use of external software (e.g. [SExtractor](http://www.astromatic.net/software/sextractor)) and going through the extra steps to create 'cosmic-ray cleaned' images for each visit, this notebook demonstrates new features in `TweakReg` designed to mitigate false detections.\n", "\n", @@ -1013,7 +1013,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.6" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/DrizzlePac/align_sparse_fields/requirements.txt b/notebooks/DrizzlePac/align_sparse_fields/requirements.txt index 9ba08c45c..26c6feb88 100644 --- a/notebooks/DrizzlePac/align_sparse_fields/requirements.txt +++ b/notebooks/DrizzlePac/align_sparse_fields/requirements.txt @@ -5,5 +5,4 @@ drizzlepac>=3.6.2 ipython>=8.21.0 matplotlib>=3.8.2 numpy>=1.26.3 -photutils==1.12.0 # The drizzlepac needs deprecated methods such as DAOGroup. -jupyter>=1.0.0 \ No newline at end of file +jupyter>=1.0.0 diff --git a/notebooks/DrizzlePac/align_to_catalogs/align_to_catalogs.ipynb b/notebooks/DrizzlePac/align_to_catalogs/align_to_catalogs.ipynb index 70f3b2a7b..71890908c 100644 --- a/notebooks/DrizzlePac/align_to_catalogs/align_to_catalogs.ipynb +++ b/notebooks/DrizzlePac/align_to_catalogs/align_to_catalogs.ipynb @@ -49,7 +49,7 @@ "source": [ "\n", "## Introduction\n", - "The alignment of HST exposures is a critical step in image stacking or combination performed with software such as `AstroDrizzle`. Generally, a *relative* alignment is performed to align one or multiple images to another image that is designated as the reference image. The reference image is generally the deepest exposure and/or that covering the largest area of all the exposures. This process aligns the images to each other, but the pointing error of the observatory can still cause the images to have incorrect *absolute* astrometry. When absolute astrometry is desired, the images can be aligned to an external catalog with an absolute world coordinate system (WCS). In this example, we will provide a workflow to query catalogs such as SDSS and Gaia using the astroquery package, and then align the images to that catalog using TweakReg. \n", + "The alignment of HST exposures is a critical step in image stacking or combination performed with software such as `AstroDrizzle`. Generally, a *relative* alignment is performed to align one or multiple images to another image that is designated as the reference image. The reference image is generally the deepest exposure and/or that covering the largest area of all the exposures. This process aligns the images to each other, but the pointing error of the observatory can still cause the images to have incorrect *absolute* astrometry. When absolute astrometry is desired, the images can be aligned to an external catalog with an absolute world coordinate system (WCS). In this example, we will provide a workflow to query catalogs such as SDSS and Gaia using the astroquery package, and then align the images to that catalog using TweakReg.\n", "\n", "The workflow in this notebook for aligning images to [Gaia](https://www.cosmos.esa.int/web/gaia/home) is based on [WFC3 ISR 2017-19: Aligning HST Images to Gaia: a Faster Mosaicking Workflow](https://www.stsci.edu/files/live/sites/www/files/home/hst/instrumentation/wfc3/documentation/instrument-science-reports-isrs/_documents/2017/WFC3-2017-19.pdf) and contains a subset of the information and code found in [this repository](https://github.com/spacetelescope/gaia_alignment). For more information, see the notebook in that repository titled [Gaia_alignment.ipynb](https://github.com/spacetelescope/gaia_alignment/blob/master/Gaia_alignment.ipynb).\n", "\n", @@ -965,7 +965,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.6" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/DrizzlePac/align_to_catalogs/requirements.txt b/notebooks/DrizzlePac/align_to_catalogs/requirements.txt index 03e95e8d2..35c9c5526 100644 --- a/notebooks/DrizzlePac/align_to_catalogs/requirements.txt +++ b/notebooks/DrizzlePac/align_to_catalogs/requirements.txt @@ -5,5 +5,4 @@ drizzlepac>=3.6.2 ipython>=8.21.0 matplotlib>=3.8.2 numpy>=1.26.3 -photutils==1.12.0 # The drizzlepac needs deprecated methods such as DAOGroup. -jupyter>=1.0.0 \ No newline at end of file +jupyter>=1.0.0 diff --git a/notebooks/DrizzlePac/drizzle_wfpc2/drizzle_wfpc2.ipynb b/notebooks/DrizzlePac/drizzle_wfpc2/drizzle_wfpc2.ipynb index 0b18ea1fd..5666f575c 100644 --- a/notebooks/DrizzlePac/drizzle_wfpc2/drizzle_wfpc2.ipynb +++ b/notebooks/DrizzlePac/drizzle_wfpc2/drizzle_wfpc2.ipynb @@ -41,7 +41,7 @@ "source": [ "## Introduction \n", "\n", - "Extra care must be taken when using `AstroDrizzle` to combine observations from detectors comprised of multiple chips of varying sensitivity. `AstroDrizzle` works with calibrated images in units of counts (electrons or Data Numbers) or count rates and not in units of flux. It assumes that all input frames can be converted to physical flux units using a single inverse-sensitivity factor, recorded in the FITS image headers as `PHOTFLAM`, and the output drizzled product simply copies the `PHOTFLAM` keyword value from the first input image. When this occurs, the inverse-sensitivity will vary across the final drizzled product, and users will need to keep track of which sources fell on which chip when doing photometry. Moreover, varying detector sensitivities will affect the cosmic-ray rejection algorithm used by `AstroDrizzle`, and this may result in the misidentification of some good pixels as cosmic rays.\n", + "Extra care must be taken when using `AstroDrizzle` to combine observations from detectors comprised of multiple chips of varying sensitivity. `AstroDrizzle` works with calibrated images in units of counts (electrons or Data Numbers) or count rates and not in units of flux. It assumes that all input frames can be converted to physical flux units using a single inverse-sensitivity factor, recorded in the FITS image headers as `PHOTFLAM`, and the output drizzled product simply copies the `PHOTFLAM` keyword value from the first input image. When this occurs, the inverse-sensitivity will vary across the final drizzled product, and users will need to keep track of which sources fell on which chip when doing photometry. Moreover, varying detector sensitivities will affect the cosmic-ray rejection algorithm used by `AstroDrizzle`, and this may result in the misidentification of some good pixels as cosmic rays. \n", "\n", "This is a typical situation when drizzle-combining images from HST instruments with different chip sensitivities, e.g. Wide Field and Planetary Camera 2 (WFPC2). For more detail, see the section on [Gain Variation](http://www.stsci.edu/instruments/wfpc2/Wfpc2_dhb/wfpc2_ch53.html) under 'Position-Dependent Photometric Corrections' in the WFPC2 Data Handbook. As a result, each of the four chips requires a [unique PHOTFLAM](http://www.stsci.edu/instruments/wfpc2/Wfpc2_dhb/wfpc2_ch52.html#1933986) header keyword value. A similar situation may occur when drizzle-combining observations taken over a span of several years as detector's sensitivity declines over time, see e.g. [ACS ISR 2016-03](https://doi.org/10.3847/0004-6256/152/3/60).\n", "\n", @@ -530,7 +530,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.4" + "version": "3.12.5" }, "varInspector": { "cols": { diff --git a/notebooks/DrizzlePac/drizzle_wfpc2/requirements.txt b/notebooks/DrizzlePac/drizzle_wfpc2/requirements.txt index a14bb9a3e..64b6757f7 100644 --- a/notebooks/DrizzlePac/drizzle_wfpc2/requirements.txt +++ b/notebooks/DrizzlePac/drizzle_wfpc2/requirements.txt @@ -3,11 +3,10 @@ astroquery>=0.4.6 drizzlepac>=3.5.1 matplotlib>=3.7.0 numpy>=1.23.4 -photutils==1.12.0 # The drizzlepac needs deprecated methods such as DAOGroup. stsci.image>=2.3.5 stsci.imagestats>=1.6.3 stsci.skypac>=1.0.9 stsci.stimage>=0.2.6 stsci.tools>=4.0.1 stwcs>=1.7.2 -crds \ No newline at end of file +crds diff --git a/notebooks/DrizzlePac/mask_satellite/mask_satellite.ipynb b/notebooks/DrizzlePac/mask_satellite/mask_satellite.ipynb index 038d09f86..6595d52d5 100644 --- a/notebooks/DrizzlePac/mask_satellite/mask_satellite.ipynb +++ b/notebooks/DrizzlePac/mask_satellite/mask_satellite.ipynb @@ -53,7 +53,7 @@ "## Introduction \n", "[Table of Contents](#toc)\n", "\n", - "Even though Hubble has a small field of view, satellites are commonly captured in images. The cosmic ray rejection algorithm in Astrodrizzle is not well suited to eliminate satellite trails, and the affected adjacent pixels that make up their wings leave ugly blemishes in stacked images. \n", + "Even though Hubble has a small field of view, satellites are commonly captured in images. The cosmic ray rejection algorithm in Astrodrizzle is not well suited to eliminate satellite trails, and the affected adjacent pixels that make up their wings leave ugly blemishes in stacked images.\n", "\n", "To fix this problem, the pixels around satellite trails need to be marked as bad in the affected images. There are several ways to accomplish this goal. The ACS Team developed multiple algorithms to automatically detect and mask satellite trails. The newest is a module called `findsat_mrt` and is decribed in [ISR ACS 2022-08](https://www.stsci.edu/files/live/sites/www/files/home/hst/instrumentation/acs/documentation/instrument-science-reports-isrs/_documents/isr2208.pdf). The 'readthedocs' page can be found here: [MRT-based Satellite Trail Detection](https://acstools.readthedocs.io/en/latest/findsat_mrt.html). The second module is called `satdet` and is described in [ISR ACS 2016-01](http://www.stsci.edu/hst/acs/documents/isrs/isr1601.pdf). The 'readthedocs' page for the software can be found here: [Satellite Trails Detection](https://acstools.readthedocs.io/en/stable/satdet.html). `findsat_mrt` has the benefit of significantly improved sensitivity over `satdet` but it is more computationally demanding. \n", "\n", @@ -1158,7 +1158,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.6" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/DrizzlePac/mask_satellite/requirements.txt b/notebooks/DrizzlePac/mask_satellite/requirements.txt index e1fa9a44f..88a937988 100644 --- a/notebooks/DrizzlePac/mask_satellite/requirements.txt +++ b/notebooks/DrizzlePac/mask_satellite/requirements.txt @@ -5,7 +5,6 @@ crds>=11.17.15 drizzlepac>=3.6.2 ipython>=8.21.0 matplotlib>=3.8.2 -photutils==1.12.0 # The drizzlepac needs deprecated methods such as DAOGroup. jupyter>=1.0.0 acstools>=3.7.1 scikit-image>=0.20.0 diff --git a/notebooks/DrizzlePac/optimize_image_sampling/optimize_image_sampling.ipynb b/notebooks/DrizzlePac/optimize_image_sampling/optimize_image_sampling.ipynb index a1812f6f6..079ea7828 100644 --- a/notebooks/DrizzlePac/optimize_image_sampling/optimize_image_sampling.ipynb +++ b/notebooks/DrizzlePac/optimize_image_sampling/optimize_image_sampling.ipynb @@ -47,7 +47,7 @@ "## Introduction \n", "[Table of Contents](#toc)\n", "\n", - "This example was written to help users better understand the subtleties in improving image sampling for dithered data. One of the powers of the *drizzling* algorithm is that, given properly dithered images, it can restore much of the information lost due to undersampled images ([Fruchter and Hook, 2002](http://iopscience.iop.org/article/10.1086/338393/pdf)). \n", + "This example was written to help users better understand the subtleties in improving image sampling for dithered data. One of the powers of the *drizzling* algorithm is that, given properly dithered images, it can restore much of the information lost due to undersampled images ([Fruchter and Hook, 2002](http://iopscience.iop.org/article/10.1086/338393/pdf)).\n", "\n", "This work is based on [ISR ACS 2015-01](https://www.stsci.edu/files/live/sites/www/files/home/hst/instrumentation/acs/documentation/instrument-science-reports-isrs/_documents/isr1501.pdf), which contains a more detailed discussion than presented here. \n", "\n", @@ -735,7 +735,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.6" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/DrizzlePac/optimize_image_sampling/requirements.txt b/notebooks/DrizzlePac/optimize_image_sampling/requirements.txt index 78b05a2dc..d6a5d7066 100644 --- a/notebooks/DrizzlePac/optimize_image_sampling/requirements.txt +++ b/notebooks/DrizzlePac/optimize_image_sampling/requirements.txt @@ -6,4 +6,3 @@ ipython>=8.22.2 jupyter>=1.0.0 matplotlib>=3.8.4 numpy>=1.26.4 -photutils==1.12.0 # The drizzlepac needs deprecated methods such as DAOGroup. diff --git a/notebooks/DrizzlePac/sky_matching/requirements.txt b/notebooks/DrizzlePac/sky_matching/requirements.txt index e7add88e2..f7a82ad99 100644 --- a/notebooks/DrizzlePac/sky_matching/requirements.txt +++ b/notebooks/DrizzlePac/sky_matching/requirements.txt @@ -4,4 +4,3 @@ drizzlepac>=3.5.1 ipython>=8.11.0 matplotlib>=3.7.0 pandas>=1.5.3 -photutils==1.12.0 # The drizzlepac needs deprecated methods such as DAOGroup. \ No newline at end of file diff --git a/notebooks/DrizzlePac/sky_matching/sky_matching.ipynb b/notebooks/DrizzlePac/sky_matching/sky_matching.ipynb index 5057ec5d2..111da793b 100644 --- a/notebooks/DrizzlePac/sky_matching/sky_matching.ipynb +++ b/notebooks/DrizzlePac/sky_matching/sky_matching.ipynb @@ -66,7 +66,7 @@ "source": [ "## Introduction \n", "\n", - "When creating an image mosaic, `AstroDrizzle` has the ability to compute the sky and then either subtract or equalize the background in input images. Users may select the algorithm used for the sky subtraction via the `skymethod` parameter. \n", + "When creating an image mosaic, `AstroDrizzle` has the ability to compute the sky and then either subtract or equalize the background in input images. Users may select the algorithm used for the sky subtraction via the `skymethod` parameter.\n", "\n", "There are four methods available in sky matching: `localmin`, `match`, `globalmin`, and `globalmin+match`.\n", "\n", @@ -954,7 +954,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.4" + "version": "3.12.5" }, "varInspector": { "cols": { diff --git a/notebooks/DrizzlePac/use_ds9_regions_in_tweakreg/requirements.txt b/notebooks/DrizzlePac/use_ds9_regions_in_tweakreg/requirements.txt index 4cd20c35d..976d007da 100644 --- a/notebooks/DrizzlePac/use_ds9_regions_in_tweakreg/requirements.txt +++ b/notebooks/DrizzlePac/use_ds9_regions_in_tweakreg/requirements.txt @@ -3,5 +3,4 @@ astroquery>=0.4.7 drizzlepac>=3.6.2 matplotlib>=3.8.4 numpy>=1.26.4 -photutils==1.12.0 # The drizzlepac needs deprecated methods such as DAOGroup. regions>=0.9 diff --git a/notebooks/DrizzlePac/use_ds9_regions_in_tweakreg/use_ds9_regions_in_tweakreg.ipynb b/notebooks/DrizzlePac/use_ds9_regions_in_tweakreg/use_ds9_regions_in_tweakreg.ipynb index 035c4bb4d..f170a8ecb 100644 --- a/notebooks/DrizzlePac/use_ds9_regions_in_tweakreg/use_ds9_regions_in_tweakreg.ipynb +++ b/notebooks/DrizzlePac/use_ds9_regions_in_tweakreg/use_ds9_regions_in_tweakreg.ipynb @@ -714,7 +714,7 @@ "* [Citing `astropy`](https://www.astropy.org/acknowledging.html)\n", "* [Citing `astroquery`](https://github.com/astropy/astroquery/blob/main/astroquery/CITATION)\n", "* [Citing `drizzlepac`](https://zenodo.org/records/3743274)\n", - "* [Citing `photutils`](https://photutils.readthedocs.io/en/stable/citation.html)\n", + "* [Citing `photutils`](https://photutils.readthedocs.io/en/stable/getting_started/citation.html)\n", "* [Citing `matplotlib`](https://matplotlib.org/stable/users/project/citing.html)\n", "* [Citing `numpy`](https://numpy.org/citing-numpy/)" ] @@ -743,7 +743,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.4" + "version": "3.12.7" } }, "nbformat": 4, diff --git a/notebooks/DrizzlePac/using_updated_astrometry_solutions/requirements.txt b/notebooks/DrizzlePac/using_updated_astrometry_solutions/requirements.txt index 9ba08c45c..26c6feb88 100644 --- a/notebooks/DrizzlePac/using_updated_astrometry_solutions/requirements.txt +++ b/notebooks/DrizzlePac/using_updated_astrometry_solutions/requirements.txt @@ -5,5 +5,4 @@ drizzlepac>=3.6.2 ipython>=8.21.0 matplotlib>=3.8.2 numpy>=1.26.3 -photutils==1.12.0 # The drizzlepac needs deprecated methods such as DAOGroup. -jupyter>=1.0.0 \ No newline at end of file +jupyter>=1.0.0 diff --git a/notebooks/DrizzlePac/using_updated_astrometry_solutions/using_updated_astrometry_solutions.ipynb b/notebooks/DrizzlePac/using_updated_astrometry_solutions/using_updated_astrometry_solutions.ipynb index 0f170f322..c294ddcdc 100644 --- a/notebooks/DrizzlePac/using_updated_astrometry_solutions/using_updated_astrometry_solutions.ipynb +++ b/notebooks/DrizzlePac/using_updated_astrometry_solutions/using_updated_astrometry_solutions.ipynb @@ -68,7 +68,7 @@ "\n", "***\n", "\n", - "The following Python packages are required to run the Jupyter Notebook:\n", + "The following Python packages are required to run the Jupyter Notebook: \n", " - [**os**](https://docs.python.org/3/library/os.html) - change and make directories\n", " - [**glob**](https://docs.python.org/3/library/glob.html) - gather lists of filenames\n", " - [**shutil**](https://docs.python.org/3/library/shutil.html#module-shutil) - remove directories and files\n", @@ -981,7 +981,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.6" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/WFC3/calwf3_recalibration/calwf3_recal_tvb.ipynb b/notebooks/WFC3/calwf3_recalibration/calwf3_recal_tvb.ipynb index a7612cb8c..071e8255b 100755 --- a/notebooks/WFC3/calwf3_recalibration/calwf3_recal_tvb.ipynb +++ b/notebooks/WFC3/calwf3_recalibration/calwf3_recal_tvb.ipynb @@ -12,7 +12,7 @@ "\n", "This notebook shows two reprocessing examples for WFC3/IR observations impacted by time-variable background (TVB). \n", "\n", - "By the end of this tutorial, you will:\n", + "By the end of this tutorial, you will: \n", "- Analyze exposure statistics for each read in an IMA file using `pstat`.\n", "- Reprocess a single exposure and an image association using `calwf3`.\n", "- Combine the reprocessed exposures using `astrodrizzle`.\n", @@ -769,7 +769,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.6" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/WFC3/calwf3_recalibration/requirements.txt b/notebooks/WFC3/calwf3_recalibration/requirements.txt index bc7016b3a..75be9652b 100644 --- a/notebooks/WFC3/calwf3_recalibration/requirements.txt +++ b/notebooks/WFC3/calwf3_recalibration/requirements.txt @@ -1,4 +1,3 @@ -photutils==1.12.0 # The notebook uses deprecated methods such as DAOGroup. astropy>=5.3.3 astroquery>=0.4.6 ccdproc>=2.4.0 @@ -6,5 +5,5 @@ crds>=11.17.9 drizzlepac>=3.5.1 matplotlib>=3.7.0 numpy>=1.23.4 -stwcs>=1.7.2 +stwcs>=1.7.2 wfc3tools>=1.4.0 diff --git a/notebooks/WFC3/calwf3_v1.0_cte/calwf3_with_v1.0_PCTE.ipynb b/notebooks/WFC3/calwf3_v1.0_cte/calwf3_with_v1.0_PCTE.ipynb index b50dce4a3..1a31d19a9 100644 --- a/notebooks/WFC3/calwf3_v1.0_cte/calwf3_with_v1.0_PCTE.ipynb +++ b/notebooks/WFC3/calwf3_v1.0_cte/calwf3_with_v1.0_PCTE.ipynb @@ -268,10 +268,7 @@ }, "outputs": [], "source": [ - "bestref_input = 'crds bestrefs --update-bestrefs --sync-references=1 --files idv404axq_raw.fits'\n", - "run_bestref = os.system(bestref_input)\n", - "if run_bestref != 0:\n", - " print(f\"bestref failed with exit code: {run_bestref}\")" + "!crds bestrefs --update-bestrefs --sync-references=1 --files idv404axq_raw.fits" ] }, { @@ -965,7 +962,7 @@ "* [Citing `astroquery`](https://github.com/astropy/astroquery/blob/main/astroquery/CITATION)\n", "* [Citing `matplotlib`](https://matplotlib.org/stable/users/project/citing.html)\n", "* [Citing `numpy`](https://numpy.org/citing-numpy/)\n", - "* [Citing `photutils`](https://photutils.readthedocs.io/en/stable/citation.html)\n", + "* [Citing `photutils`](https://photutils.readthedocs.io/en/stable/getting_started/citation.html)\n", "* [Citing `scipy`](https://scipy.org/citing-scipy/)\n", "
\n", "***\n", @@ -990,7 +987,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.4" + "version": "3.12.5" }, "varInspector": { "cols": { diff --git a/notebooks/WFC3/calwf3_v1.0_cte/requirements.txt b/notebooks/WFC3/calwf3_v1.0_cte/requirements.txt index 6142a7cd2..71a33b71f 100644 --- a/notebooks/WFC3/calwf3_v1.0_cte/requirements.txt +++ b/notebooks/WFC3/calwf3_v1.0_cte/requirements.txt @@ -4,6 +4,6 @@ crds jupyter matplotlib numpy -photutils==1.12.0 +photutils scipy wfc3tools diff --git a/notebooks/WFC3/exception_report/wfc3_exception_report.ipynb b/notebooks/WFC3/exception_report/wfc3_exception_report.ipynb index 1bb1b8bef..48701032e 100755 --- a/notebooks/WFC3/exception_report/wfc3_exception_report.ipynb +++ b/notebooks/WFC3/exception_report/wfc3_exception_report.ipynb @@ -495,7 +495,7 @@ "| `astropy.stats.sigma_clipped_stats` | sigma clipping statistics |\n", "| `astropy.visualization.ZScaleInterval` | z-scaling images |\n", "| `matplotlib.colors.LogNorm` | logarithmic normalization |\n", - "| `photutils.detection.CircularAperture` | aperture photometry |\n", + "| `photutils.aperture.CircularAperture` | aperture photometry |\n", "| `photutils.detection.DAOStarFinder` | point source detection |\n", "| `docs.rad_prof.RadialProfile` | generating radial profiles |" ] @@ -689,7 +689,7 @@ "* [Citing `astroquery`](https://github.com/astropy/astroquery/blob/main/astroquery/CITATION)\n", "* [Citing `matplotlib`](https://matplotlib.org/stable/users/project/citing.html)\n", "* [Citing `numpy`](https://numpy.org/citing-numpy/)\n", - "* [Citing `photutils`](https://photutils.readthedocs.io/en/stable/citation.html)\n", + "* [Citing `photutils`](https://photutils.readthedocs.io/en/stable/getting_started/citation.html)\n", "* [Citing `scipy`](https://scipy.org/citing-scipy/)\n", "
\n", "***" @@ -720,7 +720,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.12" + "version": "3.12.7" } }, "nbformat": 4, diff --git a/notebooks/WFC3/ir_scattered_light_calwf3_corrections/Correcting_for_Scattered_Light_in_IR_Exposures_Using_calwf3_to_Mask_Bad_Reads.ipynb b/notebooks/WFC3/ir_scattered_light_calwf3_corrections/Correcting_for_Scattered_Light_in_IR_Exposures_Using_calwf3_to_Mask_Bad_Reads.ipynb index d7b86ef51..4e534bc6b 100644 --- a/notebooks/WFC3/ir_scattered_light_calwf3_corrections/Correcting_for_Scattered_Light_in_IR_Exposures_Using_calwf3_to_Mask_Bad_Reads.ipynb +++ b/notebooks/WFC3/ir_scattered_light_calwf3_corrections/Correcting_for_Scattered_Light_in_IR_Exposures_Using_calwf3_to_Mask_Bad_Reads.ipynb @@ -14,7 +14,7 @@ "(TVB) due to scattered light from observing close to the Earth's limb. This method illustrates how to mask bad reads in the RAW image and then reprocess with `calwf3`, and it may be used for rejecting anomalous reads occurring either at the beginning or at the end of an exposure.\n", "\n", "\n", - "By the end of this tutorial, you will:\n", + "By the end of this tutorial, you will: \n", "\n", "- Compute and plot the difference between IMA reads to identify the reads affected by TVB.\n", "- Reprocess a single exposure with `calwf3` by excluding the first few reads which are affected by scattered light.\n", @@ -712,7 +712,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.10" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/WFC3/ir_scattered_light_calwf3_corrections/requirements.txt b/notebooks/WFC3/ir_scattered_light_calwf3_corrections/requirements.txt index a99a1ebfe..ed24253dc 100644 --- a/notebooks/WFC3/ir_scattered_light_calwf3_corrections/requirements.txt +++ b/notebooks/WFC3/ir_scattered_light_calwf3_corrections/requirements.txt @@ -7,4 +7,3 @@ numpy>=1.23.4 stwcs>=1.7.2 wfc3tools>=1.4.0 crds>=11.17.9 -photutils==1.12.0 # The notebook uses deprecated methods such as DAOGroup. diff --git a/notebooks/WFC3/ir_scattered_light_manual_corrections/Correcting_for_Scattered_Light_in_IR_Exposures_by_Manually_Subtracting_Bad_Reads.ipynb b/notebooks/WFC3/ir_scattered_light_manual_corrections/Correcting_for_Scattered_Light_in_IR_Exposures_by_Manually_Subtracting_Bad_Reads.ipynb index 2ed8c5120..9aa95ef40 100644 --- a/notebooks/WFC3/ir_scattered_light_manual_corrections/Correcting_for_Scattered_Light_in_IR_Exposures_by_Manually_Subtracting_Bad_Reads.ipynb +++ b/notebooks/WFC3/ir_scattered_light_manual_corrections/Correcting_for_Scattered_Light_in_IR_Exposures_by_Manually_Subtracting_Bad_Reads.ipynb @@ -12,7 +12,7 @@ "\n", "This notebook presents one of two available methods to correct for a time variable background (TVB) due to scattered light from observing close to the Earth's limb. This method illustrates how to manually subtract any bad reads from the final exposure read of the WFC3/IR IMA data. \n", "\n", - "By the end of this tutorial, you will: \n", + "By the end of this tutorial, you will:\n", "\n", "- Compute and plot the difference between IMA reads to identify those affected by TVB. \n", "- Correct a single exposure in which the first few reads are affected by scattered light by subtracting those \"bad\" reads from the final IMA read.\n", @@ -1050,7 +1050,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.10" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/WFC3/ir_scattered_light_manual_corrections/requirements.txt b/notebooks/WFC3/ir_scattered_light_manual_corrections/requirements.txt index eedf21132..ed24253dc 100644 --- a/notebooks/WFC3/ir_scattered_light_manual_corrections/requirements.txt +++ b/notebooks/WFC3/ir_scattered_light_manual_corrections/requirements.txt @@ -1,7 +1,6 @@ astropy>=5.3.3 astroquery>=0.4.6 drizzlepac>=3.5.1 -photutils==1.12.0 # The notebook uses deprecated methods such as DAOGroup. ginga==4.0.1 # The notebook needs ginga.util.zcale matplotlib>=3.7.0 numpy>=1.23.4 diff --git a/notebooks/WFC3/persistence/requirements.txt b/notebooks/WFC3/persistence/requirements.txt index e92b2bd4c..89db83351 100644 --- a/notebooks/WFC3/persistence/requirements.txt +++ b/notebooks/WFC3/persistence/requirements.txt @@ -1,4 +1,3 @@ -photutils==1.12.0 # The notebook uses deprecated methods such as DAOGroup. astropy>=5.3.3 astroquery>=0.4.6 ccdproc>=2.4.0 diff --git a/notebooks/WFC3/persistence/wfc3_ir_persistence.ipynb b/notebooks/WFC3/persistence/wfc3_ir_persistence.ipynb index 7c0dda9d7..0971313d7 100644 --- a/notebooks/WFC3/persistence/wfc3_ir_persistence.ipynb +++ b/notebooks/WFC3/persistence/wfc3_ir_persistence.ipynb @@ -15,7 +15,7 @@ "\n", "This notebook shows how to use the Hubble Space Telescope WFC3/IR persistence model to flag pixels affected by persistence in the calibrated (FLT) science images. When the images are sufficiently dithered to step over the observed persistence artifacts, AstroDrizzle may be used to exclude those flagged pixels when combining the FLT frames. \n", "\n", - "By the end of this tutorial, you will:\n", + "By the end of this tutorial, you will: \n", "\n", "- Download images and persistence products from MAST.\n", "- Flag affected pixels in the data quality arrays of the FLT images.\n", @@ -528,7 +528,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.4" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/notebooks/WFC3/point_spread_function/hst_point_spread_function.ipynb b/notebooks/WFC3/point_spread_function/hst_point_spread_function.ipynb index c5d47e9d2..32ea72e52 100644 --- a/notebooks/WFC3/point_spread_function/hst_point_spread_function.ipynb +++ b/notebooks/WFC3/point_spread_function/hst_point_spread_function.ipynb @@ -202,10 +202,10 @@ "from astropy.visualization import simple_norm\n", "from astropy.stats import sigma_clipped_stats, SigmaClip\n", "from photutils.detection import DAOStarFinder\n", - "from photutils.aperture import aperture_photometry, CircularAperture, \\\n", - " CircularAnnulus, ApertureStats\n", - "from photutils.psf import PSFPhotometry, SourceGrouper, IntegratedGaussianPRF, \\\n", - " GriddedPSFModel, STDPSFGrid, FittableImageModel\n", + "from photutils.aperture import (ApertureStats, CircularAnnulus,\n", + " CircularAperture, aperture_photometry)\n", + "from photutils.psf import (FittableImageModel, GriddedPSFModel, IntegratedGaussianPRF, \n", + " PSFPhotometry, SourceGrouper, STDPSFGrid)\n", "from drizzlepac import tweakreg, astrodrizzle\n", "\n", "# Custom functions written in psf_utilities.py.\n", @@ -472,14 +472,14 @@ " The np.ndarray containing the array of science data.\n", " sources : astropy.table.table.QTable\n", " The astropy table of sources from the daofind function.\n", - " psf_model : photutils.psf.griddedpsfmodel.GriddedPSFModel\n", + " psf_model : photutils.psf.GriddedPSFModel\n", " An astropy compatible model PSF or grid of PSFs.\n", "\n", " Returns\n", " -------\n", " phot : astropy.table.table.QTable\n", " An astropy quantity table with measured source photometry.\n", - " psfphot : photutils.psf.photometry.PSFPhotometry\n", + " psfphot : photutils.psf.PSFPhotometry\n", " Contains results of PSF fitting for use with other functions.\n", " \"\"\"\n", "\n", @@ -1527,7 +1527,7 @@ "* [Citing `drizzlepac`](https://drizzlepac.readthedocs.io/en/latest/getting_started/citing_drizzlepac.html)\n", "* [Citing `matplotlib`](https://matplotlib.org/stable/users/project/citing.html)\n", "* [Citing `numpy`](https://numpy.org/citing-numpy/)\n", - "* [Citing `photutils`](https://photutils.readthedocs.io/en/stable/citation.html)\n", + "* [Citing `photutils`](https://photutils.readthedocs.io/en/stable/getting_started/citation.html)\n", "***\n", "\n", "[Top of Page](#top)\n", @@ -1552,7 +1552,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.9" + "version": "3.12.7" } }, "nbformat": 4, diff --git a/notebooks/WFC3/uvis_time_dependent_photometry/requirements.txt b/notebooks/WFC3/uvis_time_dependent_photometry/requirements.txt index 2e9dc6437..048c5ed03 100644 --- a/notebooks/WFC3/uvis_time_dependent_photometry/requirements.txt +++ b/notebooks/WFC3/uvis_time_dependent_photometry/requirements.txt @@ -4,5 +4,4 @@ drizzlepac>=3.5.1 matplotlib>=3.7.0 numpy>=1.23.4 pandas>=1.5.3 -photutils==1.12.0 # The notebook uses deprecated methods such as DAOGroup. stwcs>=1.7.2 diff --git a/notebooks/WFC3/uvis_time_dependent_photometry/uvis_timedep_phot.ipynb b/notebooks/WFC3/uvis_time_dependent_photometry/uvis_timedep_phot.ipynb index 60fd0449d..63f268039 100644 --- a/notebooks/WFC3/uvis_time_dependent_photometry/uvis_timedep_phot.ipynb +++ b/notebooks/WFC3/uvis_time_dependent_photometry/uvis_timedep_phot.ipynb @@ -667,7 +667,7 @@ "* [Citing `numpy`](https://numpy.org/citing-numpy/)\n", "* [Citing `astropy`](https://www.astropy.org/acknowledging.html)\n", "* [Citing `drizzlepac`](https://drizzlepac.readthedocs.io/en/latest/LICENSE.html)\n", - "* [Citing `photutils`](https://photutils.readthedocs.io/en/stable/license.html)\n", + "* [Citing `photutils`](https://photutils.readthedocs.io/en/stable/getting_started/citation.html)\n", "\n", "***\n", "[Top of Page](#title)\n", @@ -691,7 +691,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.4" + "version": "3.12.7" } }, "nbformat": 4,