Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Publish a Dataset in an EOxHub Workspace

What you’ll accomplish: Upload, configure, preview, and submit a geospatial dataset for publication in an EOxHub dashboard.
Applications used: File Browser, Data Editor, Publishing Dashboard
Estimated time: 30–45 minutes, excluding review and approval
Before you start: You need access to an EOxHub Workspace with Dashboard as a Service and your geospatial dataset.

This tutorial explains the complete workflow for preparing, uploading, styling, and publishing datasets in an EOxHub Workspace, using several of the available applications within EOxHub. It is intended as an overview and does not go into detail on all the options within the various steps, but provides links to further resources if more information is needed. The same steps apply across all workspace instances (e.g., GTIF Austria, Cerulean, and other environments).

For more information on the dedicated applications, please explore the rest of this documentation.

Prerequisites

To submit a data publishing request for a raw resource, i.e. a data format that can be directly visualized by the Dashboard (Cloud-Optimized GeoTIFF (COG), GeoJSON, or FlatGeobuf), you need the following:

  1. Have a geospatial file that is accessible through a public URL.

  2. Have a style definition file that is accessible through a public URL.

The tutorial covers how to achieve the prerequisites within an EOxHub Workspace environment and various other aspects of the Data Publishing submission:


1. Uploading Data with the File Browser

For the first prerequisite (a publicly available geospatial file), you can use the File Browser application. The File Browser allows adding data to a workspace.

A special public folder is available where you can upload the files which are expected to be published. You can upload files (Cloud-Optimized GeoTIFF (COG), GeoJSON, style files, preview images, etc.) directly in the browser.

Once a file is uploaded, it can be accessed through a special URL similar to the following:

https://workspace-ui-public.<instance>.hub.eox.at/api/public/share/public/<filename>.tif

The exact URL, as well as a short description, is provided in the README.txt file inside the public folder of your workspace. Presigned URLs generated from the File Browser are temporary and should not be used in the Dashboard configuration. Always use the permanent public URL.

⚠️ Upload through the browser to the workspace storage has some size limitations, files over ~100 MB should be uploaded differently.

Raw Data formats

Here is more information on the supported formats:

Additional information on resource properties, such as raw data source can be found in the eodash_catalog wiki for Resource.


2. Style Definition

COGs with numeric values (e.g., temperature) as well as vector data (GeoJSON, FlatGeobuf) require a style definition so that it is clear how they should be visualized.

This section covers handling the second prerequisite: creating the style and making it available online.

Style creation

The style is based on OpenLayers expressions using OpenLayers flat style definition.

Further information on styling in the eodash client can be found in the eodash documentation.

An experimental client to help you iterate more quickly on the style definition is available at https://eodash.github.io/eodash-style-editor/. There you can set a URL for your dataset and work on the style definition live. Please note that this is an experimental helper tool and is not fully functional. A more streamlined integration is envisioned and the deployment of the current tool will probably change.

Example: Temperature color scale with no-data handling:

{
  "color": [
    "case",
    [">", ["band", 1], 0],
    [
      "interpolate",
      ["linear"],
      ["band", 1],
      290,
      [0, 0, 255, 1],
      310,
      [253, 0, 0, 1]
    ],
    [0, 0, 0, 0]
  ]
}

❌ JSON does not support comments (// ...). Make sure to not use them in the definition or parsing will fail.

Style online deployment

Using the same approach as making the Cloud-Optimized file available online, we can use the File Browser to upload or directly create the style JSON file in the public folder. If you want to create the style and copy the style configuration from the style editor, click on “New file” 📄, name it, for example, style.json, and paste your configuration into the editor. Make sure to click the Save button 💾 once you are done. Then you can use the public endpoint as explained previously.

There are of course other ways of making a file public, many services exist especially for a json format. Style files can become intricate depending on the use case or done as collaboration activity so it might be beneficial to use a service that provides change tracking.

3. Submitting a data publishing request

Once your files are uploaded, you need to register them in the Data Editor.

The basic steps are:

  1. Go to Data Editor → Start New Session.

  2. Automation → Create Dataset Submission:

  1. Inside opened form:

Example entry for a COG resource:

{
  "time": "2019-06-27T00:00:00Z",
  "assets": {
    "file": "https://workspace-ui-public.example.hub.eox.at/api/public/share/public/example.tif"
  }
}

For a more detailed guide with screenshots, please see Integrating GeoJSON dataset using Data Editor, where the shown steps are applicable to all raw resource submissions.


Adding a Legend

There are in principle three approaches for defining a legend.

  1. Using legend property within the style definition

If your style utilizes variables and allows dynamic changes, e.g. value range change, this is the best alternative, as it allows to bind the legend to the variables, so it will update according to user changes. For a static legend you can use following in your style:

{
  "color": {...}, // full color definition to be filled
  "legend": {
    "title": "Title text",
    "range": [
      "rgba(0, 0, 255, 1)",
      "rgba(170, 170, 170, 1)",
      "rgba(255, 0, 0, 1)"
    ],
    "domain": [0, 10]
  },
   "jsonform": {
        "type": "object",
        "title": "Data configuration",
        "properties": {}
   }
}

For dynamic changes instead of “domain”, “domainProperties” can be used:

{
  "color": {...}, // full color definition to be filled
  "legend": {
    "title": "Title text",
    "range": [
      "rgba(0, 0, 255, 1)",
      "rgba(170, 170, 170, 1)",
      "rgba(255, 0, 0, 1)"
    ],
    "domainProperties": ["vmin", "vmax"]
  },
  "variables": {
    "vmin": 2,
    "vmax": 10
  },
  "jsonform": {
    "type": "object",
    "title": "Data configuration",
    "properties": {...} // full definition of form fields to manipulate variables
   }
}

Apart from that it is possible to:

  1. Provide Colorlegend in collection definition

Add the Colorlegend property for a collection in the Data Editor (or collection json definition). Here is more information on the properties.

  1. Legend in collection definition

If the legend needs to be completely custom it is possible to use an image. The URL to the image can be specified in the optional Legend property of the collection in the Data Editor.


Combining Multiple Datasets

If multiple datasets should be shown together in the dashboard, there are mainly two options:

Option A: Collections under one Indicator

It is possible to use the “Browse Files” button in the Data Editor to find and modify most text-based files. Alternatively, the changes can be made directly in the GitHub repository if that is considered easier.

Example indicator (simplified):

{
  "id": "combined_indicator",
  "collections": ["temperature_collection", "cooling_degree_collection"]
}

Option B: Multiple Assets for one Time Entry

If both datasets share the same spatial/temporal extent:

This allows very interesting dynamic band arithmetic and filtering options combining datasets.

Example json structure:

"TimeEntries": [
  {
    "Time": "20250101",
    "Assets": [
      // equivalent to ["band", 1]
      {
        "Identifier": "temperature",
        "File": "https://workspace-ui-public.gtif-austria.hub-otc.eox.at/api/public/temperature2025.tiff"
      },
      // equivalent to ["band", 2]
      {
        "Identifier": "humidity",
        "File": "https://workspace-ui-public.gtif-austria.hub-otc.eox.at/api/public/humidity2025.tiff"
      }
    ]
  }
]

Adding a Preview Image

You can add a preview image under General → Image. For hosting the image you can use for example the File Browser to upload it to the public folder.

Example:

"image": "https://workspace-ui-public.example.hub.eox.at/api/public/assets/preview.jpg"

⚠️ Make sure:


4. Publishing the Dataset

Workflow:

  1. Work in a test session in the Data Editor.

  2. Validate dataset and style in the Preview.

  3. Mark the session as Ready for Review.

  4. Once approved, the session is merged into the public catalog and displayed in the associated public dashboard.


5. Troubleshooting


This covers the main steps for publishing data by uploading, styling, combining, and publishing in an EOxHub Workspace. For more information about the applications used, please explore the rest of the documentation.