Metadata-Version: 2.1
Name: boiling_flow
Version: 0.1.3
Summary: Phase screen generation for aero-optics using boiling flow
Author-email: Boiling Flow development team <jeffrey.utley@gmail.com>
License: BSD 3-Clause License
        
        Copyright (c) 2024, Charles A. Bouman and Gregery T. Buzzard
        All rights reserved.
        
        Redistribution and use in source and binary forms, with or without
        modification, are permitted provided that the following conditions are met:
        
        1. Redistributions of source code must retain the above copyright notice, this
           list of conditions and the following disclaimer.
        
        2. Redistributions in binary form must reproduce the above copyright notice,
           this list of conditions and the following disclaimer in the documentation
           and/or other materials provided with the distribution.
        
        3. Neither the name of the copyright holder nor the names of its
           contributors may be used to endorse or promote products derived from
           this software without specific prior written permission.
        
        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
        AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
        DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
        FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
        SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
        CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
        OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        
Project-URL: source, https://github.com/jeffreyutley/boiling_flow
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.11
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: scipy
Provides-Extra: demo
Requires-Dist: matplotlib; extra == "demo"
Requires-Dist: Pillow>=9.1; extra == "demo"
Provides-Extra: docs
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinxcontrib-bibtex; extra == "docs"
Requires-Dist: sphinx-book-theme>=1.0.1; extra == "docs"
Requires-Dist: sphinx-design; extra == "docs"
Requires-Dist: sphinx-copybutton; extra == "docs"

.. docs-include-ref

Boiling Flow
============

This project includes 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. Full documentation is available at
https://boiling-flow.readthedocs.io .

Installing from PyPI
--------------------

Use the following command:

    .. code-block::

        pip install boiling-flow


Installing from Source
----------------------
1. Clone or download the repository:

    .. code-block::

        git clone git@github.com:jeffreyutley/boiling_flow

2. Install the conda environment and package

    a. Option 1: Clean install from dev_scripts

        *******You can skip all other steps if you do a clean install.******

        To do a clean install, use the command:

        .. code-block::

            cd dev_scripts
            source clean_install_all.sh

    b. Option 2: Manual install

        Create a conda environment ``boiling_flow`` using the ``environment.yml`` file.

        .. code-block::

            conda env create -f environment.yml

        Anytime you want to use this package, this ``boiling_flow`` environment should be activated with the following:

        .. code-block::

            conda activate boiling_flow


Running Demo(s)
---------------

There are three demo scripts: ``parameter_estimates_from_measured_data.py``, ``generate_phase_screen_data.py``, and
``results_from_simulated_data.py``. The former two scripts show an example of the boiling flow algorithm on measured
data sets, while the latter first generates simulated data and then runs the boiling flow algorithm. The
``results_from_simulated_data.py`` script can be run without downloading any external data sets.

Before running the former two demo scripts, download the measured data sets:

    Option 1. Install using shell script

        Use the script ``get_demo_data_server.sh`` inside of the ``demo`` folder to automatically install the data and
        place it in the proper folder for the scripts ``parameter_estimates_from_measured_data.py`` and
        ``generate_phase_screen_data.py``.

        Inside of the parent directory (the boiling_flow folder containing this file), run the following:

        .. code-block::

            source demo/get_demo_data_server.sh

    Option 2. Manual install

        To manually install the data sets, visit the
        `Bouman data repository <https://www.datadepot.rcac.purdue.edu/bouman/>` and download the .zip file
        ``TBL_data.zip``.

        Unzip the file and place the folder ``TBL_data`` inside of the ``data/demo`` directory.

Run any of the demo scripts from the parent directory (the boiling_flow folder containing this file) with the following
command:

    .. code-block::


        python demo/demo_file.py

The script ``generate_phase_screen_data.py`` loads an .npy file that is saved by
``parameter_estimates_from_measured_data.py``, so the latter script must be run before the former.


Disclaimer
----------

Approved for public release; distribution is unlimited. Public Affairs release approval # AFRL-2025-5580.
