diff --git a/algorithm_catalog/developmentseed/urban_areas/openeo_udp/urban_areas.json b/algorithm_catalog/developmentseed/urban_areas/openeo_udp/urban_areas.json new file mode 100644 index 00000000..59a1692c --- /dev/null +++ b/algorithm_catalog/developmentseed/urban_areas/openeo_udp/urban_areas.json @@ -0,0 +1,190 @@ +{ + "process_graph": { + "loadcollection1": { + "process_id": "load_collection", + "arguments": { + "bands": [ + "VH", + "VV" + ], + "id": "SENTINEL1_GRD", + "spatial_extent": { + "from_parameter": "bounding_box" + }, + "temporal_extent": { + "from_parameter": "time" + } + } + }, + "reducedimension1": { + "process_id": "reduce_dimension", + "arguments": { + "data": { + "from_node": "loadcollection1" + }, + "dimension": "t", + "reducer": { + "process_graph": { + "first1": { + "process_id": "first", + "arguments": { + "data": { + "from_parameter": "data" + } + }, + "result": true + } + } + } + } + }, + "applydimension1": { + "process_id": "apply_dimension", + "arguments": { + "data": { + "from_node": "reducedimension1" + }, + "dimension": "bands", + "process": { + "process_graph": { + "arrayelement1": { + "process_id": "array_element", + "arguments": { + "data": { + "from_parameter": "data" + }, + "index": 0 + } + }, + "multiply1": { + "process_id": "multiply", + "arguments": { + "x": { + "from_node": "arrayelement1" + }, + "y": 5.5 + } + }, + "gt1": { + "process_id": "gt", + "arguments": { + "x": { + "from_node": "multiply1" + }, + "y": 0.5 + } + }, + "if1": { + "process_id": "if", + "arguments": { + "accept": 1.0, + "reject": 0.0, + "value": { + "from_node": "gt1" + } + } + }, + "arrayelement2": { + "process_id": "array_element", + "arguments": { + "data": { + "from_parameter": "data" + }, + "index": 1 + } + }, + "multiply2": { + "process_id": "multiply", + "arguments": { + "x": { + "from_node": "arrayelement1" + }, + "y": 8 + } + }, + "arraycreate1": { + "process_id": "array_create", + "arguments": { + "data": [ + { + "from_node": "if1" + }, + { + "from_node": "arrayelement2" + }, + { + "from_node": "multiply2" + } + ] + }, + "result": true + } + } + } + } + }, + "apply1": { + "process_id": "apply", + "arguments": { + "data": { + "from_node": "applydimension1" + }, + "process": { + "process_graph": { + "linearscalerange1": { + "process_id": "linear_scale_range", + "arguments": { + "inputMax": 1, + "inputMin": 0, + "outputMax": 255, + "outputMin": 0, + "x": { + "from_parameter": "x" + } + }, + "result": true + } + } + } + } + }, + "saveresult1": { + "process_id": "save_result", + "arguments": { + "data": { + "from_node": "apply1" + }, + "format": "PNG", + "options": {} + }, + "result": true + } + }, + "parameters": [ + { + "name": "time", + "description": "Temporal range for data acquisition", + "schema": {}, + "default": [ + "2019-05-26", + "2019-06-01" + ], + "optional": true + }, + { + "name": "bounding_box", + "description": "Spatial extent for Bologna, Italy", + "schema": {}, + "default": { + "west": 11.2, + "south": 44.45, + "east": 11.48, + "north": 44.56 + }, + "optional": true + } + ], + "id": "urban_areas", + "summary": "Visualizes urban areas and buildings from Sentinel-1 GRD VH/VV backscatter, mapping VV to the green channel, VH to the blue channel, and strong VH values to the red channel so buildings appear purple, green, or white.", + "description": "Visualizes urban areas and individual buildings using Sentinel-1 GRD VH and VV backscatter. VV backscatter is mapped to the green channel and VH to the blue channel, while strongly reflecting VH values (VH > 0.5) are added to the red channel, so buildings appear purple (VH-dominant), green (VV-dominant), or white (strong in both). This color separation helps distinguish built-up areas from surrounding terrain and supports tasks such as tracking urban expansion, estimating building types, and identifying buildings at risk from natural disturbances such as flooding. The method is less reliable in high-elevation regions, where snow and steep slopes can also appear bright in VH and VV." +} \ No newline at end of file diff --git a/algorithm_catalog/developmentseed/urban_areas/records/preview.png b/algorithm_catalog/developmentseed/urban_areas/records/preview.png new file mode 100644 index 00000000..efefddde Binary files /dev/null and b/algorithm_catalog/developmentseed/urban_areas/records/preview.png differ diff --git a/algorithm_catalog/developmentseed/urban_areas/records/thumbnail.png b/algorithm_catalog/developmentseed/urban_areas/records/thumbnail.png new file mode 100644 index 00000000..43b9fdc5 Binary files /dev/null and b/algorithm_catalog/developmentseed/urban_areas/records/thumbnail.png differ diff --git a/algorithm_catalog/developmentseed/urban_areas/records/urban_areas.json b/algorithm_catalog/developmentseed/urban_areas/records/urban_areas.json new file mode 100644 index 00000000..f54441e0 --- /dev/null +++ b/algorithm_catalog/developmentseed/urban_areas/records/urban_areas.json @@ -0,0 +1,152 @@ +{ + "id": "urban_areas", + "type": "Feature", + "conformsTo": [ + "https://www.opengis.net/spec/ogcapi-records-1/1.0/req/record-core", + "https://apex.esa.int/core/openeo-udp" + ], + "geometry": null, + "properties": { + "created": "2026-07-02T00:00:00Z", + "updated": "2026-07-02T00:00:00Z", + "type": "service", + "title": "Algorithm to Visualize Urban Areas and Buildings", + "description": "Visualizes urban areas and individual buildings using Sentinel-1 GRD VH and VV backscatter. VV backscatter is mapped to the green channel and VH to the blue channel, while strongly reflecting VH values (VH > 0.5) are added to the red channel, so buildings appear purple (VH-dominant), green (VV-dominant), or white (strong in both). This color separation helps distinguish built-up areas from surrounding terrain and supports tasks such as tracking urban expansion, estimating building types, and identifying buildings at risk from natural disturbances such as flooding. The method is less reliable in high-elevation regions, where snow and steep slopes can also appear bright in VH and VV. Adapted from a SentinelHub Custom Script by Monja B. \u0160ebela.", + "keywords": [ + "Land Use/Land Cover Classification", + "Sentinel-1" + ], + "language": { + "code": "en-US", + "name": "English (United States)" + }, + "languages": [ + { + "code": "en-US", + "name": "English (United States)" + } + ], + "contacts": [ + { + "name": "Development Seed", + "organization": "Development Seed", + "links": [ + { + "href": "https://developmentseed.org", + "title": "Development Seed", + "rel": "about", + "type": "text/html" + } + ], + "contactInstructions": "Contact via Development Seed", + "roles": [ + "processor" + ] + }, + { + "name": "Monja B. Sebela", + "organization": "Sentinel Hub", + "links": [ + { + "href": "https://custom-scripts.sentinel-hub.com/custom-scripts/sentinel-1/urban_areas/", + "title": "Algorithm to Visualize Urban Areas and Buildings SentinelHub Script", + "rel": "about", + "type": "text/html" + } + ], + "contactInstructions": "Original SentinelHub script. See link below.", + "roles": [ + "author" + ] + } + ], + "themes": [ + { + "concepts": [ + { + "id": "URBAN DEVELOPMENT" + }, + { + "id": "REMOTE SENSING" + }, + { + "id": "Sentinel-1 SAR" + } + ], + "scheme": "https://gcmd.earthdata.nasa.gov/kms/concepts/concept_scheme/sciencekeywords" + } + ], + "formats": [ + { + "name": "GeoTiff" + }, + { + "name": "PNG" + } + ], + "license": "CC-BY-SA-4.0" + }, + "linkTemplates": [], + "links": [ + { + "rel": "application", + "type": "application/vnd.openeo+json;type=process", + "title": "openEO Process Definition", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/42ed3780a0d8ad1bf20442817a68d2ff29e5250a/algorithm_catalog/developmentseed/urban_areas/openeo_udp/urban_areas.json" + }, + { + "rel": "code", + "type": "text/html", + "title": "openeo-udp repository", + "href": "https://github.com/developmentseed/openeo-udp" + }, + { + "rel": "webapp", + "type": "text/html", + "title": "OpenEO Web Editor", + "href": "https://editor.openeo.org/?wizard=UDP&wizard%7Eprocess=urban_areas&wizard%7EprocessUrl=https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/42ed3780a0d8ad1bf20442817a68d2ff29e5250a/algorithm_catalog/developmentseed/urban_areas/openeo_udp/urban_areas.json&server=https://openeo.dataspace.copernicus.eu/" + }, + { + "rel": "service", + "type": "application/json", + "title": "Copernicus Data Space - Production API", + "href": "https://openeo.dataspace.copernicus.eu/" + }, + { + "rel": "notebook", + "type": "application/x-ipynb+json", + "title": "Algorithm to Visualize Urban Areas and Buildings notebook", + "href": "https://raw.githubusercontent.com/developmentseed/openeo-udp/4f68f75473861e0631294ccd15e59c3b2ed95e21/notebooks/sentinel/sentinel-1/land-cover/urban_areas.ipynb" + }, + { + "rel": "platform", + "type": "application/json", + "title": "TiTiler openEO", + "href": "../../../../platform_catalog/titiler_openeo.json" + }, + { + "rel": "provider", + "type": "application/json", + "title": "Development Seed", + "href": "../../record.json" + }, + { + "rel": "preview", + "type": "image/png", + "title": "Urban Areas Visualization", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/42ed3780a0d8ad1bf20442817a68d2ff29e5250a/algorithm_catalog/developmentseed/urban_areas/records/preview.png" + }, + { + "rel": "thumbnail", + "type": "image/png", + "title": "Thumbnail image", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/42ed3780a0d8ad1bf20442817a68d2ff29e5250a/algorithm_catalog/developmentseed/urban_areas/records/thumbnail.png" + }, + { + "rel": "cite-as", + "type": "text/html", + "title": "Script Source Repository", + "href": "https://github.com/sentinel-hub/custom-scripts" + } + ] +}