Why this 'Olympic games 2008' banner?

This software, and all Open Source licenced Software, is based on the human right of freedom of speech and expression. As China is one of the countries that is not practizing this right, I will raise my voice here to express my concerns and ask any developer of OSS licenced software to do so.

News

Libgpiv, Gpiv and Gpivtools release 0.5.2 have been packaged in Debian GNU/Linux. Debian is highly recommended for using Gpiv c.s because of its stability and versatility.

Libgpiv, Gpiv and Gpivtools release number 0.5.1 and 0.5.2 include minor bugfixes, improved documentation and a clean-up of the code. It has mainly been issued to synchronize the software with the new Debian packages that hopefully will be included soon in the GNU/Debian distro.

Libgpiv 0.5 has been released: we are now halfway stable and production release. At least concerning version numbering. Hopefully that the needed time for developing the second half will take less :)

  • Libgpiv has undergone a Kafka revision: simplification, reduction and a more uniform library interface (API). In the hope that it will be easier to learn Libgpiv for developing your own applications and for wrapping the library to other languages.
  • New structure for images. Structures for PIV data and scalar data have been improved and extended.
  • Many functions have been revised and some memory leaks have been disabled.
  • The fftw3 library is used now for performing FT operations.
  • Documentation of the API, generated with Doxygen, is included in the package and can also be found on this site.
  • Of course, Gpivtools and Gpiv have been adapted to the new Libgpiv API.

Thanks to the API revision a new project has been launched: PyGpiv which is a Python module that allows the functionality of Libgpiv in Python scripts.

The Gpiv program now includes the Gnome Virtual File System (GVFS): images and data may be retrieved or stored from / to an URI. This allows to load data directly from a (ftp. ssh, ...) server or by drag and drop of the Gnome Filemanager (Nautilus), that is connected to such a server.

For more detailed information, have a look at the Changelogs of the individual packages.

Announcements

Currently we are working on hybrid parallelisation of the software: using OpenMP for multicore processors and MPI for distributed memory CPU clusters.

What is Gpiv?

Gpiv is a graphic user interface (GUI) program for recording and analyzing images obtained from a fluid flow that has been seeded with tracer particles by the so-called Particle Image Velocimetry technique (PIV). The program allows to have a quick overview of the parameter settings of all processes, easily changing them, executing the processes and visualizing their results in an interactive way. Figure 1 shows an artificial, computer generated, image pair from [1] . Gpiv has been built with the Gtk/Gnome libraries and includes many interesting features.

screenshot Gpiv
Figure 1 Screenshot of Gpiv with PIV estimators (vectors) from an artificial, computer generated, image pair and the derived vorticity field (background color)

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.

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 the software by means of the apt-tools and aptitude, without to be bothered about library dependencies. Derivative Debian systems, like Ubuntu may also 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.

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 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 by anyone at anytime and the resulting data can be reproduced. 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 or undocumented behaviour. The use of such software, therefore, is based on trust, not on independant verification and peer review.
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 the interrogation tool gpiv_rr from the Gpivtools package with MPI. 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.
PIV projects that are related to the research on accuracy, speed and applications of the PIV technology can be found at:

Sponser

The project is sponsered by the Multiscale Physics research group of Applied Physics, Delft University of Technology, the Netherlands.

Contact

I hope that Gpiv will work fine and that you'll enjoy it. If you would like to know more about PIV, wants to extend the code for your purposes or need some help, do not hesitate to drop me a line.

References

[1] Okamoto, K., Nishio, S., Saga, T. and Kobayashi, T., 2000, "Standard images for particle-image velocimetry," Meas. Sci. Technol., 11, 685-691. vsj.or.jp/piv/

Gerber van der Graaf
email: gerber_graaf AT users DOT sourceforge DOT net

I am often signing my outgoing emails with a GnuPG key, containing the fingerprint:
BF0A BBFE 5623 9761 C9E1 7C82 8B08 F586 D39A 2B64
The key can be obtained from a public key server or can be imported directly to your key ring by typing:
gpg --keyserver http://wwwkeys.eu.pgp.net --recv-keys D39A2B64

This allows you to check the authenticity of my (signed) emails.


Last modified: Wed Jul 2 10:17:13 CEST 2008