A pipeline for running JuliaPIV based on the workflow developed at OSU CEOAS
Project description
Julia Particle Image Velocimetry
Welcome to the CEOAS Coastal Imaging Lab's RGB video PIV arm of the ROXSI processing pipeline! In this repository you can find a variety of directories related to PIV. This particular project was initiated by Prof. Wilson's desire to move over to an open-source programming platform for data processing. Julia checks all the boxes with a strong scientific programming community, JIT compilation leading to reasonably fast execution, voluntary type safety, and smooth read/write-ability.
By switching this process over to Julia, the execution time of processing a single pair of images improved by roughly 50%. Some improvements were made by tuning the overall algorithm and trimming unnecessary code. However, the majority of speed-up came from Julia's JIT compilation, typing, and some memory management since PIV is quite dependent on large arrays.
Steps to first run on CEOAS servers
-
Ensure Python and Julia are loaded. A python version greater than or equal to 3.11 is required. Currently, the exact Julia version of 1.11.5 is required.
ml eb-sw Julia
ml eb-sw Python -
In the directory of your choosing, create a Python virtual environment.
python3 -m venv .venvFor more information regarding Python virtual environments and package management, check out these links.
Official Python Docs
Real Python
This venv is where juliaPIV will be installed usingpip.
Step 1 must be done each time Monarch is fired up. Step 2 is a one time setup.
-
Activate the virtual environment each time you'd like to use juliaPIV.
source .venv/bin/activate -
If this is the first time juliaPIV is being installed on your User,
pipcan be used to get it:
pip install juliaPIV
Check that it was installed correctly with:
pip list.To upgrade versions in the future, simply use:
pip install --upgrade juliaPIV -
First time installations or new versions that required changes to Julia source code will require the following command. The
initcommand compiles the Julia code into a .so file, greatly decreasing system overhead during parallel processing and decreasing reliance on Just-In-Time compilation for common functions and data types. This process can take quite some time, and it is highly recommended that the command is not included in any automation scripts.juliaPIV init -
Set up your desired configuration for PIV using a YAML file in the following format:
# config.yaml N: 2 # Number of images in set to be processed crop_factor: "1, 6144, 1, 3240" # Crop factors for image final_win_size: 16 # Final window size for PIV ol: 0.5 # Window overlap during PIV # Absolute path to directory containing images to be processed input: /home/monarch0/ROXSI/2025/pantera/flightData/20250214/Flight3_1303/splitjpg # Absolute path to desired output folder output: /home/server/pi/homes/chumar/piv_env quiet: false # Supresses print statements downsample_factor: 0.5 # Downsampling, float between 0 and 1 NPROC: 40 # Maximum number of parallel processes to run save_images: false # Save downsampled and cropped images
-
Run PIV!
juliaPIV pipeline -c path/to/your/yaml
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file juliapiv-1.0.11.tar.gz.
File metadata
- Download URL: juliapiv-1.0.11.tar.gz
- Upload date:
- Size: 3.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
23383662456f43a8c287996a8f1c334ece5500c871fbc8691d5ef8401fce72d9
|
|
| MD5 |
f219c306565cbc0206de0b4624c3b7b4
|
|
| BLAKE2b-256 |
8454745138c346be67652fb8a05d642bf033f363b7d9b65700f24d7c892591ab
|
File details
Details for the file juliapiv-1.0.11-py3-none-any.whl.
File metadata
- Download URL: juliapiv-1.0.11-py3-none-any.whl
- Upload date:
- Size: 3.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a80f3562b00a78409a8909d80554f3e0e95cfb535bfdac440ca7a4c2cd4b316
|
|
| MD5 |
b2518a95117d544176b7fa4757abd507
|
|
| BLAKE2b-256 |
d2799696131011ecd429166cf1401d56f343014f78c0505e4f0135ef01e6c7ed
|