Boiling Flow
============

**Boiling Flow** is a data-driven algorithm that generates synthetic time-series of images (of arbitrary duration) by
estimating statistical parameters from an input time series of images.

For more information about the algorithm, see :cite:`UtleyBoiling, UtleyBoiling2`.

See also the ``AOModel`` package on GitHub: aomodel_. This package implements a data-driven algorithm using Principal
Component Analysis and autoregressive modeling to generate synthetic time series data that matches the spatial and
temporal statistics of measured time series data.

The benefits of ``AOModel`` compared to ``Boiling Flow`` are:

* Synthetic data generated by ``AOModel`` has more accurate statistics.
* The model is highly generalizable to different measured data sets.

The drawbacks of ``AOModel`` compared to ``Boiling Flow`` are:

* The size of synthetic data images generated by ``AOModel`` is restricted to the size of the measured data images.
* The parameters of ``AOModel`` are much less physically relevant.

Use ``Boiling Flow`` if your measured data falls into the boiling flow regime (i.e., high convective data with spatially
stationary statistics) and you need to extend the phase screens beyond the size of the measured data images.
Alternatively, use ``Boiling Flow`` to estimate turbulence parameters from measured phase screen data. Use ``AOModel``
if you need to generate synthetic data that closely matches the spatial and temporal statistics of the measured data, or
if the measured data is not accurately modeled by boiling flow.

.. toctree::
   :hidden:
   :maxdepth: 4
   :caption: User Guide

   install
   api
   utils
   demo_utils
   references

.. _aomodel: https://github.com/jeffreyutley/aomodel_public