Skip to content

EodashProcess

A panel that runs an OGC API – Processes style workflow against the selected dataset and shows the result as a chart, map layers, or another STAC collection.

It reads an eodash:jsonform URL from the selected STAC collection, fetches that JSON Schema form definition, and renders it with eox-jsonform. Spatial inputs (bounding box, point, polygon, or feature selection) are drawn on the map through eox-drawtools, which the form schema injects. The form values fill the service links on the collection (templated with Mustache), and the responses become the output.

Example

A process panel placed next to the map:

js
{
  id: "process",
  title: "Analysis",
  type: "internal",
  layout: { x: 9, y: 0, w: 3, h: 8 },
  widget: {
    name: "EodashProcess",
    properties: {
      vegaEmbedOptions: { actions: true },
    },
  },
}

A compare-mode panel bound to the second map (see compare mode):

js
widget: {
  name: "EodashProcess",
  properties: { enableCompare: true },
}

Inputs

The form is whatever the collection's eodash:jsonform schema describes - eodash renders the schema as-is, so the available inputs are defined by the dataset, not by the widget see STAC processing. On top of standard JSON Schema fields, two things are eodash-specific:

  • Spatial selection. A schema field can declare a drawtools input, which lets the user draw on the map. The supported geometries are bounding box, point, polygon, and feature selection (clicking existing features of a layer). The drawn geometry is written back into the form value.
  • Schema options.
    • options.execute: true - auto-execute. The process runs on every form change instead of showing an Execute button.
    • options.multiQuery - when a field holds multiple selections, eodash issues one request per value and aggregates the responses into a single result.

Outputs

The process output is determined by the service links returned for the collection, matched on the link type:

Link typeOutput
application/json, text/csvChart data injected into a Vega-Lite spec, rendered by EodashChart. Supports GET and POST (with a body template).
image/tiffA COG / GeoTIFF map layer.
image/pngA static image map layer placed over the request bounding box.
application/geo+jsonA vector map layer, optionally styled from an eox:flatstyle link.
application/json; profile=collection (with endpoint: "STAC")Loads another STAC collection as the output - currently used for points-of-interest collections.

Chart output is shared through the eodash store: EodashProcess writes chartSpec and chartData, and EodashChart reads them. Map layers are added to the active map.

Custom endpoints

When a service link carries an endpoint identifier, eodash routes it to a dedicated handler instead of fetching it directly. These cover backends that need their own request/response handling:

  • SentinelHub (chart) - runs a SentinelHub Statistics request and feeds the result into the chart.
  • VEDA (chart) - reads cloud-optimized GeoTIFFs from a VEDA collection for charting.
  • EOxHub Workspaces (layers, asynchronous) - submits the work as a job to an EOxHub workspace and turns the finished result into map layers.

Each handler only acts on links addressed to it, so a collection can mix custom-endpoint links with ordinary service links.

Synchronous vs. asynchronous

The widget supports both types of processes:

  • Synchronous is the default: the request returns the result directly and the output appears as soon as it resolves.
  • Asynchronous is used when the collection has EOxHub Workspaces links. The process is submitted as a job and polled until it finishes. The panel tracks each job's status (running / successful / failed) and progress, and renders the output once the job is successful.

Properties

enableCompare?

ts
optional enableCompare?: boolean = false;

vegaEmbedOptions

ts
vegaEmbedOptions: EmbedOptions<string, Renderers>;

See also