Skip to content

Commit

Permalink
Merge c73ce7a into d1de71f
Browse files Browse the repository at this point in the history
  • Loading branch information
aymgal committed May 12, 2023
2 parents d1de71f + c73ce7a commit a4c449b
Show file tree
Hide file tree
Showing 75 changed files with 4,432 additions and 311 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
python -m pip install --upgrade pip
python -m pip install flake8 pytest pytest-cov coveralls
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ -f test_requirements.txt ]; then pip install -r test_requirements.txt; fi
if [ -f requirements_tests.txt ]; then pip install -r requirements_tests.txt; fi
pip install -e .
# - name: Lint with flake8
Expand All @@ -51,3 +51,6 @@ jobs:
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: coverage.lcov

- name: Open Journals PDF Generator
uses: openjournals/openjournals-draft-action@v.1.0
24 changes: 24 additions & 0 deletions .github/workflows/draft-pdf.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
on: [push]

jobs:
paper:
runs-on: ubuntu-latest
name: Paper Draft
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build draft PDF
uses: openjournals/openjournals-draft-action@master
with:
journal: joss
# This should be the path to the paper within your repo.
paper-path: joss/paper.md
- name: Upload
uses: actions/upload-artifact@v1
with:
name: paper
# This is the output path where Pandoc will write the compiled
# PDF. Note, this should be the same directory as the input
# paper.md
path: joss/paper.pdf

3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -136,4 +136,5 @@ dmypy.json
*.sublime-project
*.sublime-workspace

mytests
mytests
docs_deposit
125 changes: 78 additions & 47 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,51 +1,82 @@
# CHANGELOG

- 31/05/22
- Major changes, that affect the template structure:
- new field: 'lensing_entity'
- a list of either 'galaxy'-type objects or 'external_shear'-type objects
- each have a redshift, a name, etc... but 'external_shear' items can not have light profiles
- 'light_model' and 'mass_model' are now themselves list of profiles: there is no sub-field 'profiles' anymore
- 'lens_object' and 'lens_sample' have been removed. It means that ONE coolest template is related ONE lens system
- 'cosmology' is now outside of 'lens_model'
## 04/10/22

- The `ExternalShear` object has been replaced ba a more general `MassField` object. This is for supporting higher-order lensing fields such as flexion in the future. The two supported types of `LensingEntity` are thus `Galaxy` and `MassField`.

- The type of lensing entity now reflects their class name. For instance, before it was `'galaxy'`, now it is `'Galaxy'`.

- The single parameter of the `GaussianPSF` has changed from the standard deviation `std_dev` to the more widely used full width at half maximum `fwhm`.


## 14/10/22

### Major changes:

- the path to submodules changed: `coolest.template.api` is now `coolest.template.classes`. This is because the API will now be formally containing analysis tools (in the future coolest.api submodule)
- a single PixelatedRegularGrid class is now used for the observation image data, pixelated PSF, and pixelated light and mass profiles

### Minor changes:

- reorganized the repository structure, `coolest` is now at the root
- the example of template generation is now in the `examples` directory
- a 'DOC' mode has been added to the root COOLEST class (for usage with the documentation website, see separate repository)


## 02/06/22

### Major changes

These affect the template structure:

- hierachy levels 'lens_sample', 'lens_object' and 'lens_model' jave been removed; 'lensing_entities' is the relevant field now for model choices.
- the 'origin' is at the root level

### Standard changes:

- the PSF can now be either a GaussianPSF, or a PixelatedPSF
- the noise can now be one of the following choices: UniformGaussianNoise, NoiseMap, NoiseRealization, InstrumentalNoise, DrizzledNoise
- the FitsFile object is now more explicit, renamed PixelFitsFile and containing number of pixels and pixel size

### Minor changes:

- renaming of classes
- COOLEST standard now supports two distinct modes: 'MAP' to store model results, and 'MOCK' for simulating an observation


## 31/05/22

### Major changes
Theese affect the template structure:

- new field: 'lensing_entity'

- a list of either 'galaxy'-type objects or 'external_shear'-type objects
- each have a redshift, a name, etc... but 'external_shear' items can not have light profiles

- Standard changes:
- new field: 'instrument'
- with optional 'image' fits file; if not provided, the 'mode' should be 'mock' (automatic via the API)
- with 'noise' sub-fields, optionally with a 'noise_map', option for including Poisson noise or not
- new field: 'observation'
- with 'psf' sub-fields, as a fits file for the psf kernel and potentially different pixel size
- 'light_model' and 'mass_model' are now themselves list of profiles: there is no sub-field 'profiles' anymore
- 'lens_object' and 'lens_sample' have been removed. It means that ONE coolest template is related ONE lens system
- 'cosmology' is now outside of 'lens_model'

### Standard changes

- new field: 'instrument'

- with optional 'image' fits file; if not provided, the 'mode' should be 'mock' (automatic via the API)
- with 'noise' sub-fields, optionally with a 'noise_map', option for including Poisson noise or not

- new field: 'observation'

- with 'psf' sub-fields, as a fits file for the psf kernel and potentially different pixel size

- Minor changes:
- new field: 'meta'
- for more flexbility for storing metadata, e.g. the name and version of the modeling code used to update/read the file
- for now it contains one sub-field: the 'mode' is set 'mock' if the coolest file is used for mocking, or 'model' if used to store modeling results
- new field: 'standard'
- defines more explicitely the standard system: 'coolest'
- many descriptive fields have been removed by default, as set in the CoolestStandard module (python class attributes were not removed though)


- 02/06/22
- Major changes, that affect the template structure:
- hierachy levels 'lens_sample', 'lens_object' and 'lens_model' jave been removed; 'lensing_entities' is the relevant field now for model choices.
- the 'origin' is at the root level

- Standard changes:
- the PSF can now be either a GaussianPSF, or a PixelatedPSF
- the noise can now be one of the following choices: UniformGaussianNoise, NoiseMap, NoiseRealization, InstrumentalNoise, DrizzledNoise
- the FitsFile object is now more explicit, renamed PixelFitsFile and containing number of pixels and pixel size

- Minor changes:
- renaming of classes
- COOLEST standard now supports two distinct modes: 'MAP' to store model results, and 'MOCK' for simulating an observation


- 14/10/22
- Major changes:
- the path to submodules changed: `coolest.template.api` is now `coolest.template.classes`. This is because the API will now be formally containing analysis tools (in the future coolest.api submodule)
- a single PixelatedRegularGrid class is now used for the observation image data, pixelated PSF, and pixelated light and mass profiles

- Minor changes:
- reorganized the repository structure, `coolest` is now at the root
- the example of template generation is now in the `examples` directory
- a 'DOC' mode has been added to the root COOLEST class (for usage with the documentation website, see separate repository)
### Minor changes:

- new field: 'meta'

- for more flexbility for storing metadata, e.g. the name and version of the modeling code used to update/read the file
- for now it contains one sub-field: the 'mode' is set 'mock' if the coolest file is used for mocking, or 'model' if used to store modeling results

- new field: 'standard'
- defines more explicitely the standard system: 'coolest'

- many descriptive fields have been removed by default, as set in the CoolestStandard module (python class attributes were not removed though)
9 changes: 9 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
PKG_VERSION = $(shell python setup.py --version)

build-docs:
# pip install -r requirements_docs.txt
sphinx-build -b html docs docs/_build/html


clean-docs:
rm -r docs/_build
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

![License](https://img.shields.io/github/license/aymgal/COOLEST)
![PyPi python support](https://img.shields.io/badge/Python-3.7-blue)
[![Documentation Status](https://readthedocs.org/projects/coolest/badge/?version=latest)](https://coolest.readthedocs.io/en/latest/?badge=latest)
[![Tests](https://github.com/aymgal/COOLEST/actions/workflows/python-package.yml/badge.svg?branch=main)](https://github.com/aymgal/COOLEST/actions/workflows/python-package.yml)
[![Coverage Status](https://coveralls.io/repos/github/aymgal/COOLEST/badge.svg)](https://coveralls.io/github/aymgal/COOLEST)

Expand Down
2 changes: 2 additions & 0 deletions coolest/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
__author__ = 'COOLEST developers'
__email__ = 'aymeric.galan@gmail.com'
__year__ = '2021'
__credits__ = 'COOLEST developers'
__url__ = 'https://github.com/aymgal/COOLEST'
__description__ = 'Standard for Strong Gravitational Lens Modeling'
__python__ = '>=3.7'
Expand All @@ -27,3 +28,4 @@
__about__ = ('{} Author: {}, Email: {}, Year: {}, {}'
''.format(__name__, __author__, __email__, __year__,
__description__))

Loading

0 comments on commit a4c449b

Please sign in to comment.