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.
Type: string
Possible values:
-
'ALWAYS_SHOWN'
: Dataset outlines will always be shown. -
'HIDDEN_IN_ZOOM_RANGE'
: Dataset outlines will be shown only when the product is out of its zoom range. -
'ALWAYS_HIDDEN'
: Dataset outlines will never be shown.
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',
},
},
}
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',
},
}
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',
}
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',
}
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.
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),
};
},
};
},
};
}
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),
};
}
};
}
}
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',
},
},
}
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),
};
}
};
}
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,
},
},
}
Type: GranuleInfoMetadataFieldsConfig or GranuleInfoMetadataConfigFn
Specifies which metadata fields should be available to the user in the interface, and how they should be presented.
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',
}
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,
};
}
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.
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',
},
}
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,
};
}
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.
Type: string
Possible values:
-
'link'
Example
{ type: 'link', label: 'Get Data', }
-
'image'
Examples
{ type: 'image', label: 'Profile', }
{ type: 'image', label: 'Profile', inline: true, order: 2, }
{ type: 'image', label: 'Profile', inline: 'https://example.com/image.png', order: 2, }
-
'spectrum'
Example
{ type: 'spectrum', label: 'Spectrum', }
Note: Any other type will be ignored and the resource will will not be available to the user.
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-*',
},
}
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_*',
},
}
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 thelabel
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.
Type: string
A string that can be used for case-insensitive pattern matching against any string (usually the ID of datasets).
<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:
- leading and trailing whitespace in atoms is ignored, and
- trailing closing parentheses (
)
) are optional.
Examples
-
s1a-*
matches any string that starts with "s1a-" -
s1?-*
matches any string that starts with "s1" followed by one character followed by "-" -
*-s1-*|*-s2-*
matches any string that contains "-s1-" or "-s2-"