Environmental Complexity Lab

Civil and Environmental Engineering
Stanford University

Contact:

Nicholas T. Ouellette
Department of Civil and Environmental Engineering
Stanford University

Jerry Yang and Akiko Yamazaki Environment and Energy Building
Room 169
473 Via Ortega
Stanford, CA 94305

Tel: (650) 723-4860
Fax: (650) 725-9720
nto -at- stanford.edu

Particle Tracking

Overview

As described in our research pages, much of our work depends on constructing the trajectories of tracer particles moving in fluids from videos of their motion. While particle tracking has become a widely used research tool, not all tracking algorithms are suitable for all situations. We tend to focus on systems where the particles move deterministically, and have developed predictive tracking algorithms that take advantage of this determinism to allow even difficult tracking problems to be solved. Click on the links below to download MATLAB routines that implement this algorithm. We also have parallelized versions of the algorithm written in C++ that are much faster; contact us if you need the extra speed.

PredictiveTracker.m

This function returns a struct array containing the created trajectories, including particle positions and velocities. Type "help PredictiveTracker" at the MATLAB command line for usage instructions. PredictiveTracker requires ParticleFinder.m to run.

ParticleFinder.m

This helper function finds particles in images and is required by PredictiveTracker.m. Type "help ParticleFinder" at the MATLAB command line for usage instructions.

BackgroundImage.m

This function saves an image that is the mean of all frames in a movie, useful for removing objects that do not move. A background image is required by PredictiveTracker.m. Type "help BackgroundImage" at the MATLAB command line for usage instructions.

Velocities.m

Working from a struct array created by PredictiveTracker.m, this function retrieves and plots particle velocities. Type "help Velocities" at the MATLAB command line for usage instructions.

Vorticities.m

Working from a struct array created by PredictiveTracker.m, this function retrieves and plots particle vorticities. Type "help Vorticities" at the MATLAB command line for usage instructions.

Divergences.m

Working from a struct array created by PredictiveTracker.m, this function retrieves and plots particle divergences. Type "help Divergences" at the MATLAB command line for usage instructions.

TrackExample.zip

A compressed archive that contains an example movie and a script that walks you through basic use of BackgroundImage.m, PredictiveTracker.m, and Velocities.m.