Skip to main content

PHOTfun is an interactive adaptation of the DAOPHOT

Project description

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.


Optional: Use Docker (Recommended if DAOPHOT is Not Installed)

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)

Ubuntu (Recommended: install Docker Desktop or follow official Docker guide)

  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.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

photfun-0.1.14.tar.gz (88.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

photfun-0.1.14-py3-none-any.whl (134.4 kB view details)

Uploaded Python 3

File details

Details for the file photfun-0.1.14.tar.gz.

File metadata

  • Download URL: photfun-0.1.14.tar.gz
  • Upload date:
  • Size: 88.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for photfun-0.1.14.tar.gz
Algorithm Hash digest
SHA256 4af43176098f3f194ff9fa51f38a579e365963ac5704ab7933815673ce5870b3
MD5 3a5006bca6967f318773ede248f632d6
BLAKE2b-256 131524e943f6e6d06a6c2b7f6377df6e06f36934c3a0622382f13ceaaca823ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for photfun-0.1.14.tar.gz:

Publisher: publish.yml on ciquezada/photfun

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file photfun-0.1.14-py3-none-any.whl.

File metadata

  • Download URL: photfun-0.1.14-py3-none-any.whl
  • Upload date:
  • Size: 134.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for photfun-0.1.14-py3-none-any.whl
Algorithm Hash digest
SHA256 5b72f2d8848612aa8d36485e4ede5481d20473c0696f6507315bfec73bfd17a7
MD5 b8fd8d43f8006794b509b66e4e988a8f
BLAKE2b-256 22011fb3b312e2a1356047b975cde2c2582633c87d6beb49d47786ff8d067d8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for photfun-0.1.14-py3-none-any.whl:

Publisher: publish.yml on ciquezada/photfun

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page