PhotoIFU

Every pixel of every galaxy, fitted like a spectrum

Pixel-by-pixel Bayesian SED fitting that turns deep multi-band imaging into a photometric integral-field unit: Prospector-grade stellar-population physics, a neural emulator for speed, and a full posterior for every pixel, at the scale of JWST, Euclid and Roman surveys. A public version is available on GitHub, and a faster, more powerful upgrade is coming soon.

Background images: JADES (Zhu et al. 2026).

Learn more Read the paper

What is PhotoIFU?

After PSF matching, every pixel of a deep multi-band image is a low-resolution spectrum of one small region of a galaxy. Fitting each of them with a stellar-population model turns the image into a photometric IFU: maps of stellar mass, star formation, age, dust and metallicity, and a star-formation history for every pixel. These maps show where and when galaxies grew, and they recover old stars that the light of young ones hides in integrated fits.

The method is introduced in Zhu et al. (2026), which applies PhotoIFU to PSF-matched JWST/NIRCam imaging of three JADES galaxies at z = 1.3–3.7: two with extended ionized line emission and a post-starburst galaxy with a strong neutral outflow. Regions selected from the emission-line or outflow geometry occupy distinct parts of the resolved SED-property distribution of their hosts.

The physics follows Prospector: FSPS stellar populations, nebular emission, dust attenuation and emission with energy balance, AGN emission, and flexible non-parametric star-formation histories. A classical Bayesian fit of this model takes hours per object, far too slow for the 104 pixels of one galaxy or the 106 pixels of a survey sample. The upcoming PhotoIFU upgrade replaces FSPS in the likelihood with a neural emulator trained on 19 million FSPS models in 91 filters (Euclid, Roman, JWST, HST, Rubin and Subaru) over 0 < z < 24, and fits every pixel with nested sampling on any number of CPU cores.

From images to maps

In the upcoming upgrade, one command, python -m photoifu.fit, runs the chain on a pixel catalog. Every pixel is fitted independently and can be re-run on its own. The pipeline and validation on this page describe that upgrade; the public version already provides the workflow, a reference fitter and the resolved analysis.

The PhotoIFU pipeline: imaging, pixel cube, redshift, neural emulator, Bayesian fit and resolved maps, with one pixel's spectral fit and star-formation history

The pipeline applied to JADES 206183 at z = 1.32: from multi-band imaging to resolved maps, with the spectral fit and star-formation history of one pixel.

Prospector physics

Non-parametric continuity star-formation histories with redshift-dependent age bins, nebular emission, dust with energy balance, and AGN emission from either the FSPS torus or the Lyu et al. (2024) AGN and infrared templates.

Honest posteriors

Validated against high-precision reference fits and against direct Prospector + FSPS fits of the same pixels. The emulator's own uncertainty enters every likelihood, and pixels that do not converge are flagged.

Built for surveys

A survey mode for 105–106 pixels writes compact, resumable outputs, about 22 kB per pixel. A typical pixel takes about 30 seconds on one CPU core, so a million pixels fit in about five days on one 64-core node.

Images and resolved stellar-mass, star-formation and stellar-age maps of JADES 206183 at z = 1.32 and JADES 209962 at z = 2.23

Resolved maps

Stellar mass, star formation and stellar age for two JADES galaxies at z = 1.32 and 2.23, from thousands of independent pixel fits. Bulges, spiral arms, star-forming clumps and older regions appear directly in the data.


Left: emulator errors relative to FSPS over 91 filters, median 0.7 percent. Right: stellar mass per pixel from PhotoIFU against direct Prospector plus FSPS fits

Same answers as Prospector + FSPS

Over 52,000 photometry tests in 91 filters, the emulator matches FSPS to a median 0.7%, well inside typical photometric errors. Twenty-four JADES pixels fitted both ways with identical settings agree to a median 0.15σ in stellar mass.


Validated on JADES

Independent FSPS test sets, direct Prospector + FSPS fits, high-precision reference fits of pixels from the faintest to the brightest, and redshifts for 53 JADES galaxies.

PhotoIFU validation results
0.7% Median emulator error relative to FSPS, over 52,000 tests in 91 filters at 0 < z < 24; 98% within ±5%
0.15σ Median stellar-mass offset from direct Prospector + FSPS fits of the same pixels (0.2σ for star formation and dust)
0.08σ Sampling accuracy against high-precision reference fits, with posterior widths at least 97% of the reference
0.018 Photo-z scatter (NMAD) for 53 JADES galaxies from their integrated light, with no outliers among those with spectroscopic-precision redshifts
~30 s Per typical pixel on one CPU core, against hours for a classical Prospector fit

Get started

Public version: available now

The public version on GitHub (MIT License) runs the workflow of the paper: build or load a table of PSF-matched pixel photometry, fit it with a lightweight FSPS-based reference fitter, reconstruct resolved maps, find pixel populations with PCA and Gaussian-mixture clustering, and compare selected regions with the full host. Example data for JADES 206183 are included.

git clone https://github.com/ydzhuastro/photoifu.git && cd photoifu
python -m pip install -e .            # analysis only
python -m pip install -e ".[sed]"     # with the optional FSPS fitter

# maps, PCA/GMM clustering and region comparisons from the included tables
python examples/run_analysis_only.py

# the full public workflow, from pixel photometry to fitted maps
python examples/run_end_to_end_206183.py

Upgrade: coming soon

The upgrade adds the neural emulator, nested sampling, a built-in photo-z, 91 filters from Euclid, Roman, JWST, HST, Rubin and Subaru, and a resumable survey mode. It installs with pixi on macOS and Linux, from a laptop to an HPC cluster.

pixi install && pixi run get-fsps && pixi run get-eazy && pixi run test
export SPS_HOME=$PWD/external/fsps

# fit every pixel of one galaxy: posteriors, SEDs, star-formation histories
pixi run python -m photoifu.fit cut_image_206183.csv --sed-flux-scale 1000

# survey mode: parameters only, compact outputs, resumable
pixi run python -m photoifu.fit survey_pixels.csv --massive-mode --resilient-pool

Status: the upgrade is in active development and tested on JADES data; interfaces and product formats may still change. If you would like to use it before the release, get in touch. Feedback from the community is welcome.

GitHub: public version Contact me for early access to the upgrade

Cite PhotoIFU

If you use PhotoIFU or its maps in your work, please cite:

Zhu, Y., Rieke, M. J., Carreira, C., et al. 2026, PhotoIFU: NIRCam as a Photometric Integral Field Unit for Mapping Feedback in Galaxies, submitted to ApJ, arXiv:2607.23020

@ARTICLE{zhu2026photoifu,
       author = {{Zhu}, Yongda and {Rieke}, Marcia J. and {Carreira}, Courtney and {Sun}, Yang and {Ji}, Zhiyuan and {Lyu}, Jianwei and {Williams}, Christina C. and {Alberts}, Stacey and {Yuan}, Feng and {Zou}, Yuxuan and {Nakazato}, Yurina and {Bunker}, Andrew J. and {Tacchella}, Sandro and {Sun}, Fengwu and {Rieke}, George H. and {Egami}, Eiichi and {Chevallard}, Jacopo and {Hainline}, Kevin and {Ma}, Zheng and {P{\'e}rez-Gonz{\'a}lez}, Pablo G. and {Rinaldi}, Pierluigi and {Rodr{\'\i}guez Del Pino}, Bruno and {Shields}, Tristen and {Stone}, Meredith and {Willmer}, Christopher N.~A. and {Wu}, Zihao and {Yue}, Minghao and {Zhang}, Junyu},
        title = "{PhotoIFU: NIRCam as a Photometric Integral Field Unit for Mapping Feedback in Galaxies}",
      journal = {arXiv e-prints},
     keywords = {Astrophysics of Galaxies},
         year = 2026,
        month = jul,
          eid = {arXiv:2607.23020},
        pages = {arXiv:2607.23020},
          doi = {10.48550/arXiv.2607.23020},
archivePrefix = {arXiv},
       eprint = {2607.23020},
 primaryClass = {astro-ph.GA},
       adsurl = {https://ui.adsabs.harvard.edu/abs/2026arXiv260723020Z},
      adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}