The PIVMat toolbox is now compatible with 3-components fields from DaVis
(e.g. from stereo-PIV). Typical use: showf(v,'uz'); displays the 3rd component as background showf(v,'norm3d'); displays the 3D norm as background uz = vec2scal(v,'uz'); create scalar fields from the 3rd component.
See vec2scal for
the new available 3D-fields to scalar conversions.
Most of the functions are compatible with 3-component fields.
Scalar fields computed from spatial derivative using 1st order finite
difference (denoted by rot1, duxdy1
etc.) have been removed. Now all
spatial derivative are computed from 2nd order differences
(denoted by rot, duxdy
In previous releases of PIVMat, option 'uz' in showf
or vec2scal was equivalent to 'uy'. Since PIVMat 3.00, for
compatibility with 3-component fields, option 'uz' now specifies
the 3rd component of the vector field.
Temporal correlation function of vector or scalar fields.
The normalization of the vector arrows in showf
is simplified. Option 'ScaleArrow' now
specifies the vector normalization directly in absolute units. Option
'ScaleMode' has been removed (the previous behaviour 'absolute' is now
Transverse structure functions of odd order are now correctly
defined in vsf (thanks Basile)
The new page Visualization tools describes
how to control 'in live' the movies displayed
by showf, and lists all the
available input parameters.
Keys '+' and '-' allow to increase/decrease the length of the
arrow in live during movies (see showf).
showvec and showscal have been removed.
These functions are replaced by showf, which
applies for both vector and scalar fields.
Returns the matrix-coordinates of a point in a field.
DAT files exported from VidPIV (Oxford Laser) are now accepted.
The window header is no longer blinking when displaying
movies of vector or scalar fields (this bug was only present for
remapf: Remap vector/scalar fields to a new grid.
This function allows the user to increase/decrease the resolution (linear interpolation,
similar to resizef),
but also to truncate/enlarge a field. This is useful to compare or perform operations on
fields obtained with different settings/calibration.
Points containing zero or NaN values are not considered in the computation
of the temporal energy spectrum (thanks Antoine).
Only the peak numbers of the highest peaks are displayed
(this feature avoids producing too heavy figures).
addnoisef now adds a normally-distributed
(instead of uniformly-distributed) white noise.
New operations available in operf:
real, imag, conj, etc.
surfheight (for Free-Surface Synthetic Schlieren
applications): new implementation of the remap
procedure, which now corrects properly for parallax distorsions.
The directory name ('setname' field) is no longer displayed in the title
of showvec and showscal when it is empty.
loadvec accepts .SET files again
(this feature was buggy in v2.01)
vec2scal computes correctly
the norm and energy for complex vector fields.
loadvec is now compatible with the new releases
(Dec. 2010) of the ReadIMX package. When importing DaVis files, the PIVMat toolbox is now
compatible with all platforms and Matlab releases supported by the ReadIMX package
(thanks A. Mishra).
flipf: Flip vector/scalar fields about vertical or horizontal axis.
loadset has been removed. Use loadvec
with wildcards (*) instead.
resamplef: Re-sample a time series
of vector or scalar fields using linear interpolation (e.g., re-sample the fields
with a different sampling frequency).
phaseaverf: Performs a phase
average from a time series of vector or scalar fields (work with integer of non-integer
periods; performs a linear interpolation for non-integer periods).
tempspecf: Temporal power spectrum
(spatially averaged) of a time series of vector or scalar fields.
The scaling of the length of the vector arrows in quiver plots (as produced
by showvec and showf)
is now absolute, i.e. the pixel / physical unit calibration remains unchanged
during a movie. The previous behavior (relative scaling) is still available,
using the option showvec(..., 'scalemode','relative').
loadvec now accepts every .mat
file containing at least one Pivmat-compatible structure. If, for example,
the file mydata.mat contains a Pivmat structure named myfield, then
v = loadvec('mydata.mat') will load the Pivmat structure into the
rdir (and other functions based
on rdir, like loadvec)
now accepts file number indexing using non-integer indices. For instance,
v = loadvec('Myfiles_dt=[1:0.5:2,5.2]s.*') loads the files
'Myfiles_dt=01.00s.*', 'Myfiles_dt=01.50s.*', 'Myfiles_dt=02.00s.*'.
corrf now works correctly when zero
elements (interpreted as wrong data) are present (thanks J.I. Cardesa-Duenas!)
extractf now accepts rectangle
coordinates outside the physical domain (a truncation is performed if this
New scalar field conversion available in vec2scal:
The 3 measurable components of the Reynolds stress tensor (options txx, txy and tyy,
with tauij = ui uj).
The remapping procedure has been removed from surfheight.
The option noremap has been removed (since it is now by default).
expandstr not available any more (moved to the private directory).
The features of expandstr (file number indexing) are now directly
explained in the documentation of rdir.
Help text improved for several functions.
rdir (and other functions based
on rdir, like loadvec)
now works properly with './' and with absolute path names (path names starting as
D:\mydir\etc). This is useful when working through network
loadarrayvec now works when
directories and subdirectories have wildcards ('*'), e.g.
v = loadarrayvec('dir*/PIV*','*.vc7').
renamefile now works when
filenames contain '=' (thanks Cyril and Pierre).
vortex now does not produce strictly
zero velocity components, so that they are not interpreted as wrong vectors
when displayed by showvec.
Since 2009, the package readimx from LaVision (version 1.0, revision 1.8
or higher) is now compatible with the 32 and 64 bits editions of Windows
(Vista and 7 only),
so PIVMat is now also compatible with Windows 64 bits.
loadset is going to be removed from
the toolbox in a future version. Use loadvec
with wildcards (*) instead.
When a DaVis file is double-clicked on the Current Directory
Browser, it is imported into the Workspace (multiple file selection not
allowed). Vector files are imported into
the varibale v and images are imported into im.
Accepted file formats are: VEC,
VC7, IMX, IM7, IMG, SET.
If a SET file
is selected, all the files contained in the corresponding folder
spec2f: 2D power spectrum, both for
scalar and vector fields, including 2D iso-contours and azimuthal average.
nam: Implementation of the "Normalized Angular
Momentum" method for vortex detection.
loadvec now accepts multi-frame images.
Use the option 'frame' to specify the frame to load.
showscal and showvec:
Setting equal bounds in the colormap of a scalar field caused an error.
truncf now works properly for fields with more rows than columns
The definition of the enstrophy in vec2scal now includes the usual factor 1/2
(i.e., Z = w^2/2, where w is the vorticity).
The definition of the Q factor in vec2scal has been corrected: Q = (Z - S^2)/2,
with Z = w^2/2 the enstrophy (see above) and S^2 the squared strain.
specf: The factor 1/2 is no longer
included in the computation of the spectra.
loadvec: now works correctly
with files of IType=2. Mutiple selection in dialog box now works.
Legends and labels of compensated spectra in specf corrected.
interpf: Interpolate missing data (fills holes).
Based on John D'Errico' inpaint_nans function (Matlab Central).
ssf: Structure functions of scalar field,
and histograms of scalar increments.
getframedt: Get the time intervals between the frames of
multiframe DaVis image file (.IMX/.IM7).
Produce a random dot pattern for BOS (Background-oriented Schlieren) / SS (Synthetic Schlieren) /
FS-SS (Free-Surface Synthetic Schlieren) applications (see the
nantozerofield: Converts the
zero elements (standing for missing data) of vector or scalar fields as
NaN elements and vice-versa.
cdw and lsw:
Work as CD and LS, but allow for wildcards (*). From FileSeries 1.30.
Missing data are now handled properly for the computation of
derivative fields (using vec2scal) or
for filtering (using filterf). For instance, when computing the
divergence of a vector field, a point will be considered as "missing"
(i.e., its value is set to 0) if the finite difference uses
a missing value from the input vector field. This new behavior avoids
propagation of errors.
Camera can be rotated during a movie for 3D scalar displays using showscal.
Arrows of length zero are not displayed any more by showvec
for missing data.
Option 'keepcamarasettings' removed in showscal.
Now the camera view, angle, position, are kept for 3D views
at each call of showscal. To reset those camera settings,
use the option 'resetcamerasettings'.
surfheight (surface height
reconstruction for FS-SS, Free-Surface Synthetic Schlieren):
now includes finite distance effects and remapping.
New option 'verbose' (display the work in progress)
added in a number of functions: loadvec, medianf,
New option 'nowarning' in corrf.
Option 'zeros' removed in filterf. Interpolations
are now (much better) performed by interpf.
bwfilterf now works with non-square fields.
Color limits in showscal are now
correct when using options contour and
3D visualisations in showscal now
respect the x/y aspect ratio.
showf now accepts .imx and .im7 files as input arguments.
specf and bwfilterf now accept fields with odd dimension.
loadvec now does not issue the warning "Concatenation involves
an empty array..." for numeric input argument.
Methods 'gauss' and 'igauss' were inverted in filterf.
smoothf: Smoothing (or running average) over
consecutive fields. This is useful for a temporal smoothing of time-resolved velocity
medianf: Apply a median filter to a vector
or scalar field (requires the Image Processing Toolbox)
resizef: Resize a field (requires the Image
subsbr: Substract the mean rotation (solid-body
rotation) of a vector field
getvar: Extract some variable informations
from a string (usually a filename where parameter values are specified).
New examples in the sample directory:
rotating turbulence (3 fields) and apparent displacement
from a refraction experiment (3 fields).
New colormap features in showscal:
New option 'ampclim', to specify the
colormap bounds in the form MEAN +/- AMP.
Scalar fields made of small oscillations around
a large mean have now a colormap centered on the mean.
New commands '*' and '/' to stretch/compress
the colormap during the movie.
If the scalar field originates from a IMX/IM7
file, the gray colormap is selected by default.
New option 'command' in showscal.
vec2mat: Now can convert files into different destination directory.
New option 'verbose'.
subaverf now considers that zero elements
are erroneous, and keeps those elements as zeros instead of
substracting the (spatial and/or ensemble) average.
batchvec is renamed batchf
loadvec now accepts .UWO files (Optical Flow fields).
The PDF documentation has been removed (was it really useful?)
loadvec now recognizes correctly
the label names and units (e.g. mm, m/s) from DaVis vector/scalar files.
Make sure you use the last version of the ReadIMX 1.4 package
(DLL Version: 1.0, Date: 8/06/07 16:38, Revision: 6) or newer. If not, download it from
the LaVision website (www.lavision.de).
Bugs fixed in the history field for some functions (e.g., filterf).
Major change: Scalar fields built from derivatives (e.g.,
curl, divergence, strain rate etc.) are now computed from
2nd order centered differences, using Matlab's built-in
numerical derivative functions, whereas they were computed
from a 1st order scheme in the previous versions
The resulting scalar field has now
the same size as the original vector field. Specify
'rot1','div1' etc. instead of 'rot',
'div' to use the
old 1st order scheme (for which the resulting scalar
field is smaller than the original vector field).
Since Matlab 7.4 (R2007a), the behavior of the command doc has changed:
the command doc pivmat does not display
the PIVMat toolbox start page in the help browser any more. If you use Matlab 7.4,
type docpivmat to display the start page,
or type docpivmat function_name to display the
html documention of function_name in the help browser. If you use
Matlab 7.3 or before, doc and docpivmat will
produce the same result.
Bugs fixed: loadvec (scalar fields, IMX/IM7, were transposed), gradientf (wrong definition, the gradient was transposed), vortex (the undefined field setname
caused problems with showvec), operf (minor bug for scalar outputs).
Minor change: vec2mat now works with all the file formats suported by