Skip to content

Releases: PyAutoLabs/PyAutoGalaxy

September (v2023.9.18.4)

Choose a tag to compare

@Jammy2211 Jammy2211 released this 18 Sep 13:16

This release implements two major changes to PyAutoGalaxy:

Nautilus:

For the past ~3 years, model fitting has used the nested sampling algorithm Dynesty.

Recently, a new nested sampler, Nautilus (https://nautilus-sampler.readthedocs.io/en/stable/), was released, which uses machine-learning based techniques to improve sampling.

Extensive testing of modeling with Nautilus has revealed that it:

  • Speeds up the fitting of simple models by ~x2 - x3.
  • Speeds up the fitting of complex models by ~x3 - x5+.
  • Is more robust and reliable (e.g less likely to infer a local maxima, can fit more complex lens models).
  • Controlled predominantly by just one parameter n_live, so is simpler to use than dynesty.
  • Parallelization using Python multiprocessing is more efficient than dynesty and now supports proper error handling.

Nautilus is therefore now the default modeler, with all workspace examples updated accordingly.

NOTE: Nautilus does not currently support on-the-fly output and to get the results of a lens model mid-fit a user can instead cancel the run (e.g. via Ctrl + C) and restart it, where the maximum likelihood model will be output.

Results Output

Result metadata was previously output as .pickle files, which were not human readable and depended on project imports, hurting backwards compatibility.

All metadata is now output as human readable .json files and dataset as .fits files, making it a lot more straight forward for a user to interpret how data is stored internally within PyAutoGalaxy:

image

Here is an example of the search.json file:

image

All internal functionality (e.g. the sqlite database) has been updated to use these files.

All workspace documentation has been updated accordingly.

Other:

  • imaging/modeling/features split to make linear light profiles and multi gaussian expansion more visible.
  • Improved HowToGalaxy tutorial 5 on linear light profiles.
  • Power law with multipole parameterization updated, now supports multipoles of any order (#115).
  • Update certain requirements (e.g. PyYAML) to mitigate installation issues (PyAutoLabs/PyAutoConf#41).
  • Lots of quality-of-life improvements thoughout the code bases.

July (2023.5.7.2)

Choose a tag to compare

@Jammy2211 Jammy2211 released this 05 Jul 15:32

Bug fixes for new MacOS parallelization.

No new features.

June 2023 (2023.6.18.3)

Choose a tag to compare

@Jammy2211 Jammy2211 released this 18 Jun 22:27
  • Fixes bug so that the all_at_end_png and all_at_end_fits visualization configuration options now actually do output all images at the end of a model-fit as .png and .fits files.

  • Fixes bug so that pixelized source reconstructions are output as .fits files at the end.

  • Fixes bug so that visuals at end display correctly.

June 2023 (2023.6.12.5)

Choose a tag to compare

@Jammy2211 Jammy2211 released this 07 Jun 10:53
  • Visualization now outputs publication quality plots by default (e.g. less whitespace, bigger tick labels, units):

#96

  • Improved visualization of FitImaging and FitInterferometer subpots:

#96

  • Profiling tools implemented, will soon be added to workspace scripts:

#110

  • PowerLawMultipole method generalized to all multipoles:

#103

  • Critical Curves / Caustic plotter separating if there are more than one, and options to customize tangential and radial separately:

#92

  • SMBH and SMBHBinary super massive black hole mass profiles implemented:

#98
#99

  • Fix issues associated with visualization of linear light profiles and Basis objects:

#102

  • PowerLaw potential_2d_from method faster:

#108

  • ExternalShear now has potential_2d_from method implemented:

#109

  • Removal of a number of unused legacy features (e.g. hyper galaxy noise scaling).

March 2023 (2023.3.27.1)

March 2023 (2023.3.21.5)

Choose a tag to compare

@Jammy2211 Jammy2211 released this 21 Mar 18:50

This is the latest version, which primarily brings in stability upgrades and fixes bugs.

January 2023 (JOSS)

Choose a tag to compare

@Jammy2211 Jammy2211 released this 19 Jan 10:26

This is a major release, which is tied to the publication of PyAutoGalaxy in the Journal of Open Source software (JOSS).

This release updates many aspects of the API, switches configuration files to YAML, updates library requirements and adds new functionality.

API Changes:

  • All elliptical light profiles and mass profiles no longer prefix with the Ell tag, for conciseness / readability. For example, EllSersic is now just Sersic, and EllIsothermal is now Isothermal.
  • The Sph prefix is now a suffix, for example SphSersic is now SersicSph and SphIsothermal is now Isothermal.
  • The ``elliptical_componentsparameter has been shorted toell_comps`.
  • The ExternalShear input has been changed from elliptical_components to gamma_1 and gamma_2 (the shear is still defined the same, where in the olversion version elliptical_components[0] = gamma_2 and elliptical_components[1] = gamma_1.
  • The manual_ API for data structures (e.g. Array2D, Grid2D) has been removed.

Yaml Configs

Linear Light Profiles / Basis / Multi Gaussian Expansion

Linear light profiles are now supported, which are identical to ordinary light profiles but the intensity parameter is solved for via linear algebra. This means lower dimensionality models can be fitted, making dynesty converge more reliably:

https://github.com/Jammy2211/autogalaxy_workspace/blob/release/scripts/imaging/modeling/light_parametric_linear__mass_total__source_parametric_linear.py

Fits use a Basis object composed of many linear light profiles are supports, for example using a Multi Gaussian Expansion of 20+ Gaussians to fit the lens's light:

https://github.com/Jammy2211/autogalaxy_workspace/blob/release/scripts/imaging/modeling/light_parametric_linear__mass_total__source_parametric_linear.py

These features are described fully in the following HowToGalaxy tutorial:

https://github.com/Jammy2211/autogalaxy_workspace/blob/release/scripts/howtogalaxy/chapter_2_modeling/tutorial_5_linear_profiles.py

API Documentation

API documentation on readthedocs is now being written, which is still a work in progress but more useable than it was previously (https://pyautogalaxy.readthedocs.io/en/latest/api/data.html).

Requirements

The requirements of many projects have been updated to their latest versions, most notably dynesty v2.0.2.

July 07 2022 Release

Choose a tag to compare

@Jammy2211 Jammy2211 released this 10 Jul 21:56

2022.05.02.1

Choose a tag to compare

@Jammy2211 Jammy2211 released this 03 May 10:27

This is the first major release of PyAutoGalaxy, with full documentation of the software package.

Checkout the readthedocs and workspace for a complete overview of the package.