Skip to content

v1.0.0

Latest

Choose a tag to compare

@SilverRon SilverRon released this 06 Sep 01:00
· 1 commit to main since this release

gppy-gpu v1.0.0 — GPU-Accelerated Imaging Pipeline for 7DT/7DS

This release provides a production-grade, unattended pipeline for the 7-Day Transient program: directory watching → calibration → astrometry (SCAMP) → stacking → PSF matching & subtraction (HOTPANTS) → transient detection & photometry → product curation → Slack notifications. GPU offload via CuPy is supported; CPU-only fallback remains available.


✨ Highlights

  • End-to-end automation from folder watch to curated outputs under a reproducible directory structure.
  • Astrometry: Source Extractor (pre-catalog) → SCAMP → MissFITS header application.
  • Stacking with effective EGAIN/provenance recorded in headers.
  • PSF matching & subtraction via HOTPANTS with tiled kernels and mask propagation.
  • Photometry & diagnostics for single and stacked frames (*.cat, *.reg, PNG summaries).
  • Slack start/finish/failure notifications.
  • Optional GPU acceleration using CuPy (CUDA).

Entrypoints: run/routine/gpwatch_7DT_gain2750.py (watcher), run/routine/7DT_Routine_1x1_gain2750.py (main).


⚙️ Install / Upgrade

External binaries (on PATH)

  • Source Extractor (sex or source-extractor)
  • SCAMP and MissFITS
  • HOTPANTS
  • imhead (e.g., from wcstools)
  • (Optional) SAOImage DS9

Python

mamba create -n gppy-gpu python=3.11 -y
mamba activate gppy-gpu
pip install -r requirements.txt
# (Optional GPU)
# pip install cupy-cuda12x  # match your CUDA

Minimal config

Create/edit run/routine/path.json:

{
  "path_base": "/large_data/factory",
  "path_obsdata": "",
  "path_processed": "",
  "path_refcat": "",
  "path_ref_scamp": "",
  "path_log": ""
}

Leave empty strings to use defaults (see README).

Credentials: put tokens in config/keys.dat (do not commit) and add /config/keys.dat to .gitignore.


🚀 Quick Start

One-off processing

cd run/routine
python 7DT_Routine_1x1_gain2750.py 7DT07 /large_data/obsdata/7DT07/2024-04-23_gain2750

Continuous watch

cd run/routine
python gpwatch_7DT_gain2750.py 7DT07
# or run multiple sites via:
bash run/routine/gppy_tmux.sh

🧩 Compatibility & Known Issues

  • Python: ≥3.10 (3.11 recommended)
  • CUDA/CuPy: optional; install cupy build matching your CUDA.
  • OS: Linux recommended for full toolchain; macOS supported (CPU-only).
  • Known: transient detection module naming may change; ensure external binaries are on PATH.

If HOTPANTS subtraction is poor:

  • Relax -tl/-tu, adjust tiling (-nrx/-nry), verify masks are 0/1, confirm photometric scale consistency.

📚 Cite & Acknowledge

If you use gppy-gpu in a publication, please cite the tools (Source Extractor, SCAMP/MissFITS, HOTPANTS, wcstools) and acknowledge this repository (tag/commit). Consider adding a CITATION.cff file for GitHub’s “Cite this repository” button.

Project website: http://7ds.snu.ac.kr/


🆘 Support

  • Issues: GitHub Issues
  • Discussions: GitHub Discussions
  • Maintainer: Gregory S. H. Paek (gregorypaek94 [at] gmail [dot] com)