Metadata-Version: 2.1
Name: fluidimage
Version: 0.5.3
Summary: Fluid image processing with Python.
Keywords: PIV
Home-page: https://foss.heptapod.net/fluiddyn/fluidimage
Author-Email: Pierre Augier <pierre.augier@legi.cnrs.fr>
License: CeCILL
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Scientific/Engineering
Project-URL: Homepage, https://foss.heptapod.net/fluiddyn/fluidimage
Project-URL: Documentation, https://fluidimage.readthedocs.io
Project-URL: Read-only-mirror, https://github.com/fluiddyn/fluidimage
Requires-Python: >=3.9
Requires-Dist: numpy>=1.8
Requires-Dist: matplotlib>=3.5
Requires-Dist: scipy>=0.14.1
Requires-Dist: h5py
Requires-Dist: h5netcdf
Requires-Dist: transonic>=0.6.2
Requires-Dist: fluiddyn>=0.6.2
Requires-Dist: pyfftw>=0.10.4
Requires-Dist: imageio
Requires-Dist: scikit-image>=0.12.3
Requires-Dist: trio>=0.13
Requires-Dist: dask[array]
Requires-Dist: ipython
Requires-Dist: rich>=13.7.1
Requires-Dist: textual
Requires-Dist: pims; extra == "pims"
Requires-Dist: opencv-python; extra == "opencv"
Requires-Dist: gprof2dot; extra == "graph"
Requires-Dist: pytest; extra == "pytest"
Requires-Dist: pytest-asyncio; extra == "pytest"
Requires-Dist: fluidimage[graph,opencv,pims,pytest]; extra == "all"
Provides-Extra: pims
Provides-Extra: opencv
Provides-Extra: graph
Provides-Extra: pytest
Provides-Extra: all
Description-Content-Type: text/markdown

# FluidImage

[![Latest version](https://img.shields.io/pypi/v/fluidimage.svg)](https://pypi.python.org/pypi/fluidimage/)
![Supported Python versions](https://img.shields.io/pypi/pyversions/fluidimage.svg)
[![Documentation status](https://readthedocs.org/projects/fluidimage/badge/?version=latest)](http://fluidimage.readthedocs.org)
[![Code coverage](https://codecov.io/gh/fluiddyn/fluidimage/branch/branch%2Fdefault/graph/badge.svg)](https://codecov.io/gh/fluiddyn/fluidimage/branch/branch%2Fdefault/)
[![Heptapod CI](https://foss.heptapod.net/fluiddyn/fluidimage/badges/branch/default/pipeline.svg)](https://foss.heptapod.net/fluiddyn/fluidimage/-/pipelines)
[![Github Actions Linux](https://github.com/fluiddyn/fluidimage/actions/workflows/ci-linux.yml/badge.svg?branch=branch/default)](https://github.com/fluiddyn/fluidimage/actions/workflows/ci-linux.yml)
[![Github Actions Pixi](https://github.com/fluiddyn/fluidimage/actions/workflows/ci-pixi.yml/badge.svg?branch=branch/default)](https://github.com/fluiddyn/fluidimage/actions/workflows/ci-pixi.yml)

<!-- start description -->

FluidImage is a free and open-source Python framework to process images of fluids (in
particular with [PIV]), and analyse the resulting fields.

**Documentation:** <http://fluidimage.readthedocs.org>

Image processing for fluid mechanics is still dominated by proprietary tools. Such tools
are not ideal when you want to understand and tweak the algorithms and/or to use
clusters. There are also good and useful PIV software ([PIVlab], [UVmat]) written in
Matlab, which is itself proprietary.

With the improvement of the Python numerical ecosystem and of tools for collaborative
development, one can think it is possible to build together a good community-driven
library/toolkit specialized in image processing for fluid mechanics. This is our project
with FluidImage.

Fluidimage has now grown into a clean software reimplementing in modern Python algorithms
and ideas taken from [UVmat], [OpenPIV], [PIVlab] and [PIVmat] with a focus on
performance, usability and maintanability. However, Fluidimage is not restricted to
Particle Image Velocimetry computations ([PIV], i.e. displacements of pattern obtained by
correlations of cropped images) and can be used to

- display and pre-process images,

- compute displacement or velocity fields with PIV, Background-Oriented Schlieren
  ([BOS](https://en.wikipedia.org/wiki/Background-oriented_schlieren_technique)) and
  [optical flow](https://en.wikipedia.org/wiki/Optical_flow),

- analyze and display vector and scalar fields.

We want to make FluidImage easy (useful documentation, easy installation, nice API,
usable with simple scripts and few simple graphical user interfaces), reliable (with good
[unittests](https://codecov.io/gh/fluiddyn/fluidimage/)) and very efficient, in
particular when the number of images is large. Thus we want FluidImage to be able to run
efficiently and easily on a personal computer and on big clusters. The efficiency is
achieved by using

- a framework for asynchronous computations (currently, we use
  [Trio](https://trio.readthedocs.io)) and an associated API to define "topologies" of
  parallel computations.

- parallelism to efficiently use the available cores of the Central Processing Units
  (CPU),

- good profiling and efficient and specialized algorithms,

- cutting-edge tools for fast computations with Python (in particular
  [Pythran](https://pythran.readthedocs.io) through
  [Transonic](https://transonic.readthedocs.io)).

[openpiv]: http://www.openpiv.net/
[piv]: https://en.wikipedia.org/wiki/Particle_image_velocimetry%20(PIV)
[pivlab]: https://pivlab.blogspot.com/p/what-is-pivlab.html
[pivmat]: http://www.fast.u-psud.fr/pivmat/
[uvmat]: http://servforge.legi.grenoble-inp.fr/projects/soft-uvmat/wiki/UvmatHelp
