News
[05 Nov 2009] PyGpiv 2.0.0 has been issued. The module now allows to access data from individual array members.The Gpiv software is now also available in pre-builded binary format for the Mac OS X system. Have a look at the fink project.
For help on installation and use of the Gpiv software it is recommended to make use of the Mailing lists instead of the gpiv-help forum. This allows you to send/receive mails directly from your mail client program instead of visiting the website.
The most up-to-date code can be found in the git Version Control System repositories. This software is meant for collaborative development and testing. So it might include bugs and errors.
Release 0.6.0 includes bugfixes concerning stdin/stdout and hybrid parallelisation of the software: using OpenMP for multicore, memory shared, processors and MPI for distributed memory CPU (Beowulf) clusters. Read more
What is Gpiv?
Gpiv is a program to 'film' the wind, its speed, directions, swirls and all other types of movememts air, or any other gas or liquid, may perform. This is possible by the so-called Particle Image Velocimetry (PIV) technique.The program gives you a quick overview of the parameter settings, executes routines for image processing, interrogation (giving you the PIV-data), PIV-data validation and post-processing and displays the results. Figure 1 shows an artificial, computer generated, image pair from [1]. Gpiv has been built with the Gtk/Gnome libraries, so it is well integrated in the Gnome desktop. Though, it also might be executed when another desktop environment is used. The program includes many interesting features.
Unpacking and compilation
You can download the Gpiv package here. For this package you will need:
libgpiv
libgtk and related packages.
libgnome and related packages.
The most up-to-date code, can be found in the Version Control System repositories at gpiv-git. This is software meant for collaborative development and testing. So it might include bugs and errors.
Generally, unpacking, eventually patching, compilation and installation is quite straightforward with:
gzip -d gpiv-VERSION.tar.gz
tar -xvf gpiv-VERSION.tar
patch -p0 < patch*.diff
./configure
make
(to build the program)
make install
make uninstall (removes installed files and directories
that have been created)
Gpiv has been included in the Debian GNU/Linux distribution. Users of this system can install Gpiv easily by means of the famous Debian administration software (the apt-tools and aptitude), without to be bothered about library dependencies. Derivative Debian systems, like Ubuntu and Knoppix also may provide Gpiv. The binary package Gpiv is available for most of the computer/CPU architectures Debian is supporting. If you don't have Debian, there are also Debian-based live CD's available from different sources to try out the software without the need to install it on your Hard Disk. Pre-builded binary packages are also available for the Mac OS X using fink.
Use of Gpiv
In order to understand how Gpiv works, just type the program name with -h option. There is a man page of Gpiv in the package and documentation, that can be displayed from the help menu or on-line . In case Gpiv will trigger a camera and lasers, it uses a kernel module gpivtrig_rtl from the gpivtrig package that depends on the Real Time Application Interface (RTAI) and RealtimeLinux. These modules will have to be loaded manually or Gpiv will have to be started with: "gpiv_control "gpiv key1 ..."". Gpiv_control has to be run with root privileges.Related software
There is also a set of command-line driven programs with similar functionalities. These may be used for non-interactive purposes (though some of them allow visualizing the resulting data, as well), used in scripts for batch processing etc. and can be found in the Gpivtools package. The core functions for interrogation, image and data processing, in-and output and other utility functions have been written in the Libgpiv library in order to share the resources of Gpiv and Gpivtools. If you'd like to develop your own programs and scripts, the PyGpiv module gives full functionality of Libgpiv to write 'quick hacks' in the Python language.Some ideas to consider
All software has been written in ANSI-C. It has been issued under the GNU General Public License and only uses libraries that are under this or other Open Source license.
Therefore, the methods used by this software can be reviewed and the
resulting data can be reproduced by anyone at anytime in anyplace. In the authors
opinion, this should be a requirement for a scientific or engineering
work. In contrast to data obtained from closed software solutions
which may hide errors, perform undocumented behaviour, be unavailable in the
future or data generated in the past by such software may not be
recognised by a new release due to changes in the
proprietary formats. The use of such software, therefore, is not based
on independent verification and peer review, but only on trust.
Fortunately, there is an ongoing discussion and growing tendency
within the scientific community of publishing source code. One for
example is found at
the American Mathematical society. Though it could be much better.
The other motivation to initiate this project is to provide a maximum
flexibility for extending and adapting the code by the main
developer(s) of this project as well as by third parties, like its
users. So it may be developed and adapted for different applications
with optimum accuracies and spatial/time resolutions.
As with most of the open source projects, it is unfinished and its
here to grow. Some ideas that might be worth to consider for extension
are:
- Improved solvers to obtain a higher accuracy and spatial resolution. Sugestions are: interpolation and Least Square estimation methods for sub-pixel estimations to minimize or eliminate peak locking effects, the use of image windowing over the Interrogation Area.
- Extension with stereoscopic (three-dimensional) and tomographic PIV.
- Improved processing speed. New PIV schemes, like tomographic PIV, require well optimized code, running on fast sytems or (Beowulf) clusters. A start has already been made by parallelization with MPI and OpenMP. As Gpiv c.s. also runs on the Power PC architecture, it definitely might be advantageous to optimize the code for the CELL BE processor, as well. This will allow to run the software in an optimum way on the Sony Playstation 3 console, for example, or on a cluster of such systems: a low budget, but very powerfull supercomputer for such intensive calculations might be a nice solution.
- Further improvement of the data acquisition system; comunication with trigger electronics of many different makes by using a more abstract layer. This might be performed by comedi, for example. Extention with other camera protocols.
- Extension with other image analyzing techniques for fluid mechanics, like Laser Induced Fluorescence (LIF) in order to obtain concentrations of chemical substances.
- Keeping up to date with the libraries the Gpiv c.s. uses is a continuous source of work. Most important are the FFT and Graphic libraries. Gpiv has been ported to the Gtk/Gnome-2 libraries, but needs a few of adaptions and improvements.
Support
It is evident that the development and maintenance of such a project like this involves a large amount of work that cannot be performed by a single, voluntary, developer. Therefore, I would like to stress that support for this project is of fundamental importance. We are convinced that the continuity of it will definitely be advantageous for you as (aspirant) PIV user, developer and researcher. By issuing the software under the GNU General Public License it is intended as a community product that will be developed by its users, as well. The software is yours; you may freely use it and adapt it to your own needs, as long as the license conditions are respected. By sharing the experiences and knowledge as expressed in the software, everybody will profit of it; there may be a continuous increase in quality of the code due to peer review, less additional coding to implement new features, interrogation algorithms, porting to other Computer architectures and Operating Systems, etc. To mention a few suggestions for supporting the Gpiv c.s. projects:- Feedback: send comments, bug reports (and patches ;), report if Gpiv c.s. does work, or not, on a different platform, and with different cameras and lasers. Or, even better, report how it has been modified to make it work.
- Participate in developing the software, the building system, translating the GUI to your language (this is really easy to do).
-
Acknowledge the software project in reports and publications if it
has considerably contributed to your research project and let me
know it. If you'd like to, a reference will be given from this
website. You can cite this project following this bibtex entry
(use the hyperref macro package for the text after the % sign):
@misc{gpiv, author = {van der Graaf, Gerber}, title = {Gpiv, Open Source Software for Particle Image Velocimetry}, howpublished = {Available at \href{http://gpiv.sourceforge.net/} %{http://gpiv.sourceforge.net/} }
- Let us be your partner: we are here to assist if you'd like to have support for Gpiv c.s.: extending the software for your needs, developing and installation of hard- and software, applying the technique for your research project.
Links
There are many web-pages concerning PIV, among at Wikipedia as one of them. As you may find annoying, commercial announcements of closed software solutions anywhere on the web, I will only give directions of Open Source Software projects here. Unfortunately there could be many more of them, regarding the high number of non-commercial (governmental) institutes and universities that wrote their own PIV code and participated in the PIV Challenge 05 project. You are encouraged to issue your code under an OSS licence, especially in case your project has been funded by public resources. It will definitely advantageous for you, as a developer, concerning feedback. Besides, tax payers will have access to what they have been paying for.- Urapiv. The oldest open source software on PIV. It uses Matlab. The project has mainly moved out to PyPIV that uses the Python scripting language.
- MatPiv. An other PIV code, builded by J. Kristian Sveen for Matlab.
- OSIF. Includes different interrogation techniques, written in C.
- CIV.
- AnaPIV. A new OSS project from Holger Nobach, written in Pascal.
- Jpiv is a Java based PIV software algorithm.
- The site of the Visualization Society of Japan. This site allows you to generate artificial, computer generated images that you may analyze by yourself.
- Pivnet is a project supported by the European Union.
- The Special Interest Group of ERCOFTAC is a European network of industries, universities and research institutes working on PIV.