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)

    1. You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.