Collection of tools to identify and analyze turbulence-based internal wave packets (IWP) in simulated flow data. These are intended to be the foundation for several research workflows that couple existing flow solvers to new analysis techniques, automated by machine learning.
Currently the focus is on foundational components (data loading, coordinate systems, labeling, and basic analysis) and does not include specialized tools related to flows, turbulence, or internal waves analysis. See the workflows documentation for details on what is supported.
Installing the Python iwp module is a dependency for all workflows. Conda is
strongly recommended for setting up the required dependencies as they span
multiple non-Python tools:
# change the environment name 'iwp' as needed.
$ conda env create --file python/environment.yml --prefix ${CONDA_ENV}/envs/iwpInstall the iwp package:
$ source activate iwp
$ cd python
$ pip install iwpSee the setup documentation for setting up additional workflows.
Full setup of a development environment that supports all of the workflows (data exploration, labeling, and analysis) is covered by the setup instructions. See below for an overview of the dependencies required.
The following packages are required:
- Python 3
- CUDA
- PyTorch
- Jupyter
- netCDF4
- Dask
- xarray
- python-pptx
Optional packages depending on the workflows of interest:
- Labeling:
- Podman or Docker
- Scalabel.ai
- Data exploration and analysis:
- netCDF Operators (NCO)
- ParaView
- ParaView kernel for Jupyter
- Visualization and data review:
- ffmpeg
- Development in containers
- Podman or Docker
This repository does not contain a flow solver, nor provides any data suitable for use - you must provide your own. See the data organization documentation for details on the organizational structure expected.
High-level documentation on various workflows is complemented with command line references, organized by use cases.
Additionally, high-level documentation on labeling and containers also is available.