.. lic documentation master file, created by sphinx-quickstart on Sat Jun 20 12:15:34 2020. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. ############################################### ⎣⫯ℂ: Line Integral Convolution for numpy Arrays ############################################### .. image:: https://img.shields.io/pypi/v/lic?style=flat-square :target: https://pypi.org/project/lic/ :alt: PyPI .. image:: https://img.shields.io/pypi/l/lic?style=flat-square :target: https://gitlab.com/szs/lic/-/raw/master/LICENSE :alt: PyPI - License .. image:: https://img.shields.io/pypi/pyversions/lic?style=flat-square :target: https://python.org :alt: PyPI - Python Version .. image:: https://img.shields.io/gitlab/pipeline/szs/lic?style=flat-square :target: https://gitlab.com/szs/lic/-/pipelines :alt: Gitlab pipeline status .. image:: https://gitlab.com/szs/lic/badges/master/coverage.svg?style=flat-square :target: https://gitlab.com/szs/lic/-/pipelines :alt: Coverage .. image:: https://readthedocs.org/projects/lic/badge/?version=latest :target: https://lic.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status This package provides line integral convolution (lic) algorithms to Python. There are functions which can be imported and are highly configurable for the power user. Moreover, there is a command line tool to generate lic images without having to code a single line. .. contents:: Table of Contents Quick start =========== Install by typing .. code-block:: shell pip install lic Run the command line tool by .. code-block:: shell lic data_x.npy data_y.npy -v -l 30 -c Or use it in your program: .. code-block:: Python3 import lic import matplotlib.pyplot as plt # ... get x and y arrays from somewhere ... lic_result = lic.lic(x, y, length=30) plt.imshow(lic_result, origin='lower', cmap='gray') plt.show() What is line integral convolution? ================================== Line integral convolution is a way of visualizing complete vector fields in an intuitive way. .. figure:: _static/KH3.png :alt: lic image of the Kelvin-Helmholtz instability lic image of the Kelvin-Helmholtz instability A lic image is generated by "smearing out" a random noise pattern along the flow lines of a vector field. As a result, it show the entire flow field including every detail, while the common visualizations using arrows or discrete lines will always loose fine details. The disadvantage of (static) lic images is that the direction of the flow is not displayed. To overcome this problem, one could either overlay an array of arrows or generate a "moving" lic image. Such a moving image is generated by calculating several lic images with shifted "smearing" kernels. When animated, this gives the impression of a flow. .. figure:: _static/KH4.gif :alt: animated lic image of the Kelvin-Helmholtz instability animated lic image of the Kelvin-Helmholtz instability Documentation ============= .. toctree:: :maxdepth: 2 installation usage api cli Project links ============= * `Repository `_ * `Documentation `_ * `pypi page `_ External links ============== * http://www.zhanpingliu.org/Research/FlowVis/FlowVis.htm * https://www3.nd.edu/~cwang11/2dflowvis.html