Thanks to visit codestin.com
Credit goes to github.com

Skip to content
/ TIPL Public

Tomcat Image Processing Language using Jython and Spark for distributed image analysis of tomography datasets

License

Notifications You must be signed in to change notification settings

kmader/TIPL

Repository files navigation

Language grade: Java Language grade: Python Total alerts

Tomcat Image Processing Language (TIPL)

TIPL is a Java-based large scale 3D image processing framework designed for tomographic sized datasets from microCT and synchrotrons. It has been optimized for parallel and distributed computation using Apache Spark. The framework is significantly more accessible through scripting with Jython, a java-hosted Python implementation supporting almost all the functionality. Sample scripts can be found in the snippets folder like this two-point correlation function. Support for SciJava and ImageJ has been integrated but are most useful for slice-based operations or file IO. The project has not been actively developed in some time, but should still build. Unfortunately all of the tests were setup to run on my local/cluster environment and haven't been ported to run using modern CI tools.

Checking Out

The project makes excessive use of git submodules and thus requires git clone --recursive in order to pull all of the code dependencies for the project.

Building

Building requires a few odd non-maven tracked dependencies and so it is probably easiest to follow the setup in the workflow

  • When using pom-imagej based dependencies and imglib2 and other libraries make sure you update the local version of scijava-common which supports parallel building without the ConcurrentModificationException

Commiting Upgrade

After making many updates it is often easier to do a batch commit

commitMessage="Test Message"
git add pom.xml
git add *.iml
for cDir in */; do 
    cd $cDir; 
    git add pom.xml; 
    git add --all src; 
    git add *.iml; 
    cd ..; 
done
cd ccgeom/
git commit -m "$commitMessage"
cd ../volviewer
git commit -m "$commitMessage"
cd ../VIB-lib/
git commit -m "$commitMessage"
cd ..
git commit -m "$commitMessage"

To push all

cd ccgeom/
git push
cd ../volviewer
git push
cd ../VIB-lib/
git push
cd ..
git push

Building Notes

  • The project is meant to be built in a Java first then Scala manner with the exception of a few files. Primarily ScalaPlugins.java which is used for loading the Plugins written in Scala into the SezPoz-based TIPLPluginManager. A simple space entered into this file and save will cause it to recompile after the scala code has been compiled resolving all errors.
  • The IDEA compiler can cause issues, using the SBT incrementally type works better

Updating Libraries

Updating Spark

The TIPL code itself is separated from Spark but involves the spark code in a number of key areas.

  • SGEJob sets up the path and includes reference to the jumbo jar file in the spark/lib folder, many tasks unrelated to Spark will not work if this is missing (to prevent library duplication)

About

Tomcat Image Processing Language using Jython and Spark for distributed image analysis of tomography datasets

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •