Metadata-Version: 2.4
Name: PlumeDynamics
Version: 0.1.0
Summary: Tools for loading, visualizing, and analyzing pulsed-laser-deposition plume dynamics.
Home-page: https://github.com/yig319/PlumeDynamics
Author: Yichen Guo
Author-email: yig319@lehigh.edu
Maintainer: Yichen Guo
Maintainer-email: yig319@lehigh.edu
License: MIT
Project-URL: Source, https://github.com/yig319/PlumeDynamics
Project-URL: Tracker, https://github.com/yig319/PlumeDynamics/issues
Project-URL: PyPI, https://pypi.org/project/PlumeDynamics/
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Image Processing
Requires-Python: >=3.9
Description-Content-Type: text/x-rst; charset=UTF-8
License-File: LICENSE.txt
Requires-Dist: h5py>=3.8.0
Requires-Dist: imageio>=2.30.0
Requires-Dist: matplotlib>=3.5.0
Requires-Dist: numpy>=1.21.0
Requires-Dist: opencv-python>=4.8.0
Requires-Dist: pandas>=1.3.0
Requires-Dist: scikit-image>=0.19.0
Requires-Dist: scipy>=1.7.0
Requires-Dist: seaborn>=0.12.0
Requires-Dist: tqdm>=4.60.0
Provides-Extra: ml
Requires-Dist: pillow; extra == "ml"
Requires-Dist: torch; extra == "ml"
Requires-Dist: torchvision; extra == "ml"
Provides-Extra: xrd
Requires-Dist: xrayutilities; extra == "xrd"
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Dynamic: license-file
Dynamic: requires-dist

=============
PlumeDynamics
=============

PlumeDynamics is a Python package for loading, visualizing, aligning, and
analyzing pulsed-laser-deposition (PLD) plume image stacks. The canonical import
namespace is ``plume_dynamics``.

Installation
============

Install from a local checkout:

.. code-block:: bash

   git clone https://github.com/yig319/PlumeDynamics.git
   cd PlumeDynamics
   python -m venv .venv
   source .venv/bin/activate
   pip install -U pip
   pip install -e .

Optional feature groups:

.. code-block:: bash

   pip install -e ".[ml]"
   pip install -e ".[xrd]"

Quick Start
===========

.. code-block:: python

   import numpy as np
   from plume_dynamics.plume_io import extract_frame_metrics, plot_sample_frames

   frames = np.random.random((24, 128, 192))
   metrics = extract_frame_metrics(frames, frame_interval_us=10, direction="right")
   fig, axes = plot_sample_frames(frames, n_frames=8)

Core Modules
============

- ``plume_dynamics.alignment``: perspective alignment for plume frame stacks.
- ``plume_dynamics.datasets``: HDF5 plume dataset loading helpers.
- ``plume_dynamics.metrics``: connected-component area and centroid metrics.
- ``plume_dynamics.velocity``: plume-front distance and velocity extraction.
- ``plume_dynamics.plume_io``: plume frame I/O and starter metrics.
- ``plume_dynamics.visualization`` and ``plume_dynamics.plotting``: image grids,
  labels, colorbars, and publication plotting helpers.
- ``plume_dynamics.ml``: optional model, dataset, and training utilities.

Versioning And Publishing
=========================

This repository follows the AFM-tools release convention:

- Versions are generated from Git tags with ``setuptools_scm``.
- The GitHub Actions workflow builds and checks distributions on PRs and pushes.
- A push to ``main`` or ``master`` with ``#major``, ``#minor``, or ``#patch``
  in the commit message creates the next ``vX.Y.Z`` tag and publishes to PyPI
  by Trusted Publishing.

License
=======

This project is licensed under the MIT License. See ``LICENSE.txt``.
