Overview

Request 1188122 revoked

- Update to 1.13.0
## General
* scikit-learn has been removed as an optional dependency.
[#1774]
## New Features
### photutils.datasets
* Added a make_model_image function for generating simulated
images with model sources. This function has more options and
is significantly faster than the now-deprecated
make_model_sources_image function. [#1759, #1790]
* Added a make_model_params function to make a table of randomly
generated model positions and fluxes for simulated sources.
[#1766, #1796]
### photutils.detection
* The find_peaks function now supports input arrays with units.
[#1743]
* The Table returned from find_peaks now has an id column that
contains unique integer IDs for each peak. [#1743]
* The DAOStarFinder, IRAFStarFinder, and StarFinder classes now
support input arrays with units. [#1746]
### photutils.profiles
* Added an unnormalize method to RadialProfile and CurveOfGrowth
to return the profile to the state before any normalize calls
were run. [#1732]
* Added calc_ee_from_radius and calc_radius_from_ee methods to
CurveOfGrowth. [#1733]
### photutils.psf
* Added an include_localbkg keyword to the IterativePSFPhotometry
make_model_image and make_residual_image methods. [#1756]
* Added “x_fit”, “xfit”, “y_fit”, “yfit”, “flux_fit”, and
“fluxfit” as allowed column names in the init_params table
input to the PSF photometry objects. [#1765]
* Added a make_psf_model_image function to generate a simulated
image from PSF models. [#1785, #1796] PSFPhotometry now has a new
fit_params attribute containing a table of the fit model parameters
and errors. [#1789]
* The PSFPhotometry and IterativePSFPhotometry init_params table
now allows the user to input columns for model parameters other
than x, y, and flux. The column names must match the parameter
names in the PSF model. They * can also be suffixed with
either the “_init” or “_fit” suffix. [#1793]
## Bug Fixes
### photutils.aperture
* Fixed an issue in ApertureStats where in very rare cases the
covariance calculation could take a long time. [#1788]
### photutils.background
* No longer warn about NaNs in the data if those NaNs are masked
in coverage_mask passed to Background2D. [#1729]
### photutils.psf
* Fixed an issue where IterativePSFPhotometry would fail if the
input data was a Quantity array. [#1746]
* Fixed the IntegratedGaussianPRF class bounding_box limits to
always be symmetric. [#1754]
* Fixed an issue where IterativePSFPhotometry could sometimes
issue a warning when merging tables if mode='all'. [#1761]
* Fixed a bug where the first matching column in the init_params
table was not used in PSFPhotometry and IterativePSFPhotometry.
[#1765]
* Fixed an issue where IterativePSFPhotometry could sometimes
raise an error about non-overlapping data. [#1778]
* Fixed an issue with unit handling in PSFPhotometry and
IterativePSFPhotometry. [#1792]
* Fixed an issue in IterativePSFPhotometry where the fit_results
attribute was not cleared between repeated calls. [#1793]
### photutils.segmentation
* Fixed an issue in SourceCatalog where in very rare cases the
covariance calculation could take a long time. [#1788]
## API Changes
* The photutils.test function has been removed. Instead use the
pytest --pyargs photutils command. [#1725]
### photutils.datasets
* The photutils.datasets subpackage has been reorganized and the
make module has been deprecated. Instead of importing functions
from photutils.datasets.make, import functions from
photutils.datasets. [#1726]
* The make_model_sources_image function has been deprecated in
favor of the new make_model_image function. The new function
has more options and is significantly faster. [#1759]
* The randomly-generated optional noise in the simulated example
images make_4gaussians_image and make_100gaussians_image is now
slightly different. The noise sigma is the same, but the pixel
values differ. [#1760]
* The make_gaussian_prf_sources_image function is now deprecated.
Use the make_model_psf_image function or the new
make_model_image function instead. [#1762]
* The make_gaussian_sources_table function now includes an “id”
column and always returns both 'flux' and 'amplitude' columns.
[#1763]
* The make_model_sources_table function now includes an “id”
column. [#1764]
* The make_gaussian_sources_table function is now deprecated. Use
the make_model_sources_table function instead. [#1764]
* The make_test_psf_data function is now deprecated. Use the new
make_model_psf_image function instead. [#1785]
### photutils.detection
* The sky keyword in DAOStarFinder and IRAFStarFinder is now
deprecated and will be removed in a future version. [#1747]
* Sources that have non-finite properties (e.g., centroid,
roundness, sharpness, etc.) are automatically excluded from the
output table in DAOStarFinder, IRAFStarFinder, and StarFinder.
[#1750]
### photutils.psf
* PSFPhotometry and IterativePSFPhotometry now raise a ValueError
if the input psf_model is not two-dimensional with n_inputs=2
and n_outputs=1. [#1741]
* The IntegratedGaussianPRF class bounding_box is now a method
instead of an attribute for consistency with Astropy models.
The method has a factor keyword to scale the bounding box. The
default scale factor is 5.5 times sigma. [#1754]
* The IterativePSFPhotometry make_model_image and
make_residual_image methods no longer include the local
background by default. This is a backwards-incompatible change.
If the previous behavior is desired, set *
include_localbkg=True. [#1756]
* IterativePSFPhotometry will now only issue warnings after all
iterations are completed. [#1767]
* The IterativePSFPhotometry psfphot attribute has been removed.
Instead, use the fit_results attribute, which contains a list
of PSFPhotometry instances for each fit iteration. [#1771]
* The group_size column has been moved to come immediately after
the group_id column in the output table from PSFPhotometry and
IterativePSFPhotometry. [#1772]
* The PSFPhotometry init_params table was moved from the
fit_results dictionary to an attribute. [#1773] Removed local_bkg,
psfcenter_indices, fit_residuals, npixfit, and nmodels keys from
the PSFPhotometry fit_results dictionary. [#1773]
* Removed the deprecated BasicPSFPhotometry,
IterativelySubtractedPSFPhotometry, DAOPhotPSFPhotometry,
DAOGroup, DBSCANGroup, and GroupStarsBase, and NonNormalizable
classes and the prepare_psf_model, * get_grouped_psf_model,
and subtract_psf functions. [#1774]
* A ValueError is now raised if the shape of the error array does
not match the data array when calling the PSF-fitting classes.
[#1777]
* The fit_param_errs key was removed from the PSFPhotometry
fit_results dictionary. The fit parameter errors are now stored
in the fit_params table. [#1789]
* The cfit column in the PSFPhotometry and IterativePSFPhotometry
result table will now be NaN for sources whose initial central
pixel is masked. [#1789]
- Update to 1.12
## General
* The minimum required Python is now 3.10. [#1719]
* The minimum required NumPy is now 1.23. [#1719]
* The minimum required SciPy is now 1.8. [#1719]
* The minimum required scikit-image is now 0.20. [#1719]
* The minimum required scikit-learn is now 1.1. [#1719]
* The minimum required pytest-astropy is now 0.11. [#1719]
* The minimum required sphinx-astropy is now 1.9. [#1719]
* NumPy 2.0 is supported.
## Bug Fixes
### photutils.background
* No longer warn about NaNs in the data if those NaNs are masked
in mask passed to Background2D. [#1712]
## API Changes
### photutils.utils
* The default value for the ImageDepth mask_pad keyword is now
set to 0. [#1714]
- Update to 1.11.0
## New Features
### photutils.psf
* An init_params table is now included in the PSFPhotometry
fit_results dictionary. [#1681]
* Added an include_localbkg keyword to the PSF photometry
make_model_image and make_residual_image methods. [#1691]
* Significantly reduced the memory usage of PSF photometry when
using a GriddedPSFModel PSF model. [#1679]
* Added a mode keyword to IterativePSFPhotometry for controlling
the fitting mode. [#1708]
### photutils.datasets
* Improved the performance of make_test_psf_data when generating
random coordinates with a minimum separation. [#1668]
### photutils.segmentation
* The SourceFinder npixels keyword can now be a tuple
corresponding to the values used for the source finder and
source deblender, respectively. [#1688]
### photutils.utils
* Improved the performance of ImageDepth when generating random
coordinates with a minimum separation. [#1668]
## Bug Fixes
### photutils.psf
* Fixed an issue where PSF models produced by make_psf_model
would raise an error with PSFPhotometry if the fit did not
converge. [#1672]
* Fixed an issue where GriddedPSFModel fixed model parameters
were not respected when copying the model or fitting with the
PSF photometry classes. [#1679]
## API Changes
### photutils.aperture
* PixelAperture instances now raise an informative error message
when positions is input as a zip object containing Astropy
Quantity objects. [#1682]
### photutils.psf
* The GridddedPSFModel string representations now include the
model flux, x_0, and y_0 parameters. [#1680]
* The PSF photometry make_model_image and make_residual_image
methods no longer include the local background by default. This
is a backwards-incompatible change. If the previous behavior is
desired, set include_localbkg=True. [#1703]
* The PSF photometry finder_results attribute is now returned as
a QTable instead of a list of QTable. [#1704]
* Deprecated the NonNormalizable custom warning class in favor of
AstropyUserWarning. [#1710]
### photutils.segmentation
* The SourceCatalog get_label and get_labels methods now raise a
ValueError if any of the input labels are invalid. [#1694]
- Update to 1.10.0
## General
* The minimum required Astropy is now 5.1. [#1627]
## New Features
### photutils.datasets
* Added a border_size keyword to make_test_psf_data. [#1665]
* Improved the generation of random PSF positions in
make_test_psf_data. [#1665]
### photutils.detection
* Added a min_separation keyword to DAOStarFinder and
IRAFStarFinder. [#1663]
### photutils.morphology
* Added a wcs keyword to data_properties. [#1648]
### photutils.psf
* The GriddedPSFModel plot_grid method now returns a
matplotlib.figure.Figure object. [#1653]
* Added the ability for the GriddedPSFModel read method to read
FITS files generated by WebbPSF. [#1654]
* Added “flux_0” and “flux0” as allowed flux column names in the
init_params table input to the PSF photometry objects. [#1656]
* PSF models output from prepare_psf_model can now be input into
the PSF photometry classes. [#1657]
* Added make_psf_model function for making a PSF model from a 2D
Astropy model. Compound models are also supported. [#1658]
* The GriddedPSFModel oversampling can now be different in the x
and y directions. The oversampling attribute is now stored as a
1D numpy.ndarray with two elements. [#1664]
### photutils.segmentation
* The SegmentationImage make_source_mask method now uses a much
faster implementation of binary dilation. [#1638]
* Added a scale keyword to the SegmentationImage.to_patches()
method to scale the sizes of the polygon patches. [#1641,
#1646]
* Improved the SegmentationImage imshow method to ensure that
labels are plotted with unique colors. [#1649]
* Added a imshow_map method to SegmentationImage for plotting
segmentation images with a small number of non-consecutive
labels. [#1649]
* Added a reset_cmap method to SegmentationImage for resetting
the colormap to a new random colormap. [#1649]
### photutils.utils
* Improved the generation of random aperture positions in
ImageDepth. [#1666]
## Bug Fixes
### photutils.aperture
* Fixed an issue where the aperture plot method **kwargs were not
reset to the default values when called multiple times. [#1655]
### photutils.psf
* Fixed a bug where SourceGrouper would fail if only one source
was input. [#1617]
* Fixed a bug in GriddedPSFModel plot_grid where the grid could
be plotted incorrectly if the input xygrid was not sorted in y
then x order. [#1661]
### photutils.segmentation
* Fixed an issue where deblend_sources and SourceFinder would
raise an error if the contrast keyword was set to 1 (meaning no
deblending). [#1636]
* Fixed an issue where the vertices of the SegmentationImage
polygons were shifted by 0.5 pixels in both x and y. [#1646]
* API Changes
* The metadata in output tables now contains a timestamp. [#1640]
* Package versions in table metadata are now stored in the
“versions” key. [#1640]
* The order of the metadata in a table is now preserved when
writing to a file. [#1640]
### photutils.psf
* Deprecated the prepare_psf_model function. Use the new
make_psf_model function instead. [#1658]
* The GriddedPSFModel now stores the ePSF grid such that it is
first sorted by y then by x. As a result, the order of the data
and xygrid attributes may be different. [#1661]
* The oversampling attribute is now stored as a 1D numpy.ndarray
with two elements. [#1664]
* A ValueError is raised if GriddedPSFModel is called with x and
y arrays that have more than 2 dimensions. [#1662]
### photutils.segmentation
* Removed the deprecated kernel keyword from SourceCatalog.
[#1613]
- Update to 1.9.0
## General
* The minimum required Python is now 3.9. [#1569]
* The minimum required NumPy is now 1.22. [#1572]
## New Features
### photutils.background
* Added LocalBackground class for computing local backgrounds in
a circular annulus aperture. [#1556]
### photutils.datasets
* Added new make_test_psf_data function. [#1558, #1582, #1585]
### photutils.psf
* Propagate measurement uncertainties in PSF fitting. [#1543]
* Added new PSFPhotometry and IterativePSFPhotometry classes for
performing PSF-fitting photometry. [#1558, #1559, #1563, #1566,
#1567, #1581, #1586, #1590, #1594, #1603, #1604]
* Added a new SourceGrouper class. [#1558, #1605]
* Added a GriddedPSFModel fill_value attribute. [#1583]
* Added a grid_from_epsfs function to make a GriddedPSFModel from
ePSFs. [#1596]
* Added a read method to GriddedPSFModel for reading “STDPSF”
FITS files containing grids of ePSF models. [#1557]
* Added a plot_grid method to GriddedPSFModel for plotting ePSF
grids. [#1557]
* Added a STDPSFGrid class for reading “STDPSF” FITS files
containing grids of ePSF models and plotting the ePSF grids.
[#1557]
## Bug Fixes
### photutils.aperture
* Fixed a bug in the validation of PixelAperture positions.
[#1553]
## API Changes
### photutils.psf
* Deprecated the PSF photometry classes BasicPSFPhotometry,
IterativelySubtractedPSFPhotometry, and DAOPhotPSFPhotometry.
Use the new PSFPhotometry or IterativePSFPhotometry class
instead. [#1578]
* Deprecated the DAOGroup, DBSCANGroup, and GroupStarsBase
classes. Use the new SourceGrouper class instead. [#1578]
* Deprecated the get_grouped_psf_model and subtract_psf function.
[#1578]
- Update to 1.8.0
## New Features
### photutils.profiles
* The RadialProfile and CurveOfGrowth radial bins can now be
directly input, which also allows for non-uniform radial
spacing. [#1540]
## Bug Fixes
### photutils.psf
* Fixed an issue with the local model cache in GriddedPSFModel,
significantly improving performance. [#1536]
## API Changes
* Removed the deprecated axes keyword in favor of ax for
consistency with other packages. [#1523]
## photutils.aperture
* Removed the ApertureStats unpack_nddata method. [#1537]
## photutils.profiles
* The API for defining the radial bins for the RadialProfile and
CurveOfGrowth classes was changed. While the new API allows for
more flexibility, unfortunately, it is not
backwards-compatible. [#1540]
## photutils.segmentation
* Removed the deprecated kernel keyword from detect_sources and
deblend_sources. [#1524]
* Deprecated the kernel keyword in SourceCatalog. [#1525]
* Removed the deprecated outline_segments method from
SegmentationImage. [#1526]
* The SourceCatalog kron_params attribute is no longer returned
as a ndarray. It is returned as a tuple. [#1531]
- Update to 1.7.0
## General
* The rasterio and shapely packages are now optional
dependencies. [#1509]
## New Features
### photutils.aperture
* Significantly improved the performance of aperture_photometry
and the PixelAperture do_photometry method for large arrays.
[#1485]
* Significantly improved the performance of the PixelAperture
area_overlap method, especially for large arrays. [#1490]
### photutils.profiles
* Added a new profiles subpackage containing RadialProfile and
CurveOfGrowth classes. [#1494, #1496, #1498, #1499]
### photutils.psf
* Significantly improved the performance of evaluating and
fitting GriddedPSFModel instances. [#1503]
### photutils.segmentation
* Added a size keyword to the SegmentationImage make_source_mask
method. [#1506]
* Significantly improved the performance of SegmentationImage
make_source_mask when using square footprints for source
dilation. [#1506]
* Added the polygons property and to_patches and plot_patches
methods to SegmentationImage. [#1509]
* Added polygon keyword to the Segment class. [#1509]
## Bug Fixes
### photutils.centroids
* Fixed an issue where centroid_quadratic would sometimes fail if
the input data contained NaNs. [#1495]
### photutils.detection
* Fixed an issue with the starfinders (DAOStarFinder,
IRAFStarFinder, and StarFinder) where an exception was raised
if exclude_border=True and there were no detections. [#1512].
### photutils.isophote
* Fixed a bug where the upper harmonics (a3, a4, b3, and b4) had
the incorrect sign. [#1501]
* Fixed a bug in the calculation of the upper harmonic errors
(a3_err, a4_err, b3_err, and b4_err). [#1501].
### photutils.psf
* Fixed an issue where the PSF-photometry progress bar was not
shown. [#1517]
* Fixed an issue where all PSF uncertainties were excluded if the
last star group had no covariance matrix. [#1519]
### photutils.utils
* Fixed a bug in the calculation of ImageCutout xyorigin when
using the 'partial' mode when the cutout extended beyond the
right or top edge. [#1508]
## API Changes
### photutils.aperture
* The ApertureStats local_bkg keyword can now be broadcast for
apertures with multiple positions. [#1504]
### photutils.centroids
* The centroid_sources function will now raise an error if the
cutout mask contains all True values. [#1516]
### photutils.datasets
* Removed the deprecated load_fermi_image function. [#1479]
### photutils.psf
* Removed the deprecated sandbox classes DiscretePRF and
Reproject. [#1479]
### photutils.segmentation
* Removed the deprecated make_source_mask function in favor of
the SegmentationImage.make_source_mask method. [#1479]
* The SegmentationImage imshow method now uses "nearest"
interpolation instead of "none" to avoid rendering issues with
some backends. [#1507]
* The repr() notebook output for the Segment class now includes a
SVG polygon representation of the segment if the rasterio and
shapely packages are installed. [#1509]
* Deprecated the SegmentationImage outline_segments method. Use
the plot_patches method instead. [#1509]
- Drop photutils-pr1484-no-setuptools.patch
- Update to 1.6.0
## General
* Following NEP 29, the minimum required Numpy is now 1.20.
[#1442]
* The minimum required Matplotlib is now 3.3.0. [#1442]
* The minimum required scikit-image is now 0.18.0. [#1442]
* The minimum required scikit-learn is now 1.0. [#1442]
## New Features
### photutils.aperture
* The ApertureStats class now accepts astropy NDData objects as
input. [#1409]
* Improved the performance of aperture photometry by 10-25%
(depending on the number of aperture positions). [#1438]
### photutils.psf
* Added a progress bar for fitting PSF photometry [#1426]
* Added a subshape keyword to the PSF-fitting classes to define
the shape over which the PSF is subtracted. [#1477]
### photutils.segmentation
* Added the ability to slice SegmentationImage objects. [#1413]
* Added mode and fill_value keywords to SourceCatalog
make_cutouts method. [#1420]
* Added segment_area source property and wcs, localbkg_width,
apermask_method, and kron_params attributes to SourceCatalog.
[#1425]
* Added the ability to use Quantity arrays with detect_threshold,
detect_sources, deblend_sources, and SourceFinder. [#1436]
* The progress bar used when deblending sources now is prepended
with “Deblending”. [#1439]
* Added “windowed” centroids to SourceCatalog. [#1447, #1468]
* Added quadratic centroids to SourceCatalog. [#1467, #1469]
* Added a progress_bar option to SourceCatalog for displaying
progress bars when calculating some source properties. [#1471]
### photutils.utils
* Added xyorigin attribute to CutoutImage. [#1419]
* Added ImageDepth class. [#1434]
## Bug Fixes
### photutils.aperture
* Fixed a bug in the PixelAperture area_overlap method so that
the returned value does not inherit the data units. [#1408]
* Fixed an issue in ApertureStats get_ids for the case when the
ID numbers are not sorted (due to slicing). [#1423]
### photutils.datasets
* Fixed a bug in the various load functions where FITS files were
not closed. [#1455]
### photutils.segmentation
* Fixed an issue in the SourceCatalog kron_photometry,
make_kron_apertures, and plot_kron_apertures methods where the
input minimum Kron and circular radii would not be applied.
Instead the instance-level minima would always be used. [#1421]
* Fixed an issue where the SourceCatalog plot_kron_apertures
method would raise an error for a scalar SourceCatalog. [#1421]
* Fixed an issue in SourceCatalog get_labels for the case when
the labels are not sorted (due to slicing). [#1423]
## API Changes
* Deprecated axes keyword in favor of ax for consistency with
other packages. [#1432]
* Importing tools from all subpackages now requires including the
subpackage name.
### photutils.aperture
* Inputting PixelAperture positions as an Astropy Quantity in
pixel units is no longer allowed. [#1398]
* Inputting SkyAperture shape parameters as an Astropy Quantity
in pixel units is no longer allowed. [#1398]
* Removed the deprecated BoundingBox as_patch method. [#1462]
### photutils.centroids
* Removed the deprecated oversampling keyword in centroid_com.
[#1398]
### photutils.datasets
* Deprecated the load_fermi_image function. [#1455]
### photutils.psf
* Removed the deprecated flux_residual_sigclip keyword in
EPSFBuilder. Use sigma_clip instead. [#1398]
* PSF photometry classes will no longer emit a RuntimeWarning if
the fitted parameter variance is negative. [#1458]
### photutils.segmentation
* Removed the deprecated sigclip_sigma and sigclip_iters keywords
in detect_threshold. Use the sigma_clip keyword instead.
[#1398]
* Removed the mask_value, sigclip_sigma, and sigclip_iters
keywords in detect_threshold. Use the mask or sigma_clip
keywords instead. [#1398]
* Removed the deprecated the filter_fwhm and filter_size keywords
in make_source_mask. Use the kernel keyword instead. [#1398]
* If detection_cat is input to SourceCatalog, then the detection
catalog source centroids and morphological/shape properties
will be returned instead of calculating them from the input
data. Also, if detection_cat is input, then the input wcs,
apermask_method, and kron_params keywords will be ignored.
[#1425]
- Add photutils-pr1484-no-setuptools.patch
gh#astropy/photutils#1484
- Update to 1.5.0
General
* Added tqdm as an optional dependency. [#1364]
New Features
* photutils.psf
- Added a mask keyword when calling the PSF-fitting classes.
[#1350, #1351]
- The EPSFBuilder progress bar will use tqdm if the optional
package is installed. [#1367]
* photutils.segmentation
- Added SourceFinder class, which is a convenience class
combining detect_sources and deblend_sources. [#1344]
- Added a sigma_clip keyword to detect_threshold. [#1354]
- Added a make_source_mask method to SegmentationImage. [#1355]
- Added a make_2dgaussian_kernel convenience function. [#1356]
- Allow SegmentationImage.make_cmap background_color to be in
any matplotlib color format. [#1361]
- Added an imshow convenience method to SegmentationImage.
[#1362]
- Improved performance of deblend_sources. [#1364]
- Added a progress_bar keyword to deblend_sources. [#1364]
- Added a 'sinh' mode to deblend_sources. [#1368]
- Improved the resetting of cached SegmentationImage properties
so that custom (non-cached) attributes can be kept. [#1368]
- Added a nproc keyword to enable multiprocessing in
deblend_sources and SourceFinder. [#1372]
- Added a make_cutouts method to SourceCatalog for making
custom-shaped cutout images. [#1376]
- Added the ability to set a minimum unscaled Kron radius in
SourceCatalog. [#1381]
* photutils.utils
- Added a circular_footprint convenience function. [#1355]
- Added a CutoutImage class. [#1376]
Bug Fixes
* photutils.psf
- Fixed a warning message in EPSFFitter. [#1382]
* photutils.segmentation
- Fixed an issue in generating watershed markers used for
source deblending. [#1383]
API Changes
* photutils.centroids
- Changed the axes order of oversampling keyword in
centroid_com when input as a tuple. [#1358]
- Deprecated the oversampling keyword in centroid_com. [#1377]
* photutils.psf
- Invalid data values (i.e., NaN or inf) are now automatically
masked when performing PSF fitting. [#1350]
- Deprecated the sandbox classes DiscretePRF and Reproject.
[#1357]
- Changed the axes order of oversampling keywords when input as
a tuple. [#1358]
- Removed the unused shift_val keyword in EPSFBuilder and
EPSFModel. [#1377]
- Renamed the flux_residual_sigclip keyword (now deprecated) to
sigma_clip in EPSFBuilder. [#1378]
- The EPSFBuilder progress bar now requires that the optional
tqdm package be installed. [#1379]
- The tools in the PSF package now require keyword-only
arguments. [#1386]
* photutils.segmentation
- Removed the deprecated circular_aperture method from
SourceCatalog. [#1329]
- The SourceCatalog plot_kron_apertures method now sets a
default kron_apers value. [#1346]
- deblend_sources no longer allows an array to be input as a
segmentation image. It must be a SegmentationImage object.
[#1347]
- SegmentationImage no longer allows array-like input. It must
be a numpy ndarray. [#1347]
- Deprecated the sigclip_sigma and sigclip_iters keywords in
detect_threshold. Use the sigma_clip keyword instead. [#1354]
- Deprecated the make_source_mask function in favor of the
SegmentationImage.make_source_mask method. [#1355]
- Deprecated the kernel keyword in detect_sources and
deblend_sources. Instead, if filtering is desired, input a
convolved image directly into the data parameter. [#1365]
- Sources with a data minimum of zero are now treated the same
as negative minima (i.e., the mode is changed to “linear”)
for the “exponential” deblending mode. [#1368]
- A single warning (as opposed to 1 per source) is now raised
about negative/zero minimum data values using the
‘exponential’ deblending mode. The affected labels is
available in a new “info” attribute. [#1368]
- If the mode in deblend_sources is “exponential” or “sinh” and
there are too many potential deblended sources within a given
source (watershed markers), a warning will be raised and the
mode will be changed to “linear”. [#1369]
- The SourceCatalog make_circular_apertures and
make_kron_apertures methods now return a single aperture
(instead of a list with one item) for a scalar SourceCatalog.
[#1376]
- The SourceCatalog kron_params keyword now has an optional
third item representing the minimum circular radius. [#1381]
- The SourceCatalog kron_radius is now set to the minimum Kron
radius (the second element of kron_params) if the data or
radially weighted data sum to zero. [#1381]
* photutils.utils
- The colormap returned from make_random_cmap now has colors in
RGBA format. [#1361]
- Update to 1.4.0
New Features
* photutils.aperture
* Added a copy method to Aperture objects. [#1304]
* Added the ability to compare Aperture objects for equality.
[#1304]
* The theta keyword for EllipticalAperture, EllipticalAnnulus,
RectangularAperture, and RectangularEllipse can now be an
Astropy Angle or Quantity in angular units. [#1308]
* Added an ApertureStats class for computing statistics of
unmasked pixels within an aperture. [#1309, #1314, #1315,
#1318]
* Added a dtype keyword to the ApertureMask to_image method.
[#1320]
* photutils.background
* Added an alpha keyword to the Background2D.plot_meshes
method. [#1286]
* Added a clip keyword to the BkgZoomInterpolator class.
[#1324]
* photutils.segmentation
* Added SegmentationImage cmap attribute containing a default
colormap. [#1319]
* Improved the performance of SegmentationImage and
SourceCatalog, especially for large data arrays. [#1320]
* Added a convolved_data keyword to SourceCatalog. This is
recommended instead of using the kernel keyword. [#1321]
Bug Fixes
* photutils.aperture
* Fixed a bug in aperture_photometry where an error was not
raised if the data and error arrays have different units.
[#1285].
* photutils.background
* Fixed a bug in Background2D where using the pad edge method
would result in incorrect image padding if only one of the
axes needed padding. [#1292]
* photutils.centroid
* Fixed a bug in centroid_sources where setting error, xpeak,
or ypeak to None would result in an error. [#1297]
* Fixed a bug in centroid_quadratic where inputting a mask
would alter the input data array. [#1317]
* photutils.segmentation
* Fixed a bug in SourceCatalog where a UFuncTypeError would be
raised if the input data had an integer dtype [#1312].
API Changes
* photutils.aperture
* A ValueError is now raised if non-positive sizes are input to
sky-based apertures. [#1295]
* The BoundingBox.plot() method now returns a
matplotlib.patches.Patch object. [#1305]
* Inputting PixelAperture positions as an Astropy Quantity in
pixel units is deprecated. [#1310]
* Inputting SkyAperture shape parameters as an Astropy Quantity
in pixel units is deprecated. [#1310]
* photutils.background
* Removed the deprecated background_mesh_ma and
background_rms_mesh_ma Background2D properties. [#1280]
* By default, BkgZoomInterpolator uses clip=True to prevent the
interpolation from producing values outside the given input
range. If backwards-compatiblity is needed with older
Photutils versions, set clip=False. [#1324]
* photutils.centroid
* Removed the deprecated centroid_epsf and gaussian1d_moments
functions. [#1280]
* Importing tools from the centroids subpackage now requires
including the subpackage name. [#1280]
* photutils.morphology
* Importing tools from the morphology subpackage now requires
including the subpackage name. [#1280]
* photutils.segmentation
* Removed the deprecated source_properties function and the
SourceProperties and LegacySourceCatalog classes. [#1280]
* Removed the deprecated the filter_kernel keyword in the
detect_sources, deblend_sources, and make_source_mask
functions. [#1280]
* A TypeError is raised if the input array to SegmentationImage
does not have integer type. [#1319]
* A SegmentationImage may contain an array of all zeros.
[#1319]
* Deprecated the mask_value keyword in detect_threshold. Use
the mask keyword instead. [#1322]
* Deprecated the filter_fwhm and filter_size keywords in
make_source_mask. Use the kernel keyword instead. [#1322]
- Update to 1.3.0
General
* The metadata in output tables now contains version information
for all dependencies. [#1274]
New Features
* photutils.centroid
* Extra keyword arguments can be input to centroid_sources that
are then passed on to the centroid_func if supported.
[#1276,#1278]
* photutils.segmentation
* Added copy method to SourceCatalog. [#1264]
* Added kron_photometry method to SourceCatalog. [#1264]
* Added add_extra_property, remove_extra_property,
remove_extra_properties, and rename_extra_property methods
and extra_properties attribute to SourceCatalog. [#1264,
#1268]
* Added name and overwrite keywords to SourceCatalog
circular_photometry and fluxfrac_radius methods. [#1264]
* SourceCatalog fluxfrac_radius was improved for cases where
the source flux doesn't monotonically increase with
increasing radius. [#1264]
* Added meta and properties attributes to SourceCatalog.
[#1268]
* The SourceCatalog output table (using to_table) meta
dictionary now includes a field for the date/time. [#1268]
* Added SourceCatalog make_kron_apertures method. [#1268]
* Added SourceCatalog plot_circular_apertures and
plot_kron_apertures methods. [#1268]
Bug fixes
* photutils.segmentation
* If detection_catalog is input to SourceCatalog then the
detection centroids are used to calculate the
circular_aperture, circular_photometry, and fluxfrac_radius.
[#1264]
* Units are applied to SourceCatalog circular_photometry output
if the input data has units. [#1264]
* SourceCatalog circular_photometry returns scalar values if
catalog is scalar. [#1264]
* SourceCatalog fluxfrac_radius returns a Quantity with pixel
units. [#1264]
* Fixed a bug where the SourceCatalog detection_catalog was not
indexed/sliced when SourceCatalog was indexed/sliced. [#1268]
* SourceCatalog circular_photometry now returns NaN for
completely-masked sources. [#1268]
* SourceCatalog kron_flux is always NaN for sources where
kron_radius is NaN. [#1268]
* SourceCatalog fluxfrac_radius now returns NaN if kron_flux is
zero. [#1268]
API changes
* photutils.centroids
* A ValueError is now raised in centroid_sources if the input
xpos or ypos is outside of the input data. [#1276]
* A ValueError is now raised in centroid_quadratic if the input
xpeak or ypeak is outside of the input data. [#1276]
* NaNs are now returned from centroid_sources where the
centroid failed. This is usually due to a box_size that is
too small when using a fitting-based centroid function.
[#1276]
* photutils.segmentation
* Renamed the SourceCatalog circular_aperture method to
make_circular_apertures. The old name is deprecated. [#1268]
* The SourceCatalog kron_params keyword must have a minimum
circular radius that is greater than zero. The default value
is now 1.0. [#1268]
* detect_sources now uses astropy.convolution.convolve, which
allows for masking pixels. [#1269]
- Update to 1.2.0
* The minimum required scipy version is 1.6.0 [#1239]
photutils.aperture
* Added a mask keyword to the area_overlap method. [#1241]
photutils.background
* Improved the performance of Background2D by up to 10-50% when
the optional bottleneck package is installed. [#1232]
* Added a masked keyword to the background classes
MeanBackground, MedianBackground, ModeEstimatorBackground,
MMMBackground, SExtractorBackground,
BiweightLocationBackground, StdBackgroundRMS,
MADStdBackgroundRMS, and BiweightScaleBackgroundRMS. [#1232]
* Enable all background classes to work with Quantity inputs.
[#1233]
* Added a markersize keyword to the Background2D method
plot_meshes. [#1234]
* Added __repr__ methods to all background classes. [#1236]
* Added a grid_mode keyword to BkgZoomInterpolator. [#1239]
photutils.detection
* Added a xycoords keyword to DAOStarFinder and IRAFStarFinder.
[#1248]
photutils.psf
* Enabled the reuse of an output table from BasicPSFPhotometry
and its subclasses as an initial guess for another photometry
run. [#1251]
* Added the ability to skip the group_maker step by inputing an
initial guess table with a group_id column. [#1251]
photutils.aperture
* Fixed a bug when converting between pixel and sky apertures
with a gwcs object. [#1221]
photutils.background
* Fixed an issue where Background2D could fail when using the
'pad' edge method. [#1227]
photutils.detection
* Fixed the DAOStarFinder import deprecation message. [#1195]
photutils.morphology
* Fixed an issue in data_properties where a scalar background
input would raise an error. [#1198]
photutils.psf
* Fixed an issue in prepare_psf_model when xname or yname was
None where the model offsets were applied in the wrong
direction, resulting in the initial photometry guesses not
being improved by the fit. [#1199]
photutils.segmentation
* Fixed an issue in SourceCatalog where the user-input mask was
ignored when apermask_method='correct' for Kron-related
calculations. [#1210]
* Fixed an issue in SourceCatalog where the segment array could
incorrectly have units. [#1220]
photutils.utils
* Fixed an issue in ShepardIDWInterpolator to allow its
initialization with scalar data values and coordinate arrays
having more than one dimension. [#1226]
API changes
photutils.aperture
* The ApertureMask.get_values() function now returns an empty
array if there is no overlap with the data. [#1212]
* Removed the deprecated BoundingBox.slices and PixelAperture.
bounding_boxes attributes. [#1215]
photutils.background
* Invalid data values (i.e., NaN or inf) are now automatically
masked in Background2D. [#1232]
* The background classes MeanBackground, MedianBackground,
ModeEstimatorBackground, MMMBackground, SExtractorBackground,
BiweightLocationBackground, StdBackgroundRMS,
MADStdBackgroundRMS, and BiweightScaleBackgroundRMS now return
by default a numpy.ndarray with np.nan values representing
masked pixels instead of a masked array. A masked array can be
returned by setting masked=True. [#1232]
* Deprecated the Background2D attributes background_mesh_ma and
background_rms_mesh_ma. They have been renamed to
background_mesh_masked and background_rms_mesh_masked. [#1232]
* By default, BkgZoomInterpolator now uses grid_mode=True. For
zooming 2D images, this keyword should be set to True, which
makes the interpolator’s behavior consistent with scipy.
ndimage.map_coordinates, skimage.transform.resize, and OpenCV
(cv2.resize). If backwards-compatiblity is needed with older
Photutils’ versions, set grid_mode=False. [#1239]
photutils.centroid
* Deprecated the gaussian1d_moments and centroid_epsf functions.
[#1240]
photutils.datasets
* Removed the deprecated random_state keyword in the
apply_poisson_noise, make_noise_image,
make_random_models_table, and make_random_gaussians_table
functions. [#1244]
* make_random_models_table and make_random_gaussians_table now
return an astropy QTable with version metadata. [#1247]
photutils.detection
* DAOStarFinder, IRAFStarFinder, and find_peaks now return an
astropy QTable with version metadata. [#1247]
* The StarFinder label column was renamed to id for consistency
with the other star finder classes. [#1254]
photutils.isophote
* The Isophote to_table method nows return an astropy QTable
with version metadata. [#1247]
photutils.psf
* BasicPSFPhotometry, IterativelySubtractedPSFPhotometry, and
DAOPhotPSFPhotometry now return an astropy QTable with version
metadata. [#1247]
photutils.segmentation
* Deprecated the filter_kernel keyword in the detect_sources,
deblend_sources, and make_source_mask functions. It has been
renamed to simply kernel for consistency with SourceCatalog.
[#1242]
* Removed the deprecated random_state keyword in the make_cmap
method. [#1244]
* The SourceCatalog to_table method nows return an astropy
QTable with version metadata. [#1247]
photutils.utils
* Removed the deprecated check_random_state function. [#1244]
* Removed the deprecated random_state keyword in the
make_random_cmap function. [#1244]
- Update ot Version 1.1.0
General
-------
* The minimum required python version is 3.7. [#1120]
New Features
------------
photutils.aperture
* The PixelAperture.plot() method now returns a list of
matplotlib.patches.Patch objects. [#923]
* Added an area_overlap method for PixelAperture objects that
gives the overlapping area of the aperture on the data. [#874]
* Added a get_overlap_slices method and a center attribute to
BoundingBox. [#1157]
* Added a get_values method to ApertureMask that returns a 1D
array of mask-weighted values. [#1158, #1161]
* Added get_overlap_slices method to ApertureMask. [#1165]
photutils.background
* The Background2D class now accepts astropy NDData,
CCDData, and Quantity objects as data inputs. [#1140]
photutils.detection
* Added a StarFinder class to detect stars with a user-defined
kernel. [#1182]
photutils.isophote
* Added the ability to specify the output columns in the
IsophoteList to_table method. [#1117]
photutils.psf
* The EPSFStars class is now usable with multiprocessing.
[#1152]
* Slicing EPSFStars now returns an EPSFStars instance. [#1185]
photutils.segmentation
* Added a modified, significantly faster, SourceCatalog class.
[#1170, #1188, #1191]
* Added circular_aperture and circular_phometry methods to the
SourceCatalog class. [#1188]
* Added fwhm property to the SourceCatalog class. [#1191]
* Added fluxfrac_radius method to the SourceCatalog class.
[#1192]
* Added a bbox attribute to SegmentationImage. [#1187]
Bug Fixes
---------
photutils.aperture
* Slicing a scalar Aperture object now raises an informative
error
message. [#1154]
* Fixed an issue where ApertureMask.multiply fill_value was
not applied to pixels outside of the aperture mask, but within the
aperture bounding box. [#1158]
* Fixed an issue where ApertureMask.cutout would raise an error
if fill_value was non-finite and the input array was integer
type. [#1158]
* Fixed an issue where RectangularAnnulus with a non-default
h_in would give an incorrect ApertureMask. [#1160]
photutils.isophote
* Fix computation of gradient relative error when gradient=0.
[#1180]
photutils.psf
* Fixed a bug in EPSFBuild where a warning was raised if the
input smoothing_kernel was an numpy.ndarray. [#1146]
* Fixed a bug that caused photometry to fail on an EPSFmodel
with multiple stars in a group. [#1135]
* Added a fallback aperture_radius for PSF models without a FWHM
or sigma attribute, raising a warning. [#740]
photutils.segmentation
* Fixed SourceProperties local_background to work with
Quantity data inputs. [#1162]
* Fixed SourceProperties local_background for sources near the
image edges. [#1162]
* Fixed SourceProperties kron_radius for sources that are
completely masked. [#1164]
* Fixed SourceProperties Kron properties for sources near the
image edges. [#1167]
* Fixed SourceProperties Kron mask correction. [#1167]
API changes
-----------
photutils.aperture
* Deprecated the BoundingBox slices attribute. Use the
get_overlap_slices method instead. [#1157]
photutils.centroid
* Removed the deprecated fit_2dgaussian function and
GaussianConst2D class. [#1147]
* Importing tools from the centroids subpackge without
including the subpackage name is deprecated. [#1190]
photutils.morphology
* Importing tools from the morphology subpackge without
including the subpackage name is deprecated. [#1190]
photutils.segmentation
* Deprecated the "mask_all" option in the SourceProperties
kron_params keyword. [#1167]
* Deprecated source_properties, SourceProperties, and
LegacySourceCatalog. Use the new SourceCatalog function
instead. [#1170]
* The detect_threshold function was moved to the segmentation
subpackage. [#1171]
* Removed the ability to slice SegmentationImage. Instead slice
the segments attribute. [#1187]
- Update to Version 1.0.2
General
------
photutils.background
* Improved the performance of Background2D (e.g., by a
factor of ~4 with 2048x2048 input arrays when using the
default interpolator). [#1103, #1108]
Bug Fixes
--------
photutils.background
* Fixed a bug with Background2D where using
BkgIDWInterpolator would give incorrect results.
[#1104]
photutils.isophote
* Corrected calculations of upper harmonics and their
errors [#1089]
* Fixed bug that caused an infinite loop when the sample
extracted from an image has zero length. [#1129]
* Fixed a bug where the default fixed_parameters in
EllipseSample.update() were not defined. [#1139]
photutils.psf
* Fixed a bug where very incorrect PSF-fitting
uncertainties could be returned when the astropy fitter
did not return fit uncertainties. [#1143]
photutils.segmentation
* Fixed an issue where negative Kron radius values could
be returned, which would cause an error when
calculating Kron fluxes. [#1132]
* Fixed an issue where an error was raised with
SegmentationImage.remove_border_labels() with
relabel=True when no segments remain. [#1133]
photutils.psf
* Changed the default recentering_func in EPSFBuilder, to
avoid convergence issues. [#1144]
- Drop photutils-ease-background2d-tests.patch fixed upstream
gh#astropy/photutils#1145

- Add photutils-ease-background2d-tests.patch -- ease precision
tolerance in background 2D tests gh#astropy/photutils#1145
- Update to Version 1.0.1
Bug Fixes
* photutils.psf
Fixed checks on oversampling factors. [#1086]
- Update to Version 1.0.0
General
* The minimum required python version is 3.6. [#952]
* The minimum required astropy version is 4.0. [#1081]
* The minimum required numpy version is 1.17. [#1079]
* Removed astropy-helpers and updated the package
infrastructure as described in Astropy APE 17. [#915]
New Features
* photutils.aperture
* Added b_in as an optional ellipse annulus keyword. [#1070]
* Added h_in as an optional rectangle annulus keyword.
[#1070]
* photutils.background
* Added coverage_mask and fill_value keyword options to
Background2D. [#1061]
* photutils.centroids
* Added quadratic centroid estimator function
(centroid_quadratic). [#1067]
* photutils.psf
* Added the ability to use odd oversampling factors in
EPSFBuilder. [#1076]
* photutils.segmentation
* Added Kron radius, flux, flux error, and aperture to
SourceProperties. [#1068]
* Added local background to SourceProperties. [#1075]
Bug Fixes
* photutils.isophote
* Fixed a typo in the calculation of the b4 higher-order
harmonic coefficient in build_ellipse_model. [#1052]
* Fixed a bug where build_ellipse_model falls into an
infinite loop when the pixel to fit is outside of the
image. [#1039]
* Fixed a bug where build_ellipse_model falls into an
infinite loop under certain image/parameters input
combinations. [#1056]
* photutils.psf
* Fixed a bug in subtract_psf caused by using a fill_value of
np.nan with an integer input array. [#1062]
* photutils.segmentation
* Fixed a bug where source_properties would fail with
unitless gwcs.wcs.WCS objects. [#1020]
* photutils.utils
* The effective_gain parameter in calc_total_error can now be
zero (or contain zero values). [#1019]
API changes
* photutils.aperture
* Aperture pixel positions can no longer be shaped as 2xN.
[#953]
* Removed the deprecated units keyword in aperture_photometry
and PixelAperture.do_photometry. [#953]
* PrimaryHDU, ImageHDU, and HDUList can no longer be input to
aperture_photometry. [#953]
* Removed the deprecated the Aperture mask_area method.
[#953]
* Removed the deprecated Aperture plot keywords ax and
indices. [#953]
* photutils.background
* Removed the deprecated ax keyword in
Background2D.plot_meshes. [#953]
* Background2D keyword options can not be input as positional
arguments. [#1061]
* photutils.centroids
* centroid_1dg, centroid_2dg, gaussian1d_moments,
fit_2dgaussian, and GaussianConst2D have been moved to a
new photutils.centroids.gaussian module. [#1064]
* Deprecated fit_2dgaussian and GaussianConst2D. [#1064]
* photutils.datasets
* Removed the deprecated type keyword in make_noise_image.
[#953]
* Renamed the random_state keyword (deprecated) to seed in
apply_poisson_noise, make_noise_image,
make_random_models_table, and make_random_gaussians_table
functions. [#1080]
* photutils.detection
* Removed the deprecated snr keyword in detect_threshold.
[#953]
* photutils.psf
* Added flux_residual_sigclip as an input parameter, allowing
for custom sigma clipping options in EPSFBuilder. [#984]
* Added extra_output_cols as a parameter to
BasicPSFPhotometry, IterativelySubtractedPSFPhotometry and
DAOPhotPSFPhotometry. [#745]
* photutils.segmentation
* Removed the deprecated SegmentationImage methods cmap and
relabel. [#953]
* Removed the deprecated SourceProperties values and coords
attributes. [#953]
* Removed the deprecated xmin/ymin and xmax/ymax properties.
[#953]
* Removed the deprecated snr and mask_value keywords in
make_source_mask. [#953]
* Renamed the random_state keyword (deprecated) to seed in
the make_cmap method. [#1080]
* photutils.utils
* Removed the deprecated random_cmap, mask_to_mirrored_num,
get_version_info, filter_data, and std_blocksum functions.
[#953]
* Removed the deprecated wcs_helpers functions
pixel_scale_angle_at_skycoord, assert_angle_or_pixel,
assert_angle, and pixel_to_icrs_coords. [#953]
* Deprecated the check_random_state function. [#1080]
* Renamed the random_state keyword (deprecated) to seed in
the make_random_cmap function. [#1080]
- Drop patches merged upstream
* 0001-aperture-mask-test-assert-almost-equal.patch
* photutils-pr1041-update-watershed-import.patch

- add photutils-pr1041-update-watershed-import.patch to fix failing
test gh#astropy/photutils#1041
- actually detect failures with sys.exit(photutils.test())
- fix failing tests: use astropy's test suite logic to call pytest
- add URL for 0001-aperture-mask-test-assert-almost-equal.patch
gh#astropy/photutils#1014
- 0001-aperture-mask-test-assert-almost-equal.patch:
upstream PR#1014 to avoid occasionally failing builds
- update to version 0.7.2:
photutils.isophote
* Fixed computation of upper harmonics a3, b3, a4, and b4
in the ellipse fitting algorithm. [#1008]
photutils.psf
* Fix to algorithm in EPSFBuilder, addressing issues where
ePSFs failed to build (yielding striped ePSFs). [#974]
* Fix to IterativelySubtractedPSFPhotometry where an error
could be thrown when a Finder was passed which did not
return None if no sources were found. [#986]
* Fix to centroid_epsf where the wrong oversampling factor
was used along the y axis. [#1002]
- needs new python-pytest-astropy 0.7 because of -header package
- fix clean c source files
- update to version 0.7.1
- remove generated c source files
- new version 0.7
- add astropy helpers
- add dmb and scikit-* modules to build deps for module tests
- add numpy-devel as dep
- fix deps typos
- initial spec

Request History
Benjamin Greiner's avatar

bnavigator created request

- Update to 1.13.0
## General
* scikit-learn has been removed as an optional dependency.
[#1774]
## New Features
### photutils.datasets
* Added a make_model_image function for generating simulated
images with model sources. This function has more options and
is significantly faster than the now-deprecated
make_model_sources_image function. [#1759, #1790]
* Added a make_model_params function to make a table of randomly
generated model positions and fluxes for simulated sources.
[#1766, #1796]
### photutils.detection
* The find_peaks function now supports input arrays with units.
[#1743]
* The Table returned from find_peaks now has an id column that
contains unique integer IDs for each peak. [#1743]
* The DAOStarFinder, IRAFStarFinder, and StarFinder classes now
support input arrays with units. [#1746]
### photutils.profiles
* Added an unnormalize method to RadialProfile and CurveOfGrowth
to return the profile to the state before any normalize calls
were run. [#1732]
* Added calc_ee_from_radius and calc_radius_from_ee methods to
CurveOfGrowth. [#1733]
### photutils.psf
* Added an include_localbkg keyword to the IterativePSFPhotometry
make_model_image and make_residual_image methods. [#1756]
* Added “x_fit”, “xfit”, “y_fit”, “yfit”, “flux_fit”, and
“fluxfit” as allowed column names in the init_params table
input to the PSF photometry objects. [#1765]
* Added a make_psf_model_image function to generate a simulated
image from PSF models. [#1785, #1796] PSFPhotometry now has a new
fit_params attribute containing a table of the fit model parameters
and errors. [#1789]
* The PSFPhotometry and IterativePSFPhotometry init_params table
now allows the user to input columns for model parameters other
than x, y, and flux. The column names must match the parameter
names in the PSF model. They * can also be suffixed with
either the “_init” or “_fit” suffix. [#1793]
## Bug Fixes
### photutils.aperture
* Fixed an issue in ApertureStats where in very rare cases the
covariance calculation could take a long time. [#1788]
### photutils.background
* No longer warn about NaNs in the data if those NaNs are masked
in coverage_mask passed to Background2D. [#1729]
### photutils.psf
* Fixed an issue where IterativePSFPhotometry would fail if the
input data was a Quantity array. [#1746]
* Fixed the IntegratedGaussianPRF class bounding_box limits to
always be symmetric. [#1754]
* Fixed an issue where IterativePSFPhotometry could sometimes
issue a warning when merging tables if mode='all'. [#1761]
* Fixed a bug where the first matching column in the init_params
table was not used in PSFPhotometry and IterativePSFPhotometry.
[#1765]
* Fixed an issue where IterativePSFPhotometry could sometimes
raise an error about non-overlapping data. [#1778]
* Fixed an issue with unit handling in PSFPhotometry and
IterativePSFPhotometry. [#1792]
* Fixed an issue in IterativePSFPhotometry where the fit_results
attribute was not cleared between repeated calls. [#1793]
### photutils.segmentation
* Fixed an issue in SourceCatalog where in very rare cases the
covariance calculation could take a long time. [#1788]
## API Changes
* The photutils.test function has been removed. Instead use the
pytest --pyargs photutils command. [#1725]
### photutils.datasets
* The photutils.datasets subpackage has been reorganized and the
make module has been deprecated. Instead of importing functions
from photutils.datasets.make, import functions from
photutils.datasets. [#1726]
* The make_model_sources_image function has been deprecated in
favor of the new make_model_image function. The new function
has more options and is significantly faster. [#1759]
* The randomly-generated optional noise in the simulated example
images make_4gaussians_image and make_100gaussians_image is now
slightly different. The noise sigma is the same, but the pixel
values differ. [#1760]
* The make_gaussian_prf_sources_image function is now deprecated.
Use the make_model_psf_image function or the new
make_model_image function instead. [#1762]
* The make_gaussian_sources_table function now includes an “id”
column and always returns both 'flux' and 'amplitude' columns.
[#1763]
* The make_model_sources_table function now includes an “id”
column. [#1764]
* The make_gaussian_sources_table function is now deprecated. Use
the make_model_sources_table function instead. [#1764]
* The make_test_psf_data function is now deprecated. Use the new
make_model_psf_image function instead. [#1785]
### photutils.detection
* The sky keyword in DAOStarFinder and IRAFStarFinder is now
deprecated and will be removed in a future version. [#1747]
* Sources that have non-finite properties (e.g., centroid,
roundness, sharpness, etc.) are automatically excluded from the
output table in DAOStarFinder, IRAFStarFinder, and StarFinder.
[#1750]
### photutils.psf
* PSFPhotometry and IterativePSFPhotometry now raise a ValueError
if the input psf_model is not two-dimensional with n_inputs=2
and n_outputs=1. [#1741]
* The IntegratedGaussianPRF class bounding_box is now a method
instead of an attribute for consistency with Astropy models.
The method has a factor keyword to scale the bounding box. The
default scale factor is 5.5 times sigma. [#1754]
* The IterativePSFPhotometry make_model_image and
make_residual_image methods no longer include the local
background by default. This is a backwards-incompatible change.
If the previous behavior is desired, set *
include_localbkg=True. [#1756]
* IterativePSFPhotometry will now only issue warnings after all
iterations are completed. [#1767]
* The IterativePSFPhotometry psfphot attribute has been removed.
Instead, use the fit_results attribute, which contains a list
of PSFPhotometry instances for each fit iteration. [#1771]
* The group_size column has been moved to come immediately after
the group_id column in the output table from PSFPhotometry and
IterativePSFPhotometry. [#1772]
* The PSFPhotometry init_params table was moved from the
fit_results dictionary to an attribute. [#1773] Removed local_bkg,
psfcenter_indices, fit_residuals, npixfit, and nmodels keys from
the PSFPhotometry fit_results dictionary. [#1773]
* Removed the deprecated BasicPSFPhotometry,
IterativelySubtractedPSFPhotometry, DAOPhotPSFPhotometry,
DAOGroup, DBSCANGroup, and GroupStarsBase, and NonNormalizable
classes and the prepare_psf_model, * get_grouped_psf_model,
and subtract_psf functions. [#1774]
* A ValueError is now raised if the shape of the error array does
not match the data array when calling the PSF-fitting classes.
[#1777]
* The fit_param_errs key was removed from the PSFPhotometry
fit_results dictionary. The fit parameter errors are now stored
in the fit_params table. [#1789]
* The cfit column in the PSFPhotometry and IterativePSFPhotometry
result table will now be NaN for sources whose initial central
pixel is masked. [#1789]
- Update to 1.12
## General
* The minimum required Python is now 3.10. [#1719]
* The minimum required NumPy is now 1.23. [#1719]
* The minimum required SciPy is now 1.8. [#1719]
* The minimum required scikit-image is now 0.20. [#1719]
* The minimum required scikit-learn is now 1.1. [#1719]
* The minimum required pytest-astropy is now 0.11. [#1719]
* The minimum required sphinx-astropy is now 1.9. [#1719]
* NumPy 2.0 is supported.
## Bug Fixes
### photutils.background
* No longer warn about NaNs in the data if those NaNs are masked
in mask passed to Background2D. [#1712]
## API Changes
### photutils.utils
* The default value for the ImageDepth mask_pad keyword is now
set to 0. [#1714]
- Update to 1.11.0
## New Features
### photutils.psf
* An init_params table is now included in the PSFPhotometry
fit_results dictionary. [#1681]
* Added an include_localbkg keyword to the PSF photometry
make_model_image and make_residual_image methods. [#1691]
* Significantly reduced the memory usage of PSF photometry when
using a GriddedPSFModel PSF model. [#1679]
* Added a mode keyword to IterativePSFPhotometry for controlling
the fitting mode. [#1708]
### photutils.datasets
* Improved the performance of make_test_psf_data when generating
random coordinates with a minimum separation. [#1668]
### photutils.segmentation
* The SourceFinder npixels keyword can now be a tuple
corresponding to the values used for the source finder and
source deblender, respectively. [#1688]
### photutils.utils
* Improved the performance of ImageDepth when generating random
coordinates with a minimum separation. [#1668]
## Bug Fixes
### photutils.psf
* Fixed an issue where PSF models produced by make_psf_model
would raise an error with PSFPhotometry if the fit did not
converge. [#1672]
* Fixed an issue where GriddedPSFModel fixed model parameters
were not respected when copying the model or fitting with the
PSF photometry classes. [#1679]
## API Changes
### photutils.aperture
* PixelAperture instances now raise an informative error message
when positions is input as a zip object containing Astropy
Quantity objects. [#1682]
### photutils.psf
* The GridddedPSFModel string representations now include the
model flux, x_0, and y_0 parameters. [#1680]
* The PSF photometry make_model_image and make_residual_image
methods no longer include the local background by default. This
is a backwards-incompatible change. If the previous behavior is
desired, set include_localbkg=True. [#1703]
* The PSF photometry finder_results attribute is now returned as
a QTable instead of a list of QTable. [#1704]
* Deprecated the NonNormalizable custom warning class in favor of
AstropyUserWarning. [#1710]
### photutils.segmentation
* The SourceCatalog get_label and get_labels methods now raise a
ValueError if any of the input labels are invalid. [#1694]
- Update to 1.10.0
## General
* The minimum required Astropy is now 5.1. [#1627]
## New Features
### photutils.datasets
* Added a border_size keyword to make_test_psf_data. [#1665]
* Improved the generation of random PSF positions in
make_test_psf_data. [#1665]
### photutils.detection
* Added a min_separation keyword to DAOStarFinder and
IRAFStarFinder. [#1663]
### photutils.morphology
* Added a wcs keyword to data_properties. [#1648]
### photutils.psf
* The GriddedPSFModel plot_grid method now returns a
matplotlib.figure.Figure object. [#1653]
* Added the ability for the GriddedPSFModel read method to read
FITS files generated by WebbPSF. [#1654]
* Added “flux_0” and “flux0” as allowed flux column names in the
init_params table input to the PSF photometry objects. [#1656]
* PSF models output from prepare_psf_model can now be input into
the PSF photometry classes. [#1657]
* Added make_psf_model function for making a PSF model from a 2D
Astropy model. Compound models are also supported. [#1658]
* The GriddedPSFModel oversampling can now be different in the x
and y directions. The oversampling attribute is now stored as a
1D numpy.ndarray with two elements. [#1664]
### photutils.segmentation
* The SegmentationImage make_source_mask method now uses a much
faster implementation of binary dilation. [#1638]
* Added a scale keyword to the SegmentationImage.to_patches()
method to scale the sizes of the polygon patches. [#1641,
#1646]
* Improved the SegmentationImage imshow method to ensure that
labels are plotted with unique colors. [#1649]
* Added a imshow_map method to SegmentationImage for plotting
segmentation images with a small number of non-consecutive
labels. [#1649]
* Added a reset_cmap method to SegmentationImage for resetting
the colormap to a new random colormap. [#1649]
### photutils.utils
* Improved the generation of random aperture positions in
ImageDepth. [#1666]
## Bug Fixes
### photutils.aperture
* Fixed an issue where the aperture plot method **kwargs were not
reset to the default values when called multiple times. [#1655]
### photutils.psf
* Fixed a bug where SourceGrouper would fail if only one source
was input. [#1617]
* Fixed a bug in GriddedPSFModel plot_grid where the grid could
be plotted incorrectly if the input xygrid was not sorted in y
then x order. [#1661]
### photutils.segmentation
* Fixed an issue where deblend_sources and SourceFinder would
raise an error if the contrast keyword was set to 1 (meaning no
deblending). [#1636]
* Fixed an issue where the vertices of the SegmentationImage
polygons were shifted by 0.5 pixels in both x and y. [#1646]
* API Changes
* The metadata in output tables now contains a timestamp. [#1640]
* Package versions in table metadata are now stored in the
“versions” key. [#1640]
* The order of the metadata in a table is now preserved when
writing to a file. [#1640]
### photutils.psf
* Deprecated the prepare_psf_model function. Use the new
make_psf_model function instead. [#1658]
* The GriddedPSFModel now stores the ePSF grid such that it is
first sorted by y then by x. As a result, the order of the data
and xygrid attributes may be different. [#1661]
* The oversampling attribute is now stored as a 1D numpy.ndarray
with two elements. [#1664]
* A ValueError is raised if GriddedPSFModel is called with x and
y arrays that have more than 2 dimensions. [#1662]
### photutils.segmentation
* Removed the deprecated kernel keyword from SourceCatalog.
[#1613]
- Update to 1.9.0
## General
* The minimum required Python is now 3.9. [#1569]
* The minimum required NumPy is now 1.22. [#1572]
## New Features
### photutils.background
* Added LocalBackground class for computing local backgrounds in
a circular annulus aperture. [#1556]
### photutils.datasets
* Added new make_test_psf_data function. [#1558, #1582, #1585]
### photutils.psf
* Propagate measurement uncertainties in PSF fitting. [#1543]
* Added new PSFPhotometry and IterativePSFPhotometry classes for
performing PSF-fitting photometry. [#1558, #1559, #1563, #1566,
#1567, #1581, #1586, #1590, #1594, #1603, #1604]
* Added a new SourceGrouper class. [#1558, #1605]
* Added a GriddedPSFModel fill_value attribute. [#1583]
* Added a grid_from_epsfs function to make a GriddedPSFModel from
ePSFs. [#1596]
* Added a read method to GriddedPSFModel for reading “STDPSF”
FITS files containing grids of ePSF models. [#1557]
* Added a plot_grid method to GriddedPSFModel for plotting ePSF
grids. [#1557]
* Added a STDPSFGrid class for reading “STDPSF” FITS files
containing grids of ePSF models and plotting the ePSF grids.
[#1557]
## Bug Fixes
### photutils.aperture
* Fixed a bug in the validation of PixelAperture positions.
[#1553]
## API Changes
### photutils.psf
* Deprecated the PSF photometry classes BasicPSFPhotometry,
IterativelySubtractedPSFPhotometry, and DAOPhotPSFPhotometry.
Use the new PSFPhotometry or IterativePSFPhotometry class
instead. [#1578]
* Deprecated the DAOGroup, DBSCANGroup, and GroupStarsBase
classes. Use the new SourceGrouper class instead. [#1578]
* Deprecated the get_grouped_psf_model and subtract_psf function.
[#1578]
- Update to 1.8.0
## New Features
### photutils.profiles
* The RadialProfile and CurveOfGrowth radial bins can now be
directly input, which also allows for non-uniform radial
spacing. [#1540]
## Bug Fixes
### photutils.psf
* Fixed an issue with the local model cache in GriddedPSFModel,
significantly improving performance. [#1536]
## API Changes
* Removed the deprecated axes keyword in favor of ax for
consistency with other packages. [#1523]
## photutils.aperture
* Removed the ApertureStats unpack_nddata method. [#1537]
## photutils.profiles
* The API for defining the radial bins for the RadialProfile and
CurveOfGrowth classes was changed. While the new API allows for
more flexibility, unfortunately, it is not
backwards-compatible. [#1540]
## photutils.segmentation
* Removed the deprecated kernel keyword from detect_sources and
deblend_sources. [#1524]
* Deprecated the kernel keyword in SourceCatalog. [#1525]
* Removed the deprecated outline_segments method from
SegmentationImage. [#1526]
* The SourceCatalog kron_params attribute is no longer returned
as a ndarray. It is returned as a tuple. [#1531]
- Update to 1.7.0
## General
* The rasterio and shapely packages are now optional
dependencies. [#1509]
## New Features
### photutils.aperture
* Significantly improved the performance of aperture_photometry
and the PixelAperture do_photometry method for large arrays.
[#1485]
* Significantly improved the performance of the PixelAperture
area_overlap method, especially for large arrays. [#1490]
### photutils.profiles
* Added a new profiles subpackage containing RadialProfile and
CurveOfGrowth classes. [#1494, #1496, #1498, #1499]
### photutils.psf
* Significantly improved the performance of evaluating and
fitting GriddedPSFModel instances. [#1503]
### photutils.segmentation
* Added a size keyword to the SegmentationImage make_source_mask
method. [#1506]
* Significantly improved the performance of SegmentationImage
make_source_mask when using square footprints for source
dilation. [#1506]
* Added the polygons property and to_patches and plot_patches
methods to SegmentationImage. [#1509]
* Added polygon keyword to the Segment class. [#1509]
## Bug Fixes
### photutils.centroids
* Fixed an issue where centroid_quadratic would sometimes fail if
the input data contained NaNs. [#1495]
### photutils.detection
* Fixed an issue with the starfinders (DAOStarFinder,
IRAFStarFinder, and StarFinder) where an exception was raised
if exclude_border=True and there were no detections. [#1512].
### photutils.isophote
* Fixed a bug where the upper harmonics (a3, a4, b3, and b4) had
the incorrect sign. [#1501]
* Fixed a bug in the calculation of the upper harmonic errors
(a3_err, a4_err, b3_err, and b4_err). [#1501].
### photutils.psf
* Fixed an issue where the PSF-photometry progress bar was not
shown. [#1517]
* Fixed an issue where all PSF uncertainties were excluded if the
last star group had no covariance matrix. [#1519]
### photutils.utils
* Fixed a bug in the calculation of ImageCutout xyorigin when
using the 'partial' mode when the cutout extended beyond the
right or top edge. [#1508]
## API Changes
### photutils.aperture
* The ApertureStats local_bkg keyword can now be broadcast for
apertures with multiple positions. [#1504]
### photutils.centroids
* The centroid_sources function will now raise an error if the
cutout mask contains all True values. [#1516]
### photutils.datasets
* Removed the deprecated load_fermi_image function. [#1479]
### photutils.psf
* Removed the deprecated sandbox classes DiscretePRF and
Reproject. [#1479]
### photutils.segmentation
* Removed the deprecated make_source_mask function in favor of
the SegmentationImage.make_source_mask method. [#1479]
* The SegmentationImage imshow method now uses "nearest"
interpolation instead of "none" to avoid rendering issues with
some backends. [#1507]
* The repr() notebook output for the Segment class now includes a
SVG polygon representation of the segment if the rasterio and
shapely packages are installed. [#1509]
* Deprecated the SegmentationImage outline_segments method. Use
the plot_patches method instead. [#1509]
- Drop photutils-pr1484-no-setuptools.patch
- Update to 1.6.0
## General
* Following NEP 29, the minimum required Numpy is now 1.20.
[#1442]
* The minimum required Matplotlib is now 3.3.0. [#1442]
* The minimum required scikit-image is now 0.18.0. [#1442]
* The minimum required scikit-learn is now 1.0. [#1442]
## New Features
### photutils.aperture
* The ApertureStats class now accepts astropy NDData objects as
input. [#1409]
* Improved the performance of aperture photometry by 10-25%
(depending on the number of aperture positions). [#1438]
### photutils.psf
* Added a progress bar for fitting PSF photometry [#1426]
* Added a subshape keyword to the PSF-fitting classes to define
the shape over which the PSF is subtracted. [#1477]
### photutils.segmentation
* Added the ability to slice SegmentationImage objects. [#1413]
* Added mode and fill_value keywords to SourceCatalog
make_cutouts method. [#1420]
* Added segment_area source property and wcs, localbkg_width,
apermask_method, and kron_params attributes to SourceCatalog.
[#1425]
* Added the ability to use Quantity arrays with detect_threshold,
detect_sources, deblend_sources, and SourceFinder. [#1436]
* The progress bar used when deblending sources now is prepended
with “Deblending”. [#1439]
* Added “windowed” centroids to SourceCatalog. [#1447, #1468]
* Added quadratic centroids to SourceCatalog. [#1467, #1469]
* Added a progress_bar option to SourceCatalog for displaying
progress bars when calculating some source properties. [#1471]
### photutils.utils
* Added xyorigin attribute to CutoutImage. [#1419]
* Added ImageDepth class. [#1434]
## Bug Fixes
### photutils.aperture
* Fixed a bug in the PixelAperture area_overlap method so that
the returned value does not inherit the data units. [#1408]
* Fixed an issue in ApertureStats get_ids for the case when the
ID numbers are not sorted (due to slicing). [#1423]
### photutils.datasets
* Fixed a bug in the various load functions where FITS files were
not closed. [#1455]
### photutils.segmentation
* Fixed an issue in the SourceCatalog kron_photometry,
make_kron_apertures, and plot_kron_apertures methods where the
input minimum Kron and circular radii would not be applied.
Instead the instance-level minima would always be used. [#1421]
* Fixed an issue where the SourceCatalog plot_kron_apertures
method would raise an error for a scalar SourceCatalog. [#1421]
* Fixed an issue in SourceCatalog get_labels for the case when
the labels are not sorted (due to slicing). [#1423]
## API Changes
* Deprecated axes keyword in favor of ax for consistency with
other packages. [#1432]
* Importing tools from all subpackages now requires including the
subpackage name.
### photutils.aperture
* Inputting PixelAperture positions as an Astropy Quantity in
pixel units is no longer allowed. [#1398]
* Inputting SkyAperture shape parameters as an Astropy Quantity
in pixel units is no longer allowed. [#1398]
* Removed the deprecated BoundingBox as_patch method. [#1462]
### photutils.centroids
* Removed the deprecated oversampling keyword in centroid_com.
[#1398]
### photutils.datasets
* Deprecated the load_fermi_image function. [#1455]
### photutils.psf
* Removed the deprecated flux_residual_sigclip keyword in
EPSFBuilder. Use sigma_clip instead. [#1398]
* PSF photometry classes will no longer emit a RuntimeWarning if
the fitted parameter variance is negative. [#1458]
### photutils.segmentation
* Removed the deprecated sigclip_sigma and sigclip_iters keywords
in detect_threshold. Use the sigma_clip keyword instead.
[#1398]
* Removed the mask_value, sigclip_sigma, and sigclip_iters
keywords in detect_threshold. Use the mask or sigma_clip
keywords instead. [#1398]
* Removed the deprecated the filter_fwhm and filter_size keywords
in make_source_mask. Use the kernel keyword instead. [#1398]
* If detection_cat is input to SourceCatalog, then the detection
catalog source centroids and morphological/shape properties
will be returned instead of calculating them from the input
data. Also, if detection_cat is input, then the input wcs,
apermask_method, and kron_params keywords will be ignored.
[#1425]
- Add photutils-pr1484-no-setuptools.patch
gh#astropy/photutils#1484
- Update to 1.5.0
General
* Added tqdm as an optional dependency. [#1364]
New Features
* photutils.psf
- Added a mask keyword when calling the PSF-fitting classes.
[#1350, #1351]
- The EPSFBuilder progress bar will use tqdm if the optional
package is installed. [#1367]
* photutils.segmentation
- Added SourceFinder class, which is a convenience class
combining detect_sources and deblend_sources. [#1344]
- Added a sigma_clip keyword to detect_threshold. [#1354]
- Added a make_source_mask method to SegmentationImage. [#1355]
- Added a make_2dgaussian_kernel convenience function. [#1356]
- Allow SegmentationImage.make_cmap background_color to be in
any matplotlib color format. [#1361]
- Added an imshow convenience method to SegmentationImage.
[#1362]
- Improved performance of deblend_sources. [#1364]
- Added a progress_bar keyword to deblend_sources. [#1364]
- Added a 'sinh' mode to deblend_sources. [#1368]
- Improved the resetting of cached SegmentationImage properties
so that custom (non-cached) attributes can be kept. [#1368]
- Added a nproc keyword to enable multiprocessing in
deblend_sources and SourceFinder. [#1372]
- Added a make_cutouts method to SourceCatalog for making
custom-shaped cutout images. [#1376]
- Added the ability to set a minimum unscaled Kron radius in
SourceCatalog. [#1381]
* photutils.utils
- Added a circular_footprint convenience function. [#1355]
- Added a CutoutImage class. [#1376]
Bug Fixes
* photutils.psf
- Fixed a warning message in EPSFFitter. [#1382]
* photutils.segmentation
- Fixed an issue in generating watershed markers used for
source deblending. [#1383]
API Changes
* photutils.centroids
- Changed the axes order of oversampling keyword in
centroid_com when input as a tuple. [#1358]
- Deprecated the oversampling keyword in centroid_com. [#1377]
* photutils.psf
- Invalid data values (i.e., NaN or inf) are now automatically
masked when performing PSF fitting. [#1350]
- Deprecated the sandbox classes DiscretePRF and Reproject.
[#1357]
- Changed the axes order of oversampling keywords when input as
a tuple. [#1358]
- Removed the unused shift_val keyword in EPSFBuilder and
EPSFModel. [#1377]
- Renamed the flux_residual_sigclip keyword (now deprecated) to
sigma_clip in EPSFBuilder. [#1378]
- The EPSFBuilder progress bar now requires that the optional
tqdm package be installed. [#1379]
- The tools in the PSF package now require keyword-only
arguments. [#1386]
* photutils.segmentation
- Removed the deprecated circular_aperture method from
SourceCatalog. [#1329]
- The SourceCatalog plot_kron_apertures method now sets a
default kron_apers value. [#1346]
- deblend_sources no longer allows an array to be input as a
segmentation image. It must be a SegmentationImage object.
[#1347]
- SegmentationImage no longer allows array-like input. It must
be a numpy ndarray. [#1347]
- Deprecated the sigclip_sigma and sigclip_iters keywords in
detect_threshold. Use the sigma_clip keyword instead. [#1354]
- Deprecated the make_source_mask function in favor of the
SegmentationImage.make_source_mask method. [#1355]
- Deprecated the kernel keyword in detect_sources and
deblend_sources. Instead, if filtering is desired, input a
convolved image directly into the data parameter. [#1365]
- Sources with a data minimum of zero are now treated the same
as negative minima (i.e., the mode is changed to “linear”)
for the “exponential” deblending mode. [#1368]
- A single warning (as opposed to 1 per source) is now raised
about negative/zero minimum data values using the
‘exponential’ deblending mode. The affected labels is
available in a new “info” attribute. [#1368]
- If the mode in deblend_sources is “exponential” or “sinh” and
there are too many potential deblended sources within a given
source (watershed markers), a warning will be raised and the
mode will be changed to “linear”. [#1369]
- The SourceCatalog make_circular_apertures and
make_kron_apertures methods now return a single aperture
(instead of a list with one item) for a scalar SourceCatalog.
[#1376]
- The SourceCatalog kron_params keyword now has an optional
third item representing the minimum circular radius. [#1381]
- The SourceCatalog kron_radius is now set to the minimum Kron
radius (the second element of kron_params) if the data or
radially weighted data sum to zero. [#1381]
* photutils.utils
- The colormap returned from make_random_cmap now has colors in
RGBA format. [#1361]
- Update to 1.4.0
New Features
* photutils.aperture
* Added a copy method to Aperture objects. [#1304]
* Added the ability to compare Aperture objects for equality.
[#1304]
* The theta keyword for EllipticalAperture, EllipticalAnnulus,
RectangularAperture, and RectangularEllipse can now be an
Astropy Angle or Quantity in angular units. [#1308]
* Added an ApertureStats class for computing statistics of
unmasked pixels within an aperture. [#1309, #1314, #1315,
#1318]
* Added a dtype keyword to the ApertureMask to_image method.
[#1320]
* photutils.background
* Added an alpha keyword to the Background2D.plot_meshes
method. [#1286]
* Added a clip keyword to the BkgZoomInterpolator class.
[#1324]
* photutils.segmentation
* Added SegmentationImage cmap attribute containing a default
colormap. [#1319]
* Improved the performance of SegmentationImage and
SourceCatalog, especially for large data arrays. [#1320]
* Added a convolved_data keyword to SourceCatalog. This is
recommended instead of using the kernel keyword. [#1321]
Bug Fixes
* photutils.aperture
* Fixed a bug in aperture_photometry where an error was not
raised if the data and error arrays have different units.
[#1285].
* photutils.background
* Fixed a bug in Background2D where using the pad edge method
would result in incorrect image padding if only one of the
axes needed padding. [#1292]
* photutils.centroid
* Fixed a bug in centroid_sources where setting error, xpeak,
or ypeak to None would result in an error. [#1297]
* Fixed a bug in centroid_quadratic where inputting a mask
would alter the input data array. [#1317]
* photutils.segmentation
* Fixed a bug in SourceCatalog where a UFuncTypeError would be
raised if the input data had an integer dtype [#1312].
API Changes
* photutils.aperture
* A ValueError is now raised if non-positive sizes are input to
sky-based apertures. [#1295]
* The BoundingBox.plot() method now returns a
matplotlib.patches.Patch object. [#1305]
* Inputting PixelAperture positions as an Astropy Quantity in
pixel units is deprecated. [#1310]
* Inputting SkyAperture shape parameters as an Astropy Quantity
in pixel units is deprecated. [#1310]
* photutils.background
* Removed the deprecated background_mesh_ma and
background_rms_mesh_ma Background2D properties. [#1280]
* By default, BkgZoomInterpolator uses clip=True to prevent the
interpolation from producing values outside the given input
range. If backwards-compatiblity is needed with older
Photutils versions, set clip=False. [#1324]
* photutils.centroid
* Removed the deprecated centroid_epsf and gaussian1d_moments
functions. [#1280]
* Importing tools from the centroids subpackage now requires
including the subpackage name. [#1280]
* photutils.morphology
* Importing tools from the morphology subpackage now requires
including the subpackage name. [#1280]
* photutils.segmentation
* Removed the deprecated source_properties function and the
SourceProperties and LegacySourceCatalog classes. [#1280]
* Removed the deprecated the filter_kernel keyword in the
detect_sources, deblend_sources, and make_source_mask
functions. [#1280]
* A TypeError is raised if the input array to SegmentationImage
does not have integer type. [#1319]
* A SegmentationImage may contain an array of all zeros.
[#1319]
* Deprecated the mask_value keyword in detect_threshold. Use
the mask keyword instead. [#1322]
* Deprecated the filter_fwhm and filter_size keywords in
make_source_mask. Use the kernel keyword instead. [#1322]
- Update to 1.3.0
General
* The metadata in output tables now contains version information
for all dependencies. [#1274]
New Features
* photutils.centroid
* Extra keyword arguments can be input to centroid_sources that
are then passed on to the centroid_func if supported.
[#1276,#1278]
* photutils.segmentation
* Added copy method to SourceCatalog. [#1264]
* Added kron_photometry method to SourceCatalog. [#1264]
* Added add_extra_property, remove_extra_property,
remove_extra_properties, and rename_extra_property methods
and extra_properties attribute to SourceCatalog. [#1264,
#1268]
* Added name and overwrite keywords to SourceCatalog
circular_photometry and fluxfrac_radius methods. [#1264]
* SourceCatalog fluxfrac_radius was improved for cases where
the source flux doesn't monotonically increase with
increasing radius. [#1264]
* Added meta and properties attributes to SourceCatalog.
[#1268]
* The SourceCatalog output table (using to_table) meta
dictionary now includes a field for the date/time. [#1268]
* Added SourceCatalog make_kron_apertures method. [#1268]
* Added SourceCatalog plot_circular_apertures and
plot_kron_apertures methods. [#1268]
Bug fixes
* photutils.segmentation
* If detection_catalog is input to SourceCatalog then the
detection centroids are used to calculate the
circular_aperture, circular_photometry, and fluxfrac_radius.
[#1264]
* Units are applied to SourceCatalog circular_photometry output
if the input data has units. [#1264]
* SourceCatalog circular_photometry returns scalar values if
catalog is scalar. [#1264]
* SourceCatalog fluxfrac_radius returns a Quantity with pixel
units. [#1264]
* Fixed a bug where the SourceCatalog detection_catalog was not
indexed/sliced when SourceCatalog was indexed/sliced. [#1268]
* SourceCatalog circular_photometry now returns NaN for
completely-masked sources. [#1268]
* SourceCatalog kron_flux is always NaN for sources where
kron_radius is NaN. [#1268]
* SourceCatalog fluxfrac_radius now returns NaN if kron_flux is
zero. [#1268]
API changes
* photutils.centroids
* A ValueError is now raised in centroid_sources if the input
xpos or ypos is outside of the input data. [#1276]
* A ValueError is now raised in centroid_quadratic if the input
xpeak or ypeak is outside of the input data. [#1276]
* NaNs are now returned from centroid_sources where the
centroid failed. This is usually due to a box_size that is
too small when using a fitting-based centroid function.
[#1276]
* photutils.segmentation
* Renamed the SourceCatalog circular_aperture method to
make_circular_apertures. The old name is deprecated. [#1268]
* The SourceCatalog kron_params keyword must have a minimum
circular radius that is greater than zero. The default value
is now 1.0. [#1268]
* detect_sources now uses astropy.convolution.convolve, which
allows for masking pixels. [#1269]
- Update to 1.2.0
* The minimum required scipy version is 1.6.0 [#1239]
photutils.aperture
* Added a mask keyword to the area_overlap method. [#1241]
photutils.background
* Improved the performance of Background2D by up to 10-50% when
the optional bottleneck package is installed. [#1232]
* Added a masked keyword to the background classes
MeanBackground, MedianBackground, ModeEstimatorBackground,
MMMBackground, SExtractorBackground,
BiweightLocationBackground, StdBackgroundRMS,
MADStdBackgroundRMS, and BiweightScaleBackgroundRMS. [#1232]
* Enable all background classes to work with Quantity inputs.
[#1233]
* Added a markersize keyword to the Background2D method
plot_meshes. [#1234]
* Added __repr__ methods to all background classes. [#1236]
* Added a grid_mode keyword to BkgZoomInterpolator. [#1239]
photutils.detection
* Added a xycoords keyword to DAOStarFinder and IRAFStarFinder.
[#1248]
photutils.psf
* Enabled the reuse of an output table from BasicPSFPhotometry
and its subclasses as an initial guess for another photometry
run. [#1251]
* Added the ability to skip the group_maker step by inputing an
initial guess table with a group_id column. [#1251]
photutils.aperture
* Fixed a bug when converting between pixel and sky apertures
with a gwcs object. [#1221]
photutils.background
* Fixed an issue where Background2D could fail when using the
'pad' edge method. [#1227]
photutils.detection
* Fixed the DAOStarFinder import deprecation message. [#1195]
photutils.morphology
* Fixed an issue in data_properties where a scalar background
input would raise an error. [#1198]
photutils.psf
* Fixed an issue in prepare_psf_model when xname or yname was
None where the model offsets were applied in the wrong
direction, resulting in the initial photometry guesses not
being improved by the fit. [#1199]
photutils.segmentation
* Fixed an issue in SourceCatalog where the user-input mask was
ignored when apermask_method='correct' for Kron-related
calculations. [#1210]
* Fixed an issue in SourceCatalog where the segment array could
incorrectly have units. [#1220]
photutils.utils
* Fixed an issue in ShepardIDWInterpolator to allow its
initialization with scalar data values and coordinate arrays
having more than one dimension. [#1226]
API changes
photutils.aperture
* The ApertureMask.get_values() function now returns an empty
array if there is no overlap with the data. [#1212]
* Removed the deprecated BoundingBox.slices and PixelAperture.
bounding_boxes attributes. [#1215]
photutils.background
* Invalid data values (i.e., NaN or inf) are now automatically
masked in Background2D. [#1232]
* The background classes MeanBackground, MedianBackground,
ModeEstimatorBackground, MMMBackground, SExtractorBackground,
BiweightLocationBackground, StdBackgroundRMS,
MADStdBackgroundRMS, and BiweightScaleBackgroundRMS now return
by default a numpy.ndarray with np.nan values representing
masked pixels instead of a masked array. A masked array can be
returned by setting masked=True. [#1232]
* Deprecated the Background2D attributes background_mesh_ma and
background_rms_mesh_ma. They have been renamed to
background_mesh_masked and background_rms_mesh_masked. [#1232]
* By default, BkgZoomInterpolator now uses grid_mode=True. For
zooming 2D images, this keyword should be set to True, which
makes the interpolator’s behavior consistent with scipy.
ndimage.map_coordinates, skimage.transform.resize, and OpenCV
(cv2.resize). If backwards-compatiblity is needed with older
Photutils’ versions, set grid_mode=False. [#1239]
photutils.centroid
* Deprecated the gaussian1d_moments and centroid_epsf functions.
[#1240]
photutils.datasets
* Removed the deprecated random_state keyword in the
apply_poisson_noise, make_noise_image,
make_random_models_table, and make_random_gaussians_table
functions. [#1244]
* make_random_models_table and make_random_gaussians_table now
return an astropy QTable with version metadata. [#1247]
photutils.detection
* DAOStarFinder, IRAFStarFinder, and find_peaks now return an
astropy QTable with version metadata. [#1247]
* The StarFinder label column was renamed to id for consistency
with the other star finder classes. [#1254]
photutils.isophote
* The Isophote to_table method nows return an astropy QTable
with version metadata. [#1247]
photutils.psf
* BasicPSFPhotometry, IterativelySubtractedPSFPhotometry, and
DAOPhotPSFPhotometry now return an astropy QTable with version
metadata. [#1247]
photutils.segmentation
* Deprecated the filter_kernel keyword in the detect_sources,
deblend_sources, and make_source_mask functions. It has been
renamed to simply kernel for consistency with SourceCatalog.
[#1242]
* Removed the deprecated random_state keyword in the make_cmap
method. [#1244]
* The SourceCatalog to_table method nows return an astropy
QTable with version metadata. [#1247]
photutils.utils
* Removed the deprecated check_random_state function. [#1244]
* Removed the deprecated random_state keyword in the
make_random_cmap function. [#1244]
- Update ot Version 1.1.0
General
-------
* The minimum required python version is 3.7. [#1120]
New Features
------------
photutils.aperture
* The PixelAperture.plot() method now returns a list of
matplotlib.patches.Patch objects. [#923]
* Added an area_overlap method for PixelAperture objects that
gives the overlapping area of the aperture on the data. [#874]
* Added a get_overlap_slices method and a center attribute to
BoundingBox. [#1157]
* Added a get_values method to ApertureMask that returns a 1D
array of mask-weighted values. [#1158, #1161]
* Added get_overlap_slices method to ApertureMask. [#1165]
photutils.background
* The Background2D class now accepts astropy NDData,
CCDData, and Quantity objects as data inputs. [#1140]
photutils.detection
* Added a StarFinder class to detect stars with a user-defined
kernel. [#1182]
photutils.isophote
* Added the ability to specify the output columns in the
IsophoteList to_table method. [#1117]
photutils.psf
* The EPSFStars class is now usable with multiprocessing.
[#1152]
* Slicing EPSFStars now returns an EPSFStars instance. [#1185]
photutils.segmentation
* Added a modified, significantly faster, SourceCatalog class.
[#1170, #1188, #1191]
* Added circular_aperture and circular_phometry methods to the
SourceCatalog class. [#1188]
* Added fwhm property to the SourceCatalog class. [#1191]
* Added fluxfrac_radius method to the SourceCatalog class.
[#1192]
* Added a bbox attribute to SegmentationImage. [#1187]
Bug Fixes
---------
photutils.aperture
* Slicing a scalar Aperture object now raises an informative
error
message. [#1154]
* Fixed an issue where ApertureMask.multiply fill_value was
not applied to pixels outside of the aperture mask, but within the
aperture bounding box. [#1158]
* Fixed an issue where ApertureMask.cutout would raise an error
if fill_value was non-finite and the input array was integer
type. [#1158]
* Fixed an issue where RectangularAnnulus with a non-default
h_in would give an incorrect ApertureMask. [#1160]
photutils.isophote
* Fix computation of gradient relative error when gradient=0.
[#1180]
photutils.psf
* Fixed a bug in EPSFBuild where a warning was raised if the
input smoothing_kernel was an numpy.ndarray. [#1146]
* Fixed a bug that caused photometry to fail on an EPSFmodel
with multiple stars in a group. [#1135]
* Added a fallback aperture_radius for PSF models without a FWHM
or sigma attribute, raising a warning. [#740]
photutils.segmentation
* Fixed SourceProperties local_background to work with
Quantity data inputs. [#1162]
* Fixed SourceProperties local_background for sources near the
image edges. [#1162]
* Fixed SourceProperties kron_radius for sources that are
completely masked. [#1164]
* Fixed SourceProperties Kron properties for sources near the
image edges. [#1167]
* Fixed SourceProperties Kron mask correction. [#1167]
API changes
-----------
photutils.aperture
* Deprecated the BoundingBox slices attribute. Use the
get_overlap_slices method instead. [#1157]
photutils.centroid
* Removed the deprecated fit_2dgaussian function and
GaussianConst2D class. [#1147]
* Importing tools from the centroids subpackge without
including the subpackage name is deprecated. [#1190]
photutils.morphology
* Importing tools from the morphology subpackge without
including the subpackage name is deprecated. [#1190]
photutils.segmentation
* Deprecated the "mask_all" option in the SourceProperties
kron_params keyword. [#1167]
* Deprecated source_properties, SourceProperties, and
LegacySourceCatalog. Use the new SourceCatalog function
instead. [#1170]
* The detect_threshold function was moved to the segmentation
subpackage. [#1171]
* Removed the ability to slice SegmentationImage. Instead slice
the segments attribute. [#1187]
- Update to Version 1.0.2
General
------
photutils.background
* Improved the performance of Background2D (e.g., by a
factor of ~4 with 2048x2048 input arrays when using the
default interpolator). [#1103, #1108]
Bug Fixes
--------
photutils.background
* Fixed a bug with Background2D where using
BkgIDWInterpolator would give incorrect results.
[#1104]
photutils.isophote
* Corrected calculations of upper harmonics and their
errors [#1089]
* Fixed bug that caused an infinite loop when the sample
extracted from an image has zero length. [#1129]
* Fixed a bug where the default fixed_parameters in
EllipseSample.update() were not defined. [#1139]
photutils.psf
* Fixed a bug where very incorrect PSF-fitting
uncertainties could be returned when the astropy fitter
did not return fit uncertainties. [#1143]
photutils.segmentation
* Fixed an issue where negative Kron radius values could
be returned, which would cause an error when
calculating Kron fluxes. [#1132]
* Fixed an issue where an error was raised with
SegmentationImage.remove_border_labels() with
relabel=True when no segments remain. [#1133]
photutils.psf
* Changed the default recentering_func in EPSFBuilder, to
avoid convergence issues. [#1144]
- Drop photutils-ease-background2d-tests.patch fixed upstream
gh#astropy/photutils#1145

- Add photutils-ease-background2d-tests.patch -- ease precision
tolerance in background 2D tests gh#astropy/photutils#1145
- Update to Version 1.0.1
Bug Fixes
* photutils.psf
Fixed checks on oversampling factors. [#1086]
- Update to Version 1.0.0
General
* The minimum required python version is 3.6. [#952]
* The minimum required astropy version is 4.0. [#1081]
* The minimum required numpy version is 1.17. [#1079]
* Removed astropy-helpers and updated the package
infrastructure as described in Astropy APE 17. [#915]
New Features
* photutils.aperture
* Added b_in as an optional ellipse annulus keyword. [#1070]
* Added h_in as an optional rectangle annulus keyword.
[#1070]
* photutils.background
* Added coverage_mask and fill_value keyword options to
Background2D. [#1061]
* photutils.centroids
* Added quadratic centroid estimator function
(centroid_quadratic). [#1067]
* photutils.psf
* Added the ability to use odd oversampling factors in
EPSFBuilder. [#1076]
* photutils.segmentation
* Added Kron radius, flux, flux error, and aperture to
SourceProperties. [#1068]
* Added local background to SourceProperties. [#1075]
Bug Fixes
* photutils.isophote
* Fixed a typo in the calculation of the b4 higher-order
harmonic coefficient in build_ellipse_model. [#1052]
* Fixed a bug where build_ellipse_model falls into an
infinite loop when the pixel to fit is outside of the
image. [#1039]
* Fixed a bug where build_ellipse_model falls into an
infinite loop under certain image/parameters input
combinations. [#1056]
* photutils.psf
* Fixed a bug in subtract_psf caused by using a fill_value of
np.nan with an integer input array. [#1062]
* photutils.segmentation
* Fixed a bug where source_properties would fail with
unitless gwcs.wcs.WCS objects. [#1020]
* photutils.utils
* The effective_gain parameter in calc_total_error can now be
zero (or contain zero values). [#1019]
API changes
* photutils.aperture
* Aperture pixel positions can no longer be shaped as 2xN.
[#953]
* Removed the deprecated units keyword in aperture_photometry
and PixelAperture.do_photometry. [#953]
* PrimaryHDU, ImageHDU, and HDUList can no longer be input to
aperture_photometry. [#953]
* Removed the deprecated the Aperture mask_area method.
[#953]
* Removed the deprecated Aperture plot keywords ax and
indices. [#953]
* photutils.background
* Removed the deprecated ax keyword in
Background2D.plot_meshes. [#953]
* Background2D keyword options can not be input as positional
arguments. [#1061]
* photutils.centroids
* centroid_1dg, centroid_2dg, gaussian1d_moments,
fit_2dgaussian, and GaussianConst2D have been moved to a
new photutils.centroids.gaussian module. [#1064]
* Deprecated fit_2dgaussian and GaussianConst2D. [#1064]
* photutils.datasets
* Removed the deprecated type keyword in make_noise_image.
[#953]
* Renamed the random_state keyword (deprecated) to seed in
apply_poisson_noise, make_noise_image,
make_random_models_table, and make_random_gaussians_table
functions. [#1080]
* photutils.detection
* Removed the deprecated snr keyword in detect_threshold.
[#953]
* photutils.psf
* Added flux_residual_sigclip as an input parameter, allowing
for custom sigma clipping options in EPSFBuilder. [#984]
* Added extra_output_cols as a parameter to
BasicPSFPhotometry, IterativelySubtractedPSFPhotometry and
DAOPhotPSFPhotometry. [#745]
* photutils.segmentation
* Removed the deprecated SegmentationImage methods cmap and
relabel. [#953]
* Removed the deprecated SourceProperties values and coords
attributes. [#953]
* Removed the deprecated xmin/ymin and xmax/ymax properties.
[#953]
* Removed the deprecated snr and mask_value keywords in
make_source_mask. [#953]
* Renamed the random_state keyword (deprecated) to seed in
the make_cmap method. [#1080]
* photutils.utils
* Removed the deprecated random_cmap, mask_to_mirrored_num,
get_version_info, filter_data, and std_blocksum functions.
[#953]
* Removed the deprecated wcs_helpers functions
pixel_scale_angle_at_skycoord, assert_angle_or_pixel,
assert_angle, and pixel_to_icrs_coords. [#953]
* Deprecated the check_random_state function. [#1080]
* Renamed the random_state keyword (deprecated) to seed in
the make_random_cmap function. [#1080]
- Drop patches merged upstream
* 0001-aperture-mask-test-assert-almost-equal.patch
* photutils-pr1041-update-watershed-import.patch

- add photutils-pr1041-update-watershed-import.patch to fix failing
test gh#astropy/photutils#1041
- actually detect failures with sys.exit(photutils.test())
- fix failing tests: use astropy's test suite logic to call pytest
- add URL for 0001-aperture-mask-test-assert-almost-equal.patch
gh#astropy/photutils#1014
- 0001-aperture-mask-test-assert-almost-equal.patch:
upstream PR#1014 to avoid occasionally failing builds
- update to version 0.7.2:
photutils.isophote
* Fixed computation of upper harmonics a3, b3, a4, and b4
in the ellipse fitting algorithm. [#1008]
photutils.psf
* Fix to algorithm in EPSFBuilder, addressing issues where
ePSFs failed to build (yielding striped ePSFs). [#974]
* Fix to IterativelySubtractedPSFPhotometry where an error
could be thrown when a Finder was passed which did not
return None if no sources were found. [#986]
* Fix to centroid_epsf where the wrong oversampling factor
was used along the y axis. [#1002]
- needs new python-pytest-astropy 0.7 because of -header package
- fix clean c source files
- update to version 0.7.1
- remove generated c source files
- new version 0.7
- add astropy helpers
- add dmb and scikit-* modules to build deps for module tests
- add numpy-devel as dep
- fix deps typos
- initial spec


Benjamin Greiner's avatar

bnavigator revoked request

no need to submit. this is mainly for supersede and revoke

openSUSE Build Service is sponsored by