head	1.18;
access;
symbols
	pkgsrc-2026Q2:1.16.0.6
	pkgsrc-2026Q2-base:1.16
	pkgsrc-2026Q1:1.16.0.4
	pkgsrc-2026Q1-base:1.16
	pkgsrc-2025Q4:1.16.0.2
	pkgsrc-2025Q4-base:1.16
	pkgsrc-2025Q3:1.14.0.4
	pkgsrc-2025Q3-base:1.14
	pkgsrc-2025Q2:1.14.0.2
	pkgsrc-2025Q2-base:1.14
	pkgsrc-2025Q1:1.13.0.4
	pkgsrc-2025Q1-base:1.13
	pkgsrc-2024Q4:1.13.0.2
	pkgsrc-2024Q4-base:1.13
	pkgsrc-2024Q3:1.11.0.2
	pkgsrc-2024Q3-base:1.11
	pkgsrc-2024Q2:1.10.0.2
	pkgsrc-2024Q2-base:1.10
	pkgsrc-2024Q1:1.9.0.2
	pkgsrc-2024Q1-base:1.9
	pkgsrc-2023Q4:1.7.0.4
	pkgsrc-2023Q4-base:1.7
	pkgsrc-2023Q3:1.7.0.2
	pkgsrc-2023Q3-base:1.7
	pkgsrc-2023Q2:1.5.0.6
	pkgsrc-2023Q2-base:1.5
	pkgsrc-2023Q1:1.5.0.4
	pkgsrc-2023Q1-base:1.5
	pkgsrc-2022Q4:1.5.0.2
	pkgsrc-2022Q4-base:1.5
	pkgsrc-2022Q3:1.4.0.4
	pkgsrc-2022Q3-base:1.4
	pkgsrc-2022Q2:1.4.0.2
	pkgsrc-2022Q2-base:1.4
	pkgsrc-2022Q1:1.3.0.2
	pkgsrc-2022Q1-base:1.3
	pkgsrc-2021Q4:1.1.0.10
	pkgsrc-2021Q4-base:1.1
	pkgsrc-2021Q3:1.1.0.8
	pkgsrc-2021Q3-base:1.1
	pkgsrc-2021Q2:1.1.0.6
	pkgsrc-2021Q2-base:1.1
	pkgsrc-2021Q1:1.1.0.4
	pkgsrc-2021Q1-base:1.1
	pkgsrc-2020Q4:1.1.0.2
	pkgsrc-2020Q4-base:1.1;
locks; strict;
comment	@# @;


1.18
date	2026.09.03.11.10.45;	author adam;	state Exp;
branches;
next	1.17;
commitid	vlhEZm4du0FImaUG;

1.17
date	2026.06.28.15.41.30;	author wiz;	state Exp;
branches;
next	1.16;
commitid	hjtQh9zHnnKc1ALG;

1.16
date	2025.11.13.12.28.35;	author adam;	state Exp;
branches;
next	1.15;
commitid	70TfH3ZlLcIufoiG;

1.15
date	2025.10.09.07.57.48;	author wiz;	state Exp;
branches;
next	1.14;
commitid	t4nMY0Dt3rBjSRdG;

1.14
date	2025.04.16.11.19.25;	author adam;	state Exp;
branches;
next	1.13;
commitid	ZDLedf9l7X8lEgRF;

1.13
date	2024.11.11.07.28.42;	author wiz;	state Exp;
branches;
next	1.12;
commitid	1fBDq3LwS98NncxF;

1.12
date	2024.10.14.06.45.50;	author wiz;	state Exp;
branches;
next	1.11;
commitid	ynDJEEQamKd33BtF;

1.11
date	2024.08.07.16.12.49;	author jperkin;	state Exp;
branches;
next	1.10;
commitid	a17uWooWFABfnUkF;

1.10
date	2024.05.18.13.37.34;	author wiz;	state Exp;
branches;
next	1.9;
commitid	0gnFjOKEC3tp7uaF;

1.9
date	2024.02.15.22.15.05;	author wiz;	state Exp;
branches;
next	1.8;
commitid	hnGkJ9aizrwjYzYE;

1.8
date	2024.02.15.22.02.20;	author wiz;	state Exp;
branches;
next	1.7;
commitid	FKqFooYlfN6XTzYE;

1.7
date	2023.08.01.23.20.48;	author wiz;	state Exp;
branches;
next	1.6;
commitid	lyjXpsSeA6xpH8zE;

1.6
date	2023.07.03.17.30.58;	author wiz;	state Exp;
branches;
next	1.5;
commitid	zXGpkI8znnchHnvE;

1.5
date	2022.11.14.22.18.36;	author wiz;	state Exp;
branches;
next	1.4;
commitid	fr1tzu3vRHXdII1E;

1.4
date	2022.04.10.14.42.18;	author nia;	state Exp;
branches;
next	1.3;
commitid	WPw7wqCOsEp4cFzD;

1.3
date	2022.01.04.20.54.15;	author wiz;	state Exp;
branches;
next	1.2;
commitid	CYyhdK9qtoffkmnD;

1.2
date	2021.12.30.13.05.37;	author adam;	state Exp;
branches;
next	1.1;
commitid	w23rFuQ4pTWhUFmD;

1.1
date	2020.12.19.14.56.04;	author mef;	state Exp;
branches;
next	;
commitid	c1pAvYOk6ZHzBmAC;


desc
@@


1.18
log
@py-photutils: updated to 3.0.0

3.0.0 (2026-04-17)

General

- The minimum required NumPy is now 2.0.

- The minimum required SciPy is now 1.13.

- The minimum required Matplotlib is now 3.9.

- The minimum required scikit-image is now 0.23.

- The minimum required astropy is now 6.1.4.

New Features

- ``photutils.aperture``

  - The ``to_sky`` and ``to_pixel`` methods for all pixel and sky
    aperture types now use the local WCS Jacobian to accurately compute
    pixel scale factors and rotation angles. This correctly handles WCS
    with distortions (e.g., SIP polynomial corrections) and non-square
    pixels.

- ``photutils.background``

  - Added a ``to_aperture`` method to ``LocalBackground``.

- ``photutils.centroids``

  - Added a ``CentroidQuadratic`` class to provide an object-oriented
    interface to the ``centroid_quadratic`` function.

- ``photutils.detection``

  - Added a public ``StarFinderCatalogBase`` class that provides
    a common base for the catalogs in the ``DAOStarFinder``,
    ``IRAFStarFinder``, and ``StarFinder`` classes.

  - Added ``__repr__`` and ``__str__`` methods to ``DAOStarFinder``,
    ``IRAFStarFinder``, and ``StarFinder``.

  - Significantly improved the performance of ``DAOStarFinder``,
    ``IRAFStarFinder``, and ``StarFinder`` by vectorizing cutout
    extraction and image moment computation.

  - The ``threshold`` parameter in ``DAOStarFinder``,
    ``IRAFStarFinder``, and ``StarFinder`` now accepts a 2D array
    in addition to a scalar value, allowing for spatially varying
    detection thresholds.

  - Added a ``scale_threshold`` parameter to ``DAOStarFinder``.
    When set to `False`, the input ``threshold`` is applied directly
    to the convolved data without the default kernel-based scaling.

  - Added a ``min_separation`` keyword to ``find_peaks``. The
    implementation uses fast separable box filters and is approximately
    10-400x faster than using an explicit circular footprint with
    ``scipy.ndimage.maximum_filter`` (depending on the radius), while
    producing identical results.

- ``photutils.profiles``

  - Added a ``EnsquaredCurveOfGrowth`` class to compute a curve of
    growth using concentric square apertures.

  - Added a ``EllipticalCurveOfGrowth`` class to compute a curve of
    growth using concentric elliptical apertures with a fixed axis ratio
    and orientation.

  - Added ``moffat_fit``, ``moffat_profile``, and ``moffat_fwhm``
    properties to ``RadialProfile`` for fitting a 1D Moffat model to the
    radial profile.

- ``photutils.psf``

  - Added a ``SourceGroups`` class that stores the results of grouping
    sources and provides methods to analyze and plot the groupings.

  - Added ``remove_invalid`` and ``reset_ids`` keywords to the
    ``results_to_init_params`` and ``results_to_model_params`` methods of
    ``PSFPhotometry`` and ``IterativePSFPhotometry``.

  - Added a ``decode_flags`` convenience method to ``PSFPhotometry`` and
    ``IterativePSFPhotometry`` classes to decode the bitwise flags from
    the results table.

  - Added a ``return_bit_flags`` keyword to the ``decode_psf_flags``
    function.

  - Added ``__repr__`` methods to ``ImagePSF`` and ``GriddedPSFModel``.

  - Added a ``shape`` property to ``ImagePSF``.

  - ``EPSFBuilder`` now automatically excludes stars that repeatedly
    fail fitting and emits warnings with specific failure reasons.

  - Added validation and automatic shape handling for ``fit_shape=None``
    in ``fit_2dgaussian`` and ``fit_fwhm``. The functions now require
    explicit ``fit_shape`` for multiple sources and emit an informative
    warning for single-source fitting.

  - The ``fit_fwhm`` and ``fit_2dgaussian`` ``xypos`` value can now be
    input as a ``zip`` object.

- ``photutils.psf_matching``

  - Added a ``regularization`` keyword to ``make_kernel`` to regularize
    division by near-zero values in the source Optical Transfer Function.

  - Added ``make_wiener_kernel`` function that uses Wiener
    regularization to make a PSF matching kernel.

  - ``make_kernel`` now validates input PSFs (2D, odd dimensions,
    centered) and the window function output.

  - ``resize_psf`` now validates input PSFs and pixel scales.

  - Added ``__repr__`` methods to ``CosineBellWindow``, ``HanningWindow``,
    ``SplitCosineBellWindow``, ``TopHatWindow``, and ``TukeyWindow``
    classes.

- ``photutils.segmentation``

  - The ``SourceCatalog`` ``fluxfrac_radius`` now caches results by
    ``fluxfrac`` value. Repeated calls with the same ``fluxfrac`` return
    the cached result without recomputation.

  - The radial step used when searching for a bracketing interval in
    ``SourceCatalog`` ``fluxfrac_radius`` is now set to 10% of the current
    ``max_radius``, bounding the fallback loop to at most ~10 iterations
    regardless of source size.

  - Improved the performance (~6-9x speedup) of ``SourceCatalog``
    ``min_value``, ``max_value``, ``segment_flux``, ``segment_flux_err``,
    ``background_sum``, and ``background_mean``.

  - Added ``SegmentationImage`` ``get_segment`` and ``get_segments``
    methods to return the ``Segment`` object(s) for a given label or list
    of labels.

  - Added the ability to input ``RegionVisual`` keywords to the
    ``SegmentationImage`` ``to_regions`` method.

  - Added ``SegmentationImage`` ``get_polygon``, ``get_polygons``,
    ``get_patch``, ``get_patches``, ``get_region``, and ``get_regions``
    methods to return the polygon, patch, or region for a given segment
    label or list of labels.

  - Improved the performance of the ``SegmentationImage``
    ``keep_labels`` method and ``missing_labels`` attribute.

  - Improved the performance of ``SourceCatalog``
    ``centroid_win`` (~3.5x speedup), ``centroid_quad``,
    ``fluxfrac_radius`` (~6x speedup), ``kron_radius`` (~2x speedup),
    ``moments``, ``moments_central``, ``perimeter``, and Kron
    photometry.

- ``photutils.utils``

  - Significantly improved the performance (by factors of 3 or more) of
    ``ShepardIDWInterpolator``

  - Added a ``use_future_column_names`` context manager for temporarily
    enabling future column names in a scoped, thread-safe,
    and async-safe way without modifying the global
    ``photutils.future_column_names`` flag.
@
text
@# $NetBSD: Makefile,v 1.17 2026/06/28 15:41:30 wiz Exp $

DISTNAME=	photutils-3.0.0
PKGNAME=	${PYPKGPREFIX}-${DISTNAME}
CATEGORIES=	math python
MASTER_SITES=	${MASTER_SITE_PYPI:=p/photutils/}

MAINTAINER=	pkgsrc-users@@NetBSD.org
HOMEPAGE=	https://photutils.readthedocs.io/
COMMENT=	Astropy coordinated module for astronomical photometry
LICENSE=	modified-bsd

TOOL_DEPENDS+=	${PYPKGPREFIX}-cython>=3.1.2:../../devel/py-cython
TOOL_DEPENDS+=	${PYPKGPREFIX}-extension-helpers>=1.3:../../devel/py-extension-helpers
TOOL_DEPENDS+=	${PYPKGPREFIX}-setuptools>=78:../../devel/py-setuptools
TOOL_DEPENDS+=	${PYPKGPREFIX}-setuptools_scm>=8.1:../../devel/py-setuptools_scm
DEPENDS+=	${PYPKGPREFIX}-astropy>=6.1.4:../../math/py-astropy
DEPENDS+=	${PYPKGPREFIX}-scipy>=1.13:../../math/py-scipy

PYTHON_VERSIONS_INCOMPATIBLE=	310 311

.include "../../lang/python/wheel.mk"
.include "../../math/py-numpy/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
@


1.17
log
@*: limit Python versions due to py-numpy dropping Python 3.11 support
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.16 2025/11/13 12:28:35 adam Exp $
d3 1
a3 1
DISTNAME=	photutils-2.3.0
d13 1
a13 1
TOOL_DEPENDS+=	${PYPKGPREFIX}-cython>=3.0.0:../../devel/py-cython
d16 3
a18 4
TOOL_DEPENDS+=	${PYPKGPREFIX}-setuptools_scm>=6.2:../../devel/py-setuptools_scm
DEPENDS+=	${PYPKGPREFIX}-astropy>=5.3:../../math/py-astropy
DEPENDS+=	${PYPKGPREFIX}-extension-helpers>=0.1:../../devel/py-extension-helpers
DEPENDS+=	${PYPKGPREFIX}-scipy>=1.11.1:../../math/py-scipy
@


1.16
log
@py-photutils: updated to 2.3.0

2.3.0 (2025-09-15)

General

- The minimum required NumPy is now 1.25.

- The minimum required SciPy is now 1.11.1.

- The minimum required Matplotlib is now 3.8.

- The minimum required scikit-image is now 0.21.

New Features

- ``photutils.isophote``

  - ``build_ellipse_model`` is now Cythonized and considerably faster.


  - ``build_ellipse_model`` also has an additional optional keyword
    argument ``sma_interval``, which was previously hardcoded.

- ``photutils.psf``

  - ``PSFPhotometry`` and ``IterativePSFPhotometry`` now raise an error
    if the input ``error`` array contains non-finite or zero values.


  - ``GriddedPSFModel`` can now be used with a single input ePSF model,
    which will be equivalent to ``ImagePSF``.

  - The ``finder`` callable input to ``PSFPhotometry`` and
    ``IterativePSFPhotometry`` is no longer restricted to have x and y
    column names of ``'xcentroid'`` and ``'ycentroid'``. The allowed
    column names are now the same as those allowed in the
    ``init_params`` table.

  - Added a ``group_warning_threshold`` keyword to ``PSFPhotometry`` and
    ``IterativePSFPhotometry``.

  - The ``PSFPhotometry`` and ``IterativePSFPhotometry`` classes no
    longer fail for invalid sources, defined as those that have no
    overlap with the input data, are completely masked, or have too few
    unmasked pixels for a fit.  These classes have new flags (64, 128,
    256, respectively) for these invalid conditions.

  - The ``PSFPhotometry`` and ``IterativePSFPhotometry`` classes have
    new ``results_to_init_params`` and ``results_to_model_params``
    methods for outputting fit results in different formats.

  - When using Astropy 7.0+, the ``PSFPhotometry`` and
    ``IterativePSFPhotometry`` ``fitter`` object now modifies the PSF
    model in place instead of creating a copy, improving performance and
    significantly reducing memory usage in some cases.

  - ``PSFPhotometry`` and ``IterativePSFPhotometry`` now return a
    reduced chi-squared statistic (``reduced_chi2`` column in the
    results table).

  - The PSF photometry classes now use a dynamically generated "flat"
    model instead of a compound model for grouped sources. This
    eliminates recursion limits and significantly reduces memory usage
    for large groups.

- ``photutils.segmentation``

  - An optional ``array`` keyword was added to the ``SourceCatalog``
    ``make_cutouts`` method.

  - Added a ``group`` keyword to the ``SegmentationImage``
    ``to_regions`` method.

  - Added a ``decode_psf_flags`` utility function for decoding PSF
    photometry bit flags.

  - Added a ``PSF_FLAGS`` object to hold all PSF photometry bit flags in
    one place. PSF_FLAGS provides readable, named constants for each bit
    flag and helper utilities for decoding bit flags.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.15 2025/10/09 07:57:48 wiz Exp $
d21 1
a21 1
PYTHON_VERSIONS_INCOMPATIBLE=	310
@


1.15
log
@*: remove reference to (removed) Python 3.9
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.14 2025/04/16 11:19:25 adam Exp $
d3 1
a3 1
DISTNAME=	photutils-2.2.0
d14 1
a14 1
TOOL_DEPENDS+=	${PYPKGPREFIX}-extension-helpers>=1:../../devel/py-extension-helpers
d19 1
a19 2
DEPENDS+=	${PYPKGPREFIX}-gwcs>=0.12:../../math/py-gwcs
DEPENDS+=	${PYPKGPREFIX}-scipy>=1.10:../../math/py-scipy
@


1.14
log
@py-photutils: updated to 2.2.0

2.2.0 (2025-02-18)

New Features

- ``photutils.aperture``

  - Add an ``aperture_to_region`` function to convert an Aperture object
    to an astropy ``Region`` or ``Regions`` object.

- ``photutils.profiles``

  - Added ``data_radius`` and ``data_profile`` attributes to the
    ``RadialProfile`` class for calculating the raw radial profile.


- ``photutils.segmentation``

  - Added a ``to_regions`` method to ``SegmentationImage`` that converts
    the segment outlines to a ``regions.Regions`` object.

Bug Fixes

- ``photutils.segmentation``

  - Fixed an issue where the ``SegmentationImage`` ``polygons``
    attribute would raise an error if any source segment contained a
    hole.

API Changes

- ``photutils.aperture``

  - The ``theta`` attribute of ``EllipticalAperture``,
    ``EllipticalAnnulus``, ``RectangularAperture``, and
    ``RectangularAnnulus`` is now always returned as an angular
    ``Quantity``.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.13 2024/11/11 07:28:42 wiz Exp $
d22 1
a22 1
PYTHON_VERSIONS_INCOMPATIBLE=	39 310
@


1.13
log
@py-*: remove unused tool dependency

py-setuptools includes the py-wheel functionality nowadays
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.12 2024/10/14 06:45:50 wiz Exp $
d3 1
a3 1
DISTNAME=	photutils-1.0.1
a4 1
PKGREVISION=	2
d9 1
a9 1
HOMEPAGE=	https://photutils.readthedocs.io/en/stable/
d13 5
a17 5
TOOL_DEPENDS+=	${PYPKGPREFIX}-setuptools>=0:../../devel/py-setuptools
TOOL_DEPENDS+=	${PYPKGPREFIX}-setuptools_scm>=0:../../devel/py-setuptools_scm
DEPENDS+=	${PYPKGPREFIX}-scikit-image>=0.14.2:../../math/py-scikit-image
DEPENDS+=	${PYPKGPREFIX}-scikit-learn>=0.19:../../math/py-scikit-learn
DEPENDS+=	${PYPKGPREFIX}-astropy>=4.2:../../math/py-astropy
d20 1
d22 1
a22 1
PYTHON_VERSIONS_INCOMPATIBLE+=	39 # py-scikit-learn py-scikit-image ...
@


1.12
log
@*: clean-up after python38 removal
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.11 2024/08/07 16:12:49 jperkin Exp $
a15 1
TOOL_DEPENDS+=	${PYPKGPREFIX}-wheel>=0:../../devel/py-wheel
@


1.11
log
@py-photutils: Not for python39.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.10 2024/05/18 13:37:34 wiz Exp $
a22 2
PYTHON_VERSIONS_INCOMPATIBLE=	27 # py-scikit
PYTHON_VERSIONS_INCOMPATIBLE+=	38 # py-scikit-learn
@


1.10
log
@py-photutils: convert to wheel.mk.

Add missing tool dependency while here.

Bump PKGREVISION.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.9 2024/02/15 22:15:05 wiz Exp $
d25 1
@


1.9
log
@py-photutils: allow Python 3.11/3.12 now that py-scikit-image supports them
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.8 2024/02/15 22:02:20 wiz Exp $
d5 1
a5 1
PKGREVISION=	1
d14 3
d26 1
a26 1
.include "../../lang/python/egg.mk"
@


1.8
log
@py-scikit-image: current version doesn't support Python 3.12 either
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.7 2023/08/01 23:20:48 wiz Exp $
a21 1
PYTHON_VERSIONS_INCOMPATIBLE+=	311 312 # py-scikit-image
@


1.7
log
@*: remove more references to Python 3.7
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.6 2023/07/03 17:30:58 wiz Exp $
d22 1
a22 1
PYTHON_VERSIONS_INCOMPATIBLE+=	311 # py-scikit-image
@


1.6
log
@py-photutils: mark as not for Python 3.8
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.5 2022/11/14 22:18:36 wiz Exp $
d20 1
a20 1
PYTHON_VERSIONS_INCOMPATIBLE=	27 37 # py-scikit
@


1.5
log
@py-photutils: does not support python 3.11 because of py-scikit-image
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.4 2022/04/10 14:42:18 nia Exp $
d21 1
@


1.4
log
@Paper over tree breakage caused by unresolvable Python deps from
scikit/pandas/numpy.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.3 2022/01/04 20:54:15 wiz Exp $
a13 2
PYTHON_VERSIONS_INCOMPATIBLE=	27 37 # py-scikit

d20 3
@


1.3
log
@*: bump PKGREVISION for egg.mk users

They now have a tool dependency on py-setuptools instead of a DEPENDS
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.2 2021/12/30 13:05:37 adam Exp $
d14 1
a14 1
PYTHON_VERSIONS_INCOMPATIBLE=	27
@


1.2
log
@Forget about Python 3.6
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.1 2020/12/19 14:56:04 mef Exp $
d5 1
@


1.1
log
@(math/py-photutils) import py38-photutils-1.0.1

Based on PR pkg/55873 by Daisuke Kinoshita:

Photutils is an Astropy coordinated Python module for astronomical photometry.
@
text
@d1 1
a1 1
# $NetBSD$
d13 1
a13 2
PYTHON_VERSIONS_INCOMPATIBLE+=	27
PYTHON_VERSIONS_INCOMPATIBLE+=	36
@

