Skip to main content

PHOTfun - PSF Photometry and IFU Spectral Extraction Toolkit

Description

PHOTfun is a Python package designed to streamline PSF photometry workflows using the DAOPHOT-II suite. It provides a modern graphical interface powered by the Shiny web framework, along with the PHOTcube extension for extracting stellar spectra from IFU datacubes.

Designed with professional astronomers in mind, PHOTfun enables efficient PSF-based analysis and visualization even in highly crowded fields.


Installation

Before using PHOTfun, install the package from PyPI:

pip install photfun

Important: PHOTfun depends on the DAOPHOT-II suite (written in Fortran). If DAOPHOT is not already installed on your machine, you must use Docker to run the pre-packaged environment.


We provide a Docker image with PHOTfun, DAOPHOT-II, and all dependencies pre-installed:

  • Docker Image: ciquezada/photfun-daophot_wrapper

How to Install Docker (If DAOPHOT is Not Installed)

  1. Set up Docker’s apt repository:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
  1. Add the Docker repository:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. Install Docker:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. Start the Docker service:
sudo service docker start
  1. (Recommended) Add your user to the docker group to avoid using sudo every time:
sudo groupadd docker   # (if group doesn't exist)
sudo usermod -aG docker $USER

Log out and back in (or reboot) for group changes to take effect.

macOS

Use Homebrew:

brew install --cask docker

Then open the Docker.app from your Applications folder.

Windows

Download and install Docker Desktop from:

https://www.docker.com/products/docker-desktop/


Quick Start

If DAOPHOT-II or Docker are installed and available in your system’s $PATH, you can run PHOTfun directly after the pip install:

photfun

A local Shiny web application will launch, and a message similar to this will appear in your terminal:

INFO:     Started server process [3396]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:41693 (Press CTRL+C to quit)

Open the browser and visit the address that appears (e.g., http://0.0.0.0:41693) to begin using the interface. (if the IP didn't work, try the other IPs suggested during the running dialog in the terminal)


How to Use

PHOTfun GUI (PSF Photometry)

  1. Launch the app with photfun
  2. Upload your .fits images.
  3. Use the GUI to execute:
    • FIND, PICK, PHOT, PSF, ALLSTAR, etc.
  4. Visually inspect PSF stars and refine the sample interactively.

PHOTcube (IFU Spectra Extraction)

  1. Load a datacube in PHOTfun.
  2. The cube will be sliced into monochromatic images.
  3. PSF photometry is applied across the cube.
  4. Extracted fluxes are concatenated to form 1D stellar spectra.

Manual Use of DAOPHOT Inside Docker (Advanced)

You can open a shell inside the Docker container and run DAOPHOT directly:

docker run -it -v /path/to/your/data:/data ciquezada/photfun-daophot_wrapper /bin/bash

Then:

cd /data
daophot

This allows you to use DAOPHOT independently of the GUI, while keeping all dependencies encapsulated.


Dependencies

PHOTfun installs the following dependencies via pip:

  • astropy==7.0.1
  • faicons==0.2.2
  • imageio==2.37.0
  • joblib==1.4.2
  • matplotlib==3.10.1
  • nest_asyncio==1.6.0
  • numpy==2.2.5
  • pandas==2.2.3
  • Pillow==11.2.1
  • scipy==1.15.2
  • shiny==1.4.0
  • tqdm==4.67.1
  • docker

Credits

  • Developer: Carlos Quezada
  • Inspired by the work of Álvaro Valenzuela
  • Built on top of DAOPHOT-II by Peter Stetson

License

This project is licensed under the MIT License. See the LICENSE file for details.


Metadata

Release files for photfun 0.1.15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for photfun 0.1.15
File Size Uploaded
photfun-0.1.15.tar.gz 90.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for photfun 0.1.15
File Interpreter ABI Platform
photfun-0.1.15-py3-none-any.whl Python 3 none any Details

Total release size: 226.2 kB

Release files / photfun-0.1.15.tar.gz

Download URL photfun-0.1.15.tar.gz
Size 90.3 kB
Tags Source
SHA-256 checksum
How to use checksums
4fd7d11e530572a4cb2160ac9a67950dd702aa9513f329446301ea20e6603e9b
BLAKE2b-256 checksum
How to use checksums
146ea613a36e32a8d4a58c902affe5495d9d176e77b6ab8d79055a61c8fa40db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2025.

Transparency log

Release files / photfun-0.1.15-py3-none-any.whl

Download URL photfun-0.1.15-py3-none-any.whl
Size 135.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
28a96102959dbdadf51019ecf3fcda43db1277592c97115c9993dc17e76c67a3
BLAKE2b-256 checksum
How to use checksums
be0df80d2af0b581a6ff6dec4924a7859b3a0bcd15c12047c13b93728d3eca57
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.15 This release

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page