GeoTools : IDL Process



Module Maintainer:

Daniele Romagnoli


(red star)(red star)(red star)(red star)(red star)

Email Help:


IP Review:


Allow exposing IDL algorithms/functions as geotools processes.

Module Status

The module has been previously used as a dependency of a custom Geoserver 1.7. Our aim is to setup all we need to let it work on GeoServer's (2.0) WPS too.

Gold Star Quality Assurance Check

(red star) IP Check: review.txt added, all headers are in place
(red star) Releasable: ...
(red star) Quality Assurance: ...
(red star) Stability: No planned API changes
(red star) Supported: Documentation available/Javadoc in place, module maintainer does watches user list, answers email.

IP Review

IP review is underway - known issue:

Outstanding Issues

Remember that the module maintainer is a volunteer, and if you can help test this module please jump on the developers list and help out. Patches may be attached to the above issues for review by the module maintainer.

Class Diagram

Usage (still in progress)

  1. First of all, you need IDL installed on your machine. Make sure to define an IDL_HOME environment variable referring to your IDL folder installation.
  2. When done, make sure the "%IDL_HOME%\bin\bin.x86" folder is on your Java Library Path.
  3. Create your IDL algorithm .pro definition file on "%IDL_HOME%\lib folder".
  4. Use the IDL Bridge Export Assistant to produce the Wrapping Java class from that definition file.
  5. SetUp your Geotools Process and factories leveraging on the newly created wrapper.

Sample code

package org.geotools.process.idl.impl;

import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;

import org.geotools.process.Process;
import org.geotools.process.ProcessException;
import org.geotools.test.TestData;
import org.junit.Assert;

 * Simple test class leveraging on the Feature Extraction function, offered by
 * means of the proper IDL wrapper.
public class IDLProcessTest{

	public void testFeatureExtractionProcess() throws InterruptedException,
			FileNotFoundException, IOException, ProcessException {
		final IDLFeatureExtractionProcessFactory factory = new IDLFeatureExtractionProcessFactory();
		final Process process = factory.create();
		File testData = TestData.file(this, "testin.tif");
		final Map<String, Object> values = new LinkedHashMap<String, Object>(2);
		values.put("input_data", testData.getAbsolutePath());
		Map<String, Object> result = null;
		result = process.execute(values, null);
		if (result != null && !result.isEmpty()) {
			final Iterator<String> keysIt = result.keySet().iterator();
			final Object output = result.get(;


IDLprocess.PNG (image/png)