Skip to main content

Tool for generating synthetic elliptical ring structures

Project description

image

AstroDonut

AstroDonut is a Python package for generating synthetic elliptical ring structures, ideal for simulating protoplanetary or circumstellar disks such as HL Tauri.

Requirements

  • The package should be able to generate elliptcial rings(donuts) to simulate disk structures around young stellar objects (YSOs) to test telescope configurations, plan observations, and develop data reduction pipelines, astronomers need realistic yet flexible synthetic models of these disks.

  • The user should be able to define ring parameters such as:

    • Semi-major axis (a1)
    • Semi-minor axis (b1)
    • Eccentricity (ecc)
    • Inclination (inc)
    • Output array size (width, height)
  • The model should reflect radial intensity variation, where pixels closer to the center appear brighter, following a Gaussian distribution.

  • The package should be able to combine multiple rings and stack them together, to model more complex disk structures.

  • The package should offer a preview of the model with the help of matplotlib, plotting the model to allow for a quick visual inspection of the model.

  • The package should be able to export the model to a FITS format for use with observatory simulators.

    Dependecies

  • numpy: For the numerical calculations for generating the donut.

  • matplotlib: To plot the preview of the created model.

  • astropy: Employed to export the model into a FITS file.

User stories

Main use cases

Shannon is designing an observing program for the ELT to study planet formation. She wants to test if the telescope can detect gaps and rings in HL Tauri–like systems. Using AstroDonut, she generates a synthetic disk with five elliptical rings of varying radii, eccentricities, and inclinations. She exports the disk to a FITS file and uses ScopeSim to simulate ELT observations under realistic conditions.

Benjamin is writing a data processing pipeline for a simulator that will mimic ELT’s camera response. To test the pipeline, Benjamin needs realistic test data in FITS format. He uses AstroDonut to generate synthetic multi-ring disks, exports them to FITS, and runs them through the simulator pipeline. This helps him to identify edge cases where image artifacts or noise could affect disk detectability.

Edge use cases

During a parameter sweep, Lando sets ecc=1.5 by mistake. AstroDonut immediately raises a ValueError with a message: "Eccentricity must be < 1 for physical ellipses." This helps Lando correct the input without generating unphysical models or debugging cryptic errors.

Andreas wants to simulate whether a 0.01 AU-wide gap in a disk can be resolved by the ELT. They use AstroDonut to generate a single ultra-narrow elliptical ring (with a tiny b1 value). They then simulate the observation and process it to test if such a narrow feature can be detected.

Documentation

https://astrodonut.readthedocs.io/en/latest/

Pseudo code examples

import astrodonut as ad

ring1 = ad.generate_donut( a1=100, b1=60, ecc=0.2, inc=30, width=500, height=500 )

ring2 = ad.generate_donut( a1=150, b1=90, ecc=0.3, inc=30, width=500, height=500 )

combined_rings = ad.combine_donuts([ring1, ring2])

ad.preview(combined_rings)

ad.export_to_fits(combined_rings, 'combined_rings.fits')

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

astrodonut-0.1.0.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

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

astrodonut-0.1.0-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file astrodonut-0.1.0.tar.gz.

File metadata

  • Download URL: astrodonut-0.1.0.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.19

File hashes

Hashes for astrodonut-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ea2130f0adfdce6b2eed2d2c76e4d595a3fe53120d833b9171e00787217f8451
MD5 f81837cdf52a4e9615abffdd526fb1de
BLAKE2b-256 fe0473a1406f5f6673eb35c8f6661610da266a7b4df583228119facaaf716427

See more details on using hashes here.

File details

Details for the file astrodonut-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: astrodonut-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.19

File hashes

Hashes for astrodonut-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cf75b6fbd1a9ecd04ac0a608bdb8fd91acb0e02dc49ba17e22fe3c73979d4f3f
MD5 9fd39d5d3fe0d04358549de9ca032d0e
BLAKE2b-256 e8001746c096d9e178d569c759ef765e1dd2c675978d8961930c3001e70eca3d

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