Skip to main content

Deprojection Image Software for Circumstellar Objects

Project description

WORK IN PROGRESS (WIP) This software is currently in early active development. Features and documentation are being updated frequently.

DISCO

Deprojection Image Software for Circumstellar Objects

A hybrid pipeline for the analysis and physical characterization of protoplanetary disks from ALMA FITS data.

Python PyTorch FastAPI React License: MIT PyPI


Overview

DISCO is an open-source tool for the interactive and automated analysis of protoplanetary disk observations. It combines a convolutional neural network (DiscoNet) for rapid geometric parameter prediction with a hybrid optimization strategy, enabling robust deprojection and radial profile extraction from FITS images.

It bridges scientific Python libraries with a modern web interface, offering two complementary modes of operation: a CLI pipeline for batch processing and a GUI for interactive exploration.

Citation: If you use DISCO in published work, please cite this repository and acknowledge Jorge Luis Guzmán Lazo, who developed the software within the YEMS Millennium Nucleus under the supervision of Sebastián Pérez Marquez and Camilo Gonzalez Ruilova.


Key Features

  • DiscoNet (CNN) — Convolutional neural network that predicts disk geometric parameters (inclination, position angle, outer/inner radius) directly from FITS images.
  • Hybrid Optimization (CLI) — Combines CNN predictions with fine-grained numerical refinement for physically consistent results.
  • Dual Visualization — Real-time rendering of deprojected images in both Cartesian and polar projections.
  • Batch Processing (CLI) — Automated pipeline supporting multiple targets and FITS files in a single run.
  • Beam Homogenization (CLI) — Convolves images to a target resolution for multi-epoch or multi-band consistency.
  • SIMBAD Metadata — A- Gaia Integration (CLI) — Corrects for proper motion of the target system using Gaia DR3 astrometry. utomatically queries object metadata (distance, spectral type) via the CDS SIMBAD service.
  • CSV Export — Outputs radial profiles and fitted parameters in tabular format.

Two Modes of Operation

Feature CLI Pipeline (disco-start) GUI (disco-start gui)
DiscoNet (CNN)
Interactive visualization
Batch processing
Multi-band support
Beam degradation
Ease of use Moderate High

The GUI mode is recommended for exploratory analysis and users new to disk deprojection. The CLI mode is designed for reproducible, automated pipelines.


Installation

Recommended: Use a dedicated virtual environment to avoid dependency conflicts.

# Create and activate a virtual environment
python -m venv disco-env
source disco-env/bin/activate      # Linux / macOS
disco-env\Scripts\activate         # Windows

# Install DISCO
pip install disco-astronomy

# Hint: Remember to update the package using
pip install --upgrade disco-astronomy

📦 Package on PyPI: pypi.org/project/disco-astronomy


Quick Start

Interactive GUI

Launch the web interface for interactive, user-friendly analysis:

disco-start gui

This opens a local server with a React-based UI for loading FITS files, adjusting parameters visually, and inspecting radial profiles in real time.

GUI Screenshot

View Modes Toggle between different visualization states of the disk:

  • Deproj: The deprojected (face-on) image based on current geometric parameters.
  • Model: The synthetic symmetrical model.
  • Residuals: The remaining flux after subtracting the model from the deprojected image, useful for spotting spirals or localized asymmetries.
  • Polar: The image mapped into polar coordinates (Radius vs. Azimuth).

GUI Screenshot Tools

Interactive Analysis Tools

  • Auto-Tune Geometry: A one-click execution that runs the mathematical optimization in the background to automatically predict and apply the optimal center offset, inclination, and position angle.
  • Cursor Probe (Inspector): Hovering over the 2D image perfectly syncs with the 1D charts, showing you the exact Radius, Intensity (in Kelvin), and X/Y offsets.
  • Fit Range Selection: Click and drag directly on the chart to select a specific radial range for Gaussian ring fitting. The stats widget will automatically update with the Peak Radius and FWHM.
  • Custom Markers: Pinpoint specific morphological features. Click "Add Marker" to place customized annotations (shapes, colors, and labels) directly onto the FITS image.

Real-Time Charts (1D Plots)

  • Radial Profile: Displays Intensity vs. Radius. Supports toggling between Linear and Logarithmic scales.
  • Cumulative Flux: An area chart showing the enclosed flux percentage as a function of radius.

Display Configuration

  • Colormaps & Stretch: Change colormaps (magma, inferno, viridis, etc.) and stretch functions (asinh, linear, log, sqrt) on the fly.
  • Intensity Limits: Manually set Vmin/Vmax values or use the Auto-percentile button to enhance faint disk structures.
  • Overlays: Toggle axes, colorbars, and adjustable intensity contours.

Export & Integration

  • Download FITS: Save the currently viewed state (e.g., the residual map) as a standard .fits file.
  • CSV Export: Download the precise 1D radial profile data points (Radius, Intensity, Brightness Temperature) directly to your machine.
  • Matplotlib Widget: Pop out the current view into an interactive, native Matplotlib window for publication-ready plotting.

Automated CLI Pipeline

For batch processing of one or more targets:

# Process a single object by identifier
disco-start AS209

# Process a group of object by identifier
disco-start path/to/group/

# Process multiple objects in separate
disco-start AS209 Elias29 DoAr25

# Process a FITS file directly
disco-start path/to/disk.fits

# Force geometric parameters and export CSV
disco-start AS209 --incl 35.0 --pa 120.0 --csv on

CLI Reference

usage: disco-start [-h] [--rout ROUT] [--rmin RMIN] [--incl INCL] [--pa PA]
                   [--beam BEAM] [--homobeam {on,off}] [--csv {on,off}]
                   [--debug {on,off}] [identifier ...]
Argument Description
identifier Object prefix(es) or path(s) to FITS file(s)
--rout ROUT Force outer radius (arcsec)
--rmin RMIN Force inner radius (arcsec)
--incl INCL Force disk inclination (degrees)
--pa PA Force position angle (degrees)
--beam BEAM Force target beam resolution (arcsec)
--homobeam {on,off} Enable/disable beam homogenization
--csv {on,off} Export radial profile as CSV
--debug {on,off} Save debug deprojected image

Tech Stack

Layer Technology
Backend Python 3.10+, FastAPI, Astropy, SciPy, NumPy
Deep Learning PyTorch (DiscoNet CNN)
Frontend React, Vite, BlueprintJS
Distribution PyPI (disco-astronomy)

License

This project is licensed under the MIT License.


Support & Contact

If you encounter issues or have questions, feel free to reach out:

📬 jorge.guzman.l@usach.cl

Bug reports and contributions via GitHub Issues are also welcome.

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

disco_astronomy-1.1.5.tar.gz (75.3 MB view details)

Uploaded Source

Built Distribution

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

disco_astronomy-1.1.5-py3-none-any.whl (75.3 MB view details)

Uploaded Python 3

File details

Details for the file disco_astronomy-1.1.5.tar.gz.

File metadata

  • Download URL: disco_astronomy-1.1.5.tar.gz
  • Upload date:
  • Size: 75.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for disco_astronomy-1.1.5.tar.gz
Algorithm Hash digest
SHA256 dc9c381c3a72d778b3e15ca63bea1dddb57d4d3ff8ab2622913efa640e80f538
MD5 2ecdb427e7a39e039a13e88483e229da
BLAKE2b-256 26f2d08dfa42608925859b77e88de1d5383dda79783b0cd40202918648a97a06

See more details on using hashes here.

File details

Details for the file disco_astronomy-1.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for disco_astronomy-1.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 226a77eb9072b7d26ddad535268b144fcb842fe1fcd95d7a7a2bebac803f1013
MD5 02c92a28ea9bc6e68792e9cc55894dca
BLAKE2b-256 cd2d23cc153d3964454edb7fda8bd827417e1c06744a978c5e8784b649a2953e

See more details on using hashes here.

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