Basic Workflow

This example demonstrates a complete openEObench workflow from service checking to result visualization.

Step 1: Check Service Availability

First, create a CSV file with backend endpoints:

backends.csv
url
https://openeo.dataspace.copernicus.eu/.well-known/openeo
https://openeo.vito.be/.well-known/openeo
https://earthengine.openeo.org/.well-known/openeo

Check service availability:

openeobench service -i backends.csv -o service_results/

This creates timestamped CSV files in service_results/ with response times and status codes.

Step 2: Run Scenarios

Execute a simple NDVI calculation scenario:

ndvi_scenario.json
{
  "process_graph": {
    "loadco1": {
      "process_id": "load_collection",
      "arguments": {
        "id": "SENTINEL2_L2A",
        "spatial_extent": {
          "west": 16.1,
          "east": 16.6,
          "north": 48.6,
          "south": 47.9
        },
        "temporal_extent": ["2024-06-01", "2024-06-30"]
      }
    },
    "ndvi": {
      "process_id": "ndvi",
      "arguments": {
        "data": {"from_node": "loadco1"},
        "nir": "B08",
        "red": "B04"
      }
    },
    "save": {
      "process_id": "save_result",
      "arguments": {
        "data": {"from_node": "ndvi"},
        "format": "GTiff"
      },
      "result": true
    }
  }
}

Run the scenario on multiple backends:

# CDSE backend
openeobench run --api-url https://openeo.dataspace.copernicus.eu -i ndvi_scenario.json -o results/cdse/

# VITO backend
openeobench run --api-url https://openeo.vito.be -i ndvi_scenario.json -o results/vito/

Step 3: Analyze Results

Generate timing statistics:

openeobench run-summary -i results/cdse/ results/vito/ -o timing_comparison.csv

Generate file statistics:

openeobench result-summary results/cdse/ results/vito/ --output result_analysis.md

Step 4: Check Process Compliance

Check which processes are available on each backend:

openeobench process -i backends.csv -o process_compliance

Generate compliance summary:

openeobench process-summary process_compliance/ --output compliance_report.md

Step 5: Visualize Results

Create visual comparison of outputs:

openeobench visualize results/cdse/ results/vito/ --output comparison.md --format both

This generates: - A markdown report with embedded visualizations - PNG matrix showing all results side-by-side - Individual PNG files for each result

Step 6: Generate Service Summary

Create performance report from service checks:

openeobench service-summary -i service_results/ -o service_performance.md

Complete Workflow Script

Here’s a complete bash script that runs the entire workflow:

benchmark_workflow.sh
#!/bin/bash

# Setup
mkdir -p results/{cdse,vito} service_results

# Step 1: Check services
echo "Checking service availability..."
openeobench service -i backends.csv -o service_results/

# Step 2: Run scenarios
echo "Running scenarios..."
openeobench run --api-url https://openeo.dataspace.copernicus.eu -i ndvi_scenario.json -o results/cdse/
openeobench run --api-url https://openeo.vito.be -i ndvi_scenario.json -o results/vito/

# Step 3: Analyze results
echo "Generating analysis reports..."
openeobench run-summary -i results/cdse/ results/vito/ -o timing_comparison.csv
openeobench result-summary results/cdse/ results/vito/ --output result_analysis.md

# Step 4: Check compliance
echo "Checking process compliance..."
openeobench process -i backends.csv -o process_compliance
openeobench process-summary process_compliance/ --output compliance_report.md

# Step 5: Visualize
echo "Creating visualizations..."
openeobench visualize results/cdse/ results/vito/ --output comparison.md --format both

# Step 6: Service summary
echo "Generating service summary..."
openeobench service-summary -i service_results/ -o service_performance.md

echo "Workflow complete! Check the generated reports."

Expected Output Files

After running the complete workflow, you’ll have:

project/
├── service_results/
│   └── 2025-07-24_14-30-25.csv
├── results/
│   ├── cdse/
│   │   └── 2025-07-24_14-35-12/
│   │       ├── processgraph.json
│   │       ├── results.json
│   │       └── result.tif
│   └── vito/
│       └── 2025-07-24_14-40-05/
│           ├── processgraph.json
│           ├── results.json
│           └── result.tif
├── process_compliance.csv
├── process_compliance.json
├── timing_comparison.csv
├── result_analysis.md
├── compliance_report.md
├── comparison.md
├── comparison.png
└── service_performance.md