diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 0000000..d4bb2cb --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/doc/Tutorial_advanced.rst b/doc/Tutorial_advanced.rst new file mode 100644 index 0000000..cb35a51 --- /dev/null +++ b/doc/Tutorial_advanced.rst @@ -0,0 +1,228 @@ +Tutorial - Advanced (only script) +================================= + + + + +Single acquisition +------------------ + + +This tutorial walks you through the process of running a simple acquisition using the `CassiSystem` class from the :code:`simca` package. + +Setup +..... + +First, make sure to import the necessary modules: + +.. code-block:: python + + from simca import CassiSystem, load_yaml_config + +Next, load the configuration files: + +.. code-block:: python + + config_dataset = load_yaml_config("simca/configs/dataset.yml") + config_system = load_yaml_config("simca/configs/cassi_system.yml") + config_patterns = load_yaml_config("simca/configs/pattern.yml") + config_acquisition = load_yaml_config("simca/configs/acquisition.yml") + +Then, set the name of the dataset of interest: + +.. code-block:: python + + dataset_name = "indian_pines" + +Initialize the CassiSystem +.............................. + +Initialize the `CassiSystem`: + +.. code-block:: python + + cassi_system = CassiSystem(system_config=config_system) + +Load the Hyperspectral dataset +.............................. + +Load the hyperspectral dataset: + +.. code-block:: python + + cassi_system.load_dataset(dataset_name, config_dataset["datasets directory"]) + +Generate the Coded Aperture Pattern +........................................ + +Generate the coded aperture pattern: + +.. code-block:: python + + cassi_system.generate_2D_pattern(config_patterns) + +Propagate the Coded Aperture Grid +................................... + +Propagate the coded aperture grid to the detector plane: + +.. code-block:: python + + cassi_system.propagate_coded_aperture_grid() + +Generate the Filtering Cube +.............................. + +Generate the filtering cube: + +.. code-block:: python + + cassi_system.generate_filtering_cube() + +(Optional) Generate the PSF +.............................. + +Generate the PSF of the optical system: + +.. code-block:: python + + cassi_system.optical_model.generate_psf(type="Gaussian",radius=100) + +Simulate the Acquisition +......................... + +Simulate the acquisition (with PSF in this case): + +.. code-block:: python + + cassi_system.image_acquisition(use_psf=True, chunck_size=50) + +Save the Acquisition +......................... + +Finally, save the acquisition: + +.. code-block:: python + + cassi_system.save_acquisition(config_patterns, config_acquisition) + +And that's it! You've successfully run an acquisition using the `CassiSystem` class from the :code:`simca` package. + + +Multiple acquisitions +---------------------- + +This tutorial walks you through the process of running multiple acquisitions using the `CassiSystem` class from the :code:`simca` package. + +Setup +......................... + +First, make sure to import the necessary modules and configurations: + + +.. code-block:: python + + import matplotlib.pyplot as plt + from simca import CassiSystem + from simca.functions_general_purpose import * + import os + + config_dataset = load_yaml_config("simca/configs/dataset.yml") + config_system = load_yaml_config("simca/configs/cassi_system.yml") + config_patterns = load_yaml_config("simca/configs/pattern.yml") + config_acquisition = load_yaml_config("simca/configs/acquisition.yml") + + dataset_name = "indian_pines" + results_directory = "./data/results/lego_test_1" + nb_of_acq = 10 + + +Initialize the CassiSystem +.................................................. + +Initialize the `CassiSystem`: + + +.. code-block:: python + + cassi_system = CassiSystem(system_config=config_system) + + +Load the Hyperspectral dataset +.................................................. + +Load the hyperspectral dataset: + + +.. code-block:: python + + cassi_system.load_dataset(dataset_name, config_dataset["datasets directory"]) + + +Generate Multiple Patterns for Acquisition +........................................................................... + +Generate multiple coded aperture patterns: + + +.. code-block:: python + + cassi_system.generate_multiple_patterns(config_patterns, nb_of_acq) + + +Propagate the Coded Aperture Grid +.................................................. + +Propagate the coded aperture grid to the detector plane: + + +.. code-block:: python + + cassi_system.propagate_coded_aperture_grid() + + +Generate Multiple Filtering Cubes +.................................................. + +Generate the multiple filtering cubes: + + +.. code-block:: python + + cassi_system.generate_multiple_filtering_cubes(nb_of_acq) + + +Simulate Multiple Acquisitions +.................................................. + +Simulate multiple acquisitions: + + +.. code-block:: python + + cassi_system.multiple_image_acquisitions(use_psf=False, nb_of_filtering_cubes=nb_of_acq, chunck_size=50) + + +Save the Acquisition +......................... + +Set up the results directory and save the acquisition: + + +.. code-block:: python + + cassi_system.result_directory = results_directory + os.makedirs(results_directory, exist_ok=True) + + save_config_file("config_system", cassi_system.system_config, cassi_system.result_directory) + save_config_file("config_pattern", config_patterns, cassi_system.result_directory) + save_config_file("config_acquisition", config_acquisition, cassi_system.result_directory) + save_data_in_hdf5("interpolated_scene", cassi_system.interpolated_scene, cassi_system.result_directory) + save_data_in_hdf5("panchro", cassi_system.panchro, cassi_system.result_directory) + save_data_in_hdf5("wavelengths", cassi_system.optical_model.system_wavelengths, cassi_system.result_directory) + save_data_in_hdf5("list_of_compressed_measurements", cassi_system.list_of_measurements, cassi_system.result_directory) + save_data_in_hdf5("list_of_filtering_cubes", cassi_system.list_of_filtering_cubes, cassi_system.result_directory) + save_data_in_hdf5("list_of_patterns", cassi_system.list_of_patterns, cassi_system.result_directory) + +Congratulations! You've successfully performed and saved multiple acquisitions using the `CassiSystem` class from the :code:`simca` package. + diff --git a/doc/Tutorial_with_GUI.rst b/doc/Tutorial_with_GUI.rst new file mode 100644 index 0000000..cddec06 --- /dev/null +++ b/doc/Tutorial_with_GUI.rst @@ -0,0 +1,279 @@ +Tutorial - Basics (with GUI) +============================ + + + +Discover Main Features +----------------------- + +The are 4 main features included in the application. These modules are not completely independent, using them sequentially is recommended for first usages. + +- **Dataset Analysis** (only with GUI): for analyzing multi- or hyper-spectral datasets. It includes vizualization of data slices, spectrum analysis, and dataset labeling. + +- **Optical Design**: for evaluating and comparing the performances of various optical systems. + +- **Coded Aperture**: for generating various patterns and corresponding filtering cubes. + +- **Acquisition**: for simulating the acquisition process of coded images + +.. image:: /resources/layout_general.svg + :alt: Docusaurus logo + +Feature A : Dataset Analysis +---------------------------- + +The Dataset analysis tab is used to **load & display datasets characteristics**. + +.. image:: /resources/layout_dataset_tab.svg + :alt: layout dataset tab + +1. Settings +............. + +Located on the left side of the application window. + +Includes: + +- `datasets directory` : path to the datasets directory. All datasets be stored here. + **ATTENTION** : click on the `reload datasets` button if you change the datasets directory path + +- **dataset name : a ComboBox displaying the datasets available in the selected directory** + +- `loaded dataset dimensions` : These values are displayed once the dataset is loaded + - `dimension along X` : dimension of the dataset in the X direction (main spectral dispersion direction) + - `dimension along Y` : dimension of the dataset in the Y direction (perpendicular to spectral dispersion direction) + - `number of spectral bands` : number of spectral bands in the loaded dataset + - `minimum wavelength` : minimum wavelength, usually corresponds to the spectral band n°0 + - `maximum wavelength` : maximum wavelength, usually corresponds to the last spectral band + +2. Load dataset button +....................... + +By clicking on this button, the dataset selected in the `dataset name` ComboBox is loaded by the application. + +3. Display windows +.................... + +Located on the right side of the application window. + +**Once a dataset is loaded**, one can inspect the spatial and spectral content of the dataset. + +Hyperspectral cube +^^^^^^^^^^^^^^^^^^ + +By moving the slider, you choose the spectral plane to be displayed. + +.. image:: /resources/layout_dataset_2.svg + :alt: dataset layout 2 + +Compare Spectra +^^^^^^^^^^^^^^^ + +.. image:: /resources/layout_dataset_3.svg + :alt: dataset layout 2 + +Labelisation map +^^^^^^^^^^^^^^^^ + +.. image:: /resources/layout_dataset_4.svg + :alt: dataset layout 2 + +Labelisation Histogram +^^^^^^^^^^^^^^^^^^^^^^ + +.. image:: /resources/layout_dataset_5.svg + :alt: dataset layout 2 + + +Feature B : Optical Design +-------------------------- + +The Optical Design tab is used for quick evaluation of the optical system characteristics (spectral dispersion & distortions). + +.. image:: /resources/layout_optical_design_tab.svg + :alt: layout dataset tab + +1. System Settings +................... + +.. image:: /resources/mask_to_detector.svg + :alt: Docusaurus logo + +Located on the left side of the application window. + +Includes: + +- **infos**: + - *system name*: name of the studied system +- **system architecture**: All parameters that define the optical system and thus the spatial/spectral filtering + + - *system type* + - *propagation type* : model used for evaluating the spatial/spectral filtering + - *focal lens F* [in micrometers] + - *dispersive element*: + - *type*: Prism or Grating + - *A (only when prism is selected)*: apex angle of the prism [in degrees] + - *m (only when grating is selected)*: considered order of diffraction [no units] + - *G (only when grating is selected)*: grating lines density [lines/mm] + - *delta alpha c* [in degrees] + - *delta beta c* [in degrees] + - *wavelength center* [in nm] +- **detector**: parameters that define the detector grid +- **SLM**: parameters that define the mask grid +- **spectral range**: the spectral boundaries of the system and the number of spectral bands to consider + +2. Run Simulation button +......................... + +For each considered wavelength, the mask grid points coordinates is propagated onto the detector. + +3. Display +........... + +Located on the right side of the application window. It can be used to analyse the mask grid object and its images in the detector plane. + +Coded aperture grid +^^^^^^^^^^^^^^^^^^^^ + +.. image:: /resources/input_grid.svg + :alt: Docusaurus logo + +Propagated coded aperture grid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Spectral images of the input coded aperture grid for the minimum, maximum, and center wavelength. + +**ATTENTION**: center wavelength (605 nm on the given example) is different from the system architecture center wavelength + +.. image:: /resources/propagated_grids.svg + :alt: Docusaurus logo + +Distortion maps +^^^^^^^^^^^^^^^ + +Get qualitative and quantitative distortion data: + +.. image:: /resources/distortion_maps.svg + :alt: Docusaurus logo + + +Feature C : Pattern generation +------------------------------- + +The Coded Aperture tab is used for designing patterns and generating associated filtering cube. + +.. image:: /resources/layout_coded_aperture.svg + :alt: Coded Aperture design tab + + + +1. Patterns Settings +..................... + +Located on the left side of the application window. + +The patterns characteristics depend on the chosen pattern type. + +Available patterns: + +- **slit**:*only one column of the coded aperture is open (perpendicular to the spectral dispersion), thus generating a spectral gradient type filter.* + - *slit position*: relative to the center column between -100 and 100 coded aperture elements + - *slit width*: between 1 and 30 coded aperture elements. +- **random**: random noise pattern with a normal law +- **blue noise**: random noise pattern with boosted high frequencies +- **custon h5 pattern**: custom pattern that should be a h5 file with a container named "pattern". Once loaded, the pattern is cropped to fit SLM dimensions + +2. Generate pattern +.................... + +By clicking on this button, a 2D array representing a coded aperture pattern is generated through pattern generation functions contained in the `functions_patterns_generation.py` file. + + +3. Generate Filtering Cube button +.................................. + + +By clicking on this button, a `CassiSystem` instance is creating the filtering cube corresponding to the **detector dimensions along X and Y** and the **number of spectral bands**. + +Each slice of the filtering contains the projection of the coded aperture pattern on the detector grid. + +**ATTENTION** : The spectral sampling of the filtering cube is not the same as the dataset's sampling. It is defined in the spectral range section of the Optical Design tab. The wavelengths are equally spaced between "minimum wavelength" and "maximum wavelength". + +4. Display Pattern and Filtering Cube +...................................... + +Located on the right side of the application window. + +Pattern +^^^^^^^ + +Shows the generated (or loaded) pattern: + +.. image:: /resources/pattern_display.svg + :alt: Pattern + +Filtering Cube, slice by slice +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Shows the corresponding filtering cube. By moving the slider, one can inspect the filtering cube slice by slice: + +.. image:: /resources/filtering-cube.svg + :alt: filtering cube + +Feature D : Acquisition +------------------------ + +The Acquisition tab is used to generate compressed measurements given: a **dataset** and a **filtering cube**. + +Note that the dataset is: + +- cropped in the spatial dimensions to fit the filtering cube sampling (detector dimensions). +- interpolated in the spectral dimension according to the filtering cube sampling. + + + +.. image:: /resources/acquisition_tab.svg + :alt: layout scene tab + +1. Settings +............ + +For now, the GUI only includes one mode: single acquisition. + +A Point-spread-function (PSF) can be added for more realism. For now, each slice of the filtered scene is convolved by the same kernel. A wavelength-dependent PSF will be added in the future. + +2. Run Acquisition button +.......................... + +By clicking on this button: + +- First, the dataset cube is cropped in the spatial dimensions and interpolated in the spectral dimension. +- Second, a point by point multiplication is performed between the filtering cube and the reinterpolated scene. + +3. Display measurements +........................ + +compressed measurements +^^^^^^^^^^^^^^^^^^^^^^^^ + +The image as measured by the detector. + +.. image:: /resources/layout_acquisition_1.svg + :alt: layout scene tab + +Spectral images +^^^^^^^^^^^^^^^ + +Each slice of the filtered scene. + +.. image:: /resources/layout_acquisition_2.svg + :alt: layout scene tab + +Panchromatic image +^^^^^^^^^^^^^^^^^^ + +No spatial/spectral filtering, the interpolated scene is simply summed along its spectral dimension. + +.. image:: /resources/layout_acquisition_3.svg + :alt: layout scene tab + diff --git a/doc/conf.py b/doc/conf.py new file mode 100644 index 0000000..29222f6 --- /dev/null +++ b/doc/conf.py @@ -0,0 +1,37 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +import os +import sys +sys.path.insert(0, os.path.abspath('..')) + +project = 'simca' +copyright = '2023, Antoine Rouxel' +author = 'Antoine Rouxel' +release = '1.0' + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.viewcode', + 'sphinx.ext.napoleon', + 'sphinxcontrib.bibtex' +] + +templates_path = ['_templates'] +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] +bibtex_bibfiles = ['./resources/biblio.bib'] + + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +html_theme = 'sphinx_rtd_theme' +html_static_path = ['_static'] diff --git a/doc/getting_started.rst b/doc/getting_started.rst new file mode 100644 index 0000000..55f7cc3 --- /dev/null +++ b/doc/getting_started.rst @@ -0,0 +1,65 @@ +.. _getting_started: + +Getting started +=============== + + + +Installation +------------ + +To install :code:`simca`, follow the steps below: + +1. Clone the repository from GitLab: + +.. code-block:: bash + + git clone git@gitlab.laas.fr:arouxel/simca.git + cd simca + +2. Create a dedicated Python environment using Miniconda. If you don't have Miniconda installed, you can find the instructions `here `_. + +.. code-block:: bash + + # Create a new Python environment + conda create -n simca-env python=3.9 + + # Activate the environment + conda activate simca-env + +3. Install the necessary Python packages that simca relies on. These are listed in the `requirements.txt` file in the repository. + +.. code-block:: bash + + # Install necessary Python packages with pip + pip install -r requirements.txt + + +Usage +----- + +Download datasets +^^^^^^^^^^^^^^^^^^ + +4. Download the standard datasets from this `link `_, then unzip and paste the `datasets` folder in the root directory of SIMCA. + +Quick Start with GUI (option 1) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +5. Start the application: + +.. code-block:: bash + + # run the app + python main.py + +Quick Start with API (option 2) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +5. Run the example script : + +.. code-block:: bash + + # run the script + python simple_script.py + diff --git a/doc/index.rst b/doc/index.rst new file mode 100644 index 0000000..d762858 --- /dev/null +++ b/doc/index.rst @@ -0,0 +1,84 @@ +.. simca documentation master file, created by + sphinx-quickstart on Fri Aug 4 17:05:16 2023. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +SIMCA : optical simulations for coded spectral imaging +======================================================= + + +.. image:: ./resources/SIMCA_logo-2-cropped.png + +SIMCA is a python-based tool designed to perform optical simulations of Coded Aperture Snapshot Spectral Imaging (CASSI) systems. +We provide a python package and a graphical user-interface developed in PyQt5. + +It is built upon ray-tracing equations and interpolation methods to estimate the image formation process and generate realistic measurements of various cassi instruments. + +Available **system architectures** are: + +- Single-Disperser CASSI (:cite:`Wagadarikar2008`) +- Double-Disperser CASSI (:cite:`Gehm2007`) + +Available **propagation models** are: + +- Higher-Order from :cite:`Arguello2013` +- Ray-tracing (first implementation in :cite:`Hemsley2020a`, another paper will be submitted soon) + +Available **optical components** and related characteristics are: + +- Lens (params: focal length) +- Prism (params: apex angle, glass type, orientation misalignments) +- Grating (params: groove density, orientation misalignments) + +More system architectures and optical components will be added in the future. + + +Main Features +============= + +SIMCA includes four main features: + +- **Scene Analysis** (only with GUI): for analyzing multi- or hyper-spectral datasets. It includes vizualization of data slices, spectrum analysis, and dataset labeling. + +- **Optical Design**: for evaluating and comparing the performances of various optical systems. + +- **Coded Aperture patterns Generation**: for generating various patterns and corresponding filtering cubes. + +- **Acquisition Coded Images**: for simulating the acquisition process + +For more detailed information about each feature and further instructions, please visit our `Tutorial - Basics (with GUI) `_ and `Tutorial - Advanced (only script) `_. + + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + getting_started + Tutorial_with_GUI + Tutorial_advanced + simca + + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + + +License +======= + +SIMCA is licensed under the `MIT License `_. + +Contact +======= + +For any questions or feedback, please contact us at arouxel@laas.fr + +References +========== +.. bibliography:: ./resources/biblio.bib diff --git a/doc/make.bat b/doc/make.bat new file mode 100644 index 0000000..32bb245 --- /dev/null +++ b/doc/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/doc/modules.rst b/doc/modules.rst new file mode 100644 index 0000000..4ca8528 --- /dev/null +++ b/doc/modules.rst @@ -0,0 +1,7 @@ +cassi_systems +============= + +.. toctree:: + :maxdepth: 4 + + cassi_systems diff --git a/doc/resources/SIMCA_logo-1-cropped.png b/doc/resources/SIMCA_logo-1-cropped.png new file mode 100644 index 0000000..13d1740 Binary files /dev/null and b/doc/resources/SIMCA_logo-1-cropped.png differ diff --git a/doc/resources/SIMCA_logo-1.png b/doc/resources/SIMCA_logo-1.png new file mode 100644 index 0000000..42d72c1 Binary files /dev/null and b/doc/resources/SIMCA_logo-1.png differ diff --git a/doc/resources/SIMCA_logo-11.png b/doc/resources/SIMCA_logo-11.png new file mode 100644 index 0000000..579a1c2 Binary files /dev/null and b/doc/resources/SIMCA_logo-11.png differ diff --git a/doc/resources/SIMCA_logo-2-cropped.png b/doc/resources/SIMCA_logo-2-cropped.png new file mode 100644 index 0000000..e13a59d Binary files /dev/null and b/doc/resources/SIMCA_logo-2-cropped.png differ diff --git a/doc/resources/SIMCA_logo-2.png b/doc/resources/SIMCA_logo-2.png new file mode 100644 index 0000000..898cb12 Binary files /dev/null and b/doc/resources/SIMCA_logo-2.png differ diff --git a/doc/resources/SIMCA_logo-22.png b/doc/resources/SIMCA_logo-22.png new file mode 100644 index 0000000..ea95ec6 Binary files /dev/null and b/doc/resources/SIMCA_logo-22.png differ diff --git a/doc/resources/acquisition.svg b/doc/resources/acquisition.svg new file mode 100644 index 0000000..ed833c2 --- /dev/null +++ b/doc/resources/acquisition.svg @@ -0,0 +1,100 @@ + + + + + + + + 2023-05-16T01:28:49.025885 + image/svg+xml + + + Matplotlib v3.7.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/resources/acquisition_tab.svg b/doc/resources/acquisition_tab.svg new file mode 100644 index 0000000..be35deb --- /dev/null +++ b/doc/resources/acquisition_tab.svg @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/resources/biblio.bib b/doc/resources/biblio.bib new file mode 100644 index 0000000..043250e --- /dev/null +++ b/doc/resources/biblio.bib @@ -0,0 +1,95 @@ +@PhdThesis{rouxelphdthesis, + author = {Rouxel, Antoine}, + school = {{INSA de Toulouse}}, + title = {{{\'E}tude d'un imageur hyperspectral adaptatif dans un contexte d'observation de la terre}}, + year = {2022}, + month = Jun, + type = {Theses}, + hal_id = {tel-03997931}, + hal_local_reference = {Rapport LAAS n{\textdegree} 22291}, + hal_version = {v2}, + keywords = {Hyperspectral ; Adaptive ; Imager ; Optical ; Deep learning ; Hyperspectral ; Adaptatif ; Imageur ; Optique ; Apprentissage profond}, + number = {2022ISAT0028}, + pdf = {https://theses.hal.science/tel-03997931v2/file/2022AntoineROUXEL.pdf}, + url = {https://theses.hal.science/tel-03997931}, +} + +@Article{Hemsley2022, + title = {{Fast reconstruction of hyperspectral images from coded acquisitions using a separability assumption}}, + author = {Hemsley, Elizabeth and Ardi, Ibrahim and Rouvier, Tony and Lacroix, Simon and Carfantan, Herv{\'e} and Monmayrant, Antoine}, + journal = {{Optics Express}}, + publisher = {{Optical Society of America - OSA Publishing}}, + volume = {30}, + number = {5}, + pages = {8174-8185}, + year = {2022}, + month = Feb, + DOI = {10.1364/OE.448893}, +} + +@Article{Hemsley2020, + author = {Elizabeth Hemsley and Ibrahim Ardi and Simon Lacroix and Herv{\'{e}} Carfantan and Antoine Monmayrant}, + journal = {Journal of the Optical Society of America A}, + title = {Optimized coded aperture for frugal hyperspectral image recovery using a dual-disperser system}, + year = {2020}, + month = {nov}, + number = {12}, + pages = {1916}, + volume = {37}, + doi = {10.1364/josaa.403594}, + publisher = {The Optical Society}, +} + +@Article{Hemsley2020a, + author = {Elizabeth Hemsley and Simon Lacroix and Herv{\'{e}} Carfantan and Antoine Monmayrant}, + journal = {Optics Communications}, + title = {Calibration of programmable spectral imager with dual disperser architecture}, + year = {2020}, + month = {aug}, + pages = {125767}, + volume = {468}, + doi = {10.1016/j.optcom.2020.125767}, + publisher = {Elsevier {BV}}, +} + +@Article{Arguello2013, + author = {Henry Arguello and Hoover Rueda and Yuehao Wu and Dennis W. Prather and Gonzalo R. Arce}, + journal = {Applied Optics}, + title = {Higher-order computational model for coded aperture spectral imaging}, + year = {2013}, + month = {mar}, + number = {10}, + pages = {D12}, + volume = {52}, + doi = {10.1364/ao.52.000d12}, + publisher = {The Optical Society}, +} + +@Article{Wagadarikar2008, + author = {A. Wagadarikar and T. John and R. Willett and D. Brady}, + journal = {Applied Optics}, + title = {Single disperser design for coded aperture snapshot spectral imaging}, + year = {2008}, + month = {aug}, + volume = {47}, + number = {10}, + pages = {B44--B51}, + doi = {10.1364/ao.47.000b44}, +} + +@Article{Gehm2007, + author = {M. E. Gehm and R. John and D. J. Brady and R. M. Willett and T. J. Schulz}, + journal = {Optics Express}, + title = {Single-shot compressive spectral imaging with a dual-disperser architecture}, + year = {2007}, + month = {oct}, + number = {21}, + pages = {14013}, + volume = {15}, + doi = {10.1364/oe.15.014013}, + groups = {HYACAMEO, CASSI systems}, + keywords = {singleshot, dualdisperser, compressive sensing, SLM, 4f, dedispersion, model, encoding, reconstruction, 2D detector, hyperspectral}, + publisher = {The Optical Society}, +} + +@Comment{jabref-meta: databaseType:bibtex;} diff --git a/doc/resources/distortion_maps.svg b/doc/resources/distortion_maps.svg new file mode 100644 index 0000000..72dfdbb --- /dev/null +++ b/doc/resources/distortion_maps.svg @@ -0,0 +1,9486 @@ + + + + + + + + 2023-05-17T18:31:36.489245 + image/svg+xml + + + Matplotlib v3.7.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/resources/distortions.svg b/doc/resources/distortions.svg new file mode 100644 index 0000000..b1d8d90 --- /dev/null +++ b/doc/resources/distortions.svg @@ -0,0 +1,3025 @@ + + + + + + + + 2023-05-16T17:17:21.684863 + image/svg+xml + + + Matplotlib v3.7.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/resources/favicon.ico b/doc/resources/favicon.ico new file mode 100644 index 0000000..e0afcf2 Binary files /dev/null and b/doc/resources/favicon.ico differ diff --git a/doc/resources/filtering-cube.svg b/doc/resources/filtering-cube.svg new file mode 100755 index 0000000..447f8b0 --- /dev/null +++ b/doc/resources/filtering-cube.svg @@ -0,0 +1,66 @@ + + + + diff --git a/doc/resources/input_grid.svg b/doc/resources/input_grid.svg new file mode 100644 index 0000000..dc65a66 --- /dev/null +++ b/doc/resources/input_grid.svg @@ -0,0 +1,1506 @@ + + + + + + + + 2023-05-17T18:30:32.491407 + image/svg+xml + + + Matplotlib v3.7.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/resources/layout_acquisition_1.svg b/doc/resources/layout_acquisition_1.svg new file mode 100644 index 0000000..83268db --- /dev/null +++ b/doc/resources/layout_acquisition_1.svg @@ -0,0 +1,63 @@ + + + + diff --git a/doc/resources/layout_acquisition_2.svg b/doc/resources/layout_acquisition_2.svg new file mode 100644 index 0000000..4c247c1 --- /dev/null +++ b/doc/resources/layout_acquisition_2.svg @@ -0,0 +1,2634 @@ + + + + + + + + + + + + + + diff --git a/doc/resources/layout_acquisition_3.svg b/doc/resources/layout_acquisition_3.svg new file mode 100644 index 0000000..b955ae4 --- /dev/null +++ b/doc/resources/layout_acquisition_3.svg @@ -0,0 +1,2305 @@ + + + + + + + + + + + + + + diff --git a/doc/resources/layout_coded_aperture.svg b/doc/resources/layout_coded_aperture.svg new file mode 100755 index 0000000..f352069 --- /dev/null +++ b/doc/resources/layout_coded_aperture.svg @@ -0,0 +1,8405 @@ + + + +4 diff --git a/doc/resources/layout_dataset_1.svg b/doc/resources/layout_dataset_1.svg new file mode 100755 index 0000000..3ef70e2 --- /dev/null +++ b/doc/resources/layout_dataset_1.svg @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/resources/layout_dataset_2.svg b/doc/resources/layout_dataset_2.svg new file mode 100755 index 0000000..11eac54 --- /dev/null +++ b/doc/resources/layout_dataset_2.svg @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + diff --git a/doc/resources/layout_dataset_3.png b/doc/resources/layout_dataset_3.png new file mode 100644 index 0000000..85907dd --- /dev/null +++ b/doc/resources/layout_dataset_3.png @@ -0,0 +1,3527 @@ + + + + diff --git a/doc/resources/layout_dataset_3.svg b/doc/resources/layout_dataset_3.svg new file mode 100755 index 0000000..aacd0a2 --- /dev/null +++ b/doc/resources/layout_dataset_3.svg @@ -0,0 +1,3527 @@ + + + + diff --git a/doc/resources/layout_dataset_4.png b/doc/resources/layout_dataset_4.png new file mode 100644 index 0000000..4e69ac4 --- /dev/null +++ b/doc/resources/layout_dataset_4.png @@ -0,0 +1,2014 @@ + + + + diff --git a/doc/resources/layout_dataset_4.svg b/doc/resources/layout_dataset_4.svg new file mode 100644 index 0000000..4e69ac4 --- /dev/null +++ b/doc/resources/layout_dataset_4.svg @@ -0,0 +1,2014 @@ + + + + diff --git a/doc/resources/layout_dataset_5.svg b/doc/resources/layout_dataset_5.svg new file mode 100644 index 0000000..e5fd265 --- /dev/null +++ b/doc/resources/layout_dataset_5.svg @@ -0,0 +1,1396 @@ + + + + + + + + 2023-05-20T00:17:56.600114 + image/svg+xml + + + Matplotlib v3.7.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/resources/layout_dataset_tab.svg b/doc/resources/layout_dataset_tab.svg new file mode 100755 index 0000000..b87dc9a --- /dev/null +++ b/doc/resources/layout_dataset_tab.svg @@ -0,0 +1,150 @@ + + + + diff --git a/doc/resources/layout_general.svg b/doc/resources/layout_general.svg new file mode 100644 index 0000000..be413ef --- /dev/null +++ b/doc/resources/layout_general.svg @@ -0,0 +1,10844 @@ + + + + diff --git a/doc/resources/layout_optical_design_1.svg b/doc/resources/layout_optical_design_1.svg new file mode 100644 index 0000000..9475103 --- /dev/null +++ b/doc/resources/layout_optical_design_1.svg @@ -0,0 +1,3446 @@ + + + + diff --git a/doc/resources/layout_optical_design_tab.svg b/doc/resources/layout_optical_design_tab.svg new file mode 100755 index 0000000..82b3b1d --- /dev/null +++ b/doc/resources/layout_optical_design_tab.svg @@ -0,0 +1,7117 @@ + + + + diff --git a/doc/resources/layout_scene_analysis.png b/doc/resources/layout_scene_analysis.png new file mode 100644 index 0000000..30374e9 Binary files /dev/null and b/doc/resources/layout_scene_analysis.png differ diff --git a/doc/resources/logo.png b/doc/resources/logo.png new file mode 100644 index 0000000..f1f8670 Binary files /dev/null and b/doc/resources/logo.png differ diff --git a/doc/resources/logo.svg b/doc/resources/logo.svg new file mode 100644 index 0000000..638ddab --- /dev/null +++ b/doc/resources/logo.svg @@ -0,0 +1,60 @@ + + + + diff --git a/doc/resources/mask_design.svg b/doc/resources/mask_design.svg new file mode 100644 index 0000000..9820189 --- /dev/null +++ b/doc/resources/mask_design.svg @@ -0,0 +1,169 @@ + + + +4 diff --git a/doc/resources/mask_display.svg b/doc/resources/mask_display.svg new file mode 100755 index 0000000..0dbabe4 --- /dev/null +++ b/doc/resources/mask_display.svg @@ -0,0 +1,840 @@ + + + + + + + + 2023-05-17T13:28:04.651540 + image/svg+xml + + + Matplotlib v3.7.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/resources/mask_to_detector.svg b/doc/resources/mask_to_detector.svg new file mode 100644 index 0000000..eda66dc --- /dev/null +++ b/doc/resources/mask_to_detector.svg @@ -0,0 +1,3735 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/resources/pattern.png b/doc/resources/pattern.png new file mode 100755 index 0000000..374810b Binary files /dev/null and b/doc/resources/pattern.png differ diff --git a/doc/resources/pattern.svg b/doc/resources/pattern.svg new file mode 100755 index 0000000..1a9df19 --- /dev/null +++ b/doc/resources/pattern.svg @@ -0,0 +1,861 @@ + + + + + + + + 2023-09-04T13:18:40.298841 + image/svg+xml + + + Matplotlib v3.7.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/resources/pattern_display.svg b/doc/resources/pattern_display.svg new file mode 100755 index 0000000..4b38227 --- /dev/null +++ b/doc/resources/pattern_display.svg @@ -0,0 +1,808 @@ + + + + diff --git a/doc/resources/propagated_grids.svg b/doc/resources/propagated_grids.svg new file mode 100644 index 0000000..7596ab6 --- /dev/null +++ b/doc/resources/propagated_grids.svg @@ -0,0 +1,3062 @@ + + + + + + + + 2023-05-17T18:30:58.547144 + image/svg+xml + + + Matplotlib v3.7.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/resources/spectrums.svg b/doc/resources/spectrums.svg new file mode 100644 index 0000000..2999df1 --- /dev/null +++ b/doc/resources/spectrums.svg @@ -0,0 +1,350 @@ + + + + + + + + 2023-05-16T01:20:03.736546 + image/svg+xml + + + Matplotlib v3.7.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/resources/test.svg b/doc/resources/test.svg new file mode 100644 index 0000000..077699a --- /dev/null +++ b/doc/resources/test.svg @@ -0,0 +1,2924 @@ + + + + + + + + 2023-05-16T01:03:36.131030 + image/svg+xml + + + Matplotlib v3.7.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/resources/undraw_docusaurus_mountain.svg b/doc/resources/undraw_docusaurus_mountain.svg new file mode 100644 index 0000000..af961c4 --- /dev/null +++ b/doc/resources/undraw_docusaurus_mountain.svg @@ -0,0 +1,171 @@ + + Easy to Use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/resources/undraw_docusaurus_react.svg b/doc/resources/undraw_docusaurus_react.svg new file mode 100644 index 0000000..94b5cf0 --- /dev/null +++ b/doc/resources/undraw_docusaurus_react.svg @@ -0,0 +1,170 @@ + + Powered by React + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/resources/undraw_docusaurus_tree.svg b/doc/resources/undraw_docusaurus_tree.svg new file mode 100644 index 0000000..d9161d3 --- /dev/null +++ b/doc/resources/undraw_docusaurus_tree.svg @@ -0,0 +1,40 @@ + + Focus on What Matters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/simca.rst b/doc/simca.rst new file mode 100644 index 0000000..e6929c4 --- /dev/null +++ b/doc/simca.rst @@ -0,0 +1,48 @@ +API Reference +============= + +.. toctree:: + :maxdepth: 4 + +The :code:`simca` package is based on the work :cite:`rouxelphdthesis` + + + +classes +------- + +.. automodule:: simca.CassiSystem + :members: + :undoc-members: + :show-inheritance: + +.. automodule:: simca.OpticalModel + :members: + :undoc-members: + :show-inheritance: + +functions +---------- + + .. automodule:: simca.functions_scenes + :members: + :undoc-members: + :show-inheritance: + + +.. automodule:: simca.functions_patterns_generation + :members: + :undoc-members: + :show-inheritance: + + +.. automodule:: simca.functions_acquisition + :members: + :undoc-members: + :show-inheritance: + + +.. automodule:: simca.functions_general_purpose + :members: + :undoc-members: + :show-inheritance: