Skip to main content

A GUI-assisted photometric contamination analysis tool.

Project description

Logo PHOTO-CAT

English · Italiano

Photometric Contamination Analyzer Tool

PHOTO-CAT builds a neighbour index from an astronomical catalogue and queries nearby sources that may contaminate selected photometric targets.

Download and usage · Input data · Troubleshooting

Python Platforms Runtime Interface


Overview

PHOTO-CAT is a local Python tool for catalogue-level photometric contamination analysis.

It can build a neighbour index from a source catalogue, query selected targets, and write a JSON summary containing contamination metrics and neighbouring sources that match the configured field-of-view and magnitude limits.

PHOTO-CAT is designed for reproducible local use. It includes beginner-friendly launchers, a graphical configuration window, automatic dependency setup, and project-local runtime handling so user/system Python installations are not modified.

Download and get started

  1. Download the latest release archive.
  2. Extract the archive.
  3. Run the starter for your operating system:
    • Windows: double-click START_WINDOWS.bat
    • macOS/Linux: open Terminal in the folder and run sh START_UNIX.sh
  4. Select your catalogue CSV in the graphical configurator.
  5. Check the detected column names.
  6. Click Save + run.

See Download and usage for a fuller walkthrough.

Features

  • Build a neighbour index from a photometric catalogue.
  • Query potential contaminating sources around selected targets.
  • Configure runs through a graphical interface.
  • Run the same workflow from a command-line interface for automation and remote systems.
  • Use either a targets CSV or a manual list of source IDs.
  • Validate input files, column names, output folders, and index paths.
  • Keep dependencies isolated inside the project .venv folder.
  • Use a project-local runtime fallback when no suitable Python is available.
  • Detect stale or moved virtual environments and rebuild them safely.
  • Produce readable console output and user-facing error messages.

Files

This distribution includes the following main files and folders:

  • README.md, the file you are currently reading.
  • README_IT.md, the Italian README.
  • START_WINDOWS.bat, the main Windows launcher.
  • START_UNIX.sh, the main macOS/Linux launcher.
  • config.yaml, the runtime configuration file managed by the GUI.
  • data/, example CSV files for quick testing.
  • docs/, user and maintainer documentation.
  • tests/, automated tests for configuration loading and the sample pipeline.
  • .github/workflows/, continuous integration and package publishing workflows.
  • scripts/, platform launcher helpers.
  • src/, the PHOTO-CAT Python source code.
  • LICENSE, the full GPL-3.0 license text.
  • REUSE.toml, SPDX/REUSE licensing metadata.
  • CITATION.cff, machine-readable citation metadata.
  • CODE_OF_CONDUCT.md, CONTRIBUTING.md, and SECURITY.md, repository community and maintenance files.

Runtime folders such as .venv/, .runtime/, logs, and output files are generated locally and should not be committed.

Input data

PHOTO-CAT expects CSV input files.

The default catalogue columns follow common Gaia-style names:

  • source_id
  • ra
  • dec
  • phot_g_mean_mag

Column names are case-sensitive and must match the CSV header exactly. If your files use different names, change them in the graphical configurator before running the pipeline.

See Input data for details.

Output

PHOTO-CAT writes generated index files and query results to the configured output directory.

The query stage produces a JSON file containing one result entry per processed target. Each entry includes the target data, contamination metrics, and the list of qualifying neighbouring sources.

See Pipeline and output for details.

Runtime and Python handling

PHOTO-CAT uses Python locally and avoids modifying the user’s system Python installation.

The launchers use an existing Python only when it is supported and passes the required checks. Supported versions are Python 3.10 through 3.13.

If no suitable Python is available, PHOTO-CAT uses a private runtime under .runtime/ and installs project dependencies only into .venv/.

PHOTO-CAT does not permanently modify PATH, upgrade user Python, uninstall user Python, or install packages into the user’s system Python.

See Runtime and Python for details.

Command-line usage

After installing the package, the unified CLI is available as photo-cat.

Common commands:

photo-cat configure
photo-cat run --config config.yaml
photo-cat build-index --config config.yaml
photo-cat query --config config.yaml
photo-cat doctor

The root launchers remain the recommended entry point for non-technical local users. The CLI is intended for automation, remote machines, and reproducible workflows. The doctor command supports both package-install checks and project-folder checks.

Documentation

User documentation:

Maintainer documentation:

Troubleshooting

For common startup, dependency, Tkinter, CSV, and virtual environment issues, see Troubleshooting.

Citation

Please include the following citation and acknowledgement in any published material that makes use of PHOTO-CAT.

Citation:

<paper reference>

Acknowledgement:

This research made use of PHOTO-CAT, a Python package for photometric contamination analysis (<paper reference>), developed with the support of Blue Skies Space Ltd. (www.bssl.space).

Replace <paper reference> with the final paper reference once available.

Acknowledgements

The authors gratefully acknowledge:

  • E. Drago for key contributions to the software implementation, testing workflow and the technical refinement of PHOTO-CAT.

  • J. Burgio for the design and creation of the PHOTO-CAT logo and visual identity.

License

PHOTO-CAT is distributed under the GNU General Public License v3.0 only. See LICENSE for the full license text.

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

photo_cat-1.0.1.tar.gz (61.1 kB view details)

Uploaded Source

Built Distribution

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

photo_cat-1.0.1-py3-none-any.whl (66.1 kB view details)

Uploaded Python 3

File details

Details for the file photo_cat-1.0.1.tar.gz.

File metadata

  • Download URL: photo_cat-1.0.1.tar.gz
  • Upload date:
  • Size: 61.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for photo_cat-1.0.1.tar.gz
Algorithm Hash digest
SHA256 df979fa8a0acce6bbfcef5da05db18495671ff714a787037e5fbab4481eeb9b7
MD5 78e7a9511dce89a731be2614a3e6b442
BLAKE2b-256 fb03a943b7799496c1699e5fcd9890ae511733184772f15d523ca8cdee0d428a

See more details on using hashes here.

Provenance

The following attestation bundles were made for photo_cat-1.0.1.tar.gz:

Publisher: publish-python-package.yml on Daddi14/photo-cat

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

File details

Details for the file photo_cat-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: photo_cat-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 66.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for photo_cat-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 87452f050b49b865269fe8391c3454e378f8146560b141e035d2dd86b7635c2a
MD5 4dcf9e6c3d563c0b0d9a8daec89c4ba1
BLAKE2b-256 eee6c2aa3788b469bec42a0e67d22da8b69bc3fd6e7001f291e99367bb41d45a

See more details on using hashes here.

Provenance

The following attestation bundles were made for photo_cat-1.0.1-py3-none-any.whl:

Publisher: publish-python-package.yml on Daddi14/photo-cat

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