# Summary
Pixel-wise classification and probability of recognized objects on a Sentinel-2 satellite image using pre-trained deep learning model. The model was trained from results and discoveries from CS-CANADA/MUSES01 experiments. The package was improved and extended to provide additional functionalities during OGC-TB16 developments.
Version: `0.4.0`
## Links
- OGC API - Processes endpoint:
https://hirondelle.crim.ca/weaver/processes/ogc-tb16-land-cover-mapping
## References
- [OGC Testbed-15: Machine Learning Engineering Report](https://docs.ogc.org/per/19-027r2.html)
- [OGC Testbed-16 Initiative](https://www.ogc.org/initiatives/t-16/)
- [OGC Testbed-16: Data Access and Processing Engineering Report](https://docs.ogc.org/per/20-016.html)
- [OGC Earth Observation Applications Pilot: CRIM Engineering Report](https://docs.ogc.org/per/20-045.html#MLApps)
## Process Description
```json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://schemas.opengis.net/ogcapi/processes/part1/1.0/openapi/schemas/process.yaml",
"id": "ogc-tb16-land-cover-mapping",
"title": "OGC Testbed-16 Pixel-Wise Classifier for Land Cover Mapping",
"version": "0.4.0",
"mutable": true,
"description": "Pixel-wise classification and probability of recognized objects on a Sentinel-2 satellite image using pre-trained deep learning model. The model was trained from results and discoveries from CS-CANADA/MUSES01 experiments. The package was improved and extended to provide additional functionalities during OGC-TB16 developments.",
"keywords": [
"crim",
"thelper",
"inference",
"ogc",
"testbed-16",
"cs-canada",
"muses",
"machine learning",
"deep learning",
"neural network",
"object classification",
"satellite imagery",
"sentinel-2",
"application"
],
"metadata": [
{
"title": "Provider Name",
"lang": "en-CA",
"value": "Computer Research Institute of Montreal (CRIM)",
"role": "http://www.opengis.net/eoc/applicationContext/providerMetadata"
},
{
"title": "Nom du fournisseur",
"lang": "fr-CA",
"value": "Centre de Recherche Informatique de Montréal (CRIM)",
"role": "http://www.opengis.net/eoc/applicationContext/providerMetadata"
},
{
"title": "Provider Site",
"hreflang": "en-CA",
"href": "https://www.crim.ca/en",
"type": "text/html",
"rel": "provider-site-en",
"role": "http://www.opengis.net/eoc/applicationContext/providerMetadata"
},
{
"title": "Page du fournisseur",
"hreflang": "fr-CA",
"href": "https://www.crim.ca/fr",
"type": "text/html",
"rel": "provider-site-fr",
"role": "http://www.opengis.net/eoc/applicationContext/providerMetadata"
}
],
"inputs": {
"raster_file": {
"title": "Raster file",
"description": "Input raster onto which to run object classification. Either a Sentinel-2 SAFE ZIP or a RBG-NIR GeoTiff.",
"minOccurs": 1,
"maxOccurs": 1,
"schema": {
"oneOf": [
{
"type": "string",
"format": "binary",
"contentMediaType": "application/zip",
"contentEncoding": "base64"
},
{
"type": "string",
"format": "binary",
"contentMediaType": "application/geo+tiff",
"contentEncoding": "base64"
}
]
},
"formats": [
{
"default": true,
"mediaType": "application/zip"
},
{
"default": false,
"mediaType": "application/geo+tiff"
}
]
},
"raster_bands": {
"minOccurs": 0,
"maxOccurs": "unbounded",
"schema": {
"type": "array",
"items": {
"type": "integer"
},
"minItems": 0
},
"literalDataDomains": [
{
"default": true,
"dataType": {
"$id": "https://schemas.opengis.net/ogcapi/processes/part1/1.0/openapi/schemas/nameReferenceType.yaml",
"name": "integer"
},
"valueDefinition": {
"anyValue": false
}
}
]
},
"raster_mean": {
"minOccurs": 0,
"maxOccurs": "unbounded",
"schema": {
"type": "array",
"items": {
"type": "number",
"format": "float"
},
"minItems": 0
},
"literalDataDomains": [
{
"default": true,
"dataType": {
"$id": "https://schemas.opengis.net/ogcapi/processes/part1/1.0/openapi/schemas/nameReferenceType.yaml",
"name": "float"
},
"valueDefinition": {
"anyValue": false
}
}
]
},
"raster_std": {
"minOccurs": 0,
"maxOccurs": "unbounded",
"schema": {
"type": "array",
"items": {
"type": "number",
"format": "float"
},
"minItems": 0
},
"literalDataDomains": [
{
"default": true,
"dataType": {
"$id": "https://schemas.opengis.net/ogcapi/processes/part1/1.0/openapi/schemas/nameReferenceType.yaml",
"name": "float"
},
"valueDefinition": {
"anyValue": false
}
}
]
},
"patch_size": {
"minOccurs": 0,
"maxOccurs": 1,
"schema": {
"type": "array",
"items": {
"type": "integer"
},
"minItems": 0,
"maxItems": 1
},
"literalDataDomains": [
{
"default": true,
"dataType": {
"$id": "https://schemas.opengis.net/ogcapi/processes/part1/1.0/openapi/schemas/nameReferenceType.yaml",
"name": "integer"
},
"valueDefinition": {
"anyValue": false
}
}
]
},
"batch_size": {
"minOccurs": 0,
"maxOccurs": 1,
"schema": {
"type": "array",
"items": {
"type": "integer"
},
"minItems": 0,
"maxItems": 1
},
"literalDataDomains": [
{
"default": true,
"dataType": {
"$id": "https://schemas.opengis.net/ogcapi/processes/part1/1.0/openapi/schemas/nameReferenceType.yaml",
"name": "integer"
},
"valueDefinition": {
"anyValue": false
}
}
]
},
"device": {
"minOccurs": 0,
"maxOccurs": 1,
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"cpu",
"cuda"
],
"default": "cpu"
},
"minItems": 0,
"maxItems": 1
},
"literalDataDomains": [
{
"default": true,
"defaultValue": "cpu",
"dataType": {
"$id": "https://schemas.opengis.net/ogcapi/processes/part1/1.0/openapi/schemas/nameReferenceType.yaml",
"name": "string"
},
"valueDefinition": [
"cpu",
"cuda"
]
}
]
}
},
"outputs": {
"classification": {
"title": "Inference classification results.",
"description": "Pixel-wise classification results obtained from inference of the model. Each pixel value represents the classified class.",
"schema": {
"type": "string",
"format": "binary",
"contentMediaType": "application/geo+tiff",
"contentEncoding": "base64"
},
"formats": [
{
"default": true,
"mediaType": "application/geo+tiff"
}
]
},
"probabilities": {
"title": "Inference classification probabilities",
"description": "Pixel-wise probability estimation of the produced classification results, for each corresponding class. Each band index corresponds to the probabilities of the class indices.",
"schema": {
"type": "string",
"format": "binary",
"contentMediaType": "application/geo+tiff",
"contentEncoding": "base64"
},
"formats": [
{
"default": true,
"mediaType": "application/geo+tiff"
}
]
},
"labels": {
"title": "Class label mapping.",
"description": "Mapping of class names to indices matching the classification results and the probability estimation bands.",
"schema": {
"oneOf": [
{
"type": "string",
"contentMediaType": "application/json"
},
{
"type": "object",
"additionalProperties": true
}
]
},
"formats": [
{
"default": true,
"mediaType": "application/json"
}
]
},
"config": {
"title": "Inference configuration.",
"description": "Extended configuration definition that got used to execute the inference operation.",
"schema": {
"oneOf": [
{
"type": "string",
"contentMediaType": "application/json"
},
{
"type": "object",
"additionalProperties": true
}
]
},
"formats": [
{
"default": true,
"mediaType": "application/json"
}
]
}
},
"visibility": "public",
"jobControlOptions": [
"async-execute",
"sync-execute"
],
"outputTransmission": [
"reference",
"value"
],
"processDescriptionURL": "https://hirondelle.crim.ca/weaver/processes/ogc-tb16-land-cover-mapping",
"processEndpointWPS1": "https://hirondelle.crim.ca/weaver/wps",
"executeEndpoint": "https://hirondelle.crim.ca/weaver/processes/ogc-tb16-land-cover-mapping/jobs",
"deploymentProfile": "http://www.opengis.net/profiles/eoc/dockerizedApplication",
"links": [
{
"title": "Current process description.",
"hreflang": "en-CA",
"href": "https://hirondelle.crim.ca/weaver/processes/ogc-tb16-land-cover-mapping",
"type": "application/json",
"rel": "self"
},
{
"title": "Process definition.",
"hreflang": "en-CA",
"href": "https://hirondelle.crim.ca/weaver/processes/ogc-tb16-land-cover-mapping",
"type": "application/json",
"rel": "process-meta"
},
{
"title": "Process execution endpoint for job submission.",
"hreflang": "en-CA",
"href": "https://hirondelle.crim.ca/weaver/processes/ogc-tb16-land-cover-mapping/execution",
"type": "application/json",
"rel": "http://www.opengis.net/def/rel/ogc/1.0/execute"
},
{
"title": "List of registered processes.",
"hreflang": "en-CA",
"href": "https://hirondelle.crim.ca/weaver/processes",
"type": "application/json",
"rel": "http://www.opengis.net/def/rel/ogc/1.0/processes"
},
{
"title": "List of job executions corresponding to this process.",
"hreflang": "en-CA",
"href": "https://hirondelle.crim.ca/weaver/processes/ogc-tb16-land-cover-mapping/jobs",
"type": "application/json",
"rel": "http://www.opengis.net/def/rel/ogc/1.0/job-list"
},
{
"title": "List of processes registered under the service.",
"hreflang": "en-CA",
"href": "https://hirondelle.crim.ca/weaver/processes",
"type": "application/json",
"rel": "up"
}
]
}
```