From e43bd434190947500ff485e460952cb456762701 Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Fri, 2 Dec 2022 14:43:44 +0000 Subject: [PATCH] done --- CITATIONS.rst | 40 +- MANIFEST.in | 17 +- autocti/charge_injection/layout.py | 2 +- autocti/charge_injection/ou_sim_ci.py | 35 +- docs/general/citations.rst | 40 +- docs/general/configs.rst | 53 +- docs/general/credits.rst | 51 +- docs/general/workspace.rst | 119 ++-- docs/index.rst | 10 + files/citations.bib | 519 ++++++++---------- files/citations.md | 55 +- files/citations.tex | 186 +++---- .../charge_injection/test_ou_sim_ci.py | 40 +- 13 files changed, 558 insertions(+), 609 deletions(-) diff --git a/CITATIONS.rst b/CITATIONS.rst index 6fb3b8ca..d364f50c 100644 --- a/CITATIONS.rst +++ b/CITATIONS.rst @@ -1,20 +1,20 @@ -.. _references: - -Citations & References -====================== - -The bibtex entries for **PyAutoCTI** and its affiliated software packages can be found -`here `_, with example text for citing **PyAutoCTI** -in `.tex format here `_ format here and -`.md format here `_. - -As shown in the examples, we would greatly appreciate it if you mention **PyAutoCTI** by name and include a link to -our GitHub page! - -**PyAutoCTI** is published in the `Journal of Open Source Software `_ and its -entry in the above .bib file is under the citation key ``pyautocti``. - -You should also specify the non-linear search(es) you use in your analysis (e.g. Dynesty, Emcee, PySwarms, etc) in -the main body of text, and delete as appropriate any packages your analysis did not use. The citations.bib file includes -the citation key for all of these projects. - +.. _references: + +Citations & References +====================== + +The bibtex entries for **PyAutoCTI** and its affiliated software packages can be found +`here `_, with example text for citing **PyAutoCTI** +in `.tex format here `_ format here and +`.md format here `_. + +As shown in the examples, we would greatly appreciate it if you mention **PyAutoCTI** by name and include a link to +our GitHub page! + +**PyAutoCTI** is published in the `Journal of Open Source Software `_ and its +entry in the above .bib file is under the citation key ``pyautocti``. + +You should also specify the non-linear search(es) you use in your analysis (e.g. Dynesty, Emcee, PySwarms, etc) in +the main body of text, and delete as appropriate any packages your analysis did not use. The citations.bib file includes +the citation key for all of these projects. + diff --git a/MANIFEST.in b/MANIFEST.in index 33193bee..82614155 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,19 +1,22 @@ # MANIFEST.in exclude .gitignore -exclude .coverage -exclude .travis.yml -exclude docs include README.rst include setup.cfg +include CITATIONS.rst +include LICENSE +include requirements.txt +include optional_requirements.txt + prune .cache prune .git prune build prune dist -recursive-include autocti/config * + recursive-exclude *.egg-info * -recursive-include tests * -include requirements.txt -recursive-include data * + +recursive-include autocti/config * + +exclude docs global-exclude test_autocti recursive-exclude test_autocti * \ No newline at end of file diff --git a/autocti/charge_injection/layout.py b/autocti/charge_injection/layout.py index 2b80b66c..9eeea378 100644 --- a/autocti/charge_injection/layout.py +++ b/autocti/charge_injection/layout.py @@ -335,7 +335,7 @@ def injection_total(self) -> int: injection_range = self.injection_end - self.injection_start - for injection_total in range(50): + for injection_total in range(100): total_pixels = math.floor( (injection_total + 1) * (self.injection_on) diff --git a/autocti/charge_injection/ou_sim_ci.py b/autocti/charge_injection/ou_sim_ci.py index 14b8aa73..8130a6c1 100644 --- a/autocti/charge_injection/ou_sim_ci.py +++ b/autocti/charge_injection/ou_sim_ci.py @@ -1,3 +1,4 @@ +import math import numpy as np from typing import List, Union @@ -6,7 +7,6 @@ from autocti.instruments.euclid import euclid_util -from autocti.instruments import euclid from autoarray.layout import layout_util from autoarray.structures.arrays.uniform_2d import Array2D @@ -74,13 +74,35 @@ def quadrant_id_from(iquad: int) -> str: elif iquad == 3: return "G" +def injection_total_from( + injection_start: int, + injection_end: int, + injection_on: int , + injection_off: int, +): + """ + The total number of charge injection regions for these electronics settings. + """ + + injection_range = injection_end - injection_start + + for injection_total in range(100): + + total_pixels = math.floor( + (injection_total + 1) * (injection_on) + + injection_total * injection_off + ) + + if total_pixels > injection_range: + return injection_total + def charge_injection_array_from( ccd_id: str, quadrant_id: str, injection_norm: float, - injection_total: int = 5, - injection_start: int = 0, + injection_start: int = 16, + injection_end: int = 2066, injection_on: int = 200, injection_off: int = 200, parallel_size: int = 2086, @@ -129,6 +151,13 @@ def charge_injection_array_from( """ shape_native = (parallel_size, serial_size) + injection_total = injection_total_from( + injection_start=injection_start, + injection_end=injection_end, + injection_on=injection_on, + injection_off=injection_off, + ) + """ Specify the charge injection regions on the CCDPhase, which in this case is 5 equally spaced rectangular blocks. diff --git a/docs/general/citations.rst b/docs/general/citations.rst index 4286480f..d364f50c 100644 --- a/docs/general/citations.rst +++ b/docs/general/citations.rst @@ -1,20 +1,20 @@ -.. _references: - -Citations & References -====================== - -The bibtex entries for **PyAutoGalaxy** and its affiliated software packages can be found -`here `_, with example text for citing **PyAutoGalaxy** -in `.tex format here `_ format here and -`.md format here `_. - -As shown in the examples, we would greatly appreciate it if you mention **PyAutoGalaxy** by name and include a link to -our GitHub page! - -**PyAutoGalaxy** is published in the `Journal of Open Source Software `_ and its -entry in the above .bib file is under the citation key ``pyautogalaxy``. - -You should also specify the non-linear search(es) you use in your analysis (e.g. Dynesty, Emcee, PySwarms, etc) in -the main body of text, and delete as appropriate any packages your analysis did not use. The citations.bib file includes -the citation key for all of these projects. - +.. _references: + +Citations & References +====================== + +The bibtex entries for **PyAutoCTI** and its affiliated software packages can be found +`here `_, with example text for citing **PyAutoCTI** +in `.tex format here `_ format here and +`.md format here `_. + +As shown in the examples, we would greatly appreciate it if you mention **PyAutoCTI** by name and include a link to +our GitHub page! + +**PyAutoCTI** is published in the `Journal of Open Source Software `_ and its +entry in the above .bib file is under the citation key ``pyautocti``. + +You should also specify the non-linear search(es) you use in your analysis (e.g. Dynesty, Emcee, PySwarms, etc) in +the main body of text, and delete as appropriate any packages your analysis did not use. The citations.bib file includes +the citation key for all of these projects. + diff --git a/docs/general/configs.rst b/docs/general/configs.rst index 44cac708..82b03984 100644 --- a/docs/general/configs.rst +++ b/docs/general/configs.rst @@ -1,27 +1,26 @@ -Configs -======= - -**PyAutoLens** uses a number of configuration files that customize the default behaviour of the non-linear searches, -visualization and other aspects of **PyAutoLens**. - -Descriptions of every configuration file and their input parameters are provided in the ``README.rst`` in -the `config directory of the workspace `_ - - -Setup ------ - -By default, **PyAutoLens** looks for the config files in a ``config`` folder in the current working directory, which is -why we run autolens scripts from the ``autolens_workspace`` directory. - -The configuration path can also be set manually in a script using the project **PyAutoConf** and the following -command (the path to the ``output`` folder where the results of a non-linear search are stored is also set below): - -.. code-block:: bash - - from autoconf import conf - - conf.instance.push( - config_path="path/to/config", - output_path=f"path/to/output" - ) +Configs +======= + +**PyAutoCTI** uses a number of configuration files that customize the default behaviour of the non-linear searches, +visualization and other aspects of **PyAutoCTI**. + +Descriptions of every configuration file and their input parameters are provided in the ``README.rst`` in +the `config directory of the workspace `_ + +Setup +----- + +By default, **PyAutoCTI** looks for the config files in a ``config`` folder in the current working directory, which is +why we run autocti scripts from the ``autocti_workspace`` directory. + +The configuration path can also be set manually in a script using the project **PyAutoConf** and the following +command (the path to the ``output`` folder where the results of a non-linear search are stored is also set below): + +.. code-block:: bash + + from autoconf import conf + + conf.instance.push( + config_path="path/to/config", + output_path=f"path/to/output" + ) diff --git a/docs/general/credits.rst b/docs/general/credits.rst index bbe510cc..dcb77bce 100644 --- a/docs/general/credits.rst +++ b/docs/general/credits.rst @@ -1,35 +1,16 @@ -.. _credits: - - -Credits -------- - -**Developers**: - -`James Nightingale `_: Lead developer & PyAutoLens guru. - -`Richard Hayes `_: Lead developer & `PyAutoFit `_ guru. - -`Aristeidis Amvrosiadis `_: Interferometer Analysis. - -`Amy Etherington `_ : Magnification, Critical Curves and Caustic Calculations. - -Qiuhan He: NFW Profile Lensing Calculations. - -`Johnathan Frawley `_: Profiling, optimization and build server tools. - -`Ashley Kelly `_: Developer of `pyquad `_ for fast deflections computations. - -`Xiaoyue Cao `_: Analytic Ellipitcal Power-Law Deflection Angle Calculations. - -`Nan Li `_: Docker integration & support. - -**Code Donors**: - -`Andrew Robertson `_: Critical curve & caustic calculations. - -Mattia Negrello: Visibility models in the uv-plane via direct Fourier transforms. - -`Andrea Enia `_: Voronoi source-plane plotting tools. - -Conor O'Riordan : Broken Power-Law mass profile. +.. _credits: + + +Credits +------- + +**Developers**: + +`James Nightingale `_: Lead developer & PyAutoLens guru. + +`Richard Hayes `_: Lead developer & `PyAutoFit `_ guru. + +`Jacob Kegerreis `_: arCTIc + +Richard Massey: arCTIc + diff --git a/docs/general/workspace.rst b/docs/general/workspace.rst index 51cfd604..48f0e449 100644 --- a/docs/general/workspace.rst +++ b/docs/general/workspace.rst @@ -1,62 +1,57 @@ -.. _workspace: - -Workspace Tour -============== - -You should have downloaded and configured the `autolens workspace `_ -when you installed **PyAutoLens**. If you didn't, checkout the -`installation instructions `_ -for how to downloaded and configure the workspace. - -New users should begin by checking out the following parts of the workspace. - -HowToLens ---------- - -The **HowToLens** lecture series are a collection of Jupyter notebooks describing how to build a **PyAutoLens** model -fitting project and giving illustrations of different statistical methods and techniques. - -Checkout the -`tutorials section `_ for a -full description of the lectures and online examples of every notebook. - -Scripts / Notebooks -------------------- - -There are numerous example describing how to perform lensing calculations, lens modeling, and many other -**PyAutoLens** features. All examples are provided as Python scripts and Jupyter notebooks. - -A full description of the scripts available is given on -the `autolens workspace GitHub page `_. - -Config ------- - -Here, you'll find the configuration files used by **PyAutoLens** which customize: - - - The default settings used by every non-linear search. - - Visualization, including the backend used by *matplotlib*. - - The priors and notation configs associated with the light and mass profiles used for lens modeling. - - The behaviour of different (y,x) Cartesian grids used to perform lens calculations. - - The general.ini config which customizes other aspects of **PyAutoLens**. - -Checkout the `configuration `_ -section of the readthedocs for a complete description of every configuration file. - -Dataset -------- - -Contains the dataset's used to perform lens modeling. Example datasets using simulators included with the workspace -are included here by default. - -Output ------- - -The folder where lens modeling results are stored. - -SLaM ----- - -Advanced lens modeling pipelines that use the Source, Light and Mass (SLaM) approach to lens modeling. - -See `here `_ for an overview. \ No newline at end of file +.. _workspace: + +Workspace Tour +============== + +You should have downloaded and configured the `autocti workspace `_ +when you installed **PyAutoCTI**. + +If you didn't, checkout the +`installation instructions `_ +for how to downloaded and configure the workspace. + +The ``README.rst`` files distributed throughout the workspace describe every folder and file, and specify if +examples are for beginner or advanced users. + +New users should begin by checking out the following parts of the workspace. + +Scripts / Notebooks +------------------- + +There are numerous example describing how to perform ctiing calculations, cti modeling, and many other +**PyAutoCTI** features. All examples are provided as Python scripts and Jupyter notebooks. + +Descriptions of every configuration file and their input parameters are provided in the ``README.rst`` in +the `config directory of the workspace `_ + +Config +------ + +Here, you'll find the configuration files used by **PyAutoCTI** which customize: + + - The default settings used by every non-linear search. + - Visualization, including the backend used by *matplotlib*. + - The priors and notation configs associated with the light and mass profiles used for cti modeling. + - The behaviour of different (y,x) Cartesian grids used to perform cti calculations. + - The general.ini config which customizes other aspects of **PyAutoCTI**. + +Checkout the `configuration `_ +section of the readthedocs for a complete description of every configuration file. + +Dataset +------- + +Contains the dataset's used to perform cti modeling. Example datasets using simulators included with the workspace +are included here by default. + +Output +------ + +The folder where cti modeling results are stored. + +SLaM +---- + +Advanced cti modeling pipelines that use the Source, Light and Mass (SLaM) approach to cti modeling. + +See `here `_ for an overview. \ No newline at end of file diff --git a/docs/index.rst b/docs/index.rst index f4ff92b8..4ef29b2a 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -101,6 +101,16 @@ charge (e.g.a flow of electrons)! installation/source installation/troubleshooting +.. toctree:: + :caption: General: + :maxdepth: 1 + :hidden: + + general/workspace + general/configs + general/citations + general/credits + .. toctree:: :caption: API Reference: :maxdepth: 1 diff --git a/files/citations.bib b/files/citations.bib index de0ef20b..a50b756d 100644 --- a/files/citations.bib +++ b/files/citations.bib @@ -1,288 +1,231 @@ -@article{astropy1, -Adsnote = {Provided by the SAO/NASA Astrophysics Data System}, -Adsurl = {http://adsabs.harvard.edu/abs/2013A%26A...558A..33A}, -Archiveprefix = {arXiv}, -Author = {{Astropy Collaboration} and {Robitaille}, T.~P. and {Tollerud}, E.~J. and {Greenfield}, P. and {Droettboom}, M. and {Bray}, E. and {Aldcroft}, T. and {Davis}, M. and {Ginsburg}, A. and {Price-Whelan}, A.~M. and {Kerzendorf}, W.~E. and {Conley}, A. and {Crighton}, N. and {Barbary}, K. and {Muna}, D. and {Ferguson}, H. and {Grollier}, F. and {Parikh}, M.~M. and {Nair}, P.~H. and {Unther}, H.~M. and {Deil}, C. and {Woillez}, J. and {Conseil}, S. and {Kramer}, R. and {Turner}, J.~E.~H. and {Singer}, L. and {Fox}, R. and {Weaver}, B.~A. and {Zabalza}, V. and {Edwards}, Z.~I. and {Azalee Bostroem}, K. and {Burke}, D.~J. and {Casey}, A.~R. and {Crawford}, S.~M. and {Dencheva}, N. and {Ely}, J. and {Jenness}, T. and {Labrie}, K. and {Lim}, P.~L. and {Pierfederici}, F. and {Pontzen}, A. and {Ptak}, A. and {Refsdal}, B. and {Servillat}, M. and {Streicher}, O.}, -Doi = {10.1051/0004-6361/201322068}, -Eid = {A33}, -Eprint = {1307.6212}, -Journal = {A\&A}, -Keywords = {methods: data analysis, methods: miscellaneous, virtual observatory tools}, -Month = oct, -Pages = {A33}, -Primaryclass = {astro-ph.IM}, -Title = {{Astropy: A community Python package for astronomy}}, -Volume = 558, -Year = 2013, -Bdsk-Url-1 = {https://dx.doi.org/10.1051/0004-6361/201322068}} - -@article{astropy2, -Adsnote = {Provided by the SAO/NASA Astrophysics Data System}, -Adsurl = {https://ui.adsabs.harvard.edu/#abs/2018AJ....156..123T}, -Author = {{Price-Whelan}, A.~M. and {Sip{\H{o}}cz}, B.~M. and {G{\"u}nther}, H.~M. and {Lim}, P.~L. and {Crawford}, S.~M. and {Conseil}, S. and {Shupe}, D.~L. and {Craig}, M.~W. and {Dencheva}, N. and {Ginsburg}, A. and {VanderPlas}, J.~T. and {Bradley}, L.~D. and {P{\'e}rez-Su{\'a}rez}, D. and {de Val-Borro}, M. and {Paper Contributors}, (Primary and {Aldcroft}, T.~L. and {Cruz}, K.~L. and {Robitaille}, T.~P. and {Tollerud}, E.~J. and {Coordination Committee}, (Astropy and {Ardelean}, C. and {Babej}, T. and {Bach}, Y.~P. and {Bachetti}, M. and {Bakanov}, A.~V. and {Bamford}, S.~P. and {Barentsen}, G. and {Barmby}, P. and {Baumbach}, A. and {Berry}, K.~L. and {Biscani}, F. and {Boquien}, M. and {Bostroem}, K.~A. and {Bouma}, L.~G. and {Brammer}, G.~B. and {Bray}, E.~M. and {Breytenbach}, H. and {Buddelmeijer}, H. and {Burke}, D.~J. and {Calderone}, G. and {Cano Rodr{\'\i}guez}, J.~L. and {Cara}, M. and {Cardoso}, J.~V.~M. and {Cheedella}, S. and {Copin}, Y. and {Corrales}, L. and {Crichton}, D. and {D{\textquoteright}Avella}, D. and {Deil}, C. and {Depagne}, {\'E}. and {Dietrich}, J.~P. and {Donath}, A. and {Droettboom}, M. and {Earl}, N. and {Erben}, T. and {Fabbro}, S. and {Ferreira}, L.~A. and {Finethy}, T. and {Fox}, R.~T. and {Garrison}, L.~H. and {Gibbons}, S.~L.~J. and {Goldstein}, D.~A. and {Gommers}, R. and {Greco}, J.~P. and {Greenfield}, P. and {Groener}, A.~M. and {Grollier}, F. and {Hagen}, A. and {Hirst}, P. and {Homeier}, D. and {Horton}, A.~J. and {Hosseinzadeh}, G. and {Hu}, L. and {Hunkeler}, J.~S. and {Ivezi{\'c}}, {\v{Z}}. and {Jain}, A. and {Jenness}, T. and {Kanarek}, G. and {Kendrew}, S. and {Kern}, N.~S. and {Kerzendorf}, W.~E. and {Khvalko}, A. and {King}, J. and {Kirkby}, D. and {Kulkarni}, A.~M. and {Kumar}, A. and {Lee}, A. and {Lenz}, D. and {Littlefair}, S.~P. and {Ma}, Z. and {Macleod}, D.~M. and {Mastropietro}, M. and {McCully}, C. and {Montagnac}, S. and {Morris}, B.~M. and {Mueller}, M. and {Mumford}, S.~J. and {Muna}, D. and {Murphy}, N.~A. and {Nelson}, S. and {Nguyen}, G.~H. and {Ninan}, J.~P. and {N{\"o}the}, M. and {Ogaz}, S. and {Oh}, S. and {Parejko}, J.~K. and {Parley}, N. and {Pascual}, S. and {Patil}, R. and {Patil}, A.~A. and {Plunkett}, A.~L. and {Prochaska}, J.~X. and {Rastogi}, T. and {Reddy Janga}, V. and {Sabater}, J. and {Sakurikar}, P. and {Seifert}, M. and {Sherbert}, L.~E. and {Sherwood-Taylor}, H. and {Shih}, A.~Y. and {Sick}, J. and {Silbiger}, M.~T. and {Singanamalla}, S. and {Singer}, L.~P. and {Sladen}, P.~H. and {Sooley}, K.~A. and {Sornarajah}, S. and {Streicher}, O. and {Teuben}, P. and {Thomas}, S.~W. and {Tremblay}, G.~R. and {Turner}, J.~E.~H. and {Terr{\'o}n}, V. and {van Kerkwijk}, M.~H. and {de la Vega}, A. and {Watkins}, L.~L. and {Weaver}, B.~A. and {Whitmore}, J.~B. and {Woillez}, J. and {Zabalza}, V. and {Contributors}, (Astropy}, -Doi = {10.3847/1538-3881/aabc4f}, -Eid = {123}, -Journal = {AJ}, -Keywords = {methods: data analysis, methods: miscellaneous, methods: statistical, reference systems, Astrophysics - Instrumentation and Methods for Astrophysics}, -Month = Sep, -Pages = {123}, -Primaryclass = {astro-ph.IM}, -Title = {{The Astropy Project: Building an Open-science Project and Status of the v2.0 Core Package}}, -Volume = {156}, -Year = 2018, -Bdsk-Url-1 = {https://doi.org/10.3847/1538-3881/aabc4f} -} - -@article{PyLops, -abstract = {Linear operators and optimisation are at the core of many algorithms used in signal and image processing, remote sensing, and inverse problems. For small to medium-scale problems, existing software packages (e.g., MATLAB, Python numpy and scipy) allow for explicitly building dense (or sparse) matrices and performing algebraic operations (e.g., computation of matrix-vector products and manipulation of matrices) with syntax that closely represents their corresponding analytical forms. However, many real application, large-scale operators do not lend themselves to explicit matrix representations, usually forcing practitioners to forego of the convenient linear-algebra syntax available for their explicit-matrix counterparts. PyLops is an open-source Python library providing a flexible and scalable framework for the creation and combination of so-called linear operators, class-based entities that represent matrices and inherit their associated syntax convenience, but do not rely on the creation of explicit matrices. We show that PyLops operators can dramatically reduce the memory load and CPU computations compared to explicit-matrix calculations, while still allowing users to seamlessly use their existing knowledge of compact matrix-based syntax that scales to any problem size because no explicit matrices are required.}, -archivePrefix = {arXiv}, -arxivId = {1907.12349}, -author = {Ravasi, Matteo and Vasconcelos, Ivan}, -eprint = {1907.12349}, -file = {:home/jammy/Documents/Papers/Software/PyLops.pdf:pdf}, -title = {{PyLops -- A Linear-Operator Python Library for large scale optimization}}, -url = {http://arxiv.org/abs/1907.12349}, -year = {2019} -} - -@article{colossus, -abstract = {This paper introduces Colossus, a public, open-source python package for calculations related to cosmology, the large-scale structure (LSS) of matter in the universe, and the properties of dark matter halos. The code is designed to be fast and easy to use, with a coherent, well-documented user interface. The cosmology module implements Friedman-Lemaitre-Robertson-Walker cosmologies including curvature, relativistic species, and different dark energy equations of state, and provides fast computations of the linear matter power spectrum, variance, and correlation function. The LSS module is concerned with the properties of peaks in Gaussian random fields and halos in a statistical sense, including their peak height, peak curvature, halo bias, and mass function. The halo module deals with spherical overdensity radii and masses, density profiles, concentration, and the splashback radius. To facilitate the rapid exploration of these quantities, Colossus implements more than 40 different fitting functions from the literature. I discuss the core routines in detail, with particular emphasis on their accuracy. Colossus is available at bitbucket.org/bdiemer/colossus.}, -archivePrefix = {arXiv}, -arxivId = {1712.04512}, -author = {Diemer, Benedikt}, -doi = {10.3847/1538-4365/aaee8c}, -eprint = {1712.04512}, -file = {:home/jammy/Documents/Papers/Software/Collosus2018.pdf:pdf}, -issn = {0067-0049}, -journal = {The Astrophysical Journal Supplement Series}, -keywords = {cosmology,cosmology: theory,methods: numerical,methods,numerical,theory}, -number = {2}, -pages = {35}, -publisher = {IOP Publishing}, -title = {{COLOSSUS: A Python Toolkit for Cosmology, Large-scale Structure, and Dark Matter Halos}}, -url = {http://dx.doi.org/10.3847/1538-4365/aaee8c}, -volume = {239}, -year = {2018} -} - -@article{corner, - doi = {10.21105/joss.00024}, - url = {https://doi.org/10.21105/joss.00024}, - year = {2016}, - month = {jun}, - publisher = {The Open Journal}, - volume = {1}, - number = {2}, - pages = {24}, - author = {Daniel Foreman-Mackey}, - title = {corner.py: Scatterplot matrices in Python}, - journal = {The J. Open Source Softw.} -} -@article{dynesty, -abstract = {We present dynesty, a public, open-source, python package to estimate Bayesian posteriors and evidences (marginal likelihoods) using the dynamic nested sampling methods developed by Higson et al. By adaptively allocating samples based on posterior structure, dynamic nested sampling has the benefits of Markov chain Monte Carlo (MCMC) algorithms that focus exclusively on posterior estimation while retaining nested sampling's ability to estimate evidences and sample from complex, multimodal distributions. We provide an overview of nested sampling, its extension to dynamic nested sampling, the algorithmic challenges involved, and the various approaches taken to solve them in this and previous work. We then examine dynesty's performance on a variety of toy problems along with several astronomical applications. We find in particular problems dynesty can provide substantial improvements in sampling efficiency compared to popular MCMC approaches in the astronomical literature. More detailed statistical results related to nested sampling are also included in the appendix.}, -archivePrefix = {arXiv}, -arxivId = {1904.02180}, -author = {Speagle, Joshua S}, -doi = {10.1093/mnras/staa278}, -eprint = {1904.02180}, -file = {:home/jammy/Documents/Papers/PPLs/Dynesty.pdf:pdf}, -issn = {0035-8711}, -journal = {MNRAS}, -keywords = {data analysis,methods,statistical}, -number = {3}, -pages = {3132--3158}, -title = {{dynesty: a dynamic nested sampling package for estimating Bayesian posteriors and evidences}}, -volume = {493}, -year = {2020} -} -@article{emcee, -abstract = {We introduce a stable, well tested Python implementation of the affine-invariant ensemble sampler for Markov chain Monte Carlo (MCMC) proposed by Goodman {\&} Weare (2010). The code is open source and has already been used in several published projects in the astrophysics literature. The algorithm behind emcee has several advantages over traditional MCMC sampling methods and it has excellent performance as measured by the autocorrelation time (or function calls per independent sample). One major advantage of the algorithm is that it requires hand-tuning of only 1 or 2 parameters compared to {\$}\backslashsim N{\^{}}2{\$} for a traditional algorithm in an N-dimensional parameter space. In this document, we describe the algorithm and the details of our implementation and API. Exploiting the parallelism of the ensemble method, emcee permits any user to take advantage of multiple CPU cores without extra effort. The code is available online at http://dan.iel.fm/emcee under the MIT License.}, -archivePrefix = {arXiv}, -arxivId = {1202.3665}, -author = {Foreman-Mackey, Daniel and Hogg, David W. and Lang, Dustin and Goodman, Jonathan}, -doi = {10.1086/670067}, -eprint = {1202.3665}, -file = {:home/jammy/Documents/Papers/PPLs/Emcee.pdf:pdf}, -issn = {00046280}, -journal = {Publ. Astron. Soc. Pac.}, -number = {925}, -pages = {306--312}, -title = {{emcee : The MCMC Hammer }}, -volume = {125}, -year = {2013} -} -@article{matplotlib, - Author = {Hunter, J. D.}, - Title = {Matplotlib: A 2D graphics environment}, - Journal = {Comput Sci Eng}, - Volume = {9}, - Number = {3}, - Pages = {90--95}, - abstract = {Matplotlib is a 2D graphics package used for Python for - application development, interactive scripting, and publication-quality - image generation across user interfaces and operating systems.}, - publisher = {IEEE COMPUTER SOC}, - doi = {10.1109/MCSE.2007.55}, - year = 2007 -} -@article{numba, -abstract = {Dynamic, interpreted languages, like Python, are attractive for domain-experts and scientists experimenting with new ideas. However, the performance of the interpreter is of-ten a barrier when scaling to larger data sets. This paper presents a just-in-time compiler for Python that focuses in scientific and array-oriented computing. Starting with the simple syntax of Python, Numba compiles a subset of the language into efficient machine code that is comparable in performance to a traditional compiled language. In addi-tion, we share our experience in building a JIT compiler using LLVM[1].}, -author = {Lam, Siu Kwan and Pitrou, Antoine and Seibert, Stanley}, -doi = {10.1145/2833157.2833162}, -file = {:home/jammy/Documents/Papers/Software/numba{\_}sc15.pdf:pdf}, -isbn = {9781450340052}, -journal = {Proceedings of the Second Workshop on the LLVM Compiler Infrastructure in HPC - LLVM '15}, -keywords = {2,a jit for numeric,com-,compiler,jit,just-in-time,llvm,numba is a function-at-a-time,python}, -pages = {1--6}, -title = {{Numba: a LLVM-based Python JIT compiler}}, -url = {http://dl.acm.org/citation.cfm?doid=2833157.2833162}, -year = {2015} -} -@article{numpy, - author={S. {van der Walt} and S. C. {Colbert} and G. {Varoquaux}}, - doi={10.1109/MCSE.2011.37}, - journal={Comput Sci Eng}, - title={The NumPy Array2D: A Structure for Efficient Numerical Computation}, - year={2011}, - volume={13}, - number={2}, - pages={22-30},} -@article{pyautofit, - doi = {10.21105/joss.02550}, - url = {https://doi.org/10.21105/joss.02550}, - year = {2021}, - publisher = {The Open Journal}, - volume = {6}, - number = {58}, - pages = {2550}, - author = {Nightingale, J. W. and Hayes, R. G. and Griffiths, M.}, - title = {`PyAutoFit`: A Classy Probabilistic Programming Language for Model Composition and Fitting}, - journal = {J. Open Source Softw.} -} -@article{pyautolens, - doi = {10.21105/joss.02825}, - url = {https://doi.org/10.21105/joss.02825}, - year = {2021}, - publisher = {The Open Journal}, - volume = {6}, - number = {58}, - pages = {2825}, - author = {Nightingale, J. W. and Hayes, R. G. and Ashley Kelly and Aristeidis Amvrosiadis and Amy Etherington and Qiuhan He and Nan Li and XiaoYue Cao and Jonathan Frawley and Shaun Cole and Andrea Enia and Carlos S. Frenk and David R. Harvey and Ran Li and Richard J. Massey and Mattia Negrello and Andrew Robertson}, - title = {`PyAutoLens`: Open-Source Strong Gravitational Lensing}, - journal = {J. Open Source Softw.} -} -@article{pynufft, -abstract = {A Python non-uniform fast Fourier transform (PyNUFFT) package has been developed to accelerate multidimensional non-Cartesian image reconstruction on heterogeneous platforms. Since scientific computing with Python encompasses a mature and integrated environment, the time efficiency of the NUFFT algorithm has been a major obstacle to real-time non-Cartesian image reconstruction with Python. The current PyNUFFT software enables multi-dimensional NUFFT accelerated on a heterogeneous platform, which yields an efficient solution to many non-Cartesian imaging problems. The PyNUFFT also provides several solvers, including the conjugate gradient method, 1 total variation regularized ordinary least square (L1TV-OLS), and 1 total variation regularized least absolute deviation (L1TV-LAD). Metaprogramming libraries have been employed to accelerate PyNUFFT. The PyNUFFT package has been tested on multi-core central processing units (CPUs) and graphic processing units (GPUs), with acceleration factors of 6.3–9.5× on a 32-thread CPU platform and 5.4–13× on a GPU.}, -author = {Lin, Jyh Miin}, -doi = {10.3390/jimaging4030051}, -file = {:home/jammy/Documents/Papers/Software/jimaging-04-00051-v2.pdf:pdf}, -issn = {2313433X}, -journal = {Journal of Imaging}, -keywords = {Graphic processing unit (GPU),Heterogeneous system architecture (HSA),Magnetic resonance imaging (MRI),Multi-core system,Total variation (TV)}, -number = {3}, -pages = {1--22}, -title = {{Python non-uniform fast fourier transform (PyNUFFT): An accelerated non-cartesian MRI package on a heterogeneous platform (CPU/GPU)}}, -volume = {4}, -year = {2018} -} -@article{pyswarms, - author = {Lester James V. Miranda}, - title = "{P}y{S}warms, a research-toolkit for {P}article {S}warm {O}ptimization in {P}ython", - journal = {J. Open Source Softw.}, - year = {2018}, - volume = {3}, - issue = {21}, - doi = {10.21105/joss.00433}, - url = {https://doi.org/10.21105/joss.00433} -} - @book{python, - author = {Van Rossum, Guido and Drake, Fred L.}, - title = {Python 3 Reference Manual}, - year = {2009}, - isbn = {1441412697}, - publisher = {CreateSpace}, - address = {Scotts Valley, CA} -} -@article{scikit-image, - title={scikit-image: image processing in Python}, - author={Van der Walt, Stefan and Sch{\"o}nberger, Johannes L and Nunez-Iglesias, Juan and Boulogne, Fran{\c{c}}ois and Warner, Joshua D and Yager, Neil and Gouillart, Emmanuelle and Yu, Tony}, - journal={PeerJ}, - volume={2}, - pages={e453}, - year={2014}, - publisher={PeerJ Inc.} -} -@article{scikit-learn, - title={Scikit-learn: Machine Learning in {P}ython}, - author={Pedregosa, F. and Varoquaux, G. and Gramfort, A. and Michel, V. - and Thirion, B. and Grisel, O. and Blondel, M. and Prettenhofer, P. - and Weiss, R. and Dubourg, V. and Vanderplas, J. and Passos, A. and - Cournapeau, D. and Brucher, M. and Perrot, M. and Duchesnay, E.}, - journal={Journal of Machine Learning Research}, - volume={12}, - pages={2825--2830}, - year={2011} -} -@article{scipy, - author = {{Virtanen}, Pauli and {Gommers}, Ralf and {Oliphant}, - Travis E. and {Haberland}, Matt and {Reddy}, Tyler and - {Cournapeau}, David and {Burovski}, Evgeni and {Peterson}, Pearu - and {Weckesser}, Warren and {Bright}, Jonathan and {van der Walt}, - St{\'e}fan J. and {Brett}, Matthew and {Wilson}, Joshua and - {Jarrod Millman}, K. and {Mayorov}, Nikolay and {Nelson}, Andrew - R.~J. and {Jones}, Eric and {Kern}, Robert and {Larson}, Eric and - {Carey}, CJ and {Polat}, {\.I}lhan and {Feng}, Yu and {Moore}, - Eric W. and {Vand erPlas}, Jake and {Laxalde}, Denis and - {Perktold}, Josef and {Cimrman}, Robert and {Henriksen}, Ian and - {Quintero}, E.~A. and {Harris}, Charles R and {Archibald}, Anne M. - and {Ribeiro}, Ant{\^o}nio H. and {Pedregosa}, Fabian and - {van Mulbregt}, Paul and {Contributors}, SciPy 1. 0}, - title = "{SciPy 1.0: Fundamental Algorithms for Scientific - Computing in Python}", - journal = {Nature Methods}, - year = "2020", - volume={17}, - pages={261--272}, - adsurl = {https://rdcu.be/b08Wh}, - doi = {10.1038/s41592-019-0686-2}, -} -@misc{sqlite, - title={{SQLite}}, - url={https://www.sqlite.org/index.html}, - version={3.31.1}, - year={2020}, - author={Hipp, Richard D} -} -@ARTICLE{ultranest, - author = {{Buchner}, Johannes}, - title = "{UltraNest - a robust, general purpose Bayesian inference engine}", - journal = {The J. Open Source Softw.}, - keywords = {C, Monte Carlo, Python, Nested Sampling, C++, Bayesian inference, Fortran, Bayes factors, Statistics - Computation, Astrophysics - Instrumentation and Methods for Astrophysics}, - year = 2021, - month = apr, - volume = {6}, - number = {60}, - eid = {3001}, - pages = {3001}, - doi = {10.21105/joss.03001}, -archivePrefix = {arXiv}, - eprint = {2101.09604}, - primaryClass = {stat.CO}, - adsurl = {https://ui.adsabs.harvard.edu/abs/2021JOSS....6.3001B}, - adsnote = {Provided by the SAO/NASA Astrophysics Data System} -} -@article{zeus1, - title={zeus: A Python Implementation of the Ensemble Slice Sampling method}, - author={Minas Karamanis and Florian Beutler}, - year={2021}, - note={in prep} -} - -@article{zeus2, - title={Ensemble Slice Sampling}, - author={Minas Karamanis and Florian Beutler}, - year={2020}, - eprint={2002.06212}, - archivePrefix={arXiv}, - primaryClass={stat.ML} -} +@article{astropy1, +Adsnote = {Provided by the SAO/NASA Astrophysics Data System}, +Adsurl = {http://adsabs.harvard.edu/abs/2013A%26A...558A..33A}, +Archiveprefix = {arXiv}, +Author = {{Astropy Collaboration} and {Robitaille}, T.~P. and {Tollerud}, E.~J. and {Greenfield}, P. and {Droettboom}, M. and {Bray}, E. and {Aldcroft}, T. and {Davis}, M. and {Ginsburg}, A. and {Price-Whelan}, A.~M. and {Kerzendorf}, W.~E. and {Conley}, A. and {Crighton}, N. and {Barbary}, K. and {Muna}, D. and {Ferguson}, H. and {Grollier}, F. and {Parikh}, M.~M. and {Nair}, P.~H. and {Unther}, H.~M. and {Deil}, C. and {Woillez}, J. and {Conseil}, S. and {Kramer}, R. and {Turner}, J.~E.~H. and {Singer}, L. and {Fox}, R. and {Weaver}, B.~A. and {Zabalza}, V. and {Edwards}, Z.~I. and {Azalee Bostroem}, K. and {Burke}, D.~J. and {Casey}, A.~R. and {Crawford}, S.~M. and {Dencheva}, N. and {Ely}, J. and {Jenness}, T. and {Labrie}, K. and {Lim}, P.~L. and {Pierfederici}, F. and {Pontzen}, A. and {Ptak}, A. and {Refsdal}, B. and {Servillat}, M. and {Streicher}, O.}, +Doi = {10.1051/0004-6361/201322068}, +Eid = {A33}, +Eprint = {1307.6212}, +Journal = {A\&A}, +Keywords = {methods: data analysis, methods: miscellaneous, virtual observatory tools}, +Month = oct, +Pages = {A33}, +Primaryclass = {astro-ph.IM}, +Title = {{Astropy: A community Python package for astronomy}}, +Volume = 558, +Year = 2013, +Bdsk-Url-1 = {https://dx.doi.org/10.1051/0004-6361/201322068}} + +@article{astropy2, +Adsnote = {Provided by the SAO/NASA Astrophysics Data System}, +Adsurl = {https://ui.adsabs.harvard.edu/#abs/2018AJ....156..123T}, +Author = {{Price-Whelan}, A.~M. and {Sip{\H{o}}cz}, B.~M. and {G{\"u}nther}, H.~M. and {Lim}, P.~L. and {Crawford}, S.~M. and {Conseil}, S. and {Shupe}, D.~L. and {Craig}, M.~W. and {Dencheva}, N. and {Ginsburg}, A. and {VanderPlas}, J.~T. and {Bradley}, L.~D. and {P{\'e}rez-Su{\'a}rez}, D. and {de Val-Borro}, M. and {Paper Contributors}, (Primary and {Aldcroft}, T.~L. and {Cruz}, K.~L. and {Robitaille}, T.~P. and {Tollerud}, E.~J. and {Coordination Committee}, (Astropy and {Ardelean}, C. and {Babej}, T. and {Bach}, Y.~P. and {Bachetti}, M. and {Bakanov}, A.~V. and {Bamford}, S.~P. and {Barentsen}, G. and {Barmby}, P. and {Baumbach}, A. and {Berry}, K.~L. and {Biscani}, F. and {Boquien}, M. and {Bostroem}, K.~A. and {Bouma}, L.~G. and {Brammer}, G.~B. and {Bray}, E.~M. and {Breytenbach}, H. and {Buddelmeijer}, H. and {Burke}, D.~J. and {Calderone}, G. and {Cano Rodr{\'\i}guez}, J.~L. and {Cara}, M. and {Cardoso}, J.~V.~M. and {Cheedella}, S. and {Copin}, Y. and {Corrales}, L. and {Crichton}, D. and {D{\textquoteright}Avella}, D. and {Deil}, C. and {Depagne}, {\'E}. and {Dietrich}, J.~P. and {Donath}, A. and {Droettboom}, M. and {Earl}, N. and {Erben}, T. and {Fabbro}, S. and {Ferreira}, L.~A. and {Finethy}, T. and {Fox}, R.~T. and {Garrison}, L.~H. and {Gibbons}, S.~L.~J. and {Goldstein}, D.~A. and {Gommers}, R. and {Greco}, J.~P. and {Greenfield}, P. and {Groener}, A.~M. and {Grollier}, F. and {Hagen}, A. and {Hirst}, P. and {Homeier}, D. and {Horton}, A.~J. and {Hosseinzadeh}, G. and {Hu}, L. and {Hunkeler}, J.~S. and {Ivezi{\'c}}, {\v{Z}}. and {Jain}, A. and {Jenness}, T. and {Kanarek}, G. and {Kendrew}, S. and {Kern}, N.~S. and {Kerzendorf}, W.~E. and {Khvalko}, A. and {King}, J. and {Kirkby}, D. and {Kulkarni}, A.~M. and {Kumar}, A. and {Lee}, A. and {Lenz}, D. and {Littlefair}, S.~P. and {Ma}, Z. and {Macleod}, D.~M. and {Mastropietro}, M. and {McCully}, C. and {Montagnac}, S. and {Morris}, B.~M. and {Mueller}, M. and {Mumford}, S.~J. and {Muna}, D. and {Murphy}, N.~A. and {Nelson}, S. and {Nguyen}, G.~H. and {Ninan}, J.~P. and {N{\"o}the}, M. and {Ogaz}, S. and {Oh}, S. and {Parejko}, J.~K. and {Parley}, N. and {Pascual}, S. and {Patil}, R. and {Patil}, A.~A. and {Plunkett}, A.~L. and {Prochaska}, J.~X. and {Rastogi}, T. and {Reddy Janga}, V. and {Sabater}, J. and {Sakurikar}, P. and {Seifert}, M. and {Sherbert}, L.~E. and {Sherwood-Taylor}, H. and {Shih}, A.~Y. and {Sick}, J. and {Silbiger}, M.~T. and {Singanamalla}, S. and {Singer}, L.~P. and {Sladen}, P.~H. and {Sooley}, K.~A. and {Sornarajah}, S. and {Streicher}, O. and {Teuben}, P. and {Thomas}, S.~W. and {Tremblay}, G.~R. and {Turner}, J.~E.~H. and {Terr{\'o}n}, V. and {van Kerkwijk}, M.~H. and {de la Vega}, A. and {Watkins}, L.~L. and {Weaver}, B.~A. and {Whitmore}, J.~B. and {Woillez}, J. and {Zabalza}, V. and {Contributors}, (Astropy}, +Doi = {10.3847/1538-3881/aabc4f}, +Eid = {123}, +Journal = {AJ}, +Keywords = {methods: data analysis, methods: miscellaneous, methods: statistical, reference systems, Astrophysics - Instrumentation and Methods for Astrophysics}, +Month = Sep, +Pages = {123}, +Primaryclass = {astro-ph.IM}, +Title = {{The Astropy Project: Building an Open-science Project and Status of the v2.0 Core Package}}, +Volume = {156}, +Year = 2018, +Bdsk-Url-1 = {https://doi.org/10.3847/1538-3881/aabc4f} +} + +@article{corner, + doi = {10.21105/joss.00024}, + url = {https://doi.org/10.21105/joss.00024}, + year = {2016}, + month = {jun}, + publisher = {The Open Journal}, + volume = {1}, + number = {2}, + pages = {24}, + author = {Daniel Foreman-Mackey}, + title = {corner.py: Scatterplot matrices in Python}, + journal = {The J. Open Source Softw.} +} +@article{dynesty, +abstract = {We present dynesty, a public, open-source, python package to estimate Bayesian posteriors and evidences (marginal likelihoods) using the dynamic nested sampling methods developed by Higson et al. By adaptively allocating samples based on posterior structure, dynamic nested sampling has the benefits of Markov chain Monte Carlo (MCMC) algorithms that focus exclusively on posterior estimation while retaining nested sampling's ability to estimate evidences and sample from complex, multimodal distributions. We provide an overview of nested sampling, its extension to dynamic nested sampling, the algorithmic challenges involved, and the various approaches taken to solve them in this and previous work. We then examine dynesty's performance on a variety of toy problems along with several astronomical applications. We find in particular problems dynesty can provide substantial improvements in sampling efficiency compared to popular MCMC approaches in the astronomical literature. More detailed statistical results related to nested sampling are also included in the appendix.}, +archivePrefix = {arXiv}, +arxivId = {1904.02180}, +author = {Speagle, Joshua S}, +doi = {10.1093/mnras/staa278}, +eprint = {1904.02180}, +file = {:home/jammy/Documents/Papers/PPLs/Dynesty.pdf:pdf}, +issn = {0035-8711}, +journal = {MNRAS}, +keywords = {data analysis,methods,statistical}, +number = {3}, +pages = {3132--3158}, +title = {{dynesty: a dynamic nested sampling package for estimating Bayesian posteriors and evidences}}, +volume = {493}, +year = {2020} +} +@article{emcee, +abstract = {We introduce a stable, well tested Python implementation of the affine-invariant ensemble sampler for Markov chain Monte Carlo (MCMC) proposed by Goodman {\&} Weare (2010). The code is open source and has already been used in several published projects in the astrophysics literature. The algorithm behind emcee has several advantages over traditional MCMC sampling methods and it has excellent performance as measured by the autocorrelation time (or function calls per independent sample). One major advantage of the algorithm is that it requires hand-tuning of only 1 or 2 parameters compared to {\$}\backslashsim N{\^{}}2{\$} for a traditional algorithm in an N-dimensional parameter space. In this document, we describe the algorithm and the details of our implementation and API. Exploiting the parallelism of the ensemble method, emcee permits any user to take advantage of multiple CPU cores without extra effort. The code is available online at http://dan.iel.fm/emcee under the MIT License.}, +archivePrefix = {arXiv}, +arxivId = {1202.3665}, +author = {Foreman-Mackey, Daniel and Hogg, David W. and Lang, Dustin and Goodman, Jonathan}, +doi = {10.1086/670067}, +eprint = {1202.3665}, +file = {:home/jammy/Documents/Papers/PPLs/Emcee.pdf:pdf}, +issn = {00046280}, +journal = {Publ. Astron. Soc. Pac.}, +number = {925}, +pages = {306--312}, +title = {{emcee : The MCMC Hammer }}, +volume = {125}, +year = {2013} +} +@article{matplotlib, + Author = {Hunter, J. D.}, + Title = {Matplotlib: A 2D graphics environment}, + Journal = {Comput Sci Eng}, + Volume = {9}, + Number = {3}, + Pages = {90--95}, + abstract = {Matplotlib is a 2D graphics package used for Python for + application development, interactive scripting, and publication-quality + image generation across user interfaces and operating systems.}, + publisher = {IEEE COMPUTER SOC}, + doi = {10.1109/MCSE.2007.55}, + year = 2007 +} +@article{numba, +abstract = {Dynamic, interpreted languages, like Python, are attractive for domain-experts and scientists experimenting with new ideas. However, the performance of the interpreter is of-ten a barrier when scaling to larger data sets. This paper presents a just-in-time compiler for Python that focuses in scientific and array-oriented computing. Starting with the simple syntax of Python, Numba compiles a subset of the language into efficient machine code that is comparable in performance to a traditional compiled language. In addi-tion, we share our experience in building a JIT compiler using LLVM[1].}, +author = {Lam, Siu Kwan and Pitrou, Antoine and Seibert, Stanley}, +doi = {10.1145/2833157.2833162}, +file = {:home/jammy/Documents/Papers/Software/numba{\_}sc15.pdf:pdf}, +isbn = {9781450340052}, +journal = {Proceedings of the Second Workshop on the LLVM Compiler Infrastructure in HPC - LLVM '15}, +keywords = {2,a jit for numeric,com-,compiler,jit,just-in-time,llvm,numba is a function-at-a-time,python}, +pages = {1--6}, +title = {{Numba: a LLVM-based Python JIT compiler}}, +url = {http://dl.acm.org/citation.cfm?doid=2833157.2833162}, +year = {2015} +} +@article{numpy, + author={S. {van der Walt} and S. C. {Colbert} and G. {Varoquaux}}, + doi={10.1109/MCSE.2011.37}, + journal={Comput Sci Eng}, + title={The NumPy Array2D: A Structure for Efficient Numerical Computation}, + year={2011}, + volume={13}, + number={2}, + pages={22-30},} +@article{pyautofit, + doi = {10.21105/joss.02550}, + url = {https://doi.org/10.21105/joss.02550}, + year = {2021}, + publisher = {The Open Journal}, + volume = {6}, + number = {58}, + pages = {2550}, + author = {Nightingale, J. W. and Hayes, R. G. and Griffiths, M.}, + title = {`PyAutoFit`: A Classy Probabilistic Programming Language for Model Composition and Fitting}, + journal = {J. Open Source Softw.} +} + +@article{pyswarms, + author = {Lester James V. Miranda}, + title = "{P}y{S}warms, a research-toolkit for {P}article {S}warm {O}ptimization in {P}ython", + journal = {J. Open Source Softw.}, + year = {2018}, + volume = {3}, + issue = {21}, + doi = {10.21105/joss.00433}, + url = {https://doi.org/10.21105/joss.00433} +} + @book{python, + author = {Van Rossum, Guido and Drake, Fred L.}, + title = {Python 3 Reference Manual}, + year = {2009}, + isbn = {1441412697}, + publisher = {CreateSpace}, + address = {Scotts Valley, CA} +} +@article{scikit-image, + title={scikit-image: image processing in Python}, + author={Van der Walt, Stefan and Sch{\"o}nberger, Johannes L and Nunez-Iglesias, Juan and Boulogne, Fran{\c{c}}ois and Warner, Joshua D and Yager, Neil and Gouillart, Emmanuelle and Yu, Tony}, + journal={PeerJ}, + volume={2}, + pages={e453}, + year={2014}, + publisher={PeerJ Inc.} +} +@article{scikit-learn, + title={Scikit-learn: Machine Learning in {P}ython}, + author={Pedregosa, F. and Varoquaux, G. and Gramfort, A. and Michel, V. + and Thirion, B. and Grisel, O. and Blondel, M. and Prettenhofer, P. + and Weiss, R. and Dubourg, V. and Vanderplas, J. and Passos, A. and + Cournapeau, D. and Brucher, M. and Perrot, M. and Duchesnay, E.}, + journal={Journal of Machine Learning Research}, + volume={12}, + pages={2825--2830}, + year={2011} +} +@article{scipy, + author = {{Virtanen}, Pauli and {Gommers}, Ralf and {Oliphant}, + Travis E. and {Haberland}, Matt and {Reddy}, Tyler and + {Cournapeau}, David and {Burovski}, Evgeni and {Peterson}, Pearu + and {Weckesser}, Warren and {Bright}, Jonathan and {van der Walt}, + St{\'e}fan J. and {Brett}, Matthew and {Wilson}, Joshua and + {Jarrod Millman}, K. and {Mayorov}, Nikolay and {Nelson}, Andrew + R.~J. and {Jones}, Eric and {Kern}, Robert and {Larson}, Eric and + {Carey}, CJ and {Polat}, {\.I}lhan and {Feng}, Yu and {Moore}, + Eric W. and {Vand erPlas}, Jake and {Laxalde}, Denis and + {Perktold}, Josef and {Cimrman}, Robert and {Henriksen}, Ian and + {Quintero}, E.~A. and {Harris}, Charles R and {Archibald}, Anne M. + and {Ribeiro}, Ant{\^o}nio H. and {Pedregosa}, Fabian and + {van Mulbregt}, Paul and {Contributors}, SciPy 1. 0}, + title = "{SciPy 1.0: Fundamental Algorithms for Scientific + Computing in Python}", + journal = {Nature Methods}, + year = "2020", + volume={17}, + pages={261--272}, + adsurl = {https://rdcu.be/b08Wh}, + doi = {10.1038/s41592-019-0686-2}, +} +@misc{sqlite, + title={{SQLite}}, + url={https://www.sqlite.org/index.html}, + version={3.31.1}, + year={2020}, + author={Hipp, Richard D} +} +@ARTICLE{ultranest, + author = {{Buchner}, Johannes}, + title = "{UltraNest - a robust, general purpose Bayesian inference engine}", + journal = {The J. Open Source Softw.}, + keywords = {C, Monte Carlo, Python, Nested Sampling, C++, Bayesian inference, Fortran, Bayes factors, Statistics - Computation, Astrophysics - Instrumentation and Methods for Astrophysics}, + year = 2021, + month = apr, + volume = {6}, + number = {60}, + eid = {3001}, + pages = {3001}, + doi = {10.21105/joss.03001}, +archivePrefix = {arXiv}, + eprint = {2101.09604}, + primaryClass = {stat.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2021JOSS....6.3001B}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} +@article{zeus1, + title={zeus: A Python Implementation of the Ensemble Slice Sampling method}, + author={Minas Karamanis and Florian Beutler}, + year={2021}, + note={in prep} +} + +@article{zeus2, + title={Ensemble Slice Sampling}, + author={Minas Karamanis and Florian Beutler}, + year={2020}, + eprint={2002.06212}, + archivePrefix={arXiv}, + primaryClass={stat.ML} +} diff --git a/files/citations.md b/files/citations.md index aad2a048..f24b8ba0 100644 --- a/files/citations.md +++ b/files/citations.md @@ -1,30 +1,27 @@ -**Insert in the main body of the paper:** - -We use the lens modeling software `PyAutoLens` https://github.com/Jammy2211/PyAutoLens) [@pyautolens] [@Nightingale2015] [@Nightingale2018] to... - -**At the end of the paper (delete as appropriate, see https://pyautofit.readthedocs.io/en/latest/general/citations.html):** - -# Software Citations - -This work uses the following software packages: - -- `Astropy` https://github.com/astropy/astropy [@astropy1] [@astropy2] -- `Colossus` https://bitbucket.org/bdiemer/colossus/src/master/ [@colossus] -- `corner.py` https://github.com/dfm/corner.py [@corner] -- `dynesty` https://github.com/joshspeagle/dynesty [@dynesty] -- `emcee` https://github.com/dfm/emcee [@emcee] -- `matplotlib` https://github.com/matplotlib/matplotlib [@matplotlib] -- `numba` https://github.com/numba/numba [@numba] -- `NumPy` https://github.com/numpy/numpy [@numpy] -- `PyAutoFit` https://github.com/rhayes777/PyAutoFit [@pyautofit] -- `PyAutoLens` https://github.com/Jammy2211/PyAutoLens [@Nightingale2015] [@Nightingale2018] [@pyautolens] -- `PyLops` https://github.com/equinor/pylops [@pylops] -- `PyNUFFT` https://github.com/jyhmiinlin/pynufft [@pynufft] -- `PySwarms` https://github.com/ljvmiranda921/pyswarms [@pyswarms] -- `Python` https://www.python.org/ [@python] -- `scikit-image` https://github.com/scikit-image/scikit-image [@scikit-image] -- `scikit-learn` https://github.com/scikit-learn/scikit-learn [@scikit-learn] -- `Scipy` https://github.com/scipy/scipy [@scipy] -- `SQLite` https://www.sqlite.org/index.html [@sqlite] -- `UltraNest` https://github.com/JohannesBuchner/UltraNest [@ultranest] +**Insert in the main body of the paper:** + +We use the CTI calibration software `PyAutoCTI` https://github.com/Jammy2211/PyAutoCTI) [@pyautocti] [@Nightingale2023] to... + +**At the end of the paper (delete as appropriate, see https://pyautofit.readthedocs.io/en/latest/general/citations.html):** + +# Software Citations + +This work uses the following software packages: + +- `Astropy` https://github.com/astropy/astropy [@astropy1] [@astropy2] +- `corner.py` https://github.com/dfm/corner.py [@corner] +- `dynesty` https://github.com/joshspeagle/dynesty [@dynesty] +- `emcee` https://github.com/dfm/emcee [@emcee] +- `matplotlib` https://github.com/matplotlib/matplotlib [@matplotlib] +- `numba` https://github.com/numba/numba [@numba] +- `NumPy` https://github.com/numpy/numpy [@numpy] +- `PyAutoFit` https://github.com/rhayes777/PyAutoFit [@pyautofit] +- `PyAutoCTI` https://github.com/rhayes777/PyAutoCTI [@pyautocti] +- `PySwarms` https://github.com/ljvmiranda921/pyswarms [@pyswarms] +- `Python` https://www.python.org/ [@python] +- `scikit-image` https://github.com/scikit-image/scikit-image [@scikit-image] +- `scikit-learn` https://github.com/scikit-learn/scikit-learn [@scikit-learn] +- `Scipy` https://github.com/scipy/scipy [@scipy] +- `SQLite` https://www.sqlite.org/index.html [@sqlite] +- `UltraNest` https://github.com/JohannesBuchner/UltraNest [@ultranest] - `Zeus` https://github.com/minaskar/zeus [@zeus1] [@zeus2] \ No newline at end of file diff --git a/files/citations.tex b/files/citations.tex index e4911af9..5be54f49 100644 --- a/files/citations.tex +++ b/files/citations.tex @@ -1,102 +1,86 @@ -**Insert in the main body of the paper:** - -We use the lens modeling software \textt{PyAutoLens} \footnote{https://github.com/Jammy2211/PyAutoLens} \citep{pyautolens, Nightingale2015, Nightingale2018} to... - -**At the end of the paper (delete as appropriate, see https://pyautolens.readthedocs.io/en/latest/general/citations.html):** - -\section*{Software Citations} - -This work uses the following software packages: - -\begin{itemize} - -\item -\href{https://github.com/astropy/astropy}{\textt{Astropy}} -\citep{astropy1, astropy2} - -\item -\href{https://bitbucket.org/bdiemer/colossus/src/master/}{\textt{Colossus}} -\citep{colossus} - -\item -\href{https://github.com/dfm/corner.py}{\textt{corner.py}} -\citep{corner} - -\item -\href{https://github.com/joshspeagle/dynesty}{\textt{dynesty}} -\citep{dynesty} - -\item -\href{https://github.com/dfm/emcee}{\textt{emcee}} -\citep{emcee} - -\item -\href{https://github.com/matplotlib/matplotlib}{\textt{matplotlib}} -\citep{matplotlib} - -\item -\href{numba` https://github.com/numba/numba}{\textt{numba}} -\citep{numba} - -\item -\href{https://github.com/numpy/numpy}{\textt{NumPy}} -\citep{numpy} - -\item -\href{https://github.com/rhayes777/PyAutoFit}{\textt{PyAutoFit}} -\citep{pyautofit} - -\item -\href{https://github.com/Jammy2211/PyAutoLens}{\textt{PyAutoLens}} -\citep{Nightingale2015, Nightingale2018, pyautolens} - -\item -\href{https://github.com/equinor/pylops}{\textt{PyLops}} -\citep{pylops} - -\item -\href{https://github.com/JohannesBuchner/PyMultiNest}{\textt{PyMultiNest}} -\citep{multinest, pymultinest} - -\item -\href{https://github.com/jyhmiinlin/pynufft}{\textt{PyNUFFT}} -\citep{pynufft} - -\item -\href{https://github.com/AshKelly/pyquad}{\textt{pyquad}} -\citep{pyquad} - -\item -\href{https://github.com/ljvmiranda921/pyswarms}{\textt{PySwarms}} -\citep{pyswarms} - -\item -\href{https://www.python.org/}{\textt{Python}} -\citep{python} - -\item -\href{https://github.com/scikit-image/scikit-image}{\textt{scikit-image}} -\citep{scikit-image} - -\item -\href{https://github.com/scikit-learn/scikit-learn}{\textt{scikit-learn}} -\citep{scikit-learn} - -\item -\href{https://github.com/scipy/scipy}{\textt{Scipy}} -\citep{scipy} - -\item -\href{https://www.sqlite.org/index.html} -\citep{sqlite} - -\item -\href{https://github.com/JohannesBuchner/UltraNest}{\textt{UltraNest}} -\citep{ultranest} - -\item -\href{https://github.com/minaskar/zeus}{\textt{zeus}} -\citep{zeus1, zeus2} - - +**Insert in the main body of the paper:** + +We use the cti modeling software \textt{PyAutoCTI} \footnote{https://github.com/Jammy2211/PyAutoCTI} \citep{pyautocti} to... + +**At the end of the paper (delete as appropriate, see https://pyautocti.readthedocs.io/en/latest/general/citations.html):** + +\section*{Software Citations} + +This work uses the following software packages: + +\begin{itemize} + +\item +\href{https://github.com/astropy/astropy}{\textt{Astropy}} +\citep{astropy1, astropy2} + +\item +\href{https://github.com/dfm/corner.py}{\textt{corner.py}} +\citep{corner} + +\item +\href{https://github.com/joshspeagle/dynesty}{\textt{dynesty}} +\citep{dynesty} + +\item +\href{https://github.com/dfm/emcee}{\textt{emcee}} +\citep{emcee} + +\item +\href{https://github.com/matplotlib/matplotlib}{\textt{matplotlib}} +\citep{matplotlib} + +\item +\href{numba` https://github.com/numba/numba}{\textt{numba}} +\citep{numba} + +\item +\href{https://github.com/numpy/numpy}{\textt{NumPy}} +\citep{numpy} + +\item +\href{https://github.com/rhayes777/PyAutoFit}{\textt{PyAutoFit}} +\citep{pyautofit} + +\item +\href{https://github.com/Jammy2211/PyAutoCTI}{\textt{PyAutoCTI}} +\citep{Nightingale2015, Nightingale2018, pyautocti} + +\item +\href{https://github.com/jyhmiinlin/pynufft}{\textt{PyNUFFT}} +\citep{pynufft} + +\item +\href{https://github.com/ljvmiranda921/pyswarms}{\textt{PySwarms}} +\citep{pyswarms} + +\item +\href{https://www.python.org/}{\textt{Python}} +\citep{python} + +\item +\href{https://github.com/scikit-image/scikit-image}{\textt{scikit-image}} +\citep{scikit-image} + +\item +\href{https://github.com/scikit-learn/scikit-learn}{\textt{scikit-learn}} +\citep{scikit-learn} + +\item +\href{https://github.com/scipy/scipy}{\textt{Scipy}} +\citep{scipy} + +\item +\href{https://www.sqlite.org/index.html} +\citep{sqlite} + +\item +\href{https://github.com/JohannesBuchner/UltraNest}{\textt{UltraNest}} +\citep{ultranest} + +\item +\href{https://github.com/minaskar/zeus}{\textt{zeus}} +\citep{zeus1, zeus2} + + \end{itemize} \ No newline at end of file diff --git a/test_autocti/charge_injection/test_ou_sim_ci.py b/test_autocti/charge_injection/test_ou_sim_ci.py index 0d31c351..06ac7c13 100644 --- a/test_autocti/charge_injection/test_ou_sim_ci.py +++ b/test_autocti/charge_injection/test_ou_sim_ci.py @@ -12,7 +12,8 @@ def test__non_uniform_array_is_correct_with_rotation(): array = ou_sim_ci.charge_injection_array_from( ccd_id="123", quadrant_id="E", - injection_total=5, + injection_start=0, + injection_end=2000, injection_on=200, injection_off=200, injection_norm=50000.0, @@ -29,7 +30,8 @@ def test__non_uniform_array_is_correct_with_rotation(): array = ou_sim_ci.charge_injection_array_from( ccd_id="123", quadrant_id="H", - injection_total=5, + injection_start=0, + injection_end=2000, injection_on=200, injection_off=200, injection_norm=50000.0, @@ -45,7 +47,8 @@ def test__non_uniform_array_is_correct_with_rotation(): array = ou_sim_ci.charge_injection_array_from( ccd_id="123", quadrant_id="F", - injection_total=5, + injection_start=0, + injection_end=2000, injection_on=200, injection_off=200, injection_norm=50000.0, @@ -62,7 +65,8 @@ def test__non_uniform_array_is_correct_with_rotation(): array = ou_sim_ci.charge_injection_array_from( ccd_id="123", quadrant_id="G", - injection_total=5, + injection_start=0, + injection_end=2000, injection_on=200, injection_off=200, injection_norm=50000.0, @@ -93,7 +97,8 @@ def test__add_cti_to_pre_cti_data(): array = ou_sim_ci.charge_injection_array_from( ccd_id="123", quadrant_id="E", - injection_total=5, + injection_start=0, + injection_end=2000, injection_on=200, injection_off=200, injection_norm=50000.0, @@ -123,7 +128,8 @@ def test__add_cti_to_pre_cti_data(): array = ou_sim_ci.charge_injection_array_from( ccd_id="123", quadrant_id="H", - injection_total=5, + injection_start=0, + injection_end=2000, injection_on=200, injection_off=200, injection_norm=50000.0, @@ -153,7 +159,8 @@ def test__add_cti_to_pre_cti_data(): array = ou_sim_ci.charge_injection_array_from( ccd_id="123", quadrant_id="F", - injection_total=5, + injection_start=0, + injection_end=2000, injection_on=200, injection_off=200, injection_norm=50000.0, @@ -183,7 +190,8 @@ def test__add_cti_to_pre_cti_data(): array = ou_sim_ci.charge_injection_array_from( ccd_id="123", quadrant_id="G", - injection_total=5, + injection_start=0, + injection_end=2000, injection_on=200, injection_off=200, injection_norm=50000.0, @@ -215,8 +223,8 @@ def test__tvac_values(): # iquad=0, ccd_id="123", quadrant_id="E", - injection_total=4, injection_start=16, + injection_end=2086, injection_on=420, injection_off=100, injection_norm=50000.0, @@ -242,8 +250,8 @@ def test__tvac_values(): # iquad=1, ccd_id="123", quadrant_id="F", - injection_total=4, injection_start=16, + injection_end=2086, injection_on=420, injection_off=100, injection_norm=50000.0, @@ -269,8 +277,8 @@ def test__tvac_values(): # iquad=2, ccd_id="123", quadrant_id="H", - injection_total=4, injection_start=16, + injection_end=2086, injection_on=420, injection_off=100, injection_norm=50000.0, @@ -296,8 +304,8 @@ def test__tvac_values(): # iquad=3, ccd_id="123", quadrant_id="G", - injection_total=4, injection_start=16, + injection_end=2086, injection_on=420, injection_off=100, injection_norm=50000.0, @@ -322,8 +330,8 @@ def test__tvac_values(): array = ou_sim_ci.charge_injection_array_from( ccd_id="456", quadrant_id="E", - injection_total=4, injection_start=16, + injection_end=2086, injection_on=420, injection_off=100, injection_norm=50000.0, @@ -348,8 +356,8 @@ def test__tvac_values(): array = ou_sim_ci.charge_injection_array_from( ccd_id="456", quadrant_id="F", - injection_total=4, injection_start=16, + injection_end=2086, injection_on=420, injection_off=100, injection_norm=50000.0, @@ -374,8 +382,8 @@ def test__tvac_values(): array = ou_sim_ci.charge_injection_array_from( ccd_id="456", quadrant_id="G", - injection_total=4, injection_start=16, + injection_end=2086, injection_on=420, injection_off=100, injection_norm=50000.0, @@ -400,8 +408,8 @@ def test__tvac_values(): array = ou_sim_ci.charge_injection_array_from( ccd_id="456", quadrant_id="H", - injection_total=4, injection_start=16, + injection_end=2086, injection_on=420, injection_off=100, injection_norm=50000.0,