Skip to content

mfouesneau/pyphot

Repository files navigation

pyphot -- A tool for computing photometry from spectra

https://static.pepy.tech/badge/pyphot https://static.pepy.tech/badge/pyphot/month

This is a set of tools to compute synthetic photometry in a simple way, ideal to integrate in larger projects.

full documentation at: http://mfouesneau.github.io/pyphot/

The inputs are photonic or energetic response functions for the desired photometric bands and stellar spectra. The modules are flexible to handle units in the wavelength definition through a simplified version of pint (link) and astropy.units

Filters are represented individually by a Filter object. Collections of filters are handled with a Library. We provide an internal library that contains a signitificant amount of common filters.

Each filter is minimally defined by a wavelength and throughput. Many properties such as central of pivot wavelength are computed internally. When units are provided for the wavelength, zero points in multiple units are also accessible (AB, Vega magnitude, Jy, erg/s/cm2/AA). The default detector type is assumed to be photonic, but energetic detectors are also handled for the computations.

Note

cphot is a spin-off project that provides a C++ version of pyphot

What's new?

  • [June 26, 2024] Dropping support for Python <= 3.8 (due to HDF5 modules). Minor updates for Scipy 1.14.0 and Numpy 2.0
  • [November 22, 2021] new filters, SVO interface, automated tests and documentation.
  • [November 6, 2019] astropy version available in beta (from pyphot import astropy as pyphot)
  • [April 29, 2019] sandbox contains fully unit aware passbands and lick indices libraries
  • [April 15, 2019] merged UncertainFilter to main, sandbox contains passbands accounting for spectrum units
  • [March 4, 2019] added flux calculations in photon/s/cm2
  • [March 4, 2019] added many properties per filter (lphot, lmin, lmax)
  • [June 12, 2018] adding Sun reference spectra (see :class:Sun)
  • [Apr. 26, 2018] includes Gaia nominal, DR2 and revised DR2 passbands

Installation

Before installation, make sure you have HDF5 version 1.8.4 or above (this is required for pytables, see details at: https://github.com/PyTables/PyTables).

For OSX:

brew install hdf5

For Debian-based distributions:

sudo apt-get install libhdf5-serial-dev
  • Installation from PyPI
pip install pyphot
  • Manual installation

download the repository and run the setup

python setup.py install

Contributors

Author:

Morgan Fouesneau

Direct contributions to the code base:

  • Tim Morton (@timothydmorton)
  • Ariane Lancon (@lancon)