├── docs
├── _build
│ ├── objects.inv
│ ├── _static
│ │ ├── file.png
│ │ ├── minus.png
│ │ ├── plus.png
│ │ ├── theme.js.LICENSE.txt
│ │ ├── 0d8bb5b3ee5f5dac9e446d48480d28a9.woff2
│ │ ├── 176f8f5bd5f02b3abfcf894955d7e919.woff2
│ │ ├── 18d00f739ff1e1c52db1a1c0d9e98129.woff
│ │ ├── 1c2e1cdea02e7dfab25424e6e42d7973.woff2
│ │ ├── 1ed72cb00dc79e545eb2f86b41a14560.woff
│ │ ├── 38b17c60ba71b3aa71c29b0493e6607d.woff
│ │ ├── 49ae34d4cc6b98c00c69ab4c41de3e0c.woff
│ │ ├── 4a0ed4c488992e375e9793218146647b.woff
│ │ ├── 647f3654373165e51135a4fddf0006a9.woff2
│ │ ├── b1d9d9904bfca8802a631c45590b9efa.woff
│ │ ├── cba8e90503370863b3a0036bda7b0e44.woff
│ │ ├── cea99d3e3e13a3a599a015c29f1046d0.woff
│ │ ├── d022bc70dc1bf7b3425da9cdaa9841b6.woff2
│ │ ├── d4e12e8e9e242435ab9cbd5a2086ca2c.woff2
│ │ ├── f5b74d7ffcdf85b9dd60130fa0b2c087.woff2
│ │ ├── fe990f0633a16121db07a88a65858aee.woff2
│ │ ├── documentation_options.js
│ │ ├── pygments.css
│ │ └── doctools.js
│ ├── .doctrees
│ │ ├── mccd.doctree
│ │ ├── toc.doctree
│ │ ├── about.doctree
│ │ ├── citing.doctree
│ │ ├── index.doctree
│ │ ├── z_ref.doctree
│ │ ├── changelog.doctree
│ │ ├── mccd.info.doctree
│ │ ├── mccd.mccd.doctree
│ │ ├── environment.pickle
│ │ ├── mccd.grads.doctree
│ │ ├── mccd.proxs.doctree
│ │ ├── mccd.utils.doctree
│ │ ├── quickstart.doctree
│ │ ├── contributing.doctree
│ │ ├── installation.doctree
│ │ ├── mccd.mccd_utils.doctree
│ │ ├── mccd.auxiliary_fun.doctree
│ │ └── mccd.dataset_generation.doctree
│ ├── _sources
│ │ ├── z_ref.rst.txt
│ │ ├── mccd.info.rst.txt
│ │ ├── mccd.mccd.rst.txt
│ │ ├── mccd.grads.rst.txt
│ │ ├── mccd.proxs.rst.txt
│ │ ├── mccd.utils.rst.txt
│ │ ├── mccd.mccd_utils.rst.txt
│ │ ├── mccd.auxiliary_fun.rst.txt
│ │ ├── mccd.dataset_generation.rst.txt
│ │ ├── citing.rst.txt
│ │ ├── mccd.rst.txt
│ │ ├── toc.rst.txt
│ │ ├── contributing.rst.txt
│ │ ├── index.rst.txt
│ │ ├── about.rst.txt
│ │ ├── installation.rst.txt
│ │ ├── changelog.rst.txt
│ │ └── quickstart.rst.txt
│ ├── .buildinfo
│ ├── toc.html
│ ├── search.html
│ ├── _modules
│ │ └── index.html
│ ├── z_ref.html
│ ├── mccd.info.html
│ ├── contributing.html
│ ├── index.html
│ ├── py-modindex.html
│ ├── citing.html
│ └── about.html
├── source
│ ├── z_ref.rst
│ ├── mccd.grads.rst
│ ├── mccd.info.rst
│ ├── mccd.mccd.rst
│ ├── mccd.proxs.rst
│ ├── mccd.utils.rst
│ ├── mccd.mccd_utils.rst
│ ├── mccd.auxiliary_fun.rst
│ ├── mccd.dataset_generation.rst
│ ├── citing.rst
│ ├── mccd.rst
│ ├── toc.rst
│ ├── contributing.rst
│ ├── index.rst
│ ├── my_ref.bib
│ ├── about.rst
│ ├── installation.rst
│ ├── refs.bib
│ ├── changelog.rst
│ ├── quickstart.rst
│ └── conf.py
├── _templates
│ ├── toc.rst_t
│ ├── module.rst_t
│ └── package.rst_t
├── _script_templates
│ ├── toc.rst_t
│ ├── module.rst_t
│ └── package.rst_t
└── requirements.txt
├── .coveragerc
├── develop.txt
├── requirements.txt
├── data
└── sim_inputs
│ ├── train_ccd_list.npy
│ └── train_positions.npy
├── .gitattributes
├── tests
├── __init__.py
└── test_pysap_wavelet.py
├── example
├── __init__.py
├── dataset_generation_parallel.py
└── fix_old_calidation_star_catalogue.py
├── setup.cfg
├── mccd
├── __init__.py
└── info.py
├── pypi_pkg_info.rst
├── .gitignore
├── LICENCE.txt
├── setup.py
├── .github
└── workflows
│ └── CD-build.yml
├── CONTRIBUTING.md
├── CODE_OF_CONDUCT.md
├── config_MCCD.ini
└── README.md
/docs/_build/objects.inv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/objects.inv
--------------------------------------------------------------------------------
/.coveragerc:
--------------------------------------------------------------------------------
1 | [run]
2 |
3 | [report]
4 | show_missing = True
5 | exclude_lines =
6 | pragma: no cover
7 |
--------------------------------------------------------------------------------
/docs/_build/_static/file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/_static/file.png
--------------------------------------------------------------------------------
/docs/_build/_static/minus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/_static/minus.png
--------------------------------------------------------------------------------
/docs/_build/_static/plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/_static/plus.png
--------------------------------------------------------------------------------
/docs/source/z_ref.rst:
--------------------------------------------------------------------------------
1 | References
2 | ==========
3 |
4 | .. bibliography:: refs.bib
5 | :style: alpha
6 |
--------------------------------------------------------------------------------
/develop.txt:
--------------------------------------------------------------------------------
1 | coverage>=4.5.4
2 | nose>=1.3.7
3 | pytest>=5.1.2
4 | pytest-cov>=2.7.1
5 | pytest-pep8>=1.0.6
6 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | numpy>=1.19.5
2 | scipy>=1.5.4
3 | modopt>=1.5.1
4 | astropy>=4.0.2
5 | python-pysap>=0.0.6
6 |
--------------------------------------------------------------------------------
/data/sim_inputs/train_ccd_list.npy:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/data/sim_inputs/train_ccd_list.npy
--------------------------------------------------------------------------------
/docs/_build/.doctrees/mccd.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/.doctrees/mccd.doctree
--------------------------------------------------------------------------------
/docs/_build/.doctrees/toc.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/.doctrees/toc.doctree
--------------------------------------------------------------------------------
/data/sim_inputs/train_positions.npy:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/data/sim_inputs/train_positions.npy
--------------------------------------------------------------------------------
/docs/_build/.doctrees/about.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/.doctrees/about.doctree
--------------------------------------------------------------------------------
/docs/_build/.doctrees/citing.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/.doctrees/citing.doctree
--------------------------------------------------------------------------------
/docs/_build/.doctrees/index.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/.doctrees/index.doctree
--------------------------------------------------------------------------------
/docs/_build/.doctrees/z_ref.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/.doctrees/z_ref.doctree
--------------------------------------------------------------------------------
/docs/_build/_sources/z_ref.rst.txt:
--------------------------------------------------------------------------------
1 | References
2 | ==========
3 |
4 | .. bibliography:: refs.bib
5 | :style: alpha
6 |
--------------------------------------------------------------------------------
/docs/_build/.doctrees/changelog.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/.doctrees/changelog.doctree
--------------------------------------------------------------------------------
/docs/_build/.doctrees/mccd.info.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/.doctrees/mccd.info.doctree
--------------------------------------------------------------------------------
/docs/_build/.doctrees/mccd.mccd.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/.doctrees/mccd.mccd.doctree
--------------------------------------------------------------------------------
/docs/_build/.doctrees/environment.pickle:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/.doctrees/environment.pickle
--------------------------------------------------------------------------------
/docs/_build/.doctrees/mccd.grads.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/.doctrees/mccd.grads.doctree
--------------------------------------------------------------------------------
/docs/_build/.doctrees/mccd.proxs.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/.doctrees/mccd.proxs.doctree
--------------------------------------------------------------------------------
/docs/_build/.doctrees/mccd.utils.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/.doctrees/mccd.utils.doctree
--------------------------------------------------------------------------------
/docs/_build/.doctrees/quickstart.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/.doctrees/quickstart.doctree
--------------------------------------------------------------------------------
/docs/_build/.doctrees/contributing.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/.doctrees/contributing.doctree
--------------------------------------------------------------------------------
/docs/_build/.doctrees/installation.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/.doctrees/installation.doctree
--------------------------------------------------------------------------------
/docs/_build/.doctrees/mccd.mccd_utils.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/.doctrees/mccd.mccd_utils.doctree
--------------------------------------------------------------------------------
/docs/_build/.doctrees/mccd.auxiliary_fun.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/.doctrees/mccd.auxiliary_fun.doctree
--------------------------------------------------------------------------------
/docs/source/mccd.grads.rst:
--------------------------------------------------------------------------------
1 | mccd.grads
2 | ----------
3 |
4 | .. automodule:: mccd.grads
5 | :members:
6 | :undoc-members:
7 | :show-inheritance:
--------------------------------------------------------------------------------
/docs/source/mccd.info.rst:
--------------------------------------------------------------------------------
1 | mccd.info
2 | ---------
3 |
4 | .. automodule:: mccd.info
5 | :members:
6 | :undoc-members:
7 | :show-inheritance:
--------------------------------------------------------------------------------
/docs/source/mccd.mccd.rst:
--------------------------------------------------------------------------------
1 | mccd.mccd
2 | ---------
3 |
4 | .. automodule:: mccd.mccd
5 | :members:
6 | :undoc-members:
7 | :show-inheritance:
--------------------------------------------------------------------------------
/docs/source/mccd.proxs.rst:
--------------------------------------------------------------------------------
1 | mccd.proxs
2 | ----------
3 |
4 | .. automodule:: mccd.proxs
5 | :members:
6 | :undoc-members:
7 | :show-inheritance:
--------------------------------------------------------------------------------
/docs/source/mccd.utils.rst:
--------------------------------------------------------------------------------
1 | mccd.utils
2 | ----------
3 |
4 | .. automodule:: mccd.utils
5 | :members:
6 | :undoc-members:
7 | :show-inheritance:
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Exclude jupyter notebooks from linguist project count
2 | *.ipynb linguist-generated=true
3 | notebooks/*.ipynb linguist-generated=true
4 |
--------------------------------------------------------------------------------
/docs/_build/.doctrees/mccd.dataset_generation.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/.doctrees/mccd.dataset_generation.doctree
--------------------------------------------------------------------------------
/docs/_build/_static/theme.js.LICENSE.txt:
--------------------------------------------------------------------------------
1 | /*!
2 | * clipboard.js v2.0.6
3 | * https://clipboardjs.com/
4 | *
5 | * Licensed MIT © Zeno Rocha
6 | */
7 |
--------------------------------------------------------------------------------
/docs/_build/_sources/mccd.info.rst.txt:
--------------------------------------------------------------------------------
1 | mccd.info
2 | ---------
3 |
4 | .. automodule:: mccd.info
5 | :members:
6 | :undoc-members:
7 | :show-inheritance:
--------------------------------------------------------------------------------
/docs/_build/_sources/mccd.mccd.rst.txt:
--------------------------------------------------------------------------------
1 | mccd.mccd
2 | ---------
3 |
4 | .. automodule:: mccd.mccd
5 | :members:
6 | :undoc-members:
7 | :show-inheritance:
--------------------------------------------------------------------------------
/docs/_build/_sources/mccd.grads.rst.txt:
--------------------------------------------------------------------------------
1 | mccd.grads
2 | ----------
3 |
4 | .. automodule:: mccd.grads
5 | :members:
6 | :undoc-members:
7 | :show-inheritance:
--------------------------------------------------------------------------------
/docs/_build/_sources/mccd.proxs.rst.txt:
--------------------------------------------------------------------------------
1 | mccd.proxs
2 | ----------
3 |
4 | .. automodule:: mccd.proxs
5 | :members:
6 | :undoc-members:
7 | :show-inheritance:
--------------------------------------------------------------------------------
/docs/_build/_sources/mccd.utils.rst.txt:
--------------------------------------------------------------------------------
1 | mccd.utils
2 | ----------
3 |
4 | .. automodule:: mccd.utils
5 | :members:
6 | :undoc-members:
7 | :show-inheritance:
--------------------------------------------------------------------------------
/docs/_build/_static/0d8bb5b3ee5f5dac9e446d48480d28a9.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/_static/0d8bb5b3ee5f5dac9e446d48480d28a9.woff2
--------------------------------------------------------------------------------
/docs/_build/_static/176f8f5bd5f02b3abfcf894955d7e919.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/_static/176f8f5bd5f02b3abfcf894955d7e919.woff2
--------------------------------------------------------------------------------
/docs/_build/_static/18d00f739ff1e1c52db1a1c0d9e98129.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/_static/18d00f739ff1e1c52db1a1c0d9e98129.woff
--------------------------------------------------------------------------------
/docs/_build/_static/1c2e1cdea02e7dfab25424e6e42d7973.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/_static/1c2e1cdea02e7dfab25424e6e42d7973.woff2
--------------------------------------------------------------------------------
/docs/_build/_static/1ed72cb00dc79e545eb2f86b41a14560.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/_static/1ed72cb00dc79e545eb2f86b41a14560.woff
--------------------------------------------------------------------------------
/docs/_build/_static/38b17c60ba71b3aa71c29b0493e6607d.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/_static/38b17c60ba71b3aa71c29b0493e6607d.woff
--------------------------------------------------------------------------------
/docs/_build/_static/49ae34d4cc6b98c00c69ab4c41de3e0c.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/_static/49ae34d4cc6b98c00c69ab4c41de3e0c.woff
--------------------------------------------------------------------------------
/docs/_build/_static/4a0ed4c488992e375e9793218146647b.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/_static/4a0ed4c488992e375e9793218146647b.woff
--------------------------------------------------------------------------------
/docs/_build/_static/647f3654373165e51135a4fddf0006a9.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/_static/647f3654373165e51135a4fddf0006a9.woff2
--------------------------------------------------------------------------------
/docs/_build/_static/b1d9d9904bfca8802a631c45590b9efa.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/_static/b1d9d9904bfca8802a631c45590b9efa.woff
--------------------------------------------------------------------------------
/docs/_build/_static/cba8e90503370863b3a0036bda7b0e44.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/_static/cba8e90503370863b3a0036bda7b0e44.woff
--------------------------------------------------------------------------------
/docs/_build/_static/cea99d3e3e13a3a599a015c29f1046d0.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/_static/cea99d3e3e13a3a599a015c29f1046d0.woff
--------------------------------------------------------------------------------
/docs/_build/_static/d022bc70dc1bf7b3425da9cdaa9841b6.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/_static/d022bc70dc1bf7b3425da9cdaa9841b6.woff2
--------------------------------------------------------------------------------
/docs/_build/_static/d4e12e8e9e242435ab9cbd5a2086ca2c.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/_static/d4e12e8e9e242435ab9cbd5a2086ca2c.woff2
--------------------------------------------------------------------------------
/docs/_build/_static/f5b74d7ffcdf85b9dd60130fa0b2c087.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/_static/f5b74d7ffcdf85b9dd60130fa0b2c087.woff2
--------------------------------------------------------------------------------
/docs/_build/_static/fe990f0633a16121db07a88a65858aee.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmoStat/mccd/HEAD/docs/_build/_static/fe990f0633a16121db07a88a65858aee.woff2
--------------------------------------------------------------------------------
/docs/source/mccd.mccd_utils.rst:
--------------------------------------------------------------------------------
1 | mccd.mccd\_utils
2 | ----------------
3 |
4 | .. automodule:: mccd.mccd_utils
5 | :members:
6 | :undoc-members:
7 | :show-inheritance:
--------------------------------------------------------------------------------
/docs/_build/_sources/mccd.mccd_utils.rst.txt:
--------------------------------------------------------------------------------
1 | mccd.mccd\_utils
2 | ----------------
3 |
4 | .. automodule:: mccd.mccd_utils
5 | :members:
6 | :undoc-members:
7 | :show-inheritance:
--------------------------------------------------------------------------------
/docs/_templates/toc.rst_t:
--------------------------------------------------------------------------------
1 | {{ header | heading }}
2 |
3 | .. toctree::
4 | :maxdepth: {{ maxdepth }}
5 | {% for docname in docnames %}
6 | {{ docname }}
7 | {%- endfor %}
8 |
9 |
--------------------------------------------------------------------------------
/docs/source/mccd.auxiliary_fun.rst:
--------------------------------------------------------------------------------
1 | mccd.auxiliary\_fun
2 | -------------------
3 |
4 | .. automodule:: mccd.auxiliary_fun
5 | :members:
6 | :undoc-members:
7 | :show-inheritance:
--------------------------------------------------------------------------------
/docs/_script_templates/toc.rst_t:
--------------------------------------------------------------------------------
1 | {{ header | heading }}
2 |
3 | .. toctree::
4 | :maxdepth: {{ maxdepth }}
5 | {% for docname in docnames %}
6 | {{ docname }}
7 | {%- endfor %}
8 |
9 |
--------------------------------------------------------------------------------
/docs/_build/_sources/mccd.auxiliary_fun.rst.txt:
--------------------------------------------------------------------------------
1 | mccd.auxiliary\_fun
2 | -------------------
3 |
4 | .. automodule:: mccd.auxiliary_fun
5 | :members:
6 | :undoc-members:
7 | :show-inheritance:
--------------------------------------------------------------------------------
/docs/source/mccd.dataset_generation.rst:
--------------------------------------------------------------------------------
1 | mccd.dataset\_generation
2 | ------------------------
3 |
4 | .. automodule:: mccd.dataset_generation
5 | :members:
6 | :undoc-members:
7 | :show-inheritance:
--------------------------------------------------------------------------------
/docs/_build/_sources/mccd.dataset_generation.rst.txt:
--------------------------------------------------------------------------------
1 | mccd.dataset\_generation
2 | ------------------------
3 |
4 | .. automodule:: mccd.dataset_generation
5 | :members:
6 | :undoc-members:
7 | :show-inheritance:
--------------------------------------------------------------------------------
/tests/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | """Unit Tests
4 |
5 | Unit testing framework for the package.
6 |
7 | """
8 |
9 | from . import *
10 |
11 | __all__ = ['test_pysap_wavelet'] # List of submodules
12 |
--------------------------------------------------------------------------------
/docs/_templates/module.rst_t:
--------------------------------------------------------------------------------
1 | {%- if show_headings %}
2 | {{- basename | e | heading(2) }}
3 |
4 | {% endif -%}
5 | .. automodule:: {{ qualname }}
6 | {%- for option in automodule_options %}
7 | :{{ option }}:
8 | {%- endfor %}
9 |
--------------------------------------------------------------------------------
/docs/_script_templates/module.rst_t:
--------------------------------------------------------------------------------
1 | {%- if show_headings %}
2 | {{- basename | e | heading(2) }}
3 |
4 | {% endif -%}
5 | .. automodule:: {{ qualname }}
6 | {%- for option in automodule_options %}
7 | :{{ option }}:
8 | {%- endfor %}
9 |
--------------------------------------------------------------------------------
/docs/source/citing.rst:
--------------------------------------------------------------------------------
1 | Citing this Package
2 | ===================
3 |
4 | We kindly request that any academic work making use of this package to cite
5 | :cite:`liaudat2020`.
6 |
7 | .. bibliography:: my_ref.bib
8 | :style: alpha
9 |
--------------------------------------------------------------------------------
/example/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | """Example Module
4 |
5 | Provide some basic description of the example module.
6 |
7 | """
8 |
9 | from . import *
10 |
11 | __all__ = ['auxiliary_fun'] # List of submodules
12 |
--------------------------------------------------------------------------------
/docs/_build/_sources/citing.rst.txt:
--------------------------------------------------------------------------------
1 | Citing this Package
2 | ===================
3 |
4 | We kindly request that any academic work making use of this package to cite
5 | :cite:`liaudat2020`.
6 |
7 | .. bibliography:: my_ref.bib
8 | :style: alpha
9 |
--------------------------------------------------------------------------------
/docs/_build/.buildinfo:
--------------------------------------------------------------------------------
1 | # Sphinx build info version 1
2 | # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3 | config: 2cb0b6a8314fa71307a32adff4c35bf8
4 | tags: 645f666f9bcd5a90fca523b33c5a78b7
5 |
--------------------------------------------------------------------------------
/docs/requirements.txt:
--------------------------------------------------------------------------------
1 | jupyter==1.0.0
2 | myst-parser==0.16.1
3 | nbsphinx==0.8.7
4 | nbsphinx-link==1.3.0
5 | numpydoc==1.1.0
6 | sphinx==4.3.1
7 | sphinx-gallery==0.10.1
8 | sphinxcontrib-bibtex==2.4.1
9 | sphinx-book-theme==0.3.2
10 | sphinxawesome-theme==1.17.0
--------------------------------------------------------------------------------
/docs/source/mccd.rst:
--------------------------------------------------------------------------------
1 | mccd
2 | ====
3 |
4 |
5 | .. automodule:: mccd
6 | :members:
7 | :undoc-members:
8 | :show-inheritance:
9 |
10 | Submodules
11 | ----------
12 |
13 | .. toctree::
14 | :maxdepth: 4
15 |
16 | mccd.auxiliary_fun
17 | mccd.dataset_generation
18 | mccd.grads
19 | mccd.info
20 | mccd.mccd
21 | mccd.mccd_utils
22 | mccd.proxs
23 | mccd.utils
24 |
--------------------------------------------------------------------------------
/docs/_build/_sources/mccd.rst.txt:
--------------------------------------------------------------------------------
1 | mccd
2 | ====
3 |
4 |
5 | .. automodule:: mccd
6 | :members:
7 | :undoc-members:
8 | :show-inheritance:
9 |
10 | Submodules
11 | ----------
12 |
13 | .. toctree::
14 | :maxdepth: 4
15 |
16 | mccd.auxiliary_fun
17 | mccd.dataset_generation
18 | mccd.grads
19 | mccd.info
20 | mccd.mccd
21 | mccd.mccd_utils
22 | mccd.proxs
23 | mccd.utils
24 |
--------------------------------------------------------------------------------
/setup.cfg:
--------------------------------------------------------------------------------
1 | [aliases]
2 | test=pytest
3 |
4 | [build_sphinx]
5 | all_files=1
6 | build-dir=docs/build
7 |
8 | [metadata]
9 | description-file = README.md
10 |
11 | [pycodestyle]
12 | ignore = E121,E126,E128,E402,W504,E127,E502,E131,E731
13 | statistics = True
14 |
15 | [tool:pytest]
16 | addopts = --verbose --pycodestyle --cov=mccd
17 | testpaths =
18 | mccd
19 | tests
20 | norecursedirs = tests/*
21 |
--------------------------------------------------------------------------------
/docs/_build/_static/documentation_options.js:
--------------------------------------------------------------------------------
1 | var DOCUMENTATION_OPTIONS = {
2 | URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
3 | VERSION: '',
4 | LANGUAGE: 'None',
5 | COLLAPSE_INDEX: false,
6 | BUILDER: 'html',
7 | FILE_SUFFIX: '.html',
8 | LINK_SUFFIX: '.html',
9 | HAS_SOURCE: true,
10 | SOURCELINK_SUFFIX: '.txt',
11 | NAVIGATION_WITH_KEYS: true
12 | };
--------------------------------------------------------------------------------
/docs/source/toc.rst:
--------------------------------------------------------------------------------
1 | .. Toctrees define sidebar contents
2 |
3 | .. toctree::
4 | :hidden:
5 | :titlesonly:
6 | :caption: Getting Started
7 |
8 | about
9 | installation
10 | quickstart
11 | changelog
12 |
13 | .. toctree::
14 | :hidden:
15 | :titlesonly:
16 | :caption: API Documentation
17 |
18 | mccd
19 | z_ref
20 |
21 | .. toctree::
22 | :hidden:
23 | :titlesonly:
24 | :caption: Guidelines
25 |
26 | contributing
27 | citing
28 |
--------------------------------------------------------------------------------
/docs/_build/_sources/toc.rst.txt:
--------------------------------------------------------------------------------
1 | .. Toctrees define sidebar contents
2 |
3 | .. toctree::
4 | :hidden:
5 | :titlesonly:
6 | :caption: Getting Started
7 |
8 | about
9 | installation
10 | quickstart
11 | changelog
12 |
13 | .. toctree::
14 | :hidden:
15 | :titlesonly:
16 | :caption: API Documentation
17 |
18 | mccd
19 | z_ref
20 |
21 | .. toctree::
22 | :hidden:
23 | :titlesonly:
24 | :caption: Guidelines
25 |
26 | contributing
27 | citing
28 |
--------------------------------------------------------------------------------
/docs/source/contributing.rst:
--------------------------------------------------------------------------------
1 | Contributing
2 | ============
3 |
4 | Read our `Contribution Guidelines .
27 | This will create an independent copy of the repository on your account.
28 |
29 | 1. Clone your fork of ModOpt.
30 |
31 | ```bash
32 | git clone https://github.com/YOUR_USERNAME/mccd
33 | ```
34 |
35 | 5. Add the original repository (*upstream*) to remote.
36 |
37 | ```bash
38 | git remote add upstream https://github.com/CosmoStat/mccd
39 | ```
40 |
41 | ### Making a PR
42 |
43 | The following steps should be followed to make a pull request:
44 |
45 | 1. Pull the latest updates to the original repository.
46 |
47 | ```bash
48 | git pull upstream master
49 | ```
50 |
51 | 2. Create a new branch for your modifications.
52 |
53 | ```bash
54 | git checkout -b BRANCH_NAME
55 | ```
56 |
57 | 3. Make the desired modifications to the relevant modules.
58 |
59 | 4. Add the modified files to the staging area.
60 |
61 | ```bash
62 | git add .
63 | ```
64 |
65 | 5. Make sure all of the appropriate files have been staged. Note that all
66 | files listed in green will be included in the following commit.
67 |
68 | ```bash
69 | git status
70 | ```
71 |
72 | 6. Commit the changes with an appropriate description.
73 |
74 | ```bash
75 | git commit -m "Description of commit"
76 | ```
77 |
78 | 7. Push the commits to a branch on your fork of MCCD.
79 |
80 | ```bash
81 | git push origin BRANCH_NAME
82 | ```
83 |
84 | 8. Make a pull request for your branch with a clear description of what has
85 | been done, why and what issues this relates to.
86 |
87 | 9. Wait for feedback and repeat steps 3 through 7 if necessary.
88 |
89 | ### After Making a PR
90 |
91 | If your PR is accepted and merged it is recommended that the following steps
92 | be followed to keep your fork up to date.
93 |
94 | 1. Make sure you switch back to your local master branch.
95 |
96 | ```bash
97 | git checkout master
98 | ```
99 |
100 | 2. Delete the local branch you used for the PR.
101 |
102 | ```bash
103 | git branch -d BRANCH_NAME
104 | ```
105 |
106 | 3. Pull the latest updates to the original repository, which include your
107 | PR changes.
108 |
109 | ```bash
110 | git pull upstream master
111 | ```
112 |
113 | 4. Push the commits to your fork.
114 |
115 | ```bash
116 | git push origin master
117 | ```
118 |
119 |
120 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as
6 | contributors and maintainers pledge to making participation in our project and
7 | our community a harassment-free experience for everyone, regardless of age, body
8 | size, disability, ethnicity, gender identity and expression, level of experience,
9 | education, socio-economic status, nationality, personal appearance, race,
10 | religion, or sexual identity and orientation.
11 |
12 | ## Our Standards
13 |
14 | Examples of behavior that contributes to creating a positive environment
15 | include:
16 |
17 | * Using welcoming and inclusive language
18 | * Being respectful of differing viewpoints and experiences
19 | * Gracefully accepting constructive criticism
20 | * Focusing on what is best for the community
21 | * Showing empathy towards other community members
22 |
23 | Examples of unacceptable behavior by participants include:
24 |
25 | * The use of sexualized language or imagery and unwelcome sexual attention or
26 | advances
27 | * Trolling, insulting/derogatory comments, and personal or political attacks
28 | * Public or private harassment
29 | * Publishing others' private information, such as a physical or electronic
30 | address, without explicit permission
31 | * Other conduct which could reasonably be considered inappropriate in a
32 | professional setting
33 |
34 | ## Our Responsibilities
35 |
36 | Project maintainers are responsible for clarifying the standards of acceptable
37 | behavior and are expected to take appropriate and fair corrective action in
38 | response to any instances of unacceptable behavior.
39 |
40 | Project maintainers have the right and responsibility to remove, edit, or
41 | reject comments, commits, code, wiki edits, issues, and other contributions
42 | that are not aligned to this Code of Conduct, or to ban temporarily or
43 | permanently any contributor for other behaviors that they deem inappropriate,
44 | threatening, offensive, or harmful.
45 |
46 | ## Scope
47 |
48 | This Code of Conduct applies both within project spaces and in public spaces
49 | when an individual is representing the project or its community. Examples of
50 | representing a project or community include using an official project e-mail
51 | address, posting via an official social media account, or acting as an appointed
52 | representative at an online or offline event. Representation of a project may be
53 | further defined and clarified by project maintainers.
54 |
55 | ## Enforcement
56 |
57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
58 | reported by contacting the project team at {{ email }}. All
59 | complaints will be reviewed and investigated and will result in a response that
60 | is deemed necessary and appropriate to the circumstances. The project team is
61 | obligated to maintain confidentiality with regard to the reporter of an incident.
62 | Further details of specific enforcement policies may be posted separately.
63 |
64 | Project maintainers who do not follow or enforce the Code of Conduct in good
65 | faith may face temporary or permanent repercussions as determined by other
66 | members of the project's leadership.
67 |
68 | ## Attribution
69 |
70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72 |
73 | [homepage]: https://www.contributor-covenant.org
74 |
--------------------------------------------------------------------------------
/docs/source/quickstart.rst:
--------------------------------------------------------------------------------
1 | Quickstart Tutorial
2 | ===================
3 |
4 |
5 | You can import the package as follows:
6 |
7 | .. code-block:: python
8 |
9 | import mccd
10 |
11 |
12 | The easiest usage of the method is to go through the configuration file ``config_MCCD.ini`` using the helper classes found
13 | in |link-to-auxiliary_fun_py|
14 | (|link-to-documentation-aux|).
15 | Description of the parameters can be found directly in the configuration file |link-to-config_MCCD_ini|.
16 | The MCCD method can handle SExtractor dataset as input catalogs given that they follow an appropriate naming convention.
17 |
18 | The main MCCD model parameters are:
19 |
20 | - ``LOC_MODEL``: Indicating the type of local model to be used (MCCD-HYB, MCCD-RCA, or MCCD-POL),
21 | - ``N_COMP_LOC``: Indicating the number of eigenPSFs to use in the local model.
22 | - ``D_COMP_GLOB``: Indicating the maximum polynomial degree for the global model.
23 |
24 | After setting up all the parameters from the configuration file there are three main functions, one to fit the model,
25 | one to validate the model and the last one to fit and then validate the model. The usage is as follows:
26 |
27 | .. code-block:: python
28 |
29 | import mccd
30 |
31 | config_file_path = 'path_to_config_file.ini'
32 |
33 | run_mccd_instance = mccd.auxiliary_fun.RunMCCD(config_file_path,
34 | fits_table_pos=1)
35 |
36 | run_mccd_instance.fit_MCCD_models()
37 |
38 |
39 | For the validation one should replace the last line with:
40 |
41 | .. code-block:: python
42 |
43 | run_mccd_instance.validate_MCCD_models()
44 |
45 |
46 | Finally for the fit and validation one should change the last line to:
47 |
48 | .. code-block:: python
49 |
50 | run_mccd_instance.run_MCCD()
51 |
52 |
53 | All the output file will be saved on the directories specified on the configuration files.
54 |
55 |
56 | PSF recovery
57 | ------------
58 |
59 | To recover PSFs from the model at specific positions ```test_pos``` from
60 | the CCD ```ccd_id``` one could use the following example:
61 |
62 | .. code-block:: python
63 |
64 | import numpy as np
65 | import mccd
66 |
67 | config_file_path = 'path_to_config_file.ini'
68 | mccd_model_path = 'path_to_fitted_mccd_model.npy'
69 | test_pos = np.load(..)
70 | ccd_id = np.load(..)
71 | local_pos = True
72 |
73 | mccd_instance = mccd.auxiliary_fun.RunMCCD(config_file_path,
74 | fits_table_pos=1)
75 |
76 | rec_PSFs = mccd_instance.recover_MCCD_PSFs(mccd_model_path,
77 | positions=test_pos,
78 | ccd_id=ccd_id,
79 | local_pos=local_pos)
80 |
81 |
82 | See the |link-to-documentation|
83 | of the ```recover_MCCD_PSFs()``` function for more information.
84 |
85 |
86 | Extra information
87 | -----------------
88 |
89 | .. tip::
90 |
91 | There are more interpolation functions. For usage inside shape measurement pipelines, the
92 | new PSF interpolation function included in the MCCD model ```interpolate_psf_pipeline()```.
93 | This function allows to output interpolated PSFs with a specific centroid.
94 |
95 |
96 |
97 | .. |link-to-documentation| raw:: html
98 |
99 | documentation
100 |
101 |
102 | .. |link-to-auxiliary_fun_py| raw:: html
103 |
104 | auxiliary_fun.py
105 |
106 |
107 | .. |link-to-documentation-aux| raw:: html
108 |
109 | documentation
110 |
111 | .. |link-to-config_MCCD_ini| raw:: html
112 |
113 | config_MCCD.ini
114 |
115 |
116 |
117 |
118 |
--------------------------------------------------------------------------------
/docs/_build/_sources/quickstart.rst.txt:
--------------------------------------------------------------------------------
1 | Quickstart Tutorial
2 | ===================
3 |
4 |
5 | You can import the package as follows:
6 |
7 | .. code-block:: python
8 |
9 | import mccd
10 |
11 |
12 | The easiest usage of the method is to go through the configuration file ``config_MCCD.ini`` using the helper classes found
13 | in |link-to-auxiliary_fun_py|
14 | (|link-to-documentation-aux|).
15 | Description of the parameters can be found directly in the configuration file |link-to-config_MCCD_ini|.
16 | The MCCD method can handle SExtractor dataset as input catalogs given that they follow an appropriate naming convention.
17 |
18 | The main MCCD model parameters are:
19 |
20 | - ``LOC_MODEL``: Indicating the type of local model to be used (MCCD-HYB, MCCD-RCA, or MCCD-POL),
21 | - ``N_COMP_LOC``: Indicating the number of eigenPSFs to use in the local model.
22 | - ``D_COMP_GLOB``: Indicating the maximum polynomial degree for the global model.
23 |
24 | After setting up all the parameters from the configuration file there are three main functions, one to fit the model,
25 | one to validate the model and the last one to fit and then validate the model. The usage is as follows:
26 |
27 | .. code-block:: python
28 |
29 | import mccd
30 |
31 | config_file_path = 'path_to_config_file.ini'
32 |
33 | run_mccd_instance = mccd.auxiliary_fun.RunMCCD(config_file_path,
34 | fits_table_pos=1)
35 |
36 | run_mccd_instance.fit_MCCD_models()
37 |
38 |
39 | For the validation one should replace the last line with:
40 |
41 | .. code-block:: python
42 |
43 | run_mccd_instance.validate_MCCD_models()
44 |
45 |
46 | Finally for the fit and validation one should change the last line to:
47 |
48 | .. code-block:: python
49 |
50 | run_mccd_instance.run_MCCD()
51 |
52 |
53 | All the output file will be saved on the directories specified on the configuration files.
54 |
55 |
56 | PSF recovery
57 | ------------
58 |
59 | To recover PSFs from the model at specific positions ```test_pos``` from
60 | the CCD ```ccd_id``` one could use the following example:
61 |
62 | .. code-block:: python
63 |
64 | import numpy as np
65 | import mccd
66 |
67 | config_file_path = 'path_to_config_file.ini'
68 | mccd_model_path = 'path_to_fitted_mccd_model.npy'
69 | test_pos = np.load(..)
70 | ccd_id = np.load(..)
71 | local_pos = True
72 |
73 | mccd_instance = mccd.auxiliary_fun.RunMCCD(config_file_path,
74 | fits_table_pos=1)
75 |
76 | rec_PSFs = mccd_instance.recover_MCCD_PSFs(mccd_model_path,
77 | positions=test_pos,
78 | ccd_id=ccd_id,
79 | local_pos=local_pos)
80 |
81 |
82 | See the |link-to-documentation|
83 | of the ```recover_MCCD_PSFs()``` function for more information.
84 |
85 |
86 | Extra information
87 | -----------------
88 |
89 | .. tip::
90 |
91 | There are more interpolation functions. For usage inside shape measurement pipelines, the
92 | new PSF interpolation function included in the MCCD model ```interpolate_psf_pipeline()```.
93 | This function allows to output interpolated PSFs with a specific centroid.
94 |
95 |
96 |
97 | .. |link-to-documentation| raw:: html
98 |
99 | documentation
100 |
101 |
102 | .. |link-to-auxiliary_fun_py| raw:: html
103 |
104 | auxiliary_fun.py
105 |
106 |
107 | .. |link-to-documentation-aux| raw:: html
108 |
109 | documentation
110 |
111 | .. |link-to-config_MCCD_ini| raw:: html
112 |
113 | config_MCCD.ini
114 |
115 |
116 |
117 |
118 |
--------------------------------------------------------------------------------
/docs/_build/_static/pygments.css:
--------------------------------------------------------------------------------
1 | pre { line-height: 125%; }
2 | td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
3 | span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
4 | td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
5 | span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
6 | .highlight .hll { background-color: #ffffcc }
7 | .highlight { background: #f8f8f8; }
8 | .highlight .c { color: #3D7B7B; font-style: italic } /* Comment */
9 | .highlight .err { border: 1px solid #FF0000 } /* Error */
10 | .highlight .k { color: #008000; font-weight: bold } /* Keyword */
11 | .highlight .o { color: #666666 } /* Operator */
12 | .highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */
13 | .highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */
14 | .highlight .cp { color: #9C6500 } /* Comment.Preproc */
15 | .highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */
16 | .highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */
17 | .highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */
18 | .highlight .gd { color: #A00000 } /* Generic.Deleted */
19 | .highlight .ge { font-style: italic } /* Generic.Emph */
20 | .highlight .gr { color: #E40000 } /* Generic.Error */
21 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
22 | .highlight .gi { color: #008400 } /* Generic.Inserted */
23 | .highlight .go { color: #717171 } /* Generic.Output */
24 | .highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
25 | .highlight .gs { font-weight: bold } /* Generic.Strong */
26 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
27 | .highlight .gt { color: #0044DD } /* Generic.Traceback */
28 | .highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
29 | .highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
30 | .highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
31 | .highlight .kp { color: #008000 } /* Keyword.Pseudo */
32 | .highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
33 | .highlight .kt { color: #B00040 } /* Keyword.Type */
34 | .highlight .m { color: #666666 } /* Literal.Number */
35 | .highlight .s { color: #BA2121 } /* Literal.String */
36 | .highlight .na { color: #687822 } /* Name.Attribute */
37 | .highlight .nb { color: #008000 } /* Name.Builtin */
38 | .highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
39 | .highlight .no { color: #880000 } /* Name.Constant */
40 | .highlight .nd { color: #AA22FF } /* Name.Decorator */
41 | .highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */
42 | .highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */
43 | .highlight .nf { color: #0000FF } /* Name.Function */
44 | .highlight .nl { color: #767600 } /* Name.Label */
45 | .highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
46 | .highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
47 | .highlight .nv { color: #19177C } /* Name.Variable */
48 | .highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
49 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */
50 | .highlight .mb { color: #666666 } /* Literal.Number.Bin */
51 | .highlight .mf { color: #666666 } /* Literal.Number.Float */
52 | .highlight .mh { color: #666666 } /* Literal.Number.Hex */
53 | .highlight .mi { color: #666666 } /* Literal.Number.Integer */
54 | .highlight .mo { color: #666666 } /* Literal.Number.Oct */
55 | .highlight .sa { color: #BA2121 } /* Literal.String.Affix */
56 | .highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
57 | .highlight .sc { color: #BA2121 } /* Literal.String.Char */
58 | .highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
59 | .highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
60 | .highlight .s2 { color: #BA2121 } /* Literal.String.Double */
61 | .highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */
62 | .highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
63 | .highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */
64 | .highlight .sx { color: #008000 } /* Literal.String.Other */
65 | .highlight .sr { color: #A45A77 } /* Literal.String.Regex */
66 | .highlight .s1 { color: #BA2121 } /* Literal.String.Single */
67 | .highlight .ss { color: #19177C } /* Literal.String.Symbol */
68 | .highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
69 | .highlight .fm { color: #0000FF } /* Name.Function.Magic */
70 | .highlight .vc { color: #19177C } /* Name.Variable.Class */
71 | .highlight .vg { color: #19177C } /* Name.Variable.Global */
72 | .highlight .vi { color: #19177C } /* Name.Variable.Instance */
73 | .highlight .vm { color: #19177C } /* Name.Variable.Magic */
74 | .highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
--------------------------------------------------------------------------------
/example/fix_old_calidation_star_catalogue.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # coding: utf-8
3 |
4 | import numpy as np
5 | from astropy.io import fits
6 | import matplotlib.pyplot as plt
7 | import mccd
8 |
9 |
10 | # Class definition
11 | class Glob2CCD(object):
12 | r""" Get the CCD ID number from the global coordinate position.
13 |
14 | The Loc2Glob() object as input is the one that defines the instrument's
15 | geometry.
16 |
17 | Parameters
18 | ----------
19 | loc2glob: Loc2Glob object
20 | Object with the desired focal plane geometry.
21 | with_gaps: bool
22 | If add the gaps to the CCD area.
23 | """
24 | def __init__(self, loc2glob, with_gaps=True):
25 | # Save loc2glob object
26 | self.loc2glob = loc2glob
27 | self.with_gaps = with_gaps
28 | self.ccd_list = np.arange(self.loc2glob.ccd_tot)
29 | # Init edges defininf the CCDs
30 | self.edge_x_list, self.edge_y_list = self.build_all_edges()
31 |
32 | def build_all_edges(self):
33 | """ Build the edges for all the CCDs in the focal plane.
34 | """
35 | edge_x_list = np.array([
36 | self.build_edge(ccd_n)[0] for ccd_n in self.ccd_list
37 | ])
38 | edge_y_list = np.array([
39 | self.build_edge(ccd_n)[1] for ccd_n in self.ccd_list
40 | ])
41 |
42 | return edge_x_list, edge_y_list
43 |
44 | def build_edge(self, ccd_n):
45 | """ Build the edges of the `ccd_n` in global coordinates.
46 | """
47 | if self.with_gaps:
48 | corners = np.array([
49 | [
50 | -self.loc2glob.x_gap / 2,
51 | -self.loc2glob.y_gap / 2
52 | ],
53 | [
54 | self.loc2glob.x_npix + self.loc2glob.x_gap / 2,
55 | -self.loc2glob.y_gap / 2
56 | ],
57 | [
58 | -self.loc2glob.x_gap / 2,
59 | self.loc2glob.y_npix + self.loc2glob.y_gap / 2
60 | ],
61 | [
62 | self.loc2glob.x_npix + self.loc2glob.x_gap / 2,
63 | self.loc2glob.y_npix + self.loc2glob.y_gap / 2,
64 | ],
65 | ])
66 | else:
67 | corners = np.array([
68 | [0, 0],
69 | [self.loc2glob.x_npix, 0],
70 | [0, self.loc2glob.y_npix],
71 | [self.loc2glob.x_npix, self.loc2glob.y_npix],
72 | ])
73 |
74 | glob_corners = np.array([
75 | self.loc2glob.loc2glob_img_coord(ccd_n, pos[0], pos[1])
76 | for pos in corners
77 | ])
78 |
79 | edge_x = np.array([
80 | np.min(glob_corners[:, 0]), np.max(glob_corners[:, 0])
81 | ])
82 | edge_y = np.array([
83 | np.min(glob_corners[:, 1]), np.max(glob_corners[:, 1])
84 | ])
85 |
86 | return edge_x, edge_y
87 |
88 | def is_inside(self, x, y, edge_x, edge_y):
89 | """ Is the position inside the edges.
90 |
91 | Return True if the position is within the rectangle
92 | defined by the edges.
93 |
94 | Parameters
95 | ----------
96 | x: float
97 | Horizontal position in global coordinate system.
98 | y: float
99 | Vertical position in global coordinate system.
100 | edge_x: np.ndarray
101 | Edge defined as `np.array([min_x, max_x])`.
102 | edge_y: np.ndarray
103 | Edge defined as `np.array([min_y, max_y])`.
104 | """
105 | if (x > edge_x[0]) and (x < edge_x[1]) and \
106 | (y > edge_y[0]) and (y < edge_y[1]):
107 | return True
108 | else:
109 | return False
110 |
111 | def get_ccd_n(self, x, y):
112 | """ Returns the CCD number from the position `(x, y)`.
113 |
114 | Returns `None` if the position is not found.
115 | """
116 | bool_list = np.array([
117 | self.is_inside(x, y, edge_x, edge_y)
118 | for edge_x, edge_y in zip(self.edge_x_list, self.edge_y_list)
119 | ])
120 |
121 | try:
122 | return self.ccd_list[bool_list][0]
123 | except Exception:
124 | return None
125 |
126 |
127 | # Starting the script
128 | data_dir = '/n05data/tliaudat/CFIS_shapepipe_v1/data/'
129 | original_cat = 'unions_shapepipe_psf_2022_v1.0.1.fits'
130 | new_cat = 'unions_shapepipe_psf_2022_v1.0.2-0000000.fits'
131 |
132 | starcat = fits.open(data_dir + original_cat, memmap=True)
133 | print(starcat[1].columns)
134 |
135 | # Build a mask to remove objects with problems
136 | # These are objects with DEC coordinate equal to zero
137 | mask_good_dec = ~(starcat[1].data['DEC'] == 0.)
138 |
139 | loc2glob = mccd.mccd_utils.Loc2Glob()
140 | glob2ccd = Glob2CCD(loc2glob)
141 |
142 | ccd_list = np.array([
143 | glob2ccd.get_ccd_n(x, y) for x, y in zip(
144 | starcat[1].data['X'][mask_good_dec],
145 | starcat[1].data['Y'][mask_good_dec]
146 | )
147 | ])
148 |
149 | # Collect columns
150 | data = {
151 | 'X': starcat[1].data['X'][mask_good_dec],
152 | 'Y': starcat[1].data['Y'][mask_good_dec],
153 | 'RA': starcat[1].data['RA'][mask_good_dec],
154 | 'DEC': starcat[1].data['DEC'][mask_good_dec],
155 | 'E1_PSF_HSM': starcat[1].data['E1_PSF_HSM'][mask_good_dec],
156 | 'E2_PSF_HSM': starcat[1].data['E2_PSF_HSM'][mask_good_dec],
157 | 'SIGMA_PSF_HSM': starcat[1].data['SIGMA_PSF_HSM'][mask_good_dec],
158 | 'E1_STAR_HSM': starcat[1].data['E1_STAR_HSM'][mask_good_dec],
159 | 'E2_STAR_HSM': starcat[1].data['E2_STAR_HSM'][mask_good_dec],
160 | 'SIGMA_STAR_HSM': starcat[1].data['SIGMA_STAR_HSM'][mask_good_dec],
161 | 'FLAG_PSF_HSM': starcat[1].data['FLAG_PSF_HSM'][mask_good_dec],
162 | 'FLAG_STAR_HSM': starcat[1].data['FLAG_STAR_HSM'][mask_good_dec],
163 | 'CCD_NB': ccd_list.astype(float),
164 | }
165 |
166 | save_path = data_dir + new_cat
167 | mccd.mccd_utils.save_to_fits(data, save_path)
168 |
--------------------------------------------------------------------------------
/config_MCCD.ini:
--------------------------------------------------------------------------------
1 | # Configuration file for the MCCD method
2 |
3 | [INPUTS]
4 | INPUT_DIR = full_path_to/mccd/data/sextractor_inputs/
5 | INPUT_REGEX_FILE_PATTERN = sexcat-*-*.fits
6 | INPUT_SEPARATOR = -
7 | MIN_N_STARS = 20
8 | OUTLIER_STD_MAX = 100.
9 | USE_SNR_WEIGHTS = False
10 | PREPROCESSED_OUTPUT_DIR = full_path_to/mccd/data/sextractor_preprocessed/
11 | OUTPUT_DIR = full_path_to/mccd/data/outputs/
12 |
13 | [INSTANCE]
14 | N_COMP_LOC = 4
15 | D_COMP_GLOB = 6
16 | KSIG_LOC = 0.00
17 | KSIG_GLOB = 0.00
18 | FILTER_PATH = None
19 | D_HYB_LOC = 2
20 | MIN_D_COMP_GLOB = None
21 | RMSE_THRESH = 1.25
22 | CCD_STAR_THRESH = 0.15
23 | FP_GEOMETRY = CFIS
24 |
25 | [FIT]
26 | LOC_MODEL = hybrid
27 | PSF_SIZE = 6.2
28 | PSF_SIZE_TYPE = R2
29 | N_EIGENVECTS = 5
30 | N_ITER_RCA = 1
31 | N_ITER_GLOB = 2
32 | N_ITER_LOC = 2
33 | NB_SUBITER_S_LOC = 300
34 | NB_SUBITER_A_LOC = 400
35 | NB_SUBITER_S_GLOB = 100
36 | NB_SUBITER_A_GLOB = 200
37 |
38 | [VALIDATION]
39 | VAL_MODEL_INPUT_DIR = full_path_to/mccd/data/outputs/
40 | VAL_DATA_INPUT_DIR = full_path_to/mccd/data/sextractor_inputs/
41 | VAL_PREPROCESSED_OUTPUT_DIR = full_path_to/mccd/data/sextractor_preprocessed/
42 | VAL_REGEX_FILE_PATTERN = test-star_selection-*-*.fits
43 | VAL_SEPARATOR = -
44 | VAL_OUTPUT_DIR = full_path_to/mccd/data/outputs/
45 | APPLY_DEGRADATION = True
46 | MCCD_DEBUG = False
47 | GLOBAL_POL_INTERP = False
48 |
49 |
50 | # Parameter description:
51 | #
52 | #
53 | # [INPUTS]
54 | # INPUT_DIR : (Required) Must be a valid directory containing the input
55 | # MCCD files.
56 | # INPUT_REGEX_FILE_PATTERN : File pattern of the input files to use. It should
57 | # follow regex (regular expression) standards.
58 | # INPUT_SEPARATOR : Separator of the different fields in the filename,
59 | # ie sexcat[SEP]catalog_id[SEP]CCD_id.fits
60 | # MIN_N_STARS : Minimum number of stars to keep a CCD for the training.
61 | # OUTLIER_STD_MAX : Maximum standard deviation used for the outlier rejection.
62 | # Should not be too low as a hihg quantity of low quality
63 | # stars will be rejected. ie 9 is a conservative rejection.
64 | # USE_SNR_WEIGHTS : Boolean to determine if the SNR weighting strategy will
65 | # be used.
66 | # For now, it needs the SNR estimations from SExtractor.
67 | # PREPROCESSED_OUTPUT_DIR : (Required) Must be a valid directory to write the
68 | # preprocessed input files.
69 | # OUTPUT_DIR : (Required) Must be a valid directory to write the output files.
70 | # The constructed models will be saved.
71 | #
72 | #
73 | # [INSTANCE]
74 | # N_COMP_LOC : Number of components of the Local model. If LOC_MODEL is poly,
75 | # will be the max degree D of the polynomial.
76 | # D_COMP_GLOB : Max degree of the global polynomial model.
77 | # KSIG_LOC : Denoising parameter of the local model.
78 | # ie 1 is a normal denoising, 3 is a hard denoising.
79 | # KSIG_GLOB : Denoising parameter of the global model.
80 | # ie 1 is a normal denoising, 3 is a hard denoising.
81 | # FILTER_PATH : Path for predefined filters.
82 | # D_HYB_LOC : Degree of the polynomial component for the local part in case
83 | # the LOC_MODEL used is 'hybrid'.
84 | # MIN_D_COMP_GLOB : The minimum degree of the polynomial for the global
85 | # component. For example, if the paramter is set to 1, the
86 | # polynomials of degree 0 and 1 will be excluded from the
87 | # global polynomial variations. ``None`` means that we are
88 | # not excluding any degree.
89 | # RMSE_THRESH : Parameter concerning the CCD outlier rejection. Once the PSF
90 | # model is calculated we perform an outlier check on the training
91 | # stars. We divide each star in two parts with a given circle.
92 | # The inner part corresponds to the most of the PSF/star energy
93 | # while the outer part corresponds to the observation background.
94 | # The outer part is used to calculate the noise level and the inner
95 | # part to calculate the model residual
96 | # (star observation - PSF model reconstruction). If the RMSE error
97 | # of the residual divided by the noise level is over the RMSE_THRESH,
98 | # the star will be considered an outlier. A perfect reconstruction
99 | # would have RMSE_THRESH equal to 1.
100 | # CCD_STAR_THRESH : Parameter concerning the CCD outlier rejection. If the
101 | # percentage of outlier stars in a single CCD is bigger than
102 | # CCD_STAR_THRESH, the CCD is considered to be an outlier.
103 | # In this case, the CCD is rejected from the PSF model.
104 | # A value lower than 0 means that no outlier rejection
105 | # will be done.
106 | # FP_GEOMETRY : Defines the geometry of the focal plane. For the moment the two
107 | # available options are 'CFIS' and 'EUCLID'. If the parameter is
108 | # not specified it defaults to 'CFIS'.
109 | #
110 | #
111 | #
112 | # [FIT]
113 | # LOC_MODEL : Defines the type of local model to use, it can be: 'rca',
114 | # 'poly' or 'hybrid'.
115 | # When the poly model is used, N_COMP_LOC should be used
116 | # as the D_LOC (max degree of the poly model)
117 | # PSF_SIZE : First guess of the PSF size. A size estimation is done anyways.
118 | # PSF_SIZE_TYPE : Type of the size information. It can be: fwhm, R2, sigma
119 | # N_EIGENVECTS : Number of eigenvectors to keep for the graph constraint
120 | # construction.
121 | # N_ITER_RCA : Number of global epochs in the algorithm. Alternation between
122 | # global and local estimations.
123 | # N_ITER_GLOB : Number of epochs for each global optimization. Alternations
124 | # between A_GLOB and S_GLOB.
125 | # N_ITER_LOC : Number of epochs for each local optimization. Alternations
126 | # between the different A_LOC and S_LOC.
127 | # NB_SUBITER_S_LOC : Iterations for the optimization algorithm over S_LOC.
128 | # NB_SUBITER_A_LOC : Iterations for the optimization algorithm over A_LOC.
129 | # NB_SUBITER_S_GLOB : Iterations for the optimization algorithm over S_GLOB.
130 | # NB_SUBITER_A_GLOB : Iterations for the optimization algorithm over A_GLOB.
131 | #
132 | #
133 | # [VALIDATION]
134 | # MODEL_INPUT_DIR : (Required) Must be a valid directory which contains the
135 | # saved trained models.
136 | # VAL_DATA_INPUT_DIR : (Required) Must be a valid directory which contains the
137 | # validation input data (test dataset).
138 | # VAL_REGEX_FILE_PATTERN : Same as INPUT_REGEX_FILE_PATTERN but for validation.
139 | # VAL_SEPARATOR : Same as INPUT_SEPARATOR but for validation.
140 | # VAL_OUTPUT_DIR : (Required) Must be a valid directory where to save the
141 | # validation outputs, test PSFs and interpolated PSFs.
142 | # APPLY_DEGRADATION : Whether the PSF models should be degraded
143 | # (sampling/shifts/flux) to match stars; use True if you
144 | # plan on making pixel-based comparisons (residuals etc.).
145 | # MCCD_DEBUG : Debug mode. Returns the local and global contributions.
146 | # GLOBAL_POL_INTERP : Uses polynomial interpolation for the global model
147 | # instead of RBF kernel interpolation.
148 | #
149 |
150 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | [](https://travis-ci.org/CosmoStat/mccd)
4 | [](https://badge.fury.io/py/mccd)
5 | [](https://python.org)
6 | [](https://python.org)
7 | [](https://arxiv.org/abs/2011.09835)
8 |
9 | # MCCD PSF Modelling
10 |
11 | Multi-CCD Point Spread Function Modelling.
12 |
13 | ---
14 | > Main contributor: Tobias Liaudat
15 | > Email: tobias.liaudat@cea.fr
16 | > Documentation: https://cosmostat.github.io/mccd/
17 | > Article: DOI - A&A
18 | > Current release: 17/02/2023
19 | ---
20 |
21 | The non-parametric MCCD PSF modelling, or MCCD for short, is a Point Spread Function modelling
22 | pure python package.
23 | It is used to generate a PSF model based on stars observations in the field of view.
24 | Once trained, the MCCD PSF model can then recover the PSF at any position in the field of view.
25 |
26 | ## Contents
27 |
28 | 1. [Dependencies](#Dependencies)
29 | 1. [Installation](#Installation)
30 | 1. [Quick usage](#quick-usage)
31 | 1. [Recommendations](#Recommendations)
32 |
33 |
34 |
35 | ## Dependencies
36 |
37 | The following python packages should be installed with their specific dependencies:
38 |
39 | - [numpy](https://github.com/numpy/numpy)
40 | - [scipy](https://github.com/scipy/scipy)
41 | - [astropy](https://github.com/astropy/astropy)
42 | - [GalSim](https://github.com/GalSim-developers/GalSim)
43 | - [ModOpt](https://github.com/CEA-COSMIC/ModOpt)
44 | - [PySAP](https://github.com/CEA-COSMIC/pysap)
45 |
46 | It is of utmost importance that the PySAP package is correctly installed as we will be using the wavelet transforms provided by it.
47 |
48 | _Note: The GalSim package was removed from ``requirements.txt``, it is expected to be installed (preferably with conda) before installing the MCCD package._
49 |
50 | ## Installation
51 |
52 | After installing all the dependencies one can perform the MCCD package installation:
53 |
54 | #### Locally
55 | ```bash
56 | git clone https://github.com/CosmoStat/mccd.git
57 | cd mccd
58 | python setup.py install
59 | ```
60 |
61 | To verify that the PySAP package is correctly installed and that the MCCD package is
62 | accessing the needed wavelet transforms one can run: ``python setup.py test`` and
63 | check that all the tests are passed.
64 |
65 | #### From Pypi
66 | ```bash
67 | pip install mccd
68 | ```
69 |
70 |
71 | ## Quick usage
72 |
73 | The easiest usage of the method is to go through the configuration file ``config_MCCD.ini`` using the helper classes found
74 | in [auxiliary_fun.py](https://github.com/CosmoStat/mccd/blob/master/mccd/auxiliary_fun.py)
75 | ([documentation](https://cosmostat.github.io/mccd/mccd.auxiliary_fun.html#)).
76 | Description of the parameters can be found directly in the configuration file [config_MCCD.ini](https://github.com/CosmoStat/mccd/blob/master/config_MCCD.ini).
77 | The MCCD method can handle SExtractor dataset as input catalogs given that they follow an appropriate naming convention.
78 |
79 | The main MCCD model parameters are:
80 |
81 | - ``LOC_MODEL``: Indicating the type of local model to be used (MCCD-HYB, MCCD-RCA, or MCCD-POL),
82 | - ``N_COMP_LOC``: Indicating the number of eigenPSFs to use in the local model.
83 | - ``D_COMP_GLOB``: Indicating the maximum polynomial degree for the global model.
84 |
85 | After setting up all the parameters from the configuration file there are three main functions, one to fit the model,
86 | one to validate the model and the last one to fit and then validate the model. The usage is as follows:
87 |
88 | ```python
89 | import mccd
90 |
91 | config_file_path = 'path_to_config_file.ini'
92 |
93 | run_mccd_instance = mccd.auxiliary_fun.RunMCCD(config_file_path,
94 | fits_table_pos=1)
95 |
96 | run_mccd_instance.fit_MCCD_models()
97 | ```
98 |
99 | For the validation one should replace the last line with:
100 |
101 | ```python
102 | run_mccd_instance.validate_MCCD_models()
103 | ```
104 |
105 | Finally for the fit and validation one should change the last line to:
106 |
107 | ```python
108 | run_mccd_instance.run_MCCD()
109 | ```
110 |
111 | All the output file will be saved on the directories specified on the configuration files.
112 |
113 |
114 | #### PSF recovery
115 |
116 | To recover PSFs from the model at specific positions ```test_pos``` from
117 | the CCD ```ccd_id``` one could use the following example:
118 |
119 | ```python
120 | import numpy as np
121 | import mccd
122 |
123 | config_file_path = 'path_to_config_file.ini'
124 | mccd_model_path = 'path_to_fitted_mccd_model.npy'
125 | test_pos = np.load(..)
126 | ccd_id = np.load(..)
127 | local_pos = True
128 |
129 | mccd_instance = mccd.auxiliary_fun.RunMCCD(
130 | config_file_path,
131 | fits_table_pos=1
132 | )
133 |
134 | rec_PSFs = mccd_instance.recover_MCCD_PSFs(
135 | mccd_model_path,
136 | positions=test_pos,
137 | ccd_id=ccd_id,
138 | local_pos=local_pos
139 | )
140 | ```
141 |
142 | See the [documentation](https://cosmostat.github.io/mccd/mccd.auxiliary_fun.html)
143 | of the ```recover_MCCD_PSFs()``` function for more information.
144 |
145 | #### Recommendations
146 |
147 | Some notebook examples can be found
148 | [here](https://github.com/CosmoStat/mccd/tree/master/notebooks).
149 |
150 | ## Changelog
151 |
152 | - Changed from travis deployment to github actions. Changed the github pages template. Now using the one from [pyralid-template](https://github.com/sfarrens/pyralid-template) from [sfarrens](https://github.com/sfarrens).
153 |
154 | - Added new module for realisitic simulations ```dataset_generation.py```. It is capable of simulating realistic simulations from the UNIONS/CFIS survey, including realistic atmospherical simulations following a realisation of a Von Kármán model. See the above-mentioned module documentation for more information. See also the ```testing-realistic-data.ipynb``` in the notebook folder for an example.
155 |
156 | - Added outlier rejection based on a pixel residual criterion. The main parameters, ```RMSE_THRESH``` and ```CCD_STAR_THRESH``` can be found in the MCCD config file. See then parameter documentation for more information.
157 |
158 | - For usage inside shape measurement pipelines: new PSF interpolation function included in the MCCD model ```interpolate_psf_pipeline()```. This function allows to output interpolated PSFs with a specific centroid.
159 |
160 | - New handling of position polynomials, local as well as global polynomials. Increased model performance.
161 |
162 | - New functionalities added. Handling of the max polynomial degree in the local hybrid model by the ```D_HYB_LOC```. Also adding a parameter ```MIN_D_COMP_GLOB``` to remove lower polynomial degrees in the global polynomial model.
163 |
164 | - Increased default number of iterations to have a better convergence in the PSF wings.
165 |
166 | - Algorithm updates to increase performance: Dropping the normalisation proximal operator. Harder sparsity constraint for spatial variations. Forcing RBF interpolation for the global part. Skipping the last weight optimization so that we always finish with a features/components optimization.
167 |
168 | - Set default denoising to zero as wavelet denoising (using starlets) introduce an important bias in the ellipticity estimates of the model.
169 |
--------------------------------------------------------------------------------
/docs/source/conf.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Python Template sphinx config
3 |
4 | # Import relevant modules
5 | import sys
6 | import os
7 | from importlib_metadata import metadata
8 |
9 | # If extensions (or modules to document with autodoc) are in another directory,
10 | # add these directories to sys.path here. If the directory is relative to the
11 | # documentation root, use os.path.abspath to make it absolute, like shown here.
12 | sys.path.insert(0, os.path.abspath('../..'))
13 | sys.path.insert(0, os.path.abspath('../../scripts'))
14 |
15 | # -- General configuration ------------------------------------------------
16 |
17 | # General information about the project.
18 | project = 'mccd'
19 |
20 | mdata = metadata(project)
21 | author = mdata['Author']
22 | version = mdata['Version']
23 | copyright = 'configure_year, {}'.format(author)
24 | gh_user = 'configure_ghuser'
25 |
26 | # If your documentation needs a minimal Sphinx version, state it here.
27 | needs_sphinx = '3.3'
28 |
29 | # Add any Sphinx extension module names here, as strings. They can be
30 | # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
31 | # ones.
32 | extensions = [
33 | 'sphinx.ext.autodoc',
34 | 'sphinx.ext.autosummary',
35 | 'sphinx.ext.coverage',
36 | 'sphinx.ext.doctest',
37 | 'sphinx.ext.ifconfig',
38 | 'sphinx.ext.intersphinx',
39 | 'sphinx.ext.mathjax',
40 | 'sphinx.ext.napoleon',
41 | 'sphinx.ext.todo',
42 | 'sphinx.ext.viewcode',
43 | 'sphinxawesome_theme',
44 | 'sphinxcontrib.bibtex',
45 | 'nbsphinx',
46 | 'nbsphinx_link',
47 | 'numpydoc',
48 | ]
49 |
50 | # Include module names for objects
51 | add_module_names = False
52 |
53 | # Set class documentation standard.
54 | autoclass_content = 'class'
55 |
56 | # Order docstrings as in the source
57 | autodoc_member_order = 'bysource'
58 |
59 | # Include private class methods
60 | autodoc_default_flags = ['members', 'private-members']
61 |
62 | # Generate summaries
63 | autosummary_generate = True
64 |
65 | # Suppress class members in toctree.
66 | numpydoc_show_class_members = False
67 |
68 | # The suffix(es) of source filenames.
69 | # You can specify multiple suffix as a list of string:
70 | source_suffix = ['.rst', '.md']
71 |
72 | # The master toctree document.
73 | master_doc = 'index'
74 |
75 | # If true, sectionauthor and moduleauthor directives will be shown in the
76 | # output. They are ignored by default.
77 | show_authors = True
78 |
79 | # The name of the Pygments (syntax highlighting) style to use.
80 | pygments_style = 'default'
81 |
82 | # If true, `todo` and `todoList` produce output, else they produce nothing.
83 | todo_include_todos = True
84 |
85 | # -- Options for HTML output ----------------------------------------------
86 |
87 | # The theme to use for HTML and HTML Help pages. See the documentation for
88 | # a list of builtin themes.
89 | html_theme = 'sphinxawesome_theme'
90 | # html_theme = 'sphinx_book_theme'
91 |
92 | # Theme options are theme-specific and customize the look and feel of a theme
93 | # further. For a list of options available for each theme, see the
94 | # documentation.
95 | html_theme_options = {
96 | "nav_include_hidden": True,
97 | "show_nav": True,
98 | "show_breadcrumbs": False,
99 | "breadcrumbs_separator": "/"
100 | }
101 | html_collapsible_definitions = True
102 |
103 |
104 | # The name for this set of Sphinx documents. If None, it defaults to
105 | # "
PACKAGE INFO.
71 |This module provides some basic information about the package.
72 |Read our Contribution Guidelines 71 | for details on how to contribute to the development of this package.
72 |All contributors are kindly asked to adhere to the 73 | Code of Conduct 74 | at all times to ensure a safe and inclusive environment for everyone.
75 |1.2.1
81 |25/01/2022
84 |Multi-CCD PSF modelling. Modelling the Point Spread Function in all the focal plane at once.
90 |' + _('Hide Search Matches') + '
') 239 | .appendTo($('#searchbox')); 240 | } 241 | }, 242 | 243 | /** 244 | * init the domain index toggle buttons 245 | */ 246 | initIndexTable : function() { 247 | var togglers = $('img.toggler').click(function() { 248 | var src = $(this).attr('src'); 249 | var idnum = $(this).attr('id').substr(7); 250 | $('tr.cg-' + idnum).toggle(); 251 | if (src.substr(-9) === 'minus.png') 252 | $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); 253 | else 254 | $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); 255 | }).css('display', ''); 256 | if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { 257 | togglers.click(); 258 | } 259 | }, 260 | 261 | /** 262 | * helper function to hide the search marks again 263 | */ 264 | hideSearchWords : function() { 265 | $('#searchbox .highlight-link').fadeOut(300); 266 | $('span.highlighted').removeClass('highlighted'); 267 | }, 268 | 269 | /** 270 | * make the url absolute 271 | */ 272 | makeURL : function(relativeURL) { 273 | return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; 274 | }, 275 | 276 | /** 277 | * get the current relative url 278 | */ 279 | getCurrentURL : function() { 280 | var path = document.location.pathname; 281 | var parts = path.split(/\//); 282 | $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { 283 | if (this === '..') 284 | parts.pop(); 285 | }); 286 | var url = parts.join('/'); 287 | return path.substring(url.lastIndexOf('/') + 1, path.length - 1); 288 | }, 289 | 290 | initOnKeyListeners: function() { 291 | $(document).keydown(function(event) { 292 | var activeElementType = document.activeElement.tagName; 293 | // don't navigate when in search box, textarea, dropdown or button 294 | if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' 295 | && activeElementType !== 'BUTTON' && !event.altKey && !event.ctrlKey && !event.metaKey 296 | && !event.shiftKey) { 297 | switch (event.keyCode) { 298 | case 37: // left 299 | var prevHref = $('link[rel="prev"]').prop('href'); 300 | if (prevHref) { 301 | window.location.href = prevHref; 302 | return false; 303 | } 304 | break; 305 | case 39: // right 306 | var nextHref = $('link[rel="next"]').prop('href'); 307 | if (nextHref) { 308 | window.location.href = nextHref; 309 | return false; 310 | } 311 | break; 312 | } 313 | } 314 | }); 315 | } 316 | }; 317 | 318 | // quick alias for translations 319 | _ = Documentation.gettext; 320 | 321 | $(document).ready(function() { 322 | Documentation.init(); 323 | }); 324 | -------------------------------------------------------------------------------- /docs/_build/py-modindex.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 || 72 | m | ||
| 75 | |
76 | mccd | 77 | |
| 80 | |
81 | mccd.auxiliary_fun | 82 | |
| 85 | |
86 | mccd.dataset_generation | 87 | |
| 90 | |
91 | mccd.grads | 92 | |
| 95 | |
96 | mccd.info | 97 | |
| 100 | |
101 | mccd.mccd | 102 | |
| 105 | |
106 | mccd.mccd_utils | 107 | |
| 110 | |
111 | mccd.proxs | 112 | |
| 115 | |
116 | mccd.utils | 117 | |
We kindly request that any academic work making use of this package to cite 70 | [LiaudatTBonninJStarckJL+21].
71 |Liaudat, T., Bonnin, J., Starck, J.-L., Schmitz, M. A., Guinot, A., Kilbinger, M., and Gwyn, S. D. J. Multi-ccd modelling of the point spread function. A&A, 646:A27, 2021. URL: https://doi.org/10.1051/0004-6361/202039584, doi:10.1051/0004-6361/202039584.
74 |Multi-CCD Point Spread Function Modelling.
71 |The non-parametric MCCD PSF modelling, or MCCD for short, is a Point Spread Function modelling 72 | pure python package. 73 | It is used to generate a PSF model based on stars observations in the field of view. 74 | Once trained, the MCCD PSF model can then recover the PSF at any position in the field of view. 75 | It has been tested on real data from the UNIONS/CFIS data with weak lensing purposes.
76 |Some notebook examples can be found here.
79 |There is also a module with useful functions to simulate exposures. 83 | See dataset_generation.py.
84 |