openapi: 3.1.0
info:
title: API Reference
version: 1.0.0
contact:
name: Sentinel Hub
servers:
- url: https://services.sentinel-hub.com
tags:
- name: batch_statistical
x-displayName: Statistical
paths:
/statistics/batch/v1:
post:
operationId: createNewBatchStatisticsRequest
summary: Submit a new statistical batch request
tags:
- batch_statistical
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BatchStatisticalRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/MultiPartBatchRequest'
responses:
'201':
description: Request submitted
content:
application/json:
schema:
$ref: '#/components/schemas/BatchStatisticsTaskDto'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
security:
- OAuth2: []
get:
operationId: searchBatchStatisticsRequests
summary: Query statistical batch requests
tags:
- batch_statistical
parameters:
- $ref: '#/components/parameters/SearchBeanCount'
- $ref: '#/components/parameters/SearchBeanViewtoken'
- name: sort
description: |
Sort the statistical batch requests by given field.
Omit for default ordering.
in: query
schema:
type: string
enum:
- created
- created:desc
- status
- status:desc
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/BatchStatisticsTaskDto'
links:
$ref: '#/components/schemas/View'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
security:
- OAuth2: []
/statistics/batch/v1/{requestId}:
get:
summary: Retrieve a single batch statistical request
operationId: getSingleBatchStatisticalRequestById
tags:
- batch_statistical
parameters:
- $ref: '#/components/parameters/BatchRequestId'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/BatchStatisticsTaskDto'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
security:
- OAuth2: []
/statistics/batch/v1/{requestId}/status:
get:
summary: Retrieve the status of a batch statistical request.
operationId: batchStatisticalGetStatus
tags:
- batch_statistical
parameters:
- $ref: '#/components/parameters/BatchRequestId'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/BatchStatisticsTaskStatusDto'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
security:
- OAuth2: []
/statistics/batch/v1/{requestId}/analyse:
post:
summary: Request analysis of a batch statistical request
operationId: batchStatisticalAnalyse
tags:
- batch_statistical
parameters:
- $ref: '#/components/parameters/BatchRequestId'
responses:
'204':
description: Success
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
security:
- OAuth2: []
/statistics/batch/v1/{requestId}/start:
post:
summary: Start (confirm) processing of a batch statistical request
operationId: batchStartStatisticalRequest
tags:
- batch_statistical
parameters:
- $ref: '#/components/parameters/BatchRequestId'
responses:
'204':
description: Success
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
security:
- OAuth2: []
/statistics/batch/v1/{requestId}/stop:
post:
summary: Stop a batch statistical request
operationId: batchStopStatisticalRequest
tags:
- batch_statistical
parameters:
- $ref: '#/components/parameters/BatchRequestId'
responses:
'204':
description: Success
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
security:
- OAuth2: []
components:
securitySchemes:
OAuth2:
type: oauth2
description: |
### Authentication
More about the authentication here.
To get an access token using curl:
```
curl --request POST \
--url https://services.sentinel-hub.com/auth/realms/main/protocol/openid-connect/token \
--header "content-type: application/x-www-form-urlencoded" \
--data "grant_type=client_credentials&client_id=&client_secret="
```
flows:
clientCredentials:
tokenUrl: https://services.sentinel-hub.com/auth/realms/main/protocol/openid-connect/token
scopes:
SH: Sentinel Hub
parameters:
SearchBeanSearch:
name: search
description: Optional search query. Either a single word to search for or multiple words separated by the `|` (or) and `&` (and) operators. If omitted, all items are returned.
in: query
schema:
type: string
SearchBeanCount:
name: count
description: |-
Upper limit to the number of items to retrieve. It cannot be larger than the endpoint-specific limit. If omitted, the endpoint-specific limit is used.
For more records, use *viewtoken* to page through.
in: query
schema:
type: integer
format: int32
SearchBeanViewtoken:
name: viewtoken
description: |
When the total number of items is larger than *count*, the response contains *viewtoken*.
This *viewtoken* can be used in the next request to retrieve the next page of items.
The next page can be retrieved by repeating the query. However, replace your URL with the
next URL in the returned links object.
in: query
schema:
type: string
SearchBeanSort:
name: sort
description: sort
in: query
schema:
type: string
ByocCollectionId:
name: collectionId
in: path
required: true
schema:
type: string
format: uuid
BatchRequestId:
name: requestId
description: Request ID
in: path
required: true
schema:
type: string
format: uuid
responses:
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/RestErrorWrapper'
'401':
description: Unauthorized
'403':
description: Insufficient permissions
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/RestErrorWrapper'
'409':
description: Conflict in the request
content:
application/json:
schema:
$ref: '#/components/schemas/RestErrorWrapper'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/RestErrorWrapper'
schemas:
Boom:
type: object
properties:
status:
description: HTTP status code
type: integer
format: int32
reason:
description: Reason for the error
type: string
message:
description: Friendly error message
type: string
code:
description: Code that uniquely identifies the error
type: string
enum:
- COMMON_BAD_PAYLOAD
- COMMON_NOT_FOUND
- COMMON_DATABASE_ERROR
- COMMON_UNIQUE_KEY_VIOLATION
- COMMON_INSUFFICIENT_PERMISSIONS
- COMMON_SENTINEL_ACCOUNT_EXPIRED
- COMMON_METHOD_NOT_ALLOWED
- COMMON_UNSUPPORTED_MEDIA_TYPE
- COMMON_ELASTICSEARCH_ERROR
- COMMON_UNAUTHORIZED
- COMMON_EXCEPTION
- RATE_LIMIT_STORAGE_TIMEOUT
- RATE_LIMIT_OVERLAPPING_POLICIES
- RATE_LIMIT_EXCEEDED
- RATE_LIMIT_TOKEN_COUNT_EXCEEDS_CAPACITY
- DASHBOARD_PAYPAL_SALE_ERROR
- DASHBOARD_PAYPAL_SUBSCRIPTION_ERROR
- DASHBOARD_INVALID_PAYPAL_RESPONSE
- DASHBOARD_EXECUTE_SALE_ERROR
- DASHBOARD_EXECUTE_AGREEMENT_ERROR
- DASHBOARD_IPN_ERROR
- DASHBOARD_ADYEN_SALE_ERROR
- DASHBOARD_ADYEN_PAYMENT_CANCELLED
- RENDERER_EXCEPTION
- OAUTH_ERROR
- EMAIL_OCTOPUS_ERROR
errors:
description: Additional information about the error (Optional)
type: object
RestErrorWrapper:
type: object
properties:
error:
$ref: '#/components/schemas/Boom'
DatasetType:
type: string
enum:
- sentinel-2-l1c
- sentinel-2-l2a
- landsat-8-l1c
- landsat-ot-l1
- landsat-ot-l2
- landsat-tm-l1
- landsat-tm-l2
- dem
- modis
- sentinel-1-grd
- s2gm
- sentinel-3-olci
- sentinel-3-slstr
- sentinel-5p-l2
- custom
Interpolator:
type: string
enum:
- BILINEAR
- BICUBIC
- LANCZOS
- BOX
- NEAREST
BaseDataset:
type: object
properties:
type:
description: Datasource abbreviation
type: string
id:
description: Identifier
type: string
S2L1CDataset:
title: sentinel-2-l1c
type: object
allOf:
- $ref: '#/components/schemas/BaseDataset'
- type: object
properties:
dataFilter:
$ref: '#/components/schemas/S2L1CFiltering'
processing:
$ref: '#/components/schemas/S2Processing'
type:
type: string
enum:
- sentinel-2-l1c
S2L2ADataset:
title: sentinel-2-l2a
type: object
allOf:
- $ref: '#/components/schemas/BaseDataset'
- type: object
properties:
dataFilter:
$ref: '#/components/schemas/S2L2AFiltering'
processing:
$ref: '#/components/schemas/S2Processing'
type:
type: string
enum:
- sentinel-2-l2a
LandsatDataset:
type: object
allOf:
- $ref: '#/components/schemas/BaseDataset'
- type: object
properties:
dataFilter:
$ref: '#/components/schemas/LandsatFiltering'
processing:
$ref: '#/components/schemas/BaseDatasetProcessing'
Ls8Dataset:
title: landsat-8-l1c
type: object
allOf:
- $ref: '#/components/schemas/LandsatDataset'
- type: object
properties:
type:
type: string
enum:
- landsat-8-l1c
dataFilter:
allOf:
- $ref: '#/components/schemas/LandsatFiltering'
- $ref: '#/components/schemas/LandsatTierFilteringWithRt'
L8L1Dataset:
title: landsat-ot-l1
type: object
allOf:
- $ref: '#/components/schemas/LandsatDataset'
- type: object
properties:
type:
type: string
enum:
- landsat-ot-l1
dataFilter:
allOf:
- $ref: '#/components/schemas/LandsatFiltering'
- $ref: '#/components/schemas/LandsatTierFilteringWithRt'
L8L2Dataset:
title: landsat-ot-l2
type: object
allOf:
- $ref: '#/components/schemas/LandsatDataset'
- type: object
properties:
type:
type: string
enum:
- landsat-ot-l2
dataFilter:
allOf:
- $ref: '#/components/schemas/LandsatFiltering'
- $ref: '#/components/schemas/LandsatTierFilteringWithoutRt'
LTML1Dataset:
title: landsat-tm-l1
type: object
allOf:
- $ref: '#/components/schemas/LandsatDataset'
- type: object
properties:
type:
type: string
enum:
- landsat-tm-l1
dataFilter:
allOf:
- $ref: '#/components/schemas/LandsatFiltering'
- $ref: '#/components/schemas/LandsatTierFilteringWithoutRt'
LTML2Dataset:
title: landsat-tm-l2
type: object
allOf:
- $ref: '#/components/schemas/LandsatDataset'
- type: object
properties:
type:
type: string
enum:
- landsat-tm-l2
dataFilter:
allOf:
- $ref: '#/components/schemas/LandsatFiltering'
- $ref: '#/components/schemas/LandsatTierFilteringWithoutRt'
LETML1Dataset:
title: landsat-etm-l1
type: object
allOf:
- $ref: '#/components/schemas/LandsatDataset'
- type: object
properties:
type:
type: string
enum:
- landsat-etm-l1
dataFilter:
allOf:
- $ref: '#/components/schemas/LandsatFiltering'
- $ref: '#/components/schemas/LandsatTierFilteringWithRt'
LETML2Dataset:
title: landsat-etm-l2
type: object
allOf:
- $ref: '#/components/schemas/LandsatDataset'
- type: object
properties:
type:
type: string
enum:
- landsat-etm-l2
dataFilter:
allOf:
- $ref: '#/components/schemas/LandsatFiltering'
- $ref: '#/components/schemas/LandsatTierFilteringWithoutRt'
LMSSL1Dataset:
title: landsat-mss-l1
type: object
allOf:
- $ref: '#/components/schemas/LandsatDataset'
- type: object
properties:
type:
type: string
enum:
- landsat-mss-l1
dataFilter:
allOf:
- $ref: '#/components/schemas/LandsatFiltering'
- $ref: '#/components/schemas/LandsatTierFilteringWithoutRt'
ModisDataset:
title: modis
type: object
allOf:
- $ref: '#/components/schemas/BaseDataset'
- type: object
properties:
dataFilter:
$ref: '#/components/schemas/ModisFiltering'
processing:
$ref: '#/components/schemas/BaseDatasetProcessing'
type:
type: string
enum:
- modis
DEMDataset:
title: dem
type: object
allOf:
- $ref: '#/components/schemas/BaseDataset'
- type: object
properties:
dataFilter:
$ref: '#/components/schemas/DEMFiltering'
processing:
$ref: '#/components/schemas/DEMProcessing'
type:
type: string
enum:
- dem
S1Dataset:
title: sentinel-1-grd
type: object
allOf:
- $ref: '#/components/schemas/BaseDataset'
- type: object
properties:
dataFilter:
$ref: '#/components/schemas/S1Filtering'
processing:
$ref: '#/components/schemas/S1Processing'
type:
type: string
enum:
- sentinel-1-grd
HLSDataset:
title: hls
type: object
allOf:
- $ref: '#/components/schemas/BaseDataset'
- type: object
properties:
type:
type: string
enum:
- hls
dataFilter:
$ref: '#/components/schemas/HLSFiltering'
processing:
$ref: '#/components/schemas/BaseDatasetProcessing'
BYOCDataset:
title: BYOC / BATCH / ZARR
type: object
allOf:
- type: object
properties:
dataFilter:
$ref: '#/components/schemas/BYOCFiltering'
processing:
$ref: '#/components/schemas/BaseDatasetProcessing'
type:
type: string
description: |
For a BYOC collection, set to "byoc-\", for example "byoc-017aa0ae-33a6-45d3-8548-0f7d1041b40c".
For a BATCH collection, set to "batch-\", for example "batch-9688cd56-6c70-4221-add8-a5821d0256a9".
For a ZARR collection, set to "zarr-\", for example "zarr-e2c7baec-3dfa-4523-b125-e242bdb5dd7c".
- $ref: '#/components/schemas/BaseDataset'
DateTimeInterval:
type: object
properties:
from:
type: string
description: ISO-8601 time representing start of search interval, e.g. 2019-01-31T14:00:00+01:00
format: date-time
to:
type: string
description: ISO-8601 time representing end of search interval, e.g. 2019-02-05T15:00:00+01:00.
format: date-time
Geometry:
description: The request area of interest geometry. This and/or BBOX must be specified. Coordinates need to be in easting,northing or longitude,latitude, in that order in the CRS defined in the "bounds.properties.crs" parameter. A GeoJsonObject.
type: object
oneOf:
- $ref: '#/components/schemas/Polygon'
- $ref: '#/components/schemas/MultiPolygon'
example:
type: Polygon
coordinates:
- - - 14.000701904296873
- 46.23685258143992
- - 13.822174072265625
- 46.09037664604301
- - 14.113311767578125
- 45.85080395917834
- - 14.55963134765625
- 46.038922598236
- - 14.441528320312498
- 46.28717293114449
- - 14.17236328125
- 46.29191774991382
- - 14.000701904296873
- 46.23685258143992
Polygon:
type: object
properties:
type:
type: string
enum:
- Polygon
coordinates:
type: array
items:
type: array
items:
maxItems: 2
minItems: 2
type: array
items:
type: number
format: double
MultiPolygon:
type: object
properties:
type:
type: string
enum:
- MultiPolygon
coordinates:
type: array
items:
type: array
items:
type: array
items:
maxItems: 2
minItems: 2
type: array
items:
type: number
format: double
View:
description: Links to paginate the resource
type: object
properties:
currentToken:
type: string
nextToken:
type: string
previousToken:
type: string
'@id':
type: string
format: uri
next:
type: string
format: uri
previous:
type: string
format: uri
ResourceReference:
type: object
properties:
'@id':
description: Resource URL reference
type: string
ObjectStorageInfo:
type: object
required:
- s3
properties:
s3:
$ref: '#/components/schemas/S3BucketInfo'
S3BucketInfo:
type: object
required:
- url
properties:
url:
type: string
description: A URL pointing to an S3 bucket or an object in an S3 bucket. It can contain prefixes, e.g. `s3://my-personal-bucket/some-folder` or `s3://my-personal-bucket/some-folder/some-file.gpkg`.
iamRoleARN:
type: string
description: IAM role ARN, which allows programmatic access to the S3 bucket specified in the `url` field using the recommended assume IAM role flow.
accessKey:
type: string
description: AWS access key, which allows programmatic access to the S3 bucket specified in the `url` field.
secretAccessKey:
type: string
description: AWS secret access key which must correspond to the AWS access key.
region:
type: string
description: The region where the S3 bucket is located. If omitted, the region of the deployment that the request is submitted to is assumed.
GSBucketInfo:
title: GSBucketInfo
type: object
required:
- url
- credentials
properties:
url:
type: string
description: A URL pointing to a Google Cloud Storage bucket or an object in a GCS bucket, e.g. `gs://my-bucket/some-folder` or `gs://my-bucket/some-folder/some-file.gpkg`.
credentials:
type: string
description: Base64-encoded service account credentials in JSON format.
ObjectStorageInfoV2:
type: object
oneOf:
- title: S3BucketInfo
required:
- s3
properties:
s3:
$ref: '#/components/schemas/S3BucketInfo'
- title: GSBucketInfo
x-cdse-exclude: true
required:
- gs
properties:
gs:
$ref: '#/components/schemas/GSBucketInfo'
BYOCFormat:
type: object
required:
- bitDepth
- sampleFormat
properties:
source:
description: The string that must appear in `(BAND)` placeholder. If unset, defaults to the band name.
type: string
bandIndex:
description: The index of band in 1-based numbering.
type: integer
format: int32
default: 1
bitDepth:
type: integer
format: int32
enum:
- 8
- 16
- 32
sampleFormat:
type: string
enum:
- UINT
- INT
- FLOAT
noData:
type: number
description: You can define noData either per band or per collection, but not both.
aliases:
description: |
An optional list of alias names that can be used instead of the band name in the evalscript.
Only used in certain specific collections and not settable by the user.
type: array
items:
type: string
readOnly: true
BYOCCollectionAdditionalData:
type: object
properties:
bands:
type: object
description: Limited to 100 bands.
additionalProperties:
x-additionalPropertiesName: band
$ref: '#/components/schemas/BYOCFormat'
maxMetersPerPixel:
type: number
readOnly: true
description: |
How much meters per pixel can you request with Process/OGC/Batch requests for this collection. The limit is internally increased to 500, if it's less than that.
extent:
description: The collection extent in WGS84.
$ref: '#/components/schemas/Polygon'
readOnly: true
hasSensingTimes:
type: string
enum:
- 'YES'
- PARTIALLY
- 'NO'
description: Information if tiles have sensing time.
readOnly: true
fromSensingTime:
type: string
format: date-time
description: The sensing time in ISO 8601 of the least recent tile.
readOnly: true
toSensingTime:
type: string
format: date-time
description: The sensing time in ISO 8601 of the most recent tile.
readOnly: true
BatchProcessRequest:
required:
- processRequest
type: object
properties:
id:
description: Identifier
type: string
format: uuid
readOnly: true
accountId:
description: Account that submitted the request
type: string
format: uuid
readOnly: true
created:
description: Creation time of the request in ISO 8601
type: string
format: date-time
readOnly: true
processRequest:
$ref: '#/components/schemas/ProcessRequestForBatch'
tilingGridId:
description: This parameter was moved to tilingGrid
type: integer
format: int64
deprecated: true
tilingGrid:
$ref: '#/components/schemas/TilingGridSettings'
resolution:
description: This parameter was moved to tilingGrid.
type: number
format: double
deprecated: true
output:
$ref: '#/components/schemas/BatchProcessOutput'
bucketName:
description: |
Simplified alternative for specifying where the results shall be written, where only the bucket name is specified. Specifying `some-bucket` as `bucketName` is equivalent to specifying `s3://some-bucket` as the `defaultTilePath` in `output`.
type: string
zarrOutput:
$ref: '#/components/schemas/BatchZarrParameters'
description:
description: Optional description that can be used to keep track of requests
type: string
valueEstimate:
description: |
Estimated processing value (cost) of the request in [processing units](https://docs.planet.com/platform/processing-units/). The accuracy of the estimate depends on your request, as described in the [documentation](https://docs.sentinel-hub.com/api/latest/api/batch/#cost-estimate).
type: number
format: double
readOnly: true
tileCount:
description: Number of output tiles
type: integer
format: int32
readOnly: true
tileWidthPx:
description: Tile width in pixels
type: integer
format: int32
readOnly: true
tileHeightPx:
description: Tile height in pixels
type: integer
format: int32
readOnly: true
userAction:
description: Last user action on the request
type: string
enum:
- NONE
- ANALYSE
- START
- CANCEL
readOnly: true
userActionUpdated:
description: Time of last user action update in ISO 8601
type: string
format: date-time
readOnly: true
status:
description: Current processing status of the request
type: string
enum:
- CREATED
- ANALYSING
- ANALYSIS_DONE
- PROCESSING
- DONE
- PARTIAL
- FAILED
- CANCELED
readOnly: true
error:
description: Error description for requests that were submitted but failed during analysis or processing
type: string
readOnly: true
MultiPartBatchRequest:
type: object
properties:
request:
$ref: '#/components/schemas/BatchProcessRequest'
evalscript:
description: Block of JavaScript code.
type: string
ProcessRequestOutputBatchResponse:
type: object
required:
- format
properties:
identifier:
type: string
description: |
Response's identifier is used to connect the results of an evalscript with the output file.
Each response identifier value must either match one of the values in `setup()` -> `output.id` in the evalscript (see example)
or be `userdata` (see example).
enum:
-
- userdata
format:
description: |
Format object
type: object
oneOf:
- $ref: '#/components/schemas/ProcessRequestOutputFormatTiff'
- $ref: '#/components/schemas/ProcessRequestOutputFormatJson'
- $ref: '#/components/schemas/ProcessRequestOutputFormatZarr'
TilingGridSettings:
required:
- id
- resolution
description: |
Tiling grid settings.
type: object
properties:
id:
description: Id of one of the supported tiling grids
type: integer
format: int64
resolution:
description: Output resolution in units of the tiling grid
type: number
format: double
bufferX:
description: |
Will expand each output tile horizontally (on the left and the right) by number of pixels specified by this value.
Example:
If bufferX is 5, the output tile will be wider by 10 pixels. Coordinates of the tile are also moved accordingly by the number of pixels multiplied by resolution in each direction. However, the `tileWidthX` property returned by the API will **not** include the buffer.
type: integer
format: int16
bufferY:
description: |
Will expand each output tile vertically (on the top and the bottom) by number of pixels specified by this value. See `bufferX` above for an example.
type: integer
format: int16
BatchProcessOutput:
description: |
Specifies the tile output paths where the results shall be written. Required unless `bucketName` or `zarrOutput` is specified.
type: object
properties:
defaultTilePath:
description: |
Path or path template specifying where batch processing results shall be stored. Supported formats:
- a valid Amazon S3 URL, e.g. `s3://some-bucket/some/folder`.
A subdirectory will be created for this batch request, named after the request ID, and will contain further subdirectories with the output tiles.
This is equivalent to the template `s3://some-bucket/some/folder///.`.
- a templated Amazon S3 URL, e.g. `s3://some-bucket/some/folder/.tif`.
Templating allows custom organization of the output files.
Templates can contain the following placeholders, which are replaced by respective actual values when writing results:
- `` - the ID of your batch request,
- `` - the name (string ID) of the tile within the used tiling grid,
- `` - the numerical ID of the tile within the used tiling grid,
- `` - the output (raster) identifier (e.g. `default`),
- `` - the filename extension of the output's format (e.g. `tiff`).
The template must contain `` or `` in order to ensure unique output files.
In case of multiple outputs, the template must also contain ``.
The request will fail if files already exist.
type: string
overwrite:
description: |
If `true`, the request will **never** fail if files already exist. Instead, any existing files will be overwritten, except if `skipExisting` is `true` and **all** outputs for a tile exist.
*Note:* checking for existing files can only be done if the task is estimated to output fewer than 5000 files, e.g. a task that produces 5 outputs per tile and is estimated to span over 1000 grid tiles is too big to check. Such big tasks must either:
- ensure that the output path is unique to the task by including `` in `defaultTilePath` and all `tilePath`s,
- ensure that the output path is unique by using a simple, non-templated `defaultTilePath`, or
- suppress overwrite checks by setting `overwrite` to `true` and `skipExisting` to `false`.
default: false
type: boolean
skipExisting:
description: |
If `true`, any tiles for which **all** outputs already exist will be skipped. Tiles for which only **some** of the outputs exist will either be *fully overwritten* (if `overwrite` is `true`) or will cause the whole request to fail.
default: false
type: boolean
cogOutput:
description: If `true`, the results will be written as COG (cloud optimized GeoTIFFs). All outputs must use the TIFF format and **cannot** use `sampleType` INT8. We also suggest setting the evalscript output object `nodataValue` (more details) for correct overview generation.
default: false
type: boolean
cogParameters:
$ref: '#/components/schemas/BatchCogParameters'
createCollection:
description: |
If `true`, the results will be written as COG (cloud optimized GeoTIFFs) and a collection will be automatically created. All outputs must be single-band and use the TIFF format. Only one of *createCollection* and *collectinId* may be specified. Requires `"cogOutput"=true`.
type: boolean
default: false
collectionId:
description: |
If provided, the results will be written as COG (cloud optimized GeoTIFFs) and added to the existing collection with the specified identifier. All outputs must be single-band and use the TIFF format. The collection must exist and be compatible -- that is, must contain bands equivalent to the batch request's outputs with the same bit depths. Only one of *createCollection* and *collectinId* may be specified. Requires `"cogOutput"=true`.
type:
- string
- 'null'
default: null
BatchCogParameters:
description: |
Allows to specify COG creation parameters.
When the output is a batch collection (that is, either *createCollection* is true or *collectionId* is provided),
COG customization is limited: only the *resamplingAlgorithm* parameter can be specified in *cogParameters*,
all others must **not** be provided.
type: object
properties:
overviewLevels:
description: Corresponds to the *levels* parameter of [gdaladdo](https://gdal.org/programs/gdaladdo.html).
type: array
items:
type: integer
overviewMinSize:
description: |
Corresponds to the *minsize* parameter of [gdaladdo](https://gdal.org/programs/gdaladdo.html).
Default value minimum of blockxsize and blockysize
type: integer
resamplingAlgorithm:
type: string
enum:
- nearest
- average
- gauss
- cubic
- cubicspline
- lanczos
- average_magphase
- mode
description: Corresponds to the value of the *-r* parameter of [gdaladdo](https://gdal.org/programs/gdaladdo.html).
default: average
blockxsize:
description: Corresponds to the *BLOCKXSIZE* parameter of [GDAL GTiff raster driver](https://gdal.org/drivers/raster/gtiff.html).
type: integer
default: 1024
blockysize:
description: Corresponds to the *BLOCKYSIZE* parameter of [GDAL GTiff raster driver](https://gdal.org/drivers/raster/gtiff.html).
type: integer
default: 1024
usePredictor:
description: |
Whether predictor should be used for TIFF compression. If true, the predictor "2" will be passed to [GDAL GTiff raster driver](https://gdal.org/drivers/raster/gtiff.html) in case of integer output and "3" for FLOAT32 output. If false, the value "1" (no predictor) will be used.
type: boolean
default: true
BatchZarrParameters:
description: |
Specifies Zarr creation parameters.
If this parameter is specified, all outputs in processRequest **must** be of the type zarr/array
and neither `bucketName` nor `output` can be specified.
With Zarr output **only** WGS84 and LAEA grids **are supported**.
type: object
required:
- path
- group
properties:
path:
description: |
Path or path template specifying where batch processing results shall be stored. Supported formats:
- a valid Amazon S3 URL, e.g. `s3://some-bucket/some/folder`.
The output Zarr will be stored to this folder (prefix).
The request will fail if any files already exist in the folder.
- a templated Amazon S3 URL, e.g. `s3://some-bucket/some/folder/`.
The placeholder `` will be replaced by the ID of your batch request
and the output Zarr will be stored there.
The specified path must not contain any subfolders or Zarr files such as .zattrs, .zgroup, .zmetadata.
type: string
group:
$ref: '#/components/schemas/Group'
arrayParameters:
description: |
Parameters that will be used for all output arrays, except where overridden with `arrayOverrides`. Required unless `arrayOverrides` includes all required fields for all output arrays. All fields are standard Zarr fields. Further information can be found on the link below.
externalDocs:
description: Zarr metadata specification version 2, Attributes
url: https://zarr-specs.readthedocs.io/en/latest/v2/v2.0.html#metadata
allOf:
- $ref: '#/components/schemas/ArrayParameters'
arrayOverrides:
$ref: '#/components/schemas/ArrayOverrides'
Group:
required:
- zarr_format
description: Zarr group level parameters
properties:
zarr_format:
description: Zarr format version. Currently only version 2 is supported.
example: 2
type: integer
coordinates:
description: Allows customization of certain output coordinate system parameters
properties:
origin:
type: string
description: |
Defines the origin of the output raster/sign of resolution:
* `topLeft` (default): negative resolution along the Zarr y-axis, same as for TIFF output
* `bottomLeft`: positive resolution along the Zarr y-axis
The resolution along the Zarr x-axis is always positive.
default: topLeft
enum:
- topLeft
- bottomLeft
customAttributes:
description: |
User-defined metadata to store into the group's `.zattrs` file.
For example, to include a copyright notice in the ouptut Zarr, you could set this field to
`{"copyright": "My Company Ltd, 2023"}`.
**Note**: multiple fields are added to the group attributes by default, such as "date_modified"
and the geospatial extent. Listing any such field in `customAttributes` will override its default value.
type: object
ArrayParameters:
required:
- dtype
- chunks
- order
- fill_value
properties:
dtype:
description: |
Data type/encoding. Allowed values depend on the `sampleType` defined in `evalscript`:
* `|u1`: 8-bit unsigned integer, recommended for `sampleType` UINT8 and AUTO,
* `|i1`: 8-bit signed integer, recommended for `sampleType` INT8,
* `u2`: 16-bit unsigned integer (little and big endian, respectively), recommended for `sampleType` UINT16, allowed for UINT8 and AUTO,
* `i2`: 16-bit signed integer (little and big endian, respectively), recommended for `sampleType` INT16, allowed for UINT8, INT8 and AUTO,
* `f4`, `f8`: float (little/big endian single precision, little/big endian double precision, respectively),
recommended for `sampleType` FLOAT32, allowed for any `sampleType`.
*Recommended* values encode the chosen `sampleType` losslessly, while other allowed values encode the same values in a wider data type but do not add any more precision.
example: Process request.
required:
- evalscript
- input
properties:
input:
$ref: '#/components/schemas/ProcessRequestInput'
output:
$ref: '#/components/schemas/ProcessRequestOutputForBatch'
evalscript:
description: |
Your evalscript. For details, click
here.
type: string
ProcessRequestOutputForBatch:
type: object
properties:
responses:
type: array
description: Response object.
items:
$ref: '#/components/schemas/ProcessRequestOutputBatchResponse'
ProcessRequestInput:
title: Input
type: object
required:
- bounds
- data
properties:
bounds:
$ref: '#/components/schemas/ProcessRequestInputBounds'
data:
$ref: '#/components/schemas/ProcessRequestInputData'
ProcessRequestInputData:
description: |
The collections you wish to request, along with certain processing and filtering parameters.
To learn how to request and work with multiple collection, check the "Data Fusion" page in our documentation https://docs.sentinel-hub.com/api/latest/data/data-fusion/.
type: array
minItems: 1
items:
oneOf:
- $ref: '#/components/schemas/S2L1CDataset'
- $ref: '#/components/schemas/S2L2ADataset'
- $ref: '#/components/schemas/Ls8Dataset'
- $ref: '#/components/schemas/L8L1Dataset'
- $ref: '#/components/schemas/L8L2Dataset'
- $ref: '#/components/schemas/LETML1Dataset'
- $ref: '#/components/schemas/LETML2Dataset'
- $ref: '#/components/schemas/LTML1Dataset'
- $ref: '#/components/schemas/LTML2Dataset'
- $ref: '#/components/schemas/LMSSL1Dataset'
- $ref: '#/components/schemas/ModisDataset'
- $ref: '#/components/schemas/DEMDataset'
- $ref: '#/components/schemas/S1Dataset'
- $ref: '#/components/schemas/HLSDataset'
- $ref: '#/components/schemas/BYOCDataset'
ProcessRequestInputBounds:
title: Bounds
description: |
Defines the request bounds by specifying the bounding box and/or
geometry for the request. If both are specified it will generate an image
for the bounding box and render data contained within the geometry.
type: object
properties:
bbox:
description: |
The request bounding box. This and/or GEOMETRY must be specified.
Specify with a coordinate pair on two (opposite) vertices of the bounding
box rectangle. Coordinates need to be in easting,northing or longitude, latitude,
in that order in the CRS defined in the "bounds.properties.crs" parameter.
type: array
minItems: 4
maxItems: 4
items:
type: number
format: double
example:
- 13.822174072265625
- 45.85080395917834
- 14.55963134765625
- 46.29191774991382
geometry:
$ref: '#/components/schemas/Geometry'
properties:
$ref: '#/components/schemas/ProcessRequestInputBoundsProperties'
ProcessRequestInputBoundsProperties:
title: BoundsProperties
type: object
properties:
crs:
description: |
The coordinate reference system of the coordinates. Must be
one of the values listed at https://docs.planet.com/develop/apis/processing/#crs-support.
Default CRS is WGS84, http://www.opengis.net/def/crs/OGC/1.3/CRS84.
type: string
default: http://www.opengis.net/def/crs/OGC/1.3/CRS84
ProcessRequestOutput:
type: object
properties:
width:
description: |
The request image width. Must be an integer between 1 and 2500.
*Only one pair of parameters "width"/"height" or "resx"/"resy" must
be set at the same time.*
type: integer
format: int32
minimum: 1
maximum: 2500
default: 256
example: 512
height:
description: |
The request image height. Must be an integer between 1 and 2500.
*Only one pair of parameters "width"/"height" or "resx"/"resy" must
be set at the same time.*
type: integer
format: int32
minimum: 1
maximum: 2500
default: 256
example: 512
resx:
description: |
Spatial resolution of the request image in a horizontal direction.
Its units are defined by the CRS given in "input.bounds.properties.crs"
parameter.
*Only one pair of parameters "width"/"height" or "resx"/"resy"
must be set at the same time.*
type: number
format: double
resy:
description: |
Spatial resolution of the request image in a vertical direction.
Its units are defined by the CRS given in "input.bounds.properties.crs"
parameter.
*Only one pair of parameters "width"/"height" or "resx"/"resy"
must be set at the same time.*
type: number
format: double
responses:
type: array
description: |
Response object(s).
If you request multiple responses, set the `Accept` header to
`application/tar`, `application/x-tar` or `multipart/mixed`.
items:
$ref: '#/components/schemas/ProcessRequestOutputResponse'
ProcessRequestOutputResponse:
type: object
properties:
identifier:
type: string
description: |
Response's identifier is used to connect the results of an evalscript with the output file.
Each response identifier value must either match one of the values in `setup()` -> `output.id` in the evalscript (see example)
or be `userdata` (see example).
enum:
-
- userdata
format:
description: Format object (default is `image/png`).
type: object
oneOf:
- $ref: '#/components/schemas/ProcessRequestOutputFormatPng'
- $ref: '#/components/schemas/ProcessRequestOutputFormatJpeg'
- $ref: '#/components/schemas/ProcessRequestOutputFormatTiff'
- $ref: '#/components/schemas/ProcessRequestOutputFormatJson'
ProcessRequestOutputFormat:
type: object
properties:
type:
type: string
description: Output format mime-type
ProcessRequestOutputFormatJpeg:
title: image/jpeg
type: object
allOf:
- $ref: '#/components/schemas/ProcessRequestOutputFormat'
- type: object
properties:
quality:
description: Quality level of JPEG compression.
type: integer
format: int32
minimum: 0
maximum: 100
default: 90
type:
type: string
enum:
- image/jpeg
ProcessRequestOutputFormatPng:
title: image/png
type: object
allOf:
- $ref: '#/components/schemas/ProcessRequestOutputFormat'
- type: object
properties:
type:
type: string
enum:
- image/png
ProcessRequestOutputFormatTiff:
title: image/tiff
type: object
allOf:
- $ref: '#/components/schemas/ProcessRequestOutputFormat'
- type: object
properties:
type:
type: string
enum:
- image/tiff
ProcessRequestOutputFormatJson:
title: application/json
type: object
allOf:
- $ref: '#/components/schemas/ProcessRequestOutputFormat'
- type: object
properties:
type:
type: string
enum:
- application/json
ProcessRequestOutputFormatZarr:
title: zarr/array
type: object
allOf:
- $ref: '#/components/schemas/ProcessRequestOutputFormat'
- type: object
properties:
type:
type: string
enum:
- zarr/array
BaseDatasetProcessing:
type: object
properties:
upsampling:
description: |
The interpolation used when the requested
resolution is higher than the source resolution.
type: string
enum:
- NEAREST
- BILINEAR
- BICUBIC
default: NEAREST
downsampling:
description: |
The interpolation used when the requested
resolution is lower than the source resolution.
type: string
enum:
- NEAREST
- BILINEAR
- BICUBIC
default: NEAREST
S2Processing:
type: object
allOf:
- $ref: '#/components/schemas/BaseDatasetProcessing'
- type: object
properties:
harmonizeValues:
description: |
Harmonizes data values to be comparable with old processing baselines. See here for details.
type: boolean
default: true
DEMProcessing:
type: object
allOf:
- $ref: '#/components/schemas/BaseDatasetProcessing'
- type: object
properties:
clampNegative:
type: boolean
default: false
description: Mapzen DEM specific option. It replaces negative orthometric heights with 0. Useful for removing ocean bathymetry, for example.
egm:
type: boolean
default: false
description: It replaces orthometric heights with ellipsoidal heights relative to the WGS84 ellipsoid.
S1Processing:
type: object
allOf:
- $ref: '#/components/schemas/BaseDatasetProcessing'
- type: object
properties:
speckleFilter:
type: object
oneOf:
- $ref: '#/components/schemas/S1ProcessingSpeckleFilterLEE'
- $ref: '#/components/schemas/S1ProcessingSpeckleFilterNONE'
discriminator:
propertyName: type
mapping:
LEE: '#/components/schemas/S1ProcessingSpeckleFilterLEE'
NONE: '#/components/schemas/S1ProcessingSpeckleFilterNONE'
backCoeff:
type: string
enum:
- BETA0
- SIGMA0_ELLIPSOID
- GAMMA0_ELLIPSOID
- GAMMA0_TERRAIN
default: GAMMA0_ELLIPSOID
orthorectify:
type: boolean
default: false
demInstance:
type: string
enum:
- MAPZEN
- COPERNICUS
- COPERNICUS_30
- COPERNICUS_90
default: MAPZEN
radiometricTerrainOversampling:
type: number
format: double
minimum: 1
maximum: 4
default: 2
S1ProcessingSpeckleFilterLEE:
type: object
description: The Lee speckle filter. Note that processing time rapidly increases as window size increases.
required:
- type
- windowSizeX
- windowSizeY
properties:
type:
type: string
windowSizeX:
type: integer
minimum: 1
maximum: 7
description: The window size in the X direction of the source data. Odd values recommended.
windowSizeY:
type: integer
minimum: 1
maximum: 7
description: The window size in the Y direction of the source data. Odd values recommended.
S1ProcessingSpeckleFilterNONE:
type: object
description: Does NO speckle filtering. Equivalent to not having speckleFilter defined.
required:
- type
properties:
type:
type: string
S3SlstrProcessing:
type: object
allOf:
- $ref: '#/components/schemas/BaseDatasetProcessing'
- type: object
properties:
view:
description: The satellite view.
type: string
enum:
- NADIR
- OBLIQUE
default: NADIR
S5PProcessing:
type: object
allOf:
- $ref: '#/components/schemas/BaseDatasetProcessing'
- type: object
properties:
minQa:
description: |
The minimum (inclusive) pixel quality to be displayed.
For NO2, default is 75.
type: integer
format: int32
minimum: 0
maximum: 100
default: 50
S2L2AFiltering:
type: object
properties:
timeRange:
$ref: '#/components/schemas/TimeRange'
mosaickingOrder:
description: The order in which tiles are overlapped from which the output result is mosaicked.
type: string
enum:
- mostRecent
- leastRecent
- leastCC
default: mostRecent
maxCloudCoverage:
allOf:
- $ref: '#/components/schemas/MaxCloudCoverage'
- default: 100
S2L1CFiltering:
allOf:
- $ref: '#/components/schemas/S2L2AFiltering'
- type: object
properties:
previewMode:
type: string
description: |
The preview mode as defined
here.
enum:
- DETAIL
- TILE_PREVIEW
- PREVIEW
- EXTENDED_PREVIEW
default: DETAIL
LandsatFiltering:
type: object
properties:
timeRange:
$ref: '#/components/schemas/TimeRange'
mosaickingOrder:
description: The order in which tiles are overlapped from which the output result is mosaicked.
type: string
enum:
- mostRecent
- leastRecent
- leastCC
default: mostRecent
maxCloudCoverage:
allOf:
- $ref: '#/components/schemas/MaxCloudCoverage'
- default: 100
LandsatTierFilteringWithRt:
type: object
properties:
tiers:
type: string
default: ALL_TIERS
enum:
- TIER_1
- TIER_1_AND_RT
- ALL_TIERS
LandsatTierFilteringWithoutRt:
type: object
properties:
tiers:
type: string
default: ALL_TIERS
enum:
- TIER_1
- ALL_TIERS
HLSFiltering:
type: object
properties:
timeRange:
$ref: '#/components/schemas/TimeRange'
mosaickingOrder:
description: The order in which tiles are overlapped from which the output result is mosaicked.
type: string
enum:
- mostRecent
- leastRecent
- leastCC
default: mostRecent
maxCloudCoverage:
allOf:
- $ref: '#/components/schemas/MaxCloudCoverage'
- default: 100
constellation:
type: string
description: |
The selected constellation. "SENTINEL" selects only Sentinel products, while "LANDSAT" selects only Landsat products.
By default, products of both constellations are selected.
enum:
- SENTINEL
- LANDSAT
ModisFiltering:
type: object
properties:
timeRange:
$ref: '#/components/schemas/TimeRange'
mosaickingOrder:
description: The order in which tiles are overlapped from which the output result is mosaicked.
type: string
enum:
- mostRecent
- leastRecent
default: mostRecent
S1Filtering:
type: object
properties:
timeRange:
$ref: '#/components/schemas/TimeRange'
mosaickingOrder:
description: The order in which tiles are overlapped from which the output result is mosaicked.
type: string
enum:
- mostRecent
- leastRecent
default: mostRecent
resolution:
type: string
enum:
- HIGH
- MEDIUM
- FULL
acquisitionMode:
type: string
enum:
- SM
- IW
- EW
- WV
- EN
- AN
- IM
polarization:
type: string
enum:
- SH
- SV
- DH
- DV
- HH
- HV
- VV
- VH
orbitDirection:
type: string
enum:
- ASCENDING
- DESCENDING
timeliness:
type: string
enum:
- NRT10m
- NRT1h
- NRT3h
- Fast24h
- Offline
- Reprocessing
- ArchNormal
BYOCFiltering:
type: object
properties:
timeRange:
$ref: '#/components/schemas/TimeRange'
mosaickingOrder:
description: The order in which tiles are overlapped from which the output result is mosaicked.
type: string
enum:
- mostRecent
- leastRecent
default: mostRecent
DEMFiltering:
type: object
properties:
demInstance:
description: Selects DEM instance.
type: string
enum:
- MAPZEN
- COPERNICUS_30
- COPERNICUS_90
default: MAPZEN
TimeRange:
type: object
description: A time interval to filter data by acquisition date. It is defined by a start and end date and time, e.g. 2019-01-31T14:00:00+01:00. A date representation without time (e.g. 2019-01-31) will not work. Both the start and end of a time interval are inclusive and can be equal.
properties:
from:
description: The start of a search interval.
type: string
format: date-time
to:
description: The end of a search interval.
type: string
format: date-time
example:
from: '2018-10-01T00:00:00.000Z'
to: '2018-11-01T00:00:00.000Z'
MaxCloudCoverage:
description: The maximum allowable cloud coverage in percent.
type: number
format: double
minimum: 0
maximum: 100
default: 100
StatisticalRequest:
required:
- input
- aggregation
type: object
properties:
input:
$ref: '#/components/schemas/ProcessRequestInput'
aggregation:
$ref: '#/components/schemas/StatisticalRequestAggregation'
calculations:
$ref: '#/components/schemas/StatisticalRequestCalculations'
MultiPartStatisticalRequest:
type: object
properties:
request:
$ref: '#/components/schemas/StatisticalRequest'
evalscript:
description: |
Block of JavaScript code that will replace the evalscript property of the statistics request.
type: string
Aggregation:
required:
- of
description: |
Specifies how given time range is split into time intervals.
type: object
properties:
of:
description: |
Duration in ISO 8601 duration format, check [here](https://docs.planet.com/develop/apis/statistical/#split-the-requested-timerange-into-multiple-time-intervals) for more details.
type: string
lastIntervalBehavior:
description: |
This parameter specifies the behavior of the last interval if the given time range isn't divisible by the provided aggregation interval.
* SKIP - skip the last interval (default behavior)
* SHORTEN - shortens the last interval so that it ends at the end of provided time range.
* EXTEND - extends the last interval over the end of the provided time range so that all intervals are of equal duration
type: string
enum:
- SKIP
- SHORTEN
- EXTEND
CalculationDefinition:
description: The name of the output (as key) for which a calculation of statistics and histogram are defined below. Each key must match with one of the `output.id` specified in a `setup()` function in an evalscript or be "default". If it is "default", the specified statistics and histogram will be calculated for all outputs for which calculation of statistics is not explicitly defined.
type: object
properties:
histograms:
description: |
Histogram definitions. They can be specified differently for each band in this output.
type: object
additionalProperties:
x-additionalPropertiesName: band name
$ref: '#/components/schemas/HistogramDefinition'
statistics:
description: |
Statistics definitions. It can be specified differently for each band in this output.
type: object
additionalProperties:
x-additionalPropertiesName: band name
$ref: '#/components/schemas/StatisticsDefinition'
HistogramDefinition:
description: |
The name of the band (as key) for which a histogram is defined below. Each key must match with one of the band names
`output.bands` specified in a `setup()` function in an evalscript (for this output) or be "default". If it is "default",
the histogram specified below will be returned for all bands of this output for which histogram is not explicitly defined.
Each band's histogram may be defined by providing one of the following properties:
* `binWidth`
* `nBins`
* exact bins provided by `bins` array
[This example](https://docs.planet.com/develop/apis/statistical/examples/#multiple-outputs-with-different-datamasks-multi-band-output-with-custom-bands-names-and-different-histogram-types)
shows how to specify histograms using different parameters.
Histograms can be calculated using float or integer math. Providing `lowEdge` and `highEdge` or `binWidth` or
elements of the `bins` array as integer numbers will select integer math, otherwise float will be used.
Output type of the band's output (specified in `output.sampleType` in the `setup()` function in the evalscript)
must match the respective histogram math.
If `lowEdge` and `highEdge` are not explicitly provided, min and max values are used, respectively.
type: object
properties:
nBins:
description: |
Number of bins in the histogram.
type: number
binWidth:
description: |
Bin width.
type: number
lowEdge:
description: |
Values lower to this will not be included in any of the histogram's bins.
type: number
highEdge:
description: |
Values higher to this will not be included in any of the histogram's bins.
type: number
bins:
description: |
Explicitly defined bins.
Array [v1,v2,v3,v4] will define the following bins:
[v1,v2), [v2,v3), [v3,v4]
type: array
items:
type: number
minItems: 2
StatisticsDefinition:
description: Single band statistics definition. The name of the band (as key) for which a calculation of statistic is defined below. Each key must match with one of the band names `output.bands` specified in a `setup()` function in an evalscript (for this output) or be "default". If it is "default", the statistics specified below will be calculated for all bands of this output for which calculation of statistics is not explicitly defined.
type: object
properties:
percentiles:
description: Calculate percentiles.
type: object
properties:
k:
description: |
Percentiles definition as array of values between [0,1], [see this example](https://docs.planet.com/develop/apis/statistical/examples/#statistics-histogram-and-percentiles-for-one-single-band-output).
type: array
items:
type: number
format: double
minimum: 0
maximum: 1
StatisticalRequestAggregationWithoutEvalscript:
required:
- timeRange
- aggregationInterval
description: |
Specifies how data is aggregated and processed before statistics is calculated. `timeRange` and `aggregationInterval` combined define sampling intervals in time dimension. Width/height or resx/resy combined with `input.bounds` define a sample matrix (i.e. "image") in spatial dimension.
type: object
properties:
timeRange:
$ref: '#/components/schemas/StatisticalDateTimeInterval'
aggregationInterval:
$ref: '#/components/schemas/Aggregation'
width:
description: |
Width of the sample matrix.
_Only one pair of parameters "width"/"height" or "resx"/"resy" must be set at the same time._
type: integer
format: int32
minimum: 1
maximum: 2500
default: 256
example: 512
height:
description: |
Height of the sample matrix.
_Only one pair of parameters "width"/"height" or "resx"/"resy" must be set at the same time._
type: integer
format: int32
minimum: 1
maximum: 2500
default: 256
example: 512
resx:
description: |
Spatial resolution used to calculate the width of the sample matrix from the `input.bounds`.
Its units are defined by the CRS given in `input.bounds.properties.crs`
parameter.
_Only one pair of parameters "width"/"height" or "resx"/"resy" must be set at the same time._
type: number
format: double
resy:
description: |
Spatial resolution used to calculate the height of the sample matrix from the `input.bounds`.
Its units are defined by the CRS given in `input.bounds.properties.crs`
parameter.
_Only one pair of parameters "width"/"height" or "resx"/"resy" must be set at the same time._
type: number
format: double
StatisticalDateTimeInterval:
type: object
required:
- from
- to
properties:
from:
type: string
description: ISO-8601 time representing start of search interval, e.g. 2019-01-31T14:00:00+01:00
format: date-time
to:
type: string
description: ISO-8601 time representing end of search interval, e.g. 2019-02-05T15:00:00+01:00.
format: date-time
StatisticalRequestAggregation:
type: object
allOf:
- $ref: '#/components/schemas/StatisticalRequestAggregationWithoutEvalscript'
- type: object
required:
- evalscript
properties:
evalscript:
description: |
Your evalscript. For details, click
here.
The evalscript will be executed once for each time interval defined by `timeRange` and `aggregationInterval`.
type: string
StatisticalRequestCalculations:
description: |
Define which statistics and histogram to calculate.
It can be specified differently for each evalscript output.
If omitted only the basic statistic (min, max, mean, stDev) will be calculated.
type: object
additionalProperties:
x-additionalPropertiesName: output name
$ref: '#/components/schemas/CalculationDefinition'
StatisticalResponse:
description: |
Statistics
type: object
properties:
status:
description: |
Overall status of the request.
type: string
enum:
- OK
- PARTIAL
- FAILED
geometryPixelCount:
description: |
Number of pixels intersecting the request geometry.
type: integer
data:
description: |
Statistics for intervals, where data is available.
type: array
items:
type: object
properties:
interval:
description: |
Interval on which, there's actual data
$ref: '#/components/schemas/DateTimeInterval'
outputs:
description: |
Per output statistics.
Output names are defined in evalscript.
type: object
additionalProperties:
x-additionalPropertiesName: output name
type: object
properties:
bands:
description: |
Per band statistics and histograms.
type: object
additionalProperties:
x-additionalPropertiesName: band name
$ref: '#/components/schemas/BandStatistics'
error:
description: |
If an error occurs when calculating statistics for a given interval it is reported here.
type: object
properties:
type:
type: string
enum:
- BAD_REQUEST
- EXECUTION_ERROR
- TIMEOUT
BandStatistics:
type: object
description: |
Per band statistics and histograms
properties:
histogram:
description: Histogram
type: object
properties:
overflow:
description: |
Number of samples above `highEdge` value
type: number
format: integer
underflow:
description: |
Number of samples below `lowEdge` value
type: number
format: integer
bins:
description: |
Histogram bins
type: array
items:
type: object
properties:
lowEdge:
description: Bin's low edge (inclusive)
type: number
highEdge:
description: Bin's high edge (not inclusive unless last bin)
type: number
count:
description: number of samples that fall into the bin
type: number
format: integer
stats:
type: object
description: Statistics
properties:
min:
description: minimum value
type: number
max:
description: maximum value
type: number
mean:
description: mean value
type: number
stDev:
description: standard deviation
type: number
sampleCount:
description: total number of samples
type: number
format: integer
noDataCount:
description: total number of samples without value
type: number
format: integer
percentiles:
description: |
Percentile to percentile value map.
type: object
additionalProperties:
x-additionalPropertiesName: percentile [0,1]
type: number
format: double
BatchStatisticalRequest:
type: object
required:
- input
- aggregation
- output
properties:
input:
$ref: '#/components/schemas/BatchStatisticalInput'
aggregation:
$ref: '#/components/schemas/BatchStatisticalRequestAggregation'
calculations:
$ref: '#/components/schemas/StatisticalRequestCalculations'
output:
description: Storage location where the results shall be written.
$ref: '#/components/schemas/ObjectStorageOutputInfoV2'
BatchStatisticalInput:
type: object
required:
- features
- data
properties:
features:
description: Storage location of the GeoPackage containing the features (polygons) to calculate the statistics for.
$ref: '#/components/schemas/ObjectStorageInfoV2'
data:
$ref: '#/components/schemas/ProcessRequestInputData'
ObjectStorageOutputInfo:
type: object
required:
- s3
properties:
s3:
$ref: '#/components/schemas/S3BucketInfoTemplated'
ObjectStorageOutputInfoV2:
type: object
oneOf:
- title: S3BucketInfoTemplated
required:
- s3
properties:
s3:
$ref: '#/components/schemas/S3BucketInfoTemplated'
- title: GSBucketInfoTemplated
x-cdse-exclude: true
required:
- gs
properties:
gs:
$ref: '#/components/schemas/GSBucketInfoTemplated'
S3BucketInfoTemplated:
type: object
required:
- url
properties:
url:
type: string
description: |
A URL or URL template specifying where the results shall be written. Supported formats:
- a valid Amazon S3 URL, e.g. `s3://my-personal-bucket/some-folder`.
A subdirectory will be created for this statistical batch request, named after the request ID, and output JSON files will be stored there.
This is equivalent to the template `s3://my-personal-bucket/some-folder//.json`.
- a templated Amazon S3 URL, e.g. `s3://my-personal-bucket/some-folder/.json`.
Templating allows custom organization of the output files.
Templates can contain the following placeholders, which are replaced by respective actual values when writing results:
- `` - the ID of your statistical batch request,
- `` - the `id` property of the feature,
- `` - the `identifier` property of the feature.
The template must contain `` or `` in order to ensure unique output files.
iamRoleARN:
type: string
description: IAM role ARN, which allows programmatic access to the S3 bucket specified in the `url` field using the recommended assume IAM role flow.
accessKey:
type: string
description: AWS access key, which allows programmatic access to the S3 bucket specified in the `url` field.
secretAccessKey:
type: string
description: AWS secret access key which must correspond to the AWS access key.
region:
type: string
description: The region where the S3 bucket is located. If omitted, the region of the Sentinel Hub deployment that the request is submitted to is assumed.
GSBucketInfoTemplated:
type: object
required:
- url
- credentials
properties:
url:
type: string
description: |
A URL or URL template specifying where the results shall be written. Supported formats:
- a valid Google Cloud Storage URL, e.g. `gs://my-bucket/some-folder`.
A subdirectory will be created for this statistical batch request, named after the request ID, and output JSON files will be stored there.
This is equivalent to the template `gs://my-bucket/some-folder//.json`.
- a templated Google Cloud Storage URL, e.g. `gs://my-bucket/some-folder/.json`.
Templating allows custom organization of the output files.
Templates can contain the following placeholders, which are replaced by respective actual values when writing results:
- `` - the ID of your statistical batch request,
- `` - the `id` property of the feature,
- `` - the `identifier` property of the feature.
The template must contain `` or `` in order to ensure unique output files.
credentials:
type: string
description: Base64-encoded service account credentials in JSON format.
BatchStatisticalRequestAggregation:
type: object
allOf:
- $ref: '#/components/schemas/StatisticalRequestAggregationWithoutEvalscript'
- type: object
properties:
evalscript:
description: |
Your evalscript. For details, click
here.
The evalscript will be executed once for each time interval defined by `timeRange` and `aggregationInterval`.
Either this or `evalscriptReference` parameter is required.
type: string
evalscriptReference:
description: |
Reference to your evalscript stored in an object storage. For details, click
here.
Either this or `evalscript` parameter is required.
$ref: '#/components/schemas/ObjectStorageInfoV2'
BatchStatisticsTaskStatusDto:
type: object
properties:
id:
description: UUID of the submitted request.
format: uuid
type: string
status:
description: Current processing status of the request. Must NOT be specified when creating new requests
type: string
enum:
- CREATED
- ANALYSING
- ANALYSIS_DONE
- PROCESSING
- DONE
- FAILED
- STOPPED
- PARTIAL
error:
description: Description of error in case the request failed.
type: string
completionPercentage:
type: number
lastUpdated:
type: string
format: date-time
costPu:
type: number
description: Cost of the request in processing units
created:
description: Creation time of the request
type: string
format: date-time
stoppedStatusReason:
description: The reason for request having status STOPPED.
type: string
enum:
- OUT_OF_PU
- USER_ACTION
BatchStatisticsTaskDto:
type: object
allOf:
- $ref: '#/components/schemas/BatchStatisticsTaskStatusDto'
- type: object
properties:
request:
$ref: '#/components/schemas/BatchStatisticalRequest'
userAction:
description: Last user action on the request.
type: string
enum:
- NONE
- ANALYSE
- START
- STOP
userActionUpdated:
type: string
description: Date of the last user action on the request
format: date-time
domainAccountId:
description: Deprecated. It is equal to projectId
type: string
format: uuid
projectId:
type: string
format: uuid
workspaceId:
type: string
format: uuid
x-tagGroups:
- name: Batch Stats API
tags:
- batch_statistical