Workflows is a computation engine for inventing, deploying, and sharing geospatial analyses, fast.

With Workflows, you can develop your algorithm interactively and see changes recomputed on the fly, then run it at scale without changing your code. When you share it, others can easily build on top of it, or run it with different parameters.

Workflows helps you express the “what” of your model, rather than the “how”, letting you think more about the science, and less about the software engineering work of implementing it.

Vessel traffic through the Strait of Gibraltar, using Workflows

Four years of vessel traffic through the Strait of Gibraltar from Sentinel-1 radar, rendered on the fly with Workflows.

In Workflows, you write code with high-level objects, like Image and ImageCollection, rather than thinking about array indices. Instead of sending data back and forth, Workflows sends the sequence of operations you define to the backend, which pulls all the data, processes it, and sends you back just the final result—whether that’s a composited image, a timeseries of statistics derived from raster and vector data, or a single number.

With this design, you get:

  • Live visualization on an interactive map

  • Easy exploration using parameters and widgets

  • Caching, so only parts of your code that change are recomputed

  • Automatic parallelization

  • Batch jobs without the overhead of setting up Tasks

Workflows integrates with the Python data science ecosystem. You can quickly build custom interactive tools on top of Workflows using ipywidgets and ipyleaflet in Jupyter notebooks. And you can retrieve any data as a NumPy array or native Python type to use with other libraries. It also has an Array type that’s intercompatible with NumPy, so you can express complex numerical operations without learning new syntax.

Workflows is meant to do the heavy lifting of filtering, merging, and transforming raw data down into a refined result. But don’t expect it to do everything. Instead, use Workflows to get your data into the right format, then call compute on any object to retrieve the data and continue on with your analysis locally.

This guide describes some high-level Workflows concepts and implementation specifics, but is not exhaustive. For a complete reference, see the Workflows API Docs.

Request Access

Workflows is currently in limited release. To request access please make a request through our support portal.


Old versions of the Workflows client will eventually stop working as new versions are released. Workflows doesn’t currently guarantee backwards API compatibility between versions.

The client library depends on a backend that it knows how to communicate with. As the API changes and improves, old clients will no longer be compatible with the new backend. To ensure consistency, each version gets its own backend, or channel, which doesn’t change.

Even when new versions are released, old versions will still work as before. This gives you time to upgrade at your own pace, lets you use standard Python package-management tools like pip or poetry to control the version, and ensures APIs don’t mysteriously change in the middle of your work.

However, when a version gets old enough, we will deactivate its backend. You should only expect the 2-3 most recent versions to have active backends.

If you see an error like NotFound: 404 Channel "v0-1" does not exist. If it used to, please upgrade your client., it’s time to upgrade your descarteslabs client version and get access to new features!

Upgrade early, upgrade often.

Continue to Workflows API Reference.