PRANA v.2.0 beta r2013-04-22
prana is an open-source GUI-driven program for calculating 2-D velocity
fields using PIV, originally developed at the AEThER Laboratory at Virginia
Tech. It's part of a larger group of tools named qi-tools (Quantitative
Imaging Tools) that we hope will someday include 3-D planar and volumetric
PIV tools, as well as tools for PTV and particle sizing, and other similar
We will endeavor to keep the downloadable packages up-to-date with the
latest known-stable versions. For the newest features and bug-fixes,
You can also learn more about prana and other projects in the AETHER lab
at http://www.me.vt.edu/AEThER/ and http://www.me.vt.edu/AEThER/prana.
-Unzip this package and put it wherever it is most convenient to you
(perhaps where you keep the rest of your m-files?).
-Open MATLAB and navigate to the "prana" directory.
-Run "prana.m" (Typing "prana" should do it).
-For convenience, you can add the directory to your MATLAB path by
selecting File->Set Path and clicking the "Add Folder..." button. Be sure
to click the "Save" button when done. Then you can run prana at any time
without changing directories first.
-The check box to skip the splash screen on startup may be ignored.
Please report any feature requests or bugs to
-Add interactive data exploration tools (test correlations, show
correlation planes, etc.)
v.2.0 beta r2013-04-22
-This new release brings the publically released version up to date
with the version we have been maintaining internally for development.
Everything we have, you can now get!
-Auto complete for many of the textboxes in the GUI.
-Added option for no prediction method for tracking in the PTV GUI.
-Option to write Tecplot .DAT files for PTV output.
-RPC particle diameter can now be separately specified in x and y.
-Least squares fits now use elliptic Gaussian to fit the peak shape.
-Direct cross correlation (non-Fourier) is now an option for
instantaneous and ensemble (sum-of-correlation) PIV.
-Odd sized windows (i.e. 33x33) now work
-Window deformation function has been rewritten for increased speed.
-Deformation now converges based on the L2 norm of the velocity change
normalized by the square root of the number of points.
-pranaPTV.m function has been broken into subfunctions for easier
-Now the ID, Size and Tracking output directory lines turn red in the
GUI when the folder don't exist.
-Validation doesn't try to fill in masked-out location, or interpolate
the into valid regions of the flow.
-Limit growth of replacement search region to UOD stencil size to
prevent infinite expansion.
-When UOD can't find 8 good vectors, once the stencil grows to 2x the
original size stop searching and calculate the mean/median deviates
with what it has.
-Ensemble PIV now only does mean subtraction on PIV ROI for SCC when
zeromean option is explicitly turned on.
-Gaussian LSq subpixel fitting now returns a circle-equivalent
diameter, and iteratively increases the fitting area for the LSQ
solver if it thinks the peak is wider than the fitting area.
-Fixed the warning message printed by VFinterp.m by switching from
cubic to cubic splines.
-Least Square Gaussian would always fail back to 3 point fit
-Least Square Gaussian fit for PIV subpixel fitting had a math bug in
the correlation peak diameter calculation.
-Previously, the UOD window never reset to its original size once it
grew searching for more valid data. Now it resets for each new point.
-Inverse distant weighting during validation was weighting distant
points more than near ones.
-Fixed a bug in particle estimation step of PTV when loading PIV data
from mat files.
-Other minor bug fixes too numerous to list
-Added Particle Tracking Velocimetry functionality
-Added the save correlation plane feature
-Added Job file validator to catch previous versions of job files
-Added iterative window deformations. The method works with both
instantaneous images as well as ensemble. The user selects a minimum
and maximum number of deformations to performed as well as a
convergence value. The convergence value is used when looking at the
L2 norm of the U and V velocity components between iterations. If
both U and V drop below the convergence value then the code moves on
to the next pass.
-Added Ensemble Deform
-Added a check to determine the number of parallel processors available
before starting a parallel job. If the users requests more then the
system contains then the requested number is changed to total minus
one to keep the system from being over burdened. If the user requests
the total number available then the code will still use the max.
-Added a display output button in the GUI that will splash the
exp_summary to the screen but not to file when selected.
-Added ability to select color channel in full-color images. Also, the
ability to perform ensemble averaging of color channels is possible.
Here the color channels are used for develop correlation planes and
then subpixel function is applied to the ensemble average produced
from the different colors.
-Added save workspace command to file menu of GUI.
-Added a copy pass option. This button takes the currently selected
pass and copies it to the end of the pass list.
-Added an output base name. This name is used as the prefixed for the
write output for all passes with the 'pass' and the pass number
appended to the end. The copy pass but was also updated so that it
now inserts the copied pass directly after the pass being copied with
the remaining passes being moved down.
-Added diameter sizing for the correlation peaks.
-Stripped out all of the subfunctions into individual files so they can
be called individually
-Made multigrid the default PIV method.
-Switched to using Cases for correlations instead of numbers (in job
-Updated the write_expsummary to make a string that could be splashed
on the screen
-Modified pranaPIVcode.m and pranaprocessing.m to report date and clock
time of job start, frame completion, and job completion.
-Commented out the convergence estimate for the ensemble processing as
it required a two fold memory increase.
-Changed first image tool to use the correlation step and now looks for
the last character that is not a number at the end of the file to
determine file name.
-When selected first image the code now also grabs the last image
available and uses that as the last frame.
-The figure that is created from image and mask preview now has a
figure name that contains information about the total number of
vectors for the given pass.
-Disabled the loading and saving of the defaultsettings.mat file for
-From the GUI, removed the dynamic mask image list, frame start, and
frame end. These values will now be obtained from the image
information, i.e. the masks will now need to have the same numbering
convention as the images.
-The smoothing function has also been updated. The hard coded 7 by 7
kernel has been replaced by the last pass from the UOD validation
-Fixed a bug in how the remaining time is calculated.
-Bug Fix in the Dynamic Mask preview button.
-Fixed a bug in subpixel.m that was erasing the magnitude for the first
-In subpixel.m, changed the standard deviation for the peak fit to 4
and preallocated some of the variables
-Fixed a small bug in the subpixel.m function for the case where
nothing is present in the correlation, M and D, now return zeros.
-Fixed the rename bug in Prana where the job information would get
reset when the job was renamed.
-Also fixed a small bug in the UOD code, now if you provided a window
size that's not an odd number it simply rounds for you.
-Fixed a bug in write_expsummary.m where the save correlation plane
line was using save correlation peaks call
-First fixed a bug where if the images were zeros the SCC correlation
plane returned NaNs. This has been corrected so now it returns only
-The GUI now handles file names with multiple '.' in them.
-Fixes a bug with respect to the smoothing filter width in the GUI
-Various other minor GUI bugs
-reorganized file structure and added more documentation and release
-fixed: Fixed delta-t scaling bug in double-pulsed multiframe
processing (bug ID 3277761).
-misc: moved CC license info into bzr directory