Step 1 - Select and instantiate an Ellip Workflows archetype

In this step, we will create an application structure, based on an archetype, that is a template of an application (see Application Archetypes).

Prerequisites

  • The <community-name> and <app-name> values.

Procedure

  • Open a Terminal using the JupyterLab Launcher,
  • Enter the workspace directory:
cd /workspace
  • Set the proper values for community and app-name:
APP_NAME=<app-name>
COMMUNITY=<community>
  • Generate the application structure from the archetype:
mvn archetype:generate -B \
   -DgroupId=com.terradue \
   -DartifactId=${APP_NAME} \
   -Dversion=0.1-SNAPSHOT \
   -Dpackage=${APP_NAME} \
   -Dcommunity=${COMMUNITY} \
   -Ddescription='Sentinel-1 backscatter timeseries' \
   -Dsummary='Data transformation application - Sentinel-1 backscatter timeseries' \
   -DarchetypeArtifactId=ewf-notebook-stagein-1 \
   -DarchetypeGroupId=com.terradue.app

If the app-name value was myapp, we would have under /workspace/myapp an application structure like:

tree myapp/
myapp/
├── Jenkinsfile
├── pom.xml
├── README.md
└── src
    ├── main
    │   └── app-resources
    │       ├── application_template.xml
    │       ├── dependencies
    │       │   └── python
    │       │       └── packages.list
    │       └── notebook
    │           ├── etc
    │           │   └── snappy.ini
    │           ├── libexec
    │           │   └── input.ipynb
    │           └── run
    └── test
        └── test_util.py

9 directories, 9 files
  • src/main/app-resources with notebook/run, the wrapping streaming executable, a python script that instantiates, parametrizes and invokes the Jupyter notebook and finally publishes the generated results (depending on the template it stages-in the inputs) - no edits here!,
  • src/main/app-resources/notebook/libexec/input.ipynb, the Jupyter Notebook that will be converted as an executable,
  • src/test with the unit tests for the application

Next step

[ ]: