Skip to content

tacaswell/tracking

Repository files navigation

Required C++ Libraries:

listed as name, version currently in use on my development machine, website, and a short description. I tend to update the installed libraries semi-consistently.

  • Used to store particle locations
  • set HDF5_ROOT in CMakeLists.txt to point to location if in non-standard location
  • own license, but very permissive
  • (CVS version)
  • Used to get image data out of *.tif
  • set FREEIMAGE_ROOT in iden/CMakeLists.txt if in non-standard location.
  • GPL or commercial, used with commercial license to play nice with IPP
  • Used to process images
  • set IPP_ROOT in iden/CMakeLists.txt if in non-standard location.
  • Closed license, I can not distribute the header,
    • can’t link against non-exempted GPL code
    • ok against apache, hdf, and free image commercial
  • Used for parsing xml paramter files
  • set XERCESC_ROOT in CMakeLists.txt if in non-standard location.
  • Apache 2.0, kosher to pull into GPL project, kosher to link against IPP

Boost::date_time (from debian stable)

  • Used to parse dates
  • if not in standard location, set BOOST_ROOT
  • super permissive license
  • used to talk to the database of data sets and computations
  • public domain

Required python modules:

Required External Programs

  • build system
  • more recent the version, the better
  • need to patch and build from source if you want to compile mex file (see Matlab below)

GNU compiler

  • I do not think I use any GNU extension.
  • if you want to compile the mex functions, the version needs to match what your version of matlab was compiled with.
  • Version control software
  • any version should do

optional External Programs

  • generates python wrappers

Compile

Assumes that the source is in SOURCE_PATH and is being built in BUILD_PATH which is a different directory.

The -DCMAKE_BUILD_TYPE option controls the compiler flags. Useful options are Release and Debug (doc).

basic

This will build a collection of analysis programs, two libraries

In BUILD_DIR:

   cmake SOURCE_PATH -DCMAKE_BUILD_TYPE=Release

Iden

This builds two programs, Iden and Iden_avg, for finding features. Iden_avg averages frames together before finding particles.

In BUILD_PATH:

  cmake SOURCE_PATH -DCOMPILE_IDEN=1 -DCMAKE_BUILD_TYPE=Release 

testing

This compiles a collection of badly documented test programs that may or may not test anything useful. This might get cleaned up some day, but it is not high on the to-do list.

Matlab

This will build a collection of matlab mex files. I do not use these regularly and they may not compile, and if they do may be broken.

In BUILD_DIR:

   CC=mex CXX=mex cmake MATLAB_MEX_FILE=1 SOURCE_PATH

Note that this sets environment variables before calling cmake. This requires a patch to cmake (http://public.kitware.com/Bug/view.php?id=9240) to work properly. Also see http://www.vtk.org/Wiki/CMake:MatlabMex

Install

I don’t do anything fancy to install at this point. Either run the binaries out of the build directory or manually copy them into your path.

For the python wrappers to work properly

:_rel_path,_dbg_path

in SOURCE_PATH/script_src/python/trackpy/cpp_wrapper.py need to point to BUILD_PATH/apps.