Version History#
v1.5.2#
published on Aug 28, 2023.
able to add moving planets
v1.5.3#
published on Sep 8, 2023.
normalization of psfs
Users can now set the number of cores to use for parallel computing
feature allow user to ignore dust inside IWA
show the planet brightness unit
print planet brightness and dust brightness
turn on/off dust inside IWA
auto check multithreading module before using it in psf.py
v1.5.4#
published on Sep 12, 2023.
flip or not flip y-axis
you could choose lyot_mask_size in toycoronagraph_para.py
check planet order inputs are positive integers
v1.6.0#
published on Sep 14, 2023.
core_throughput plot
video of planet moving
optimate the parameter number
v1.6.1#
published on Sep 15, 2023.
complete python docstrings for all new features
v1.6.2#
published on Sep 16, 2023.
add_planet(res=…): number of points used for orbit calculations
example.fits is included in the PyPI package
docstring fixes (flip, res, return values)
v2.0.0#
published on Oct 12, 2026.
Scenes: several inputs on one grid, centred on the star (Scene), each made by a source module: a FITS image, an MCFOST model, a stellar wind (Thomson scattering), a coronal mass ejection (ported from astro_toolbox’s cme_imaging), planets, or your own module
observe(): a scene through one or more coronagraphs; the Result holds the final image of every input through every coronagraph, with plots (final images, radial profiles, each input’s share as 2-D maps, two sets of PSFs compared) and FITS files that load back
output units: physical (e.g. Jy/arcsec^2) or relative to the star (contrast per pixel, per arcsec^2, or to the peak of the star’s unocculted PSF)
the Lazuli telescope’s PSFs, computed with prysm: the telescope alone or with a vortex coronagraph
optics backends: a new optical system plugs in with register_backend
inner working angle of every coronagraph (Result.iwa: where a point source keeps half of its light), marked on profile plots and kept in the run’s FITS files
plot settings shared by every scene and result plot (unit, log, log_range, axis, dpi), with defaults in [display]; other keywords go to matplotlib (e.g. cmap, lw)
spatial method for any target: PSFs that change across the image, sampled where their shape changes, with the kernel size chosen for an error target and an error estimate for each image; “auto” picks the circular or spatial method from the target’s and the PSFs’ symmetry
circular method: the light beyond the image edge, out to the corners, is kept
TOML parameter files: one home per quantity, every value’s origin recorded, a JSON schema for editors; python -m toycoronagraph new | describe | migrate | schema | reference; old toycoronagraph_para.py files are still read
CME time series (observe.video) and planet videos as lossless WebM
faster reruns: radial PSFs memory-mapped and the spatial method’s models cached on disk, reused only if everything they were made from is the same
a warning when the pupil is sampled too coarsely (fewer than 5 pixels per lambda/D)
unit tests (1,280) with a coverage badge; documentation rebuilt for every module
needs Python 3.11 or newer