Skip to content

Application packages in the xcube ecosystem

Overview

In this course, you'll get to know:

  • OGC Earth Observation Application Packages, a framework that lets you package almost any software into a reusable module for deployment on cloud infrastructure.
  • xcube, a multitalented, ever-growing toolkit and ecosystem for working with data cubes in Python.
  • xcengine, a new tool that lets you automatically turn your Python Jupyter notebooks into both Application Packages and xcube server containers.

Requirements

To follow along with the course content, you'll need to have the following installed and working on your computer:

  • Your preferred terminal emulator, preferably running the bash shell.
  • A conda-based Python environment, which we'll use to set up an environment in which to run the Python tools. I recommend mamba. You can find installation instructions here.
  • git
  • docker

If there's enough time at the end, we'll also set up an Application Package Platform using ZOO and use it to run an Application Package locally! If you also want to follow along with this on your own machine, you should have the following installed:

The course GitHub repository

The resources for the course are in a GitHub repository at https://github.com/xcube-dev/summerschool25/ (which also contains the source text for this web page).

Use git to clone this repository onto your computer and follow the instructions in the README.md file to get set up.

Outline of course content

  1. I'll give a quick introduction to Application Packages, what they're useful for, and how they are structured.
  2. We'll go hands-on, write a (very!) simple Application Package by hand, and run it using cwltool.
  3. I'll introduce xcengine, a program to turn Jupyter notebooks into Application Packages.
  4. We'll run xcengine on a simple example notebook, then look at the application package that it produces and run it using cwltool.
  5. I'll introduce xcube and describe the extra functionality built into every xcengine Application Package: a self-contained xcube server and viewer deployment!
  6. We'll run our generated Application Package container image in "xcube mode" and see its output data in the viewer.
  7. If we have enough time at the end, I'll demonstrate running ZOO – a fully-fledged Application Package platform – on a local computer. If you've pre-installed the optional requirements (see above), you can follow along on your own machine.

Background reading

None of these links are required reading, but they're good starting points if you want to do some extra preparation or if you're curious about the technologies involved.