diff --git a/docs/conf.py b/docs/conf.py index 4c21338f..331a79dd 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -31,13 +31,13 @@ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', 'sphinx.ext.viewcode', + 'sphinx.ext.autodoc', + 'sphinx.ext.autosummary', 'sphinx.ext.napoleon' ] # Removes the module name space in front of classes and functions -# i.e. porepy.ad.Scalar() -> Scalar() add_module_names = False # Add any paths that contain templates here, relative to this directory. @@ -62,6 +62,10 @@ html_show_sourcelink = False html_show_sphinx = False +html_theme_options = { + "show_toc_level": 4 # TODO +} + # -- Autodoc Settings ------------------------------------------------------------------------- # autoclass concatenates docs strings from init and class. @@ -73,7 +77,7 @@ # orders the members of an object group wise, e.g. private, special or public methods autodoc_member_order = "groupwise" # alphabetical-groupwise-bysource -# type hints will be shortened: porepy.grids.grid.Grid -> Grid +# type hints will be shortened: autodoc_typehints_format = "short" # default configurations for all autodoc directives @@ -82,12 +86,12 @@ "special-members": False, "private-members": False, "show-inheritance": True, - "inherited-members": False, + "inherited-members": True, "no-value": False } # uses type hints in signatures for e.g. linking (default) -autodoc_typehints = "signature" +autodoc_typehints = "none" #TODO "description" # Avoid double appearance of documentation if child member has no docs autodoc_inherit_docstrings = False @@ -102,6 +106,7 @@ 'numpy': ('https://numpy.org/doc/stable', None), 'scipy': ('https://docs.scipy.org/doc/scipy', None), 'matplotlib': ('https://matplotlib.org/stable', None), - 'skimage': ('https://scikit-image.org/docs/stabe', None) + 'skimage': ('https://scikit-image.org/docs/stabe', None), + "sklearn": ("https://scikit-learn.org/stable/", None), } diff --git a/docs/darsia.corrections.rst b/docs/darsia.corrections.rst deleted file mode 100644 index 5da68c76..00000000 --- a/docs/darsia.corrections.rst +++ /dev/null @@ -1,30 +0,0 @@ -darsia.corrections package -========================== - -Subpackages ------------ - -.. toctree:: - :maxdepth: 4 - - darsia.corrections.color - darsia.corrections.shape - -Submodules ----------- - -darsia.corrections.basecorrection module ----------------------------------------- - -.. automodule:: darsia.corrections.basecorrection - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: darsia.corrections - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/darsia.corrections.shape.rst b/docs/darsia.corrections.shape.rst deleted file mode 100644 index 1eb7bbfb..00000000 --- a/docs/darsia.corrections.shape.rst +++ /dev/null @@ -1,61 +0,0 @@ -darsia.corrections.shape package -================================ - -Submodules ----------- - -darsia.corrections.shape.curvature module ------------------------------------------ - -.. automodule:: darsia.corrections.shape.curvature - :members: - :undoc-members: - :show-inheritance: - -darsia.corrections.shape.deformation module -------------------------------------------- - -.. automodule:: darsia.corrections.shape.deformation - :members: - :undoc-members: - :show-inheritance: - -darsia.corrections.shape.drift module -------------------------------------- - -.. automodule:: darsia.corrections.shape.drift - :members: - :undoc-members: - :show-inheritance: - -darsia.corrections.shape.piecewiseperspective module ----------------------------------------------------- - -.. automodule:: darsia.corrections.shape.piecewiseperspective - :members: - :undoc-members: - :show-inheritance: - -darsia.corrections.shape.rotation module ----------------------------------------- - -.. automodule:: darsia.corrections.shape.rotation - :members: - :undoc-members: - :show-inheritance: - -darsia.corrections.shape.translation module -------------------------------------------- - -.. automodule:: darsia.corrections.shape.translation - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: darsia.corrections.shape - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/darsia.image.rst b/docs/darsia.image.rst deleted file mode 100644 index 14c299f5..00000000 --- a/docs/darsia.image.rst +++ /dev/null @@ -1,77 +0,0 @@ -darsia.image package -==================== - -Submodules ----------- - -darsia.image.arithmetics module -------------------------------- - -.. automodule:: darsia.image.arithmetics - :members: - :undoc-members: - :show-inheritance: - -darsia.image.coordinatesystem module ------------------------------------- - -.. automodule:: darsia.image.coordinatesystem - :members: - :undoc-members: - :show-inheritance: - -darsia.image.coordinatetransformation module --------------------------------------------- - -.. automodule:: darsia.image.coordinatetransformation - :members: - :undoc-members: - :show-inheritance: - -darsia.image.image module -------------------------- - -.. automodule:: darsia.image.image - :members: - :undoc-members: - :show-inheritance: - -darsia.image.imread module --------------------------- - -.. automodule:: darsia.image.imread - :members: - :undoc-members: - :show-inheritance: - -darsia.image.indexing module ----------------------------- - -.. automodule:: darsia.image.indexing - :members: - :undoc-members: - :show-inheritance: - -darsia.image.patches module ---------------------------- - -.. automodule:: darsia.image.patches - :members: - :undoc-members: - :show-inheritance: - -darsia.image.subregions module ------------------------------- - -.. automodule:: darsia.image.subregions - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: darsia.image - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/darsia.rst b/docs/darsia.rst deleted file mode 100644 index 50ad6ba9..00000000 --- a/docs/darsia.rst +++ /dev/null @@ -1,28 +0,0 @@ -darsia package -============== - -Subpackages ------------ - -.. toctree:: - :maxdepth: 4 - - darsia.corrections - darsia.image - darsia.manager - darsia.mathematics - darsia.measure - darsia.multi_image_analysis - darsia.presets - darsia.restoration - darsia.signals - darsia.single_image_analysis - darsia.utils - -Module contents ---------------- - -.. automodule:: darsia - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/index.rst b/docs/index.rst index 16a16776..b63c5ebb 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,20 +1,25 @@ DarSIA ====== -DarSIA, short for Darcy Scale Image Analysis Toolbox, is a research code aiming at quantitative image analysis for images of porous media applications. The Darcy scale is of particular interest, and thus physics upscaling lies at the heart of DarSIA. +DarSIA, short for Darcy Scale Image Analysis, is a research code aiming at quantitative image analysis for images of porous media applications. It provides a collection of algorithms and basic workflows for phyisical image processing. The Darcy scale is of particular interest, and thus physics upscaling lies at the heart of DarSIA. -The supported image data types include optical images (png, jpg, tif, ...), DICOM images, and simulation data (vtk, ... - anything that meshio can read). Preprocessing routines to transform and align images as well as routines for extracting physical information from images (e.g., concentrations) are provided. +Various image data types are supported, including optical images (png, jpg, tif, ...), DICOM images, and simulation data (vtk, and essentially any format readable by meshio). Preprocessing routines to transform and align images as well as routines for extracting physical information from images (e.g., concentrations) are provided. + +News +==== + +The newest release is v.1.0 The DarSIA package ================== -DarSIA is divided into the following modules +DarSIA is divided into subpackages and modules. To navigate through its components follow the link: .. toctree:: + :maxdepth: 1 :titlesonly: -#darsia.corrections - + source/darsia Indices and tables ================== diff --git a/docs/modules.rst b/docs/modules.rst deleted file mode 100644 index 4b58289f..00000000 --- a/docs/modules.rst +++ /dev/null @@ -1,7 +0,0 @@ -darsia -====== - -.. toctree:: - :maxdepth: 4 - - darsia diff --git a/docs/source/corrections/darsia.corrections.basecorrection.rst b/docs/source/corrections/darsia.corrections.basecorrection.rst new file mode 100644 index 00000000..5ff1ca5f --- /dev/null +++ b/docs/source/corrections/darsia.corrections.basecorrection.rst @@ -0,0 +1,10 @@ +Base correction (:mod:`darsia.corrections.basecorrection`) +========================================================== + +.. automodule:: darsia.corrections.basecorrection + + .. rubric:: Classes + + .. autosummary:: + + BaseCorrection diff --git a/docs/darsia.corrections.color.rst b/docs/source/corrections/darsia.corrections.color.rst similarity index 63% rename from docs/darsia.corrections.color.rst rename to docs/source/corrections/darsia.corrections.color.rst index 9411e0d8..71121700 100644 --- a/docs/darsia.corrections.color.rst +++ b/docs/source/corrections/darsia.corrections.color.rst @@ -1,8 +1,22 @@ -darsia.corrections.color package -================================ +Color corrections (:mod:`darsia.corrections.color`) +=================================================== -Submodules ----------- +.. currentmodule:: darsia.corrections.color + +.. automodule:: darsia.corrections.color + :members: + :undoc-members: + :show-inheritance: + +Color correction implementations +-------------------------------- + +.. autosummary:: + :toctree: generated/ + + colorcorrection + experimentalcolorcorrection + darsia.corrections.color.colorcorrection module ----------------------------------------------- @@ -19,11 +33,3 @@ darsia.corrections.color.experimentalcolorcorrection module :members: :undoc-members: :show-inheritance: - -Module contents ---------------- - -.. automodule:: darsia.corrections.color - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/corrections/darsia.corrections.rst b/docs/source/corrections/darsia.corrections.rst new file mode 100644 index 00000000..a077cce9 --- /dev/null +++ b/docs/source/corrections/darsia.corrections.rst @@ -0,0 +1,85 @@ +Shape and color corrections (:mod:`darsia.corrections`) +======================================================= + +.. automodule:: darsia.corrections + :members: + :undoc-members: + :show-inheritance: + +The base correction +------------------- + +All corrections follow the design of a base correction object. + +.. currentmodule:: darsia.corrections.basecorrection + +.. autosummary:: + + BaseCorrection + +Color corrections with known location of a color checker +-------------------------------------------------------- +General color correction requires the presence of a color checker allowing to match test colors with reference colors. The location of color checkers in the images can be provided explicitly or only approximately. Color corrections aim at calibrating colors identified in color checkers with reference colors, either defined by standards or customly by the user. Provided the exact location of a color checker, the colors in the entire image can be corrected using the following objects in the :mod:`darsia.corrections.color.colorcorrection`: + +.. currentmodule:: darsia.corrections.color.colorcorrection + +.. rubric:: Classes + +.. autosummary:: + + ColorCorrection + ColorCheckerAfter2014 + CustomColorChecker + +Color corrections with approximate/unknown location of a color checker +---------------------------------------------------------------------- +Knowing the position of a color checker only approximately (or not at all), machine learning based routines may identify the precise location. In addition, reference colors for calibrated illumination conditions can be used to fully automatically correct for color impurities. This features are not stable for high-resolution images and should be used with care. The central objects in the :mod:`darsia.corrections.color.experimentalcolorcorrection` are: + +.. currentmodule:: darsia.corrections.color.experimentalcolorcorrection + +.. rubric:: Classes + +.. autosummary:: + ExperimentalColorCorrection + ClassicColorChecker + EOTF + + +Shape corrections +----------------- + +Shape correction alter the shape of the data container of the image. Several corrections are provided in the :mod:`darsia.corrections.shape` subpackage. + +.. currentmodule:: darsia.corrections.shape + +.. rubric:: Classes + +.. autosummary:: + + affine.AffineCorrection + curvature.CurvatureCorrection + deformation.DeformationCorrection + drift.DriftCorrection + rotation.RotationCorrection + translation.TranslationCorrection + +Some of these employ tailored transformations, which may also be used as stand-alone. + +.. currentmodule:: darsia.corrections.shape + +.. rubric:: Classes + +.. autosummary:: + + affine.AffineTransformation + piecewiseperspective.PiecewisePerspectiveTransform + +To detect suitable translations (used in several contexts including image registration, when restricted to patches), feature-based translation estimators are essential: + +.. currentmodule:: darsia.corrections.shape + +.. rubric:: Classes + +.. autosummary:: + + translation.TranslationEstimator diff --git a/docs/source/corrections/darsia.corrections.shape.rst b/docs/source/corrections/darsia.corrections.shape.rst new file mode 100644 index 00000000..78323e9d --- /dev/null +++ b/docs/source/corrections/darsia.corrections.shape.rst @@ -0,0 +1,55 @@ +Shape corrections (:mod:`darsia.corrections.shape`) +=================================================== + +.. automodule:: darsia.corrections.shape + :members: + :undoc-members: + :show-inheritance: + +Curvature correction (:mod:`darsia.corrections.shape.curvature`) +---------------------------------------------------------------- + +.. automodule:: darsia.corrections.shape.curvature + :members: + :undoc-members: + :show-inheritance: + +Local deformation correction (:mod:`darsia.corrections.shape.deformation`) +-------------------------------------------------------------------------- + +.. automodule:: darsia.corrections.shape.deformation + :members: + :undoc-members: + :show-inheritance: + +Drift correction (:mod:`darsia.corrections.shape.drift`) +-------------------------------------------------------- + +.. automodule:: darsia.corrections.shape.drift + :members: + :undoc-members: + :show-inheritance: + +Piecewise perspective transformation (:mod:`darsia.corrections.shape.piecewiseperspective`) +------------------------------------------------------------------------------------------- + +.. automodule:: darsia.corrections.shape.piecewiseperspective + :members: + :undoc-members: + :show-inheritance: + +Rotation correction (:mod:`darsia.corrections.shape.rotation`) +-------------------------------------------------------------- + +.. automodule:: darsia.corrections.shape.rotation + :members: + :undoc-members: + :show-inheritance: + +Translation correction (:mod:`darsia.corrections.shape.translation`) +-------------------------------------------------------------------- + +.. automodule:: darsia.corrections.shape.translation + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/darsia.rst b/docs/source/darsia.rst new file mode 100644 index 00000000..80710925 --- /dev/null +++ b/docs/source/darsia.rst @@ -0,0 +1,30 @@ +DarSIA - Darcy Scale Image Analysis toolbox (:mod:`darsia`) +=========================================================== + +.. automodule:: darsia + :members: + :undoc-members: + :show-inheritance: + +Getting started +--------------- +TODO: Examples and a recommended reading list will follow. + +Subpackages +----------- +For convenience, all subpackages are imported implicitly when importing DarSIA via ``import darsia``. The following subpackages are finally imported: + +.. toctree:: + :maxdepth: 1 + + corrections/darsia.corrections + image/darsia.image + manager/darsia.manager + mathematics/darsia.mathematics + measure/darsia.measure + multi_image_analysis/darsia.multi_image_analysis + presets/darsia.presets + restoration/darsia.restoration + signals/darsia.signals + single_image_analysis/darsia.single_image_analysis + utils/darsia.utils diff --git a/docs/source/image/darsia.image.rst b/docs/source/image/darsia.image.rst new file mode 100644 index 00000000..3d99d5ca --- /dev/null +++ b/docs/source/image/darsia.image.rst @@ -0,0 +1,90 @@ +Physical Images and I/O (:mod:`darsia.image`) +============================================= + +.. currentmodule:: darsia.image + +.. automodule:: darsia.image + :members: + :undoc-members: + :show-inheritance: + +Image data types +---------------- +DarSIA supports general ``(n+1)``-dimensional images, where ``n`` denotes the spatial dimension and ``+1`` indicates the possibility for space-time realizations of time series. Furthermore, the range of images can be both scalar and vectorial. While all images are of type ``Image``, convenient special cases are provided for scalar images, and optical images, i.e., photographs. + +.. currentmodule:: darsia.image.image + +.. autosummary:: + + Image + ScalarImage + OpticalImage + +Physical notion +--------------- +A central feature of images in DarSIA is their physical interpretation. In particular, coordinate systems providing translations between voxel and Cartesian coordinates allows for dimensionally meaningful extraction of subregions etc. + +.. currentmodule:: darsia.image.coordinatesystem + +.. autosummary:: + + CoordinateSystem + +A unified interface for reading images +-------------------------------------- +Provided an image stored to file, a unified interface is provided being able to read various data formats, as ``jpg``, ``png``, ``dcm``, ``vtu``, etc. + +.. currentmodule:: darsia.image.imread + +.. autosummary:: + + imread + +It is essentially a wrapper for dedicated image reading routines for specific data types - it reacts to the data ending. + +.. autosummary:: + + imread_from_numpy + imread_from_optical + imread_from_dicom + imread_from_vtu + +.. note:: Transformations can be integrated in the pre-processing and reading of images, see :mod:`darsia.corrections``. + +Arithmetics +----------- +Provided a set of images, various compositions of these can be constructed. + +.. currentmodule:: darsia.image.arithmetics + +.. autosummary:: + + weight + superpose + stack + +Coordinate transformation +------------------------- +Contrary to correction methods, which alter the data, coordinate transformation aim at altering the metadata. Provided two physical images with two differing relative coordinate systems, these can be aligned through transformation. + +.. currentmodule:: darsia.image.coordinatetransformation + +.. autosummary:: + + CoordinateTransformation + +Utilities +--------- +Various utilities are used across DarSIA, e.g., for converting matrix to Cartesian axis, extracting patches and subregions. + +.. currentmodule:: darsia.image + +.. autosummary:: + + indexing.to_matrix_indexing + indexing.to_cartesian_indexing + indexing.interpret_indexing + indexing.matrixToCartesianIndexing + indexing.cartesianToMatrixIndexing + patches.Patches + subregions.extract_quadrilateral_ROI diff --git a/docs/darsia.manager.rst b/docs/source/manager/darsia.manager.rst similarity index 90% rename from docs/darsia.manager.rst rename to docs/source/manager/darsia.manager.rst index a25f522b..3f4f20a6 100644 --- a/docs/darsia.manager.rst +++ b/docs/source/manager/darsia.manager.rst @@ -1,5 +1,10 @@ -darsia.manager package -====================== +Analysis managers (:mod:`darsia.manager`) +========================================= + +.. automodule:: darsia.manager + :members: + :undoc-members: + :show-inheritance: Submodules ---------- @@ -35,11 +40,3 @@ darsia.manager.traceranalysis module :members: :undoc-members: :show-inheritance: - -Module contents ---------------- - -.. automodule:: darsia.manager - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/darsia.mathematics.rst b/docs/source/mathematics/darsia.mathematics.rst similarity index 89% rename from docs/darsia.mathematics.rst rename to docs/source/mathematics/darsia.mathematics.rst index 5092936e..35cde7b6 100644 --- a/docs/darsia.mathematics.rst +++ b/docs/source/mathematics/darsia.mathematics.rst @@ -1,5 +1,5 @@ -darsia.mathematics package -========================== +Mathematical algorithms (:mod:`darsia.mathematics`) +=================================================== Submodules ---------- diff --git a/docs/darsia.measure.rst b/docs/source/measure/darsia.measure.rst similarity index 87% rename from docs/darsia.measure.rst rename to docs/source/measure/darsia.measure.rst index ad26dd92..cb340d4f 100644 --- a/docs/darsia.measure.rst +++ b/docs/source/measure/darsia.measure.rst @@ -1,5 +1,10 @@ -darsia.measure package -====================== +Measure tools (:mod:`darsia.measure`) +===================================== + +.. automodule:: darsia.measure + :members: + :undoc-members: + :show-inheritance: Submodules ---------- @@ -27,11 +32,3 @@ darsia.measure.norms module :members: :undoc-members: :show-inheritance: - -Module contents ---------------- - -.. automodule:: darsia.measure - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/darsia.multi_image_analysis.rst b/docs/source/multi_image_analysis/darsia.multi_image_analysis.rst similarity index 92% rename from docs/darsia.multi_image_analysis.rst rename to docs/source/multi_image_analysis/darsia.multi_image_analysis.rst index dd9930da..d2fd1c8f 100644 --- a/docs/darsia.multi_image_analysis.rst +++ b/docs/source/multi_image_analysis/darsia.multi_image_analysis.rst @@ -1,5 +1,10 @@ -darsia.multi\_image\_analysis package -===================================== +Multi-image comparisons (:mod:`darsia.multi_image_analysis`) +============================================================ + +.. automodule:: darsia.multi_image_analysis + :members: + :undoc-members: + :show-inheritance: Submodules ---------- @@ -51,11 +56,3 @@ darsia.multi\_image\_analysis.translationanalysis module :members: :undoc-members: :show-inheritance: - -Module contents ---------------- - -.. automodule:: darsia.multi_image_analysis - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/darsia.presets.fluidflower.rst b/docs/source/presets/darsia.presets.fluidflower.rst similarity index 87% rename from docs/darsia.presets.fluidflower.rst rename to docs/source/presets/darsia.presets.fluidflower.rst index 3c135ef7..188f295e 100644 --- a/docs/darsia.presets.fluidflower.rst +++ b/docs/source/presets/darsia.presets.fluidflower.rst @@ -1,5 +1,10 @@ -darsia.presets.fluidflower package -================================== +Heteroegenous media analysis workflows (:mod:`darsia.presets.fluidflower`) +========================================================================== + +.. automodule:: darsia.presets.fluidflower + :members: + :undoc-members: + :show-inheritance: Submodules ---------- @@ -35,11 +40,3 @@ darsia.presets.fluidflower.fluidflowertraceranalysis module :members: :undoc-members: :show-inheritance: - -Module contents ---------------- - -.. automodule:: darsia.presets.fluidflower - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/darsia.presets.rst b/docs/source/presets/darsia.presets.rst similarity index 68% rename from docs/darsia.presets.rst rename to docs/source/presets/darsia.presets.rst index b85a983a..2be0c0cc 100644 --- a/docs/darsia.presets.rst +++ b/docs/source/presets/darsia.presets.rst @@ -1,5 +1,10 @@ -darsia.presets package -====================== +Presets (:mod:`darsia.presets`) +=============================== + +.. automodule:: darsia.presets + :members: + :undoc-members: + :show-inheritance: Subpackages ----------- @@ -8,11 +13,3 @@ Subpackages :maxdepth: 4 darsia.presets.fluidflower - -Module contents ---------------- - -.. automodule:: darsia.presets - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/darsia.restoration.rst b/docs/source/restoration/darsia.restoration.rst similarity index 91% rename from docs/darsia.restoration.rst rename to docs/source/restoration/darsia.restoration.rst index e886584c..617b72ac 100644 --- a/docs/darsia.restoration.rst +++ b/docs/source/restoration/darsia.restoration.rst @@ -1,5 +1,10 @@ -darsia.restoration package -========================== +Restoration (:mod:`darsia.restoration`) +======================================= + +.. automodule:: darsia.restoration + :members: + :undoc-members: + :show-inheritance: Submodules ---------- @@ -43,11 +48,3 @@ darsia.restoration.tvd module :members: :undoc-members: :show-inheritance: - -Module contents ---------------- - -.. automodule:: darsia.restoration - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/darsia.signals.models.rst b/docs/source/signals/darsia.signals.models.rst similarity index 93% rename from docs/darsia.signals.models.rst rename to docs/source/signals/darsia.signals.models.rst index a8d69d52..bd9ff9b3 100644 --- a/docs/darsia.signals.models.rst +++ b/docs/source/signals/darsia.signals.models.rst @@ -1,5 +1,10 @@ -darsia.signals.models package -============================= +Signal conversion models (:mod:`darsia.signals.models`) +======================================================= + +.. automodule:: darsia.signals.models + :members: + :undoc-members: + :show-inheritance: Submodules ---------- @@ -67,11 +72,3 @@ darsia.signals.models.thresholdmodel module :members: :undoc-members: :show-inheritance: - -Module contents ---------------- - -.. automodule:: darsia.signals.models - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/darsia.signals.reduction.rst b/docs/source/signals/darsia.signals.reduction.rst similarity index 86% rename from docs/darsia.signals.reduction.rst rename to docs/source/signals/darsia.signals.reduction.rst index 13bb06cc..039c9603 100644 --- a/docs/darsia.signals.reduction.rst +++ b/docs/source/signals/darsia.signals.reduction.rst @@ -1,5 +1,10 @@ -darsia.signals.reduction package -================================ +Dimensional reduction (:mod:`darsia.signals.reduction`) +======================================================= + +.. automodule:: darsia.signals.reduction + :members: + :undoc-members: + :show-inheritance: Submodules ---------- @@ -27,11 +32,3 @@ darsia.signals.reduction.signalreduction module :members: :undoc-members: :show-inheritance: - -Module contents ---------------- - -.. automodule:: darsia.signals.reduction - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/darsia.signals.rst b/docs/source/signals/darsia.signals.rst similarity index 67% rename from docs/darsia.signals.rst rename to docs/source/signals/darsia.signals.rst index a91bccb0..c92d7013 100644 --- a/docs/darsia.signals.rst +++ b/docs/source/signals/darsia.signals.rst @@ -1,5 +1,10 @@ -darsia.signals package -====================== +Signals transformation (:mod:`darsia.signals`) +============================================== + +.. automodule:: darsia.signals + :members: + :undoc-members: + :show-inheritance: Subpackages ----------- @@ -9,11 +14,3 @@ Subpackages darsia.signals.models darsia.signals.reduction - -Module contents ---------------- - -.. automodule:: darsia.signals - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/darsia.single_image_analysis.rst b/docs/source/single_image_analysis/darsia.single_image_analysis.rst similarity index 73% rename from docs/darsia.single_image_analysis.rst rename to docs/source/single_image_analysis/darsia.single_image_analysis.rst index 982967b6..cc4908dd 100644 --- a/docs/darsia.single_image_analysis.rst +++ b/docs/source/single_image_analysis/darsia.single_image_analysis.rst @@ -1,5 +1,10 @@ -darsia.single\_image\_analysis package -====================================== +Single image analysis (:mod:`darsia.single\_image\_analysis`) +============================================================= + +.. automodule:: darsia.single_image_analysis + :members: + :undoc-members: + :show-inheritance: Submodules ---------- @@ -11,11 +16,3 @@ darsia.single\_image\_analysis.contouranalysis module :members: :undoc-members: :show-inheritance: - -Module contents ---------------- - -.. automodule:: darsia.single_image_analysis - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/darsia.utils.rst b/docs/source/utils/darsia.utils.rst similarity index 93% rename from docs/darsia.utils.rst rename to docs/source/utils/darsia.utils.rst index a89f2f3a..46fb5d59 100644 --- a/docs/darsia.utils.rst +++ b/docs/source/utils/darsia.utils.rst @@ -1,5 +1,10 @@ -darsia.utils package -==================== +Utilities (:mod:`darsia.utils`) +=============================== + +.. automodule:: darsia.utils + :members: + :undoc-members: + :show-inheritance: Submodules ---------- @@ -51,11 +56,3 @@ darsia.utils.segmentation module :members: :undoc-members: :show-inheritance: - -Module contents ---------------- - -.. automodule:: darsia.utils - :members: - :undoc-members: - :show-inheritance: diff --git a/src/darsia/__init__.py b/src/darsia/__init__.py index b90fbe48..ef3abc04 100644 --- a/src/darsia/__init__.py +++ b/src/darsia/__init__.py @@ -1,8 +1,8 @@ -"""Root directory for DarSIA. - -isort:skip_file +"""DarSIA provides tools for quantitative image processing with support for various and +common data types in computational and laboratory porous media research. """ + from darsia.image.coordinatesystem import * from darsia.image.image import * from darsia.image.indexing import * diff --git a/src/darsia/corrections/__init__.py b/src/darsia/corrections/__init__.py index e69de29b..a5c299dd 100644 --- a/src/darsia/corrections/__init__.py +++ b/src/darsia/corrections/__init__.py @@ -0,0 +1,6 @@ +"""Corrections are identified as pre-processing routines which alter the data without +modifying the metadata. These are based on the central class ``BaseCorrection``, which +provides workflow, independent of the image type. Corrections are typical routines to +be used as transformations when defining an image, see :mod:`darsia.image`. + +""" diff --git a/src/darsia/corrections/basecorrection.py b/src/darsia/corrections/basecorrection.py index 2b3be1c4..781172cf 100644 --- a/src/darsia/corrections/basecorrection.py +++ b/src/darsia/corrections/basecorrection.py @@ -9,10 +9,7 @@ class BaseCorrection(ABC): - """Abstract base correction, providing workflow and template for tailored - corrections. - - """ + """Abstract base correction, providing template for tailored corrections.""" def __call__( self, @@ -83,7 +80,7 @@ def correct_array( self, image: np.ndarray, ) -> np.ndarray: - """Correction routine on array level. + """Correction routine on array level, to be specified for tailored correction. Args: image (array): image array. diff --git a/src/darsia/corrections/color/__init__.py b/src/darsia/corrections/color/__init__.py index e69de29b..5bcfc374 100644 --- a/src/darsia/corrections/color/__init__.py +++ b/src/darsia/corrections/color/__init__.py @@ -0,0 +1,5 @@ +"""The provided color correction require the presence of a color palette as part of an +image to be able to calibrate the colors and thus the data. Both standard references +are provided as well as meas to define custom standards. + +""" diff --git a/src/darsia/corrections/color/colorcorrection.py b/src/darsia/corrections/color/colorcorrection.py index 9ef6bbb3..c5227d3e 100644 --- a/src/darsia/corrections/color/colorcorrection.py +++ b/src/darsia/corrections/color/colorcorrection.py @@ -88,7 +88,7 @@ def __init__( class ColorCorrection(darsia.BaseCorrection): - """ML-free color correction. + """Color correction with user-specified location of a color checker. Precise user-input is required for detecting the color checker. The Calibrite/ X-rite color checker has four corner landmarks on the colorchecker. The pixel @@ -97,6 +97,7 @@ class ColorCorrection(darsia.BaseCorrection): The color correction is applied prior to curvature correction in the darsia.Image initialization, and therefore, the roi should be with respect to the uncorrected image. + """ def __init__( diff --git a/src/darsia/corrections/color/experimentalcolorcorrection.py b/src/darsia/corrections/color/experimentalcolorcorrection.py index cc55fc15..50152fb0 100644 --- a/src/darsia/corrections/color/experimentalcolorcorrection.py +++ b/src/darsia/corrections/color/experimentalcolorcorrection.py @@ -1,4 +1,6 @@ -"""Module containing the color correction based on the Classic +"""Color corrections using ML-located color checker. + +Module containing the color correction based on the Classic Color Checker from calibrite / x-rite. The algorithms here heavily use code from colour-science (see their github). This includes some ML-based algorithms. Sometimes, the algorithms @@ -8,6 +10,7 @@ should be used which should always work. It is therefore recommended to double-check the results of the any of the color correction routines by setting verbosity to True once. + """ import copy @@ -27,6 +30,7 @@ class ClassicColorChecker: """Definition of the classic color checker under default illumination conditions. + """ def __init__(self): @@ -51,9 +55,9 @@ def __init__(self): class EOTF: - """ - Electro-optical transfer function (EOTF),the standard transfer + """Electro-optical transfer function (EOTF),the standard transfer function for sRGB, cf. https://en.wikipedia.org/wiki/SRGB + """ def __init__(self): @@ -92,6 +96,7 @@ def inverse_approx(self, image: np.ndarray) -> np.ndarray: Returns: np.ndarray: image in linear RGB (uint8) format. + """ # Need to transform values to uint8 first before applying the LUT. @@ -106,8 +111,7 @@ def __init__( verbosity: bool = False, whitebalancing: bool = True, ): - """ - Constructor of converter, setting up a priori all data needed for fast conversion. + """Constructor of converter, setting up a priori all data needed for fast conversion. Attributes: config (dict, str, Path): config file for initialization of images. Can be diff --git a/src/darsia/corrections/shape/__init__.py b/src/darsia/corrections/shape/__init__.py index e69de29b..73a07e46 100644 --- a/src/darsia/corrections/shape/__init__.py +++ b/src/darsia/corrections/shape/__init__.py @@ -0,0 +1,5 @@ +"""Shape corrections target geometrical transformations as translations, rotations, +but also locally varying bulge and stretch as well as general deformation resulting +from direct comparison with a reference image. + +""" diff --git a/src/darsia/corrections/shape/affine.py b/src/darsia/corrections/shape/affine.py index 200b6de4..76597fe9 100644 --- a/src/darsia/corrections/shape/affine.py +++ b/src/darsia/corrections/shape/affine.py @@ -1,8 +1,11 @@ -"""Module encoding standard transformations used in computer graphics, combining -translation, rotation, and scaling. A class encodes the map itself, including -automatic determining. In addition, the actual correction object is contained. +"""Module encoding standard transformations used in computer graphics. + +Such transformation combine translation, rotation, and scaling. A class encodes the map +itself, including automatic determining. In addition, the actual correction object is +contained. """ + import itertools from typing import Optional, Union @@ -17,8 +20,9 @@ class AffineTransformation: - """Affine map, restricted to translation, scaling, rotation, resulting in - conservation of angles. + """Transformation restricted to translation, scaling, rotation. + + Such a map conserves angles. There exists the possibility to only allow usietries. """ @@ -339,10 +343,7 @@ def inverse(self, array: np.ndarray) -> np.ndarray: class AffineCorrection(darsia.BaseCorrection): - """Affine correction based on affine transformation (translation, scaling, - rotation). - - """ + """Affine correction combining translation, scaling, rotation.""" def __init__( self, diff --git a/src/darsia/corrections/shape/curvature.py b/src/darsia/corrections/shape/curvature.py index 14ddb4e1..37104b06 100644 --- a/src/darsia/corrections/shape/curvature.py +++ b/src/darsia/corrections/shape/curvature.py @@ -1,7 +1,5 @@ -""" -Curvature correction class. +"""Module containing polynomical Curvature correction. -A class for setup and application of curvature correction. """ from __future__ import annotations @@ -23,7 +21,7 @@ class CurvatureCorrection(darsia.BaseCorrection): - """Class for curvature correction of curved images. + """Polynomial curvature correction. Contains routines for setting up the curvature correction, as well as applying it to images. diff --git a/src/darsia/corrections/shape/deformation.py b/src/darsia/corrections/shape/deformation.py index 86b02276..a2da0298 100644 --- a/src/darsia/corrections/shape/deformation.py +++ b/src/darsia/corrections/shape/deformation.py @@ -1,7 +1,7 @@ -""" -Module containing a deformation correction. This -is essentially a correction object through wrappping -darsia.DiffeomorphicImageRegistration. +"""Module containing a local deformation correction. + +This is essentially a correction object through wrappping +:mod:`darsia.DiffeomorphicImageRegistration`. """ from typing import Optional @@ -12,7 +12,7 @@ class DeformationCorrection(darsia.BaseCorrection): - """Class for deformation correction by comparison to a reference image. + """Patch-wise defined deformation correction defined through image registration. Attributes: base (darsia.Image): reference (baseline) image. @@ -42,8 +42,7 @@ def __init__(self, base: darsia.Image, config: Optional[dict]) -> None: self.image_registration = darsia.ImageRegistration(self.base, **config) def correct_array(self, img: np.ndarray) -> np.ndarray: - """ - Main routine for aligning image with baseline image. + """Main routine for aligning image with baseline image. Args: img (np.ndarray): input image, to be aligned. diff --git a/src/darsia/corrections/shape/drift.py b/src/darsia/corrections/shape/drift.py index 961aff21..94a70310 100644 --- a/src/darsia/corrections/shape/drift.py +++ b/src/darsia/corrections/shape/drift.py @@ -1,7 +1,6 @@ -""" -Module containing objects to align images with a baseline image, -when restricted to a significant ROI. By this correction for drift -is taking care of. +"""Module defining alignmen of images through global translation. + +The corresponding translation is determined through alignment of user-defined ROIs. """ @@ -13,18 +12,14 @@ class DriftCorrection(darsia.BaseCorrection): - """ - Class for drift correction of images wrt. a baseline image. - - """ + """Drift correction through global translation to align ROIs wrt. baseline image.""" def __init__( self, base: Union[np.ndarray, darsia.Image], config: Optional[dict] = None, ) -> None: - """ - Constructor for DriftCorrection. + """Constructor. Args: base (array or Image): baseline. @@ -87,8 +82,7 @@ def __init__( # ! ---- Main correction routines def correct_array(self, img: np.ndarray, roi: Optional[tuple] = None) -> np.ndarray: - """ - Main routine for aligning image with baseline image. + """Main routine for aligning image with baseline image. Args: img (np.ndarray): input image, to be aligned. @@ -97,6 +91,7 @@ def correct_array(self, img: np.ndarray, roi: Optional[tuple] = None) -> np.ndar Returns: np.ndarray: aligned image array. + """ if self.active: # Define roi for source image. Let input argument be dominating over self.roi. diff --git a/src/darsia/corrections/shape/piecewiseperspective.py b/src/darsia/corrections/shape/piecewiseperspective.py index f1e3ec27..e6129383 100644 --- a/src/darsia/corrections/shape/piecewiseperspective.py +++ b/src/darsia/corrections/shape/piecewiseperspective.py @@ -1,6 +1,4 @@ -""" -Module containing class which manages performing a translation based on -a provided pointwise translation map. +"""Module defining how to determine and apply patch-wise defined perspective transform. """ @@ -16,11 +14,7 @@ class PiecewisePerspectiveTransform: - """ - Class performing a piecewise perspective transform, applied to a structured grid. - The final transformation is continuous. - - """ + """Globally constant, patch-wise defined perspective transform.""" def __init__(self, **kwargs) -> None: """ @@ -44,8 +38,7 @@ def find_and_warp( displacement: Callable, reverse: bool = False, ) -> darsia.Image: - """ - Continuously transform entire image via patchwise perspective transform. + """Continuously transform entire image via patchwise perspective transform. Perspective transforms determined by the function evaluation in all corners of each patch results in continuous transformations. diff --git a/src/darsia/corrections/shape/rotation.py b/src/darsia/corrections/shape/rotation.py index 892ecc13..29a5514e 100644 --- a/src/darsia/corrections/shape/rotation.py +++ b/src/darsia/corrections/shape/rotation.py @@ -1,5 +1,4 @@ -"""Module containing objects useful for correcting -images wrt rotations +"""Module defining a rotation correction. """ @@ -13,7 +12,7 @@ class RotationCorrection(darsia.BaseCorrection): - """Class for rotation correction of nd images, up to 4d. + """Rotation correction. Rotations are defined as combination of multiple basic rotations. In 2d, a single basic rotation is sufficient. In 3d, although three are available, two are @@ -90,7 +89,7 @@ def __init__( ) def correct_array(self, img: np.ndarray) -> np.ndarray: - """Application of inherent rotation to provided image. + """Main routine: Application of inherent rotation to provided image. Args: img (array): image diff --git a/src/darsia/corrections/shape/translation.py b/src/darsia/corrections/shape/translation.py index cd37747e..ece78176 100644 --- a/src/darsia/corrections/shape/translation.py +++ b/src/darsia/corrections/shape/translation.py @@ -1,5 +1,5 @@ -""" -Module containing estimator for translation required to match two images. +"""Module defining estimator for translation between ROIs and corresponding correction. + """ from pathlib import Path @@ -14,21 +14,20 @@ class TranslationEstimator: - """ - Class for computing translations to align images based on feature detection. + """Estimator of translation to align images based on feature detection. + + Estimation is performed by restriction to ROIs. - Operates mainly on numpy arrays, but also provides some functionalities for darsia - Images. """ def __init__(self, max_features: int = 200, tol: float = 0.05, keep_percent=0.1): - """ - Setup of user-defined tuning parameters. + """Setup of user-defined tuning parameters. Args: max_features (int): feature detection parameter tol (float): tolerance used to detect whether matching transformation is a translation + """ self._max_features = max_features self._keep_percent = keep_percent @@ -44,9 +43,7 @@ def find_effective_translation( mask_dst: Optional[np.ndarray] = None, plot_matches: bool = False, ) -> tuple: - """ - Find effective translation to align to images, such that when restricted to an ROI, - both images have matching features. + """Find translation to align two images through feature matching. All lengths are measured in number of pixels. @@ -66,6 +63,7 @@ def find_effective_translation( np.ndarray: transformation matrix operating on pixel coordinates using reverse matrix indexing bool: flag indicating whether the procedure was successful + """ # Make several attempts to find a matching transformation. # First attempt to match both images, using a homography. @@ -116,9 +114,7 @@ def match_roi( roi_dst: Optional[tuple] = None, plot_matches: bool = False, ) -> np.ndarray: - """ - Align two images, such that when restricted to an ROI, both images have matching - features. + """Align two images through feature matching in provided ROIs. Args: img_src (np.ndarray or darsia.Image): source image @@ -131,6 +127,7 @@ def match_roi( Returns: np.ndarray, optional: aligned source image, if input of type array + """ # Determine effective translation if isinstance(img_src, np.ndarray) and isinstance(img_dst, np.ndarray): @@ -152,9 +149,7 @@ def _match_roi_arrays( roi_dst: Optional[tuple], plot_matches: bool = False, ) -> np.ndarray: - """ - Align two images, such that when restricted to an ROI, both images have matching - features. + """Align two images through feature matching in provided ROIs. Args: img_src (np.ndarray): source image @@ -167,6 +162,7 @@ def _match_roi_arrays( Returns: np.ndarray: aligned source image + """ # Determine effective translation translation, intact_translation = self.find_effective_translation( @@ -189,9 +185,7 @@ def _match_roi_images( roi_dst: Optional[tuple], plot_matches: bool = False, ) -> np.ndarray: - """ - Align two images, such that when restricted to an ROI, both images have matching - features. + """Align two images through feature matching in provided ROIs. Args: img_src (image): source image, which will be modified and aligned @@ -201,6 +195,7 @@ def _match_roi_images( translation plot_matches (bool): flag controlling whether the matching features are plotted; useful for debugging; default value is False + """ # Determine effective translation translation, intact_translation = self.find_effective_translation( @@ -228,9 +223,7 @@ def _find_matching_transformation( return_matches: bool = False, plot_matches: bool = False, ) -> tuple: - """ - Determine matching transformation (homography or partial affine transformation), - matching two given, possibly ROI-restricted, images. + """Determine matching map (homography or partial affine transformation). Args: img_src (np.ndarray): source image @@ -253,6 +246,7 @@ def _find_matching_transformation( np.ndarray: transformation matrix operating on pixel coordinates using reverse matrix indexing bool: flag indicating whether the procedure was successful + """ if transformation_type not in ["homography", "partial_affine"]: raise ValueError( @@ -336,8 +330,7 @@ def _find_matching_transformation( return transformation, intact_transformation def _isclose_translation(self, transformation: np.ndarray) -> bool: - """ - Checking whether a transformation is close to a translation. + """Checking whether a transformation is close to a translation. Args: transformation (np.ndarray): transformation matrix, e.g., homography, @@ -345,14 +338,14 @@ def _isclose_translation(self, transformation: np.ndarray) -> bool: Returns: bool: flag whether transformation is close to a translation + """ return transformation is not None and np.allclose( transformation[:2, :2], np.eye(2), atol=self._tol ) def _find_translation(self, matches: tuple) -> tuple: - """ - Determine a translation as average translation between two sets of points. + """Determine a translation as average translation between two sets of points. NOTE: The average translation is identical to the least squares minimizer among all translations. Including RANSAC would be optimal. However, in @@ -365,6 +358,7 @@ def _find_translation(self, matches: tuple) -> tuple: Returns: np.ndarray: translation matrix bool: flag indicating whether the procedure was successful + """ # Extract the translation directly as average displacement from all # provided matches - have to assume that the matches are well chosen. @@ -379,26 +373,40 @@ def _find_translation(self, matches: tuple) -> tuple: class TranslationCorrection(darsia.BaseCorrection): - """Correction object performing a user-prescribed translation to provided image.""" + """Translation correction based on user-input global translation. + + Translation is provided as array or path to numpy array. + + """ def __init__(self, translation: Optional[Union[str, Path]] = None): + """Contructor. + + Args: + translation (str or Path): path to predefined translation. + + """ # Read translation from file if translation is not None: self.translation = np.load(Path(translation)) + """Translation map/array.""" + self.active = True + """Flag controlling whether the correction is active.""" + else: self.active = False def correct_array(self, img: np.ndarray) -> np.ndarray: - """ - Perform translation. + """Main routine. Perform translation. Args: img (np.ndarray): image to be corrected. Returns: - array: Corrected image. + array: Corrected image + """ (h, w) = img.shape[:2] translated_img = cv2.warpAffine(img, self.translation, (w, h)) diff --git a/src/darsia/image/__init__.py b/src/darsia/image/__init__.py index e69de29b..30c89098 100644 --- a/src/darsia/image/__init__.py +++ b/src/darsia/image/__init__.py @@ -0,0 +1,7 @@ +"""Images are the central working objects in DarSIA. An important feature of ``Image`` +objects is their physical nature. They are equipped with coordinate systems, are +associates to some physical time, etc. To accomodate various common image data types +several input types are supported. To enable unified data import, based image reading +shall be performed using the interface functionality of ``imread``. + +""" diff --git a/src/darsia/image/arithmetics.py b/src/darsia/image/arithmetics.py index e4c41ecd..0e0b3599 100644 --- a/src/darsia/image/arithmetics.py +++ b/src/darsia/image/arithmetics.py @@ -238,7 +238,7 @@ def stack(images: list[darsia.Image]) -> darsia.Image: images (list of images): images Returns: - darsia.Image: stackes image + Image: stacked image """ image = images[0] diff --git a/src/darsia/image/image.py b/src/darsia/image/image.py index 8a431eb8..1ff52781 100644 --- a/src/darsia/image/image.py +++ b/src/darsia/image/image.py @@ -1,9 +1,10 @@ -"""Image class. +"""Image module defining various image types. -Images contain the image array, and in addition metadata about origin and dimensions. +A central concept in DarSIA is that images (``Image`` objects) have a physical +interpretation. These are enhanced by physical scales in space and time. Thus +they contain a coordinatesystem. """ - from __future__ import annotations import copy @@ -661,19 +662,21 @@ def show_matplotlib( """Show routine using matplotlib.pyplot built-in methods. Args: - title (str): title in the displayed window. - duration (int, optional): display duration in seconds. + title: title in the displayed window. + duration: display duration in seconds. **kwargs: additional arguments passed to matplotlib.pyplot. - threshold (float): threshold for displaying 3d images. - relative (bool): flag controlling whether the threshold is relative. - view (str): view type; either "scatter" or "voxel"; only for 3d images. - NOTE: "voxel" plots are more time consuming. - side_view (str): side view type of 3d image; only for 3d images; - either "scatter" or "voxel". - surpress_2d (bool): flag controlling whether 2d images are displayed. - surpress_3d (bool): flag controlling whether 3d images are displayed. - delay (bool): flag controlling whether the display is delayed; can be - used to display multiple images at the same time. + - threshold (float): threshold for displaying 3d images. + - relative (bool): flag controlling whether the threshold is relative. + - view (str): view type; either "scatter" or "voxel"; only for 3d + images. + - side_view (str): side view type of 3d image; only for 3d images; + either "scatter" or "voxel". + - surpress_2d (bool): flag controlling whether 2d images are displayed. + - surpress_3d (bool): flag controlling whether 3d images are displayed. + - delay (bool): flag controlling whether the display is delayed; can be + used to display multiple images at the same time. + + Note: Using mode = "voxel" is often more time-consuming. """ diff --git a/src/darsia/manager/__init__.py b/src/darsia/manager/__init__.py index e69de29b..f4184c6a 100644 --- a/src/darsia/manager/__init__.py +++ b/src/darsia/manager/__init__.py @@ -0,0 +1,6 @@ +"""The object-oriented coding style of DarSIA enables the use of workflows for the +analysis of tracer and CO2 concentrations in (optical) images. For this, interface +functionlity is encoded in the data analysis tools mainly targeting concentration +analyses. + +""" diff --git a/src/darsia/measure/__init__.py b/src/darsia/measure/__init__.py index e69de29b..e2862284 100644 --- a/src/darsia/measure/__init__.py +++ b/src/darsia/measure/__init__.py @@ -0,0 +1,7 @@ +"""Measuring of physical quantities in porous media is performed by integration over the +domain. Thus, knowledge over physical information is required, as depth (for 2d images) +and porosity. Several special cases are features for convenience. In addition, +this subpackage holds tools to measure differences between images by considering +the Earth mover's distance. + +""" diff --git a/src/darsia/multi_image_analysis/__init__.py b/src/darsia/multi_image_analysis/__init__.py index e69de29b..157c79e8 100644 --- a/src/darsia/multi_image_analysis/__init__.py +++ b/src/darsia/multi_image_analysis/__init__.py @@ -0,0 +1,7 @@ +"""Multi-image comparison tools to track dynamics in static images. Such are employed +in order to study concentration analyses, local deformations (equivalent with the task +of image regstration). An important step of translating iages to concentrations is the +signal transformation into physically meaningful data. This can be achieved through +scaling etc. Tools to calibrate models of interest are provided in this subpackage. + +""" diff --git a/src/darsia/presets/__init__.py b/src/darsia/presets/__init__.py index e69de29b..e52cf874 100644 --- a/src/darsia/presets/__init__.py +++ b/src/darsia/presets/__init__.py @@ -0,0 +1,3 @@ +"""Presets for workflows to study concentration dynamics in heterogeneous media. + +""" diff --git a/src/darsia/restoration/__init__.py b/src/darsia/restoration/__init__.py index e69de29b..34583160 100644 --- a/src/darsia/restoration/__init__.py +++ b/src/darsia/restoration/__init__.py @@ -0,0 +1,3 @@ +"""Smoothness and shape altering restoration algorithms. + +""" diff --git a/src/darsia/signals/__init__.py b/src/darsia/signals/__init__.py index e69de29b..dddfd1f9 100644 --- a/src/darsia/signals/__init__.py +++ b/src/darsia/signals/__init__.py @@ -0,0 +1,3 @@ +"""Dimensionsional reduction and transformation of signals. + +""" diff --git a/src/darsia/signals/models/__init__.py b/src/darsia/signals/models/__init__.py index e69de29b..8e60433c 100644 --- a/src/darsia/signals/models/__init__.py +++ b/src/darsia/signals/models/__init__.py @@ -0,0 +1,3 @@ +"""Models for the transformation of signals, e.g., to physical data. + +""" diff --git a/src/darsia/signals/reduction/__init__.py b/src/darsia/signals/reduction/__init__.py index e69de29b..9fcf67aa 100644 --- a/src/darsia/signals/reduction/__init__.py +++ b/src/darsia/signals/reduction/__init__.py @@ -0,0 +1,3 @@ +"""Tools to reduce the dimensionality of an Image in space and range. + +""" diff --git a/src/darsia/single_image_analysis/__init__.py b/src/darsia/single_image_analysis/__init__.py index e69de29b..974c56e9 100644 --- a/src/darsia/single_image_analysis/__init__.py +++ b/src/darsia/single_image_analysis/__init__.py @@ -0,0 +1,3 @@ +"""Post-processing tools for physical data. + +""" diff --git a/src/darsia/utils/__init__.py b/src/darsia/utils/__init__.py index e69de29b..839488d3 100644 --- a/src/darsia/utils/__init__.py +++ b/src/darsia/utils/__init__.py @@ -0,0 +1,3 @@ +"""Utility functionalities. + +"""