Hands-On Exercise 4: using a toolbox

In this exercise we will use a toolbox to process the inputs of our workflow, and we will publish its results on HDFS.

Prerequisites

Install the Hands-On

  • Install the Hands-On Exercise 4, just type:
cd
cd dcs-hands-on
mvn clean install -D hands.on=4 -P bash

Install the BEAM Toolbox

The BEAM Toolbox [1] is an open-source toolbox and development platform for viewing, analyzing and processing remote sensing raster data. BEAM stands for ‘Basic ERS & Envisat (A) ATSR and Meris’, the satellite sensor measurements handled by the toolbox. To install the BEAM toolbox type:

sudo yum install -y beam-5.0
sudo /usr/sbin/alternatives --config java

This will show on the terminal window:

There are 3 programs which provide 'java'.

 Selection     Command
------------------------------------------------
 + 1           /usr/java/jdk1.6.0_35/jre/bin/java
   2           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
*  3           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java

Enter to keep the current selection[+], or type selection number:

Select java 1.7 out of the menu options by typing the correct number (here it’s 3).

Inspect the application.xml

Inspect the application.xml, it is now slightly different from the one used in the previous hands-on exercise:

<?xml version="1.0" encoding="us-ascii"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" id="beam_arithm">
  <jobTemplates>
    <jobTemplate id="expression">
      <streamingExecutable>/application/expression/run</streamingExecutable>
    </jobTemplate>
  </jobTemplates>
    <workflow id="hands-on-4" title="Using a toolbox" abstract="Exercise 4, using a toolbox">
    <workflowVersion>1.0</workflowVersion>
    <node id="node_expression">
      <job id="expression"/>
      <sources>
        <source refid="file:urls">/application/inputs/list</source>
      </sources>
    </node>
  </workflow>
</application>

Inspect the run executable

  • The BEAM Toolbox has to be called within the run executable. We can inspect the run executable and see how the BEAM Toolbox is used:
cd $_CIOP_APPLICATION_PATH
more expression/run

Hint

The BEAM Toolbox is executed through the gpt.sh script

For further explanations on the graph processing tool, see “Bulk Processing with GPT” [2] and “Creating a GPF Graph” [3].

Run and debug the workflow

  • Run the node node_expression:
ciop-run node_expression
  • Check the output of the application by copying the Tracking URL from the ciop-run command, and paste it in a browser (see make a robust workflow and debug it). You will see an output similar to:
Attempts output

Recap

  1. We installed the ESA BEAM toolbox;
  2. We called it from our run executable;
  3. We processed the inputs with the BandMaths Operator provided by the ESA BEAM Toolbox;
  4. We published the results in HDFS.

Footnotes

[1]ESA BEAM Toolbox BandMaths
[2]Bulk Processing with GPT
[3]Creating a GPF Graph