Objectives

  • to have a first version of ICD before Summer time and share with LTA service providers to gather first comments
  • to present LTA ICD during the next checkpoint (September or October)

Query Product

The following presentation contains a short gap analysis regarding STAC and the AIP of the LTA service:

STAC-AIP-Gap-Analysis.pptx


This table focuses on product properties that should be exposed by AIP instances and that are not currently backed by STAC Core or extensions.

Property NamePossible values / ExampleCommonCommentProposed solution
Online
  • true
  • false



to be stated in the ICD : 

Offline : item with no assets

Online : item with assets

Order extension field order:status:

  • orderable=Offline
  • succeeded=Online






Retrieval functions

Retrieve Product

Queries

text in red relates to requirements not supported by the OGC API- Processes standard

Call from LTA Client"OGC API - Processes" operationDetails Response of queryOGC reference link
Product Order Request

/processes/{ProcessID}/execution

Query type : POST

ProcessID = ProductRetrieve

Input parameters

  • product_identifier
  • priority

Response by default :

  • jobID → ID of the Order
  • status (value set to "accepted") → Status 
  • type (value set to "process")
  • message → StatusMessage
  • created → SubmissionDate

Mandatory information not supported by the standard : 

  • EstimatedDate
  • Priority

https://docs.ogc.org/is/18-062r2/18-062r2.html#toc32

Order Status Query




/jobs/{JobID}

Query type : GET

JobID = ID returned by the execute query

Status of Job : 

  • jobID → ID of the Order
  • status → Status
  • message → StatusMessage
  • started
  • finished → CompletedDate (if status is "successful") 

Information not supported by the standard : 

  • OrderSize
  • EvictionDate

https://docs.ogc.org/is/18-062r2/18-062r2.html#toc47



List completed jobs

(NEW)

/jobs

Query type : GET

Parameters:

  • processID (should be "ProductRetrieve")
  • status (should be "successful" for completed orders)
  • datetime (filter on "SubmissionDate")


List of completed Jobs with their ID and following parameters : 

  • jobID → ID of the Order
  • status (value set to "successful") → Status
  • message → StatusMessage
  • finished → CompletedDate

Information not supported by the standard : 

  • OrderSize
  • EvictionDate

Get result of Order query

(NEW)

/jobs/{JobID}/results

Query type : GET

JobID = ID returned by the execute query

Returns a JSON response with output parameters set for the completed order 

A process result will contain the following information : 

  • OrderSize
  • EvictionDate
  • ProductLink (optional & not in the current ICD)

https://docs.ogc.org/is/18-062r2/18-062r2.html#toc34

Product Staging NotificationCallback mechanism for completed jobs : requires to add a subscriber property in the order request (notification endpoint)To assess : authorisation for callback
https://docs.ogc.org/is/18-062r2/18-062r2.html#toc52

Retrieve process description

(NEW)

/processes/{ProcessID}

Query type : GET

ProcessID = ProductRetrieve

Response depending on the process definition (see below)https://docs.ogc.org/is/18-062r2/18-062r2.html#toc35

JobStatus value correspondance

Odata statusOGC API - Processes status

queued

accepted
in_progressrunning
completedsuccessful
failedfailed
cancelleddismissed

Process definition

Below is a process definition for a "ProductRetrieve" process

{
  "id": "ProductRetrieve",
  "title": "Order LTA for product retrieving",
  "description": "This asynchronous process specifies one product to retrieve from LTA, through its identifier",
  "version": "1.0.0",
  "jobControlOptions": [
    "async-execute"
  ],
  "outputTransmission": [
    "value"
  ],
  "inputs": {
    "ProductId": {
      "title": "Product identifier",
      "description": "Identifier of the product to retrieve",
	  "minOccurs": 1,
	  "maxOccurs": 1,
      "schema": {
        "type": "string"
      }
    },
    "Priority": {
      "title": "Order priority",
      "description": "Priority of the order. It is an integer from 1-100,",
	  "minOccurs": 0,
	  "maxOccurs": 1,
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 100
      }
    }
  },
  "outputs": {
    "ProductLink": {
      "schema": {
        "type": "string"
      }
    },
    "EvictionDate": {
      "schema": {
        "type": "string",
        "format": "dateTime"
      }
    },
    "OrderSize": {
      "schema": {
        "type": "integer"
      }
    }
  },
  "response": "document",
  "links": [
    {
      "href": "https://lta.ordering.copernicus.eu/processes/ProductRetrieve/execution",
      "rel": "http://www.opengis.net/def/rel/ogc/1.0/execute",
      "title": "Execute endpoint"
    }
  ]
}


Bulk Product Retrieve

The bulk is defined by a list of products or query filter parameters and a batch size

1st level assumption: not "as is" in the OGC standard.

Ideas

  • Create a specific Process for "Bulk Create Request".
    • query filter parameters : the process parameters == filters
    • list of products : one parameter as a list of product IDs 
  • BatchOrder List Request : is the result of the "Bulk Create Request" Process
  • Create a specific Process for "BatchOrder trigger" 


Good to simplify the current way to do bulk (many batch orders to trigger !!)

Trigger all the batches automatically

→ offer the user to automatically execute the batch orders or not (as a parameter of "Bulk Create Request") 

Compliance tests

https://cite.ogc.org/teamengine/about/ogcapi-processes-1.0/1.0/site/ 

https://github.com/opengeospatial/teamengine 

Reference

https://github.com/opengeospatial/ogcapi-processes?tab=readme-ov-file 


  • No labels

2 Comments

  1. STAC-AIP-Gap-Analysis.pptx
    STAC published and unpublished properties belongs to timestamps extension. They are note described in common metadata 
  2. Retrieval API : analyze if it can be described with OGC API Processes

    Analyze also novelties brought by next version of OGC API Processes (1.1, 2.0)

Write a comment…