Products

Product

Type: object

Field Type Default Description
General
id string Required The ID used to reference the product in the portal. Restricted to alphanumeric characters and can contain whitespace ( ), dot (.), underscore (_), and dash (-) characters in the middle.
label string Required The label of the product (used in the products side panel among other places), it supports HTML.
type string Required The type of the product's datasets and how they are rendered. For more info see Product Types.
description string Optional The description of the product (shown as a tooltip in products side panel)
infoURL URL Optional The URL of a GitHub Flavored Markdown file containing information about this product.
tags string[] [] A list of tags associated to the product. Used for grouping and searching in the products list. May be displayed to the user. Each tag may be of the form ${key}:${value} in which case it can be used for grouping and only the value will be used for searching.
selected boolean false If true the product is selected by default.
colormaps Colormap[] Optional The description of the colormaps associated with this product to be displayed in the Display data dialog.
unit string Optional The unit of the values given in the colormaps. Will be displayed in the Display data dialog. For log-scale units prefix the unit with log .
granuleInfoConfig ProductGranuleInfoConfig Optional If provided specifies which granule info groups, resources and metadata fields should be available to the user in the interface, and how they should be presented. Otherwise none will be available to the user in the interface. For more info see Granule Info.
datasetFilters DatasetFilterGroups Optional If provided specifies predefined dataset filtering options to be made available to the user in the interface. For more info see Dataset Filtering.
Timeline
mustBeCurrent boolean Required If true the product's datasets are considered valid (and thus added to the map) only when the current date/time is inside their respective definition range. Otherwise (if false) they are considered valid if their respective definition range intersects the current timespan.
timelineValidity number > 0 Optional If provided and mustBeCurrent is set to false, the product's datasets are considered valid if their respective definition range intersects a range of ± the value of this field in hours around the current date/time.
permanent boolean false If true the product's datasets are excluded for the coverage and find nearest requests.
excludedFromColoc boolean false If true the product's datasets are excluded when computing colocations. For more about info on the colocation see the coverage timeline.
Pagination For more info see Pagination.
priority number 0 The priority of the product. Bigger values imply higher priority.
datasetWeight number >= 0 1 The average rendering weight of any one of the product's datasets.
minPageSize number >= 0 1 The minimum number of the product's datasets that will be rendered (if available) regardless of any pagination.
Map
outlines ProductOutlines 'ALWAYS_SHOWN' When to show the outlines (in white around the data) of the product's datasets. This takes precedence over the deprecated noOutline if both specified.
mapMinZoom integer >= 0 Optional If provided the product's datasets will be hidden for zoom level smaller (farther away) than the value of this field.
mapMaxZoom integer >= 0 Optional If provided the product's datasets will be hidden for zoom level bigger (nearer) than the value of this field.
opacity number ∈ [0, 1] 1 The default opacity of the datasets. 0.0 (fully transparent) to 1.0 (fully opaque).
stackLevel integer ∈ [0, 1000] Required Specifies the default z-order of the product's datasets. When datasets overlap, z-order determines which one covers the other. A dataset with a larger stackLevel generally covers an element with a lower one.
Deprecated fields
Field Type Description
noOutline boolean Deprecated: Use outlines instead.
If true the outlines (in white around the data) of the product's datasets will be hidden.

See Product Types for more info on each type's specific fields and specifics.

ProductOutlines

Type: string
Possible values:

Granule Info

GranuleInfo

Type: {[groupId: string]: GranuleInfoGroup}

The key (groupId) is the granule info group's ID (corresponding to metadata.syntool_id in the API response).
The value is the granule info group containing metadata and resources. See GranuleInfoGroup.

Example
{
  default: {
    metadata: {
      satellite: 'Sentinel-3',
      instrument: 'OLCI',
    },
    register: {
      url: 'https://portal.creodias.eu/register.php',
    },
    download: {
      url: 'https://finder.creodias.eu/?productIdentifier=S3B_OL_2_LFR____20210425T102604_20210425T102904_20210425T123514',
      description: 'Get data',
    },
  },
}

GranuleInfoGroup

Type: {[resourceId: string]: GranuleInfoResource, metadata: GranuleInfoMetadata}

The key (resourceId) is the granule info resource's ID.
The value is the granule info resource containing fields like url and description. See GranuleInfoResource.

Note: The field "metadata" is special and contains key-value metadata. See GranuleInfoMetadata.

Example
{
  metadata: {
    satellite: 'Sentinel-3',
    instrument: 'OLCI',
  },
  register: {
    url: 'https://portal.creodias.eu/register.php',
  },
  download: {
    url: 'https://finder.creodias.eu/?productIdentifier=S3B_OL_2_LFR____20210425T102604_20210425T102904_20210425T123514',
    description: 'Get data',
  },
}

GranuleInfoResource

Type: object

Field Type Default Description
url URL Required The URL of the linked resource.
description string Optional The description of this resource. Text only
Example
{
  url: 'https://portal.creodias.eu/register.php',
}
{
  url: 'https://finder.creodias.eu/?productIdentifier=S3B_OL_2_LFR____20210425T102604_20210425T102904_20210425T123514',
  description: 'Get data',
}

GranuleInfoMetadata

Type: {[key: string]: string}

The key (key) is the field's ID.
The value is the field's value, it supports HTML.

Example
{
  satellite: 'Sentinel-3',
  instrument: 'SLSTR',
}

ProductGranuleInfoConfig

Type: GranuleInfoConfig or GranuleInfoConfigFn

Specifies which granule info groups, resources and metadata fields should be available to the user in the interface, and how they should be presented.

GranuleInfoConfigFn

Type: (dataset: Dataset, info: GranuleInfo) -> GranuleInfoConfig?

This function will be called in order to get the configuration for a given dataset and its info, and must return an optional GranuleInfoConfig.

If this function returns null or undefined, the entire granule info will be ignored and will not be available to the user.

Parameter Type Description
dataset Dataset The dataset to which the info apply.
info GranuleInfo The info of the dataset that require the configuring.

Note: This function might be called multiple times, or just once and its return value cached.

Example

capitalizeString is defined here

function(dataset, info) {
  return {
    unknownGroup: function(dataset, group, groupId) {
      return {
        title: capitalizeString(groupId),
        metadata: function(value, key, metadata, dataset) {
          return {
            label: capitalizeString(key),
            value: value,
          };
        },
        unknownResource: function(dataset, resource, resourceId) {
          return {
            type: 'link',
            label: capitalizeString(resourceId),
          };
        },
      };
    },
  };
}

GranuleInfoConfig

Type: object

Field Type Description
autoResourceId string The full ID, in the form ${groupId}/${resourceId}, of the resource that should be activated automatically upon the selection of its dataset.
groups GranuleInfoGroupsConfig If given, specifies the configuration for known groups.
unknownGroup GranuleInfoUnknownGroupConfig If given, will be call to specify the configuration for a group not in groups field.

Note: All fields are optional.

Note: If a group has no corresponding configuration, it will be ignored and will not be available to the user.

Example

capitalizeString is defined here

{
  autoResourceId: 'default/profile',
  groups: {
    default: {
      title: 'Profile',
      metadata: {
        'cycle number': 'Cycle Number',
        'data centre': 'Data Centre',
        'grounded': 'Grounded',
        'positioning inverstigator': 'Positioning Inverstigator',
        'project': 'Project',
        'wmo id': 'WMO ID',
        'wmo inst. type': 'WMO Instrument Type',
      },
      profile: {
        type: 'image',
        label: 'Profile',
      },
    },
  },
  unknownGroup: function(dataset, group, groupId) {
    return {
      title: capitalizeString(groupId),
      metadata: function(value, key, metadata, dataset) {
        return {
          label: capitalizeString(key),
          value: value,
        };
      },
      unknownResource: function(dataset, resource, resourceId) {
        return {
          type: 'link',
          label: capitalizeString(resourceId),
        };
      }
    };
  }
}

GranuleInfoGroupsConfig

Type: {[groupId: string]: GranuleInfoGroupConfig}

The key (groupId) is the group's ID referencing groupId of GranuleInfo.
The value is the configuration for that group. See GranuleInfoGroupConfig.

Example
{
  default: {
    title: 'Profile',
    metadata: {
      'cycle number': 'Cycle Number',
      'data centre': 'Data Centre',
      'grounded': 'Grounded',
      'positioning inverstigator': 'Positioning Inverstigator',
      'project': 'Project',
      'wmo id': 'WMO ID',
      'wmo inst. type': 'WMO Instrument Type',
    },
    profile: {
      type: 'image',
      label: 'Profile',
    },
  },
}

GranuleInfoUnknownGroupConfig

Type: (dataset: Dataset, group: GranuleInfoGroup, groupId: string) -> GranuleInfoGroupConfig?

This function will be called in order to get the configuration for a given info group associated to a dataset, and must return an optional GranuleInfoGroupConfig.

If this function returns null or undefined, the entire info group will be ignored and will not be available to the user.

Parameter Type Description
dataset Dataset The dataset with which the info group is associated.
group GranuleInfoGroup The info group that require the configuring.
groupId string The ID of info group group referencing groupId of GranuleInfo.

Note: This function might be called multiple times, or just once and its return value cached.

Example

capitalizeString is defined here

function(dataset, group, groupId) {
  return {
    title: capitalizeString(groupId),
    metadata: function(value, key, metadata, dataset) {
      return {
        label: capitalizeString(key),
        value: value,
      };
    },
    unknownResource: function(dataset, resource, resourceId) {
      return {
        type: 'link',
        label: capitalizeString(resourceId),
      };
    }
  };
}

GranuleInfoGroupConfig

Type: object

Specifies how the info group along with its resources and metadata fields should be available to the user in the interface, and how they should be presented.

Field Type Default Description
title string Required The title of the group as presented to the user, it supports HTML.
order number 0 Used to sort the groups before presenting them.
defaultCollapsed boolean false When set to true, the presented group will be collapsed by default.
metadata GranuleInfoMetadataConfig Optional If given, specifies the configuration for the metadata fields.
resources GranuleInfoResourcesConfig Optional If given, specifies the configuration for known resources.
unknownResource GranuleInfoUnknownResourceConfig Optional If given, will be call to specify the configuration for a resource not in resources field.
metadataDefaults GranuleInfoMetadata Optional If given, specifies defaults for missing metadata fields.

Note: If no configuration is given for the metadata field, all the metadata information included in this group will be ignored and will not be available to the user.

Note: If a resource has no corresponding configuration, it will be ignored and will not be available to the user.

Example
{
  title: 'Data access',
  metadata: {
    satellite: 'Satellite',
    instrument: 'Instrument',
  },
  resources: {
    download: {
      type: 'link',
      label: 'Get Data',
      order: 2,
    },
    register: {
      type: 'link',
      label: 'Register',
      order: 2,
    },
  },
}

GranuleInfoMetadataConfig

Type: GranuleInfoMetadataFieldsConfig or GranuleInfoMetadataConfigFn

Specifies which metadata fields should be available to the user in the interface, and how they should be presented.

GranuleInfoMetadataFieldsConfig

Type: {[key: string]: string}

The key (key) is the metadata field's ID referencing key of GranuleInfoMetadata.
The value is the label of that metadata field, it supports HTML.

Note: All metadata fields not specified, will be ignored and will not be available to the user.

Example
{
  'cycle number': 'Cycle Number',
  'data centre': 'Data Centre',
  'grounded': 'Grounded',
  'positioning inverstigator': 'Positioning Inverstigator',
  'project': 'Project',
  'wmo id': 'WMO ID',
  'wmo inst. type': 'WMO Instrument Type',
}

GranuleInfoMetadataConfigFn

Type: (value: string, key: string, metadata: GranuleInfoMetadata, dataset: Dataset) -> GranuleInfoMetadataFieldConfig?

This function will be called in order to get the configuration for a given metadata field, and must return an optional GranuleInfoMetadataFieldConfig.

If this function returns null or undefined, the metadata field will be ignored and will not be available to the user.

Parameter Type Description
value string The value of the metadata field.
key string The ID of metadata field referencing key of GranuleInfoMetadata.
metadata GranuleInfoMetadata All the metadata fields in the group.
dataset Dataset The dataset with which the metadata field is associated.

Note: This function might be called multiple times, or just once and its return value cached.

Example

capitalizeString is defined here

function(value, key, metadata, dataset) {
  if (key === 'wmo id') {
    return {
      label: 'WMO ID',
      description: 'World Meteorological Organization identifier',
      value: value,
    };
  }
  if (key === 'wmo inst. type') {
    return {
      label: 'WMO Instrument Type',
      value: value,
    };
  }
  return {
    label: capitalizeString(key),
    value: value,
  };
}

GranuleInfoMetadataFieldConfig

Type: object

Specifies how a metadata field should be presented to the user in the interface.

Field Type Default Description
label string Required The label of the metadata field, it supports HTML.
description string Optional The description of the metadata field. Text only
value string Required The value of the metadata field, it supports HTML.
order number 0 Used to sort the metadata fields and resources of the group before presenting them.
copyable boolean true Whether or not a copy button can be displayed next to this field to allow the user to copy it's value.

See GranuleInfoMetadataConfigFn for examples.

GranuleInfoResourcesConfig

Type: {[resourceId: string]: GranuleInfoResourceConfig}

The key (resourceId) is the resource's ID referencing resourceId of GranuleInfoResource.
The value is the configuration for that resource. See GranuleInfoResourceConfig.

Example
{
  profile: {
    type: 'image',
    label: 'Profile',
  },
}

GranuleInfoUnknownResourceConfig

Type: (dataset: Dataset, resource: GranuleInfoResource, resourceId: string) -> GranuleInfoResourceConfig?

This function will be called in order to get the configuration for a given resource associated to a dataset, and must return an optional GranuleInfoResourceConfig.

If this function returns null or undefined, the resource will be ignored and will not be available to the user.

Parameter Type Description
dataset Dataset The dataset with which the resource is associated.
resource GranuleInfoResource The resource that require the configuring.
resourceId string The ID of response resource referencing resourceId of GranuleInfoResource.

Note: This function might be called multiple times, or just once and its return value cached.

Example

capitalizeString is defined here

function(dataset, resource, resourceId) {
  return {
    type: 'image',
    label: capitalizeString(resourceId),
    inline: resource.url + '.thumb.png',
    order: 2,
  };
}

GranuleInfoResourceConfig

Type: object

Specifies how a resource should be presented to the user in the interface.

Field Type Default Description
type GranuleInfoResourceType Required The type of the resource.
label string Required The label of the resource, it supports HTML.
order number -1 Used to sort the metadata fields and resources of the group before presenting them.
image Applies to image resources only
inline boolean or URL false When true, the same image will be shown inline. When a URL, the image located at its value will be shown inline. Otherwise the image is not shown inline.

See GranuleInfoResourceType for examples.

GranuleInfoResourceType

Type: string
Possible values:

Note: Any other type will be ignored and the resource will will not be available to the user.

Dataset Filtering

DatasetFilterGroups

Type: {[label: string]: DatasetFilterGroup}

The key (label) is the group's label visible to the user in the interface.
The value defines that group. See DatasetFilterGroup.

Note: Each filter defined in any of the groups inside this object must have a unique pattern and a unique name.

Example
{
  'Platform': {
    A: 's1a-*',
    B: 's1b-*',
  },
  'Operational mode': {
    IW: '*-iw-*',
    EW: '*-ew-*',
    SM: '*-s1-*|*-s2-*|*-s3-*|*-s4-*|*-s5-*|*-s6-*',
    WV: '*_WV_*',
  },
  'Polarisation': {
    VV: '*-vv-*',
    HH: '*-hh-*',
  },
}

DatasetFilterGroup

Type: {[filterName: string]: DatasetFilter, groupDescription?: string}

The key (filterName) is the dataset filter's name and it's not allowed to contain percent-signs (%), ampersands (&), hash-signs (#), plus-signs (+), commas (,), or exclamation-marks (!), also it's not allowed to start or end with a whitespace ( ).
The value defines that filter. See DatasetFilter.

The field groupDescription is optional and its value is used as description of the group.

Note: The filters of a group are considered exhaustive and non-overlapping. Meaning, when non of the group's filters are selected, non of the product's datasets will be visible. Likewise, when all of the group's filters are selected, the product's datasets will not be filtered by that group.

Examples

Platform filter group

{
  'A': 'S3A_*',
  'B': 'S3B_*',
}

Cloud coverage filter group

{
  '10': {
    label: '10%',
    pattern: '*_cc10_*',
  },
  '90': {
    label: '90%',
    pattern: '*_cc90_*',
  },
}

DatasetFilter

Type: Pattern or object

Specifies the pattern to apply when it's active and optionally how it should be presented to the user in the interface.

The Pattern version will be transformed into the object version with only the pattern field set to its value.

Field Type Default Description
label string Optional If given, will be used as the filter's label, instead of its name, when presented to the user in the interface.
aliases string[] Optional If given, will be used as a list of alternative/old names when loading a saved Syntool state.
description string Optional If given, will be used as description of the filter to be shown to the user in the interface.
pattern Pattern Required The pattern to be applied when this filter is active.

Note: The label field should only be used when the restrictions on the name are too stringent as to hinder its clarity it the user. Like for a cloud coverage filter of 10%, as the % is not allowed in the name the label field can be used.

Note: The aliases field should be used when the name of a filter changes or when a filter is replaced with other ones, to maintain backwards compatibility with older saved states (like bookmarked URLs), the old name can be added to the aliases list of the new filter(s).

See DatasetFilterGroup for examples.

Pattern

Type: string

A string that can be used for case-insensitive pattern matching against any string (usually the ID of datasets).

Syntax

<Pattern> ::= <operand>
<operand> ::= <operand> "|" <operand> ; precedence: 0
            | <operand> "&" <operand> ; precedence: 1
            | "!" <operand>           ; precedence: 2
            | "(" <operand> ")"       ; precedence: 3
            | <atom>                  ; precedence: 4
<atom> ::= ""
         | <atom-char>
         | <atom-char> <atom-char>
<atom-char> ::= <regular-char> | <escaped-char> | "*" | "?"
<regular-char> ::= <char> except <special-char>
<escaped-char> ::= "\" <char>
<char> ::= any character except <illegal-char>
<illegal-char> ::= "," ; comma
<special-char> ::= "(" ; open group
                 | ")" ; close group
                 | "|" ; or operator
                 | "&" ; and operator
                 | "!" ; negation operator
                 | "\" ; escape character
                 | "*" ; matches any number of characters, even zero characters
                 | "?" ; matches exactly one character

Additionally:

Examples