diff --git a/algorithm_catalog/terravision/amwi/benchmark_scenarios/amwi.json b/algorithm_catalog/terravision/amwi/benchmark_scenarios/amwi.json new file mode 100644 index 00000000..39b8a96d --- /dev/null +++ b/algorithm_catalog/terravision/amwi/benchmark_scenarios/amwi.json @@ -0,0 +1,41 @@ +[ + { + "id": "amwi", + "type": "openeo", + "description": "This process calculates the Anomaly Weighted Index (ANWI) from Sentinel-2 data.", + "backend": "openeofed.dataspace.copernicus.eu", + "process_graph": { + "AMWI1": { + "arguments": { + "spatial_extent": { + "east": 5.1, + "north": 51.23, + "south": 51.21, + "west": 5.05 + }, + "temporal_extent": [ + "2025-05-01", + "2025-05-31" + ] + }, + "namespace": "https://raw.githubusercontent.com/ITA-TECNOLOGIA/Ard-Terravision/b848749026d3397cd89969e549712e21e992d4a7/src/main/python/utils/openeo_udp/amwi.json", + "process_id": "AMWI" + }, + "saveresult1": { + "arguments": { + "data": { + "from_node": "AMWI1" + }, + "format": "NetCDF", + "options": {} + }, + "process_id": "save_result", + "result": true + } + }, + "reference_data": { + "job-results.json": "https://s3.waw3-1.cloudferro.com/apex-benchmarks-internal/HP97!tests_test_benchmarks.py__test_run_benchmark_amwi_!actual/job-results.json", + "openEO.nc": "https://s3.waw3-1.cloudferro.com/apex-benchmarks-internal/HP97!tests_test_benchmarks.py__test_run_benchmark_amwi_!actual/openEO.nc" + } + } +] \ No newline at end of file diff --git a/algorithm_catalog/terravision/amwi/notebooks/amwi.ipynb b/algorithm_catalog/terravision/amwi/notebooks/amwi.ipynb new file mode 100644 index 00000000..cc8b4b41 --- /dev/null +++ b/algorithm_catalog/terravision/amwi/notebooks/amwi.ipynb @@ -0,0 +1,145 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "id": "f2cf7a34", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Authenticated using refresh token.\n" + ] + } + ], + "source": [ + "import openeo\n", + "connection = openeo.connect(\"openeofed.dataspace.copernicus.eu\").authenticate_oidc()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "0023dd3f", + "metadata": {}, + "outputs": [], + "source": [ + "shape = {\"west\": 5.05, \"south\": 51.21, \"east\": 5.1, \"north\": 51.23}\n", + "start_date, end_date = [\"2025-05-01\", \"2025-05-31\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "c6053ab0", + "metadata": {}, + "outputs": [], + "source": [ + "public_url = \"https://raw.githubusercontent.com/ITA-TECNOLOGIA/Ard-Terravision/b848749026d3397cd89969e549712e21e992d4a7/src/main/python/utils/openeo_udp/amwi.json\"\n", + "# Create a processing graph from the EVI process using an active openEO connection\n", + "amwi = connection.datacube_from_process(\n", + " \"AMWI\", \n", + " namespace=public_url,\n", + " temporal_extent=[start_date, end_date],\n", + " spatial_extent=shape,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "184b1ca4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0:00:00 Job 'cdse-j-2607131232494c959e877f34b79fb6d4': send 'start'\n", + "0:00:03 Job 'cdse-j-2607131232494c959e877f34b79fb6d4': queued (progress 0%)\n", + "0:00:08 Job 'cdse-j-2607131232494c959e877f34b79fb6d4': queued (progress 0%)\n", + "0:00:15 Job 'cdse-j-2607131232494c959e877f34b79fb6d4': queued (progress 0%)\n", + "0:00:23 Job 'cdse-j-2607131232494c959e877f34b79fb6d4': queued (progress 0%)\n", + "0:00:33 Job 'cdse-j-2607131232494c959e877f34b79fb6d4': queued (progress 0%)\n", + "0:00:46 Job 'cdse-j-2607131232494c959e877f34b79fb6d4': queued (progress 0%)\n", + "0:01:01 Job 'cdse-j-2607131232494c959e877f34b79fb6d4': queued (progress 0%)\n", + "0:01:21 Job 'cdse-j-2607131232494c959e877f34b79fb6d4': running (progress N/A)\n", + "0:01:45 Job 'cdse-j-2607131232494c959e877f34b79fb6d4': running (progress N/A)\n", + "0:02:15 Job 'cdse-j-2607131232494c959e877f34b79fb6d4': finished (progress 100%)\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "job = amwi.create_job(\n", + " title=f'AMWI calculation for {start_date} to {end_date}',\n", + " out_format=\"NetCDF\")\n", + "job.start_and_wait()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "addf9115", + "metadata": {}, + "outputs": [], + "source": [ + "results = job.get_results()\n", + "results.download_files()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.14.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/algorithm_catalog/terravision/amwi/records/amwi.json b/algorithm_catalog/terravision/amwi/records/amwi.json new file mode 100644 index 00000000..c2c72dd3 --- /dev/null +++ b/algorithm_catalog/terravision/amwi/records/amwi.json @@ -0,0 +1,133 @@ +{ + "id": "amwi", + "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-13T00:00:00Z", + "updated": "2026-07-13T00:00:00Z", + "type": "service", + "title": "Anomaly Weighted Index (AMWI)", + "description": "Calculates the Anomaly Weighted Index (AMWI) from Sentinel-2 imagery.", + "keywords": [ + "Soils", + "Sentinel-2", + "Data Analysis and Visualization" + ], + "language": { + "code": "en-US", + "name": "English (United States)" + }, + "languages": [ + { + "code": "en-US", + "name": "English (United States)" + } + ], + "contacts": [ + { + "name": "Pratichhya Sharma", + "position": "Researcher", + "organization": "VITO", + "links": [ + { + "href": "https://www.vito.be/", + "title": "VITO Website", + "rel": "about", + "type": "text/html" + } + ], + "contactInstructions": "Contact via VITO", + "roles": [ + "principal investigator" + ] + } + ], + "themes": [ + { + "concepts": [ + { + "id": "SOILS" + }, + { + "id": "REMOTE SENSING" + }, + { + "id": "Sentinel-2 MSI" + } + ], + "scheme": "https://gcmd.earthdata.nasa.gov/kms/concepts/concept_scheme/sciencekeywords" + } + ], + "formats": [ + { + "name": "NetCDF" + } + ], + "license": "Proprietary", + "version": "1.0.0", + "publisher": { + "name": "TERRAVISION" + }, + "linkTemplates": [], + "links": [ + { + "rel": "application", + "type": "application/vnd.openeo+json;type=process", + "title": "openEO Process Definition", + "href": "https://raw.githubusercontent.com/ITA-TECNOLOGIA/Ard-Terravision/b848749026d3397cd89969e549712e21e992d4a7/src/main/python/utils/openeo_udp/amwi.json" + }, + { + "rel": "code", + "type": "text/html", + "title": "TERRAVISION source code", + "href": "https://github.com/ITA-TECNOLOGIA/Ard-Terravision" + }, + { + "rel": "service", + "type": "application/json", + "title": "CDSE openEO Federation", + "href": "https://openeofed.dataspace.copernicus.eu" + }, + { + "rel": "platform", + "type": "application/json", + "title": "CDSE openEO Federation processing backend", + "href": "../../../../platform_catalog/cdse_openeo_federation.json" + }, + { + "rel": "provider", + "type": "application/json", + "title": "TERRAVISION", + "href": "../../record.json" + }, + { + "rel": "notebook", + "type": "application/x-ipynb+json", + "title": "AMWI example notebook", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/9d9a31eaa56afa5909e8293f132570fe18f14d4a/algorithm_catalog/terravision/amwi/notebooks/amwi.ipynb" + }, + { + "rel": "example-output", + "type": "application/x-netcdf", + "title": "AMWI example output", + "href": "https://s3.waw3-1.cloudferro.com/apex-benchmarks-internal/HP97!tests_test_benchmarks.py__test_run_benchmark_amwi_!actual/openEO.nc" + }, + { + "rel": "webapp", + "type": "text/html", + "title": "OpenEO Web Editor", + "href": "https://editor.openeo.org/?wizard=UDP&wizard%7Eprocess=AMWI&wizard%7EprocessUrl=https://raw.githubusercontent.com/ITA-TECNOLOGIA/Ard-Terravision/b848749026d3397cd89969e549712e21e992d4a7/src/main/python/utils/openeo_udp/amwi.json&server=https%3A%2F%2Fopeneofed.dataspace.copernicus.eu" + }, + { + "rel": "thumbnail", + "type": "image/png", + "title": "Thumbnail image", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/7f1bc73312dbd291cf971a557dfe7f234af573fd/algorithm_catalog/terravision/amwi/records/thumbnail.png" + } + ] + } +} \ No newline at end of file diff --git a/algorithm_catalog/terravision/amwi/thumbnail.png b/algorithm_catalog/terravision/amwi/thumbnail.png new file mode 100644 index 00000000..c59444a0 Binary files /dev/null and b/algorithm_catalog/terravision/amwi/thumbnail.png differ diff --git a/algorithm_catalog/terravision/bsi/benchmark_scenarios/bsi.json b/algorithm_catalog/terravision/bsi/benchmark_scenarios/bsi.json new file mode 100644 index 00000000..496b5517 --- /dev/null +++ b/algorithm_catalog/terravision/bsi/benchmark_scenarios/bsi.json @@ -0,0 +1,41 @@ +[ + { + "id": "bsi", + "type": "openeo", + "description": "BSI is a biophysical parameter retrieval algorithm that estimates the Bare Soil Index (BSI) for agricultural fields using Sentinel-2 satellite data.", + "backend": "openeofed.dataspace.copernicus.eu", + "process_graph": { + "BSI1": { + "arguments": { + "spatial_extent": { + "east": 5.1, + "north": 51.23, + "south": 51.21, + "west": 5.05 + }, + "temporal_extent": [ + "2025-05-01", + "2025-05-31" + ] + }, + "namespace": "https://raw.githubusercontent.com/ITA-TECNOLOGIA/Ard-Terravision/b848749026d3397cd89969e549712e21e992d4a7/src/main/python/utils/openeo_udp/bsi.json", + "process_id": "BSI" + }, + "saveresult1": { + "arguments": { + "data": { + "from_node": "BSI1" + }, + "format": "NetCDF", + "options": {} + }, + "process_id": "save_result", + "result": true + } + }, + "reference_data": { + "job-results.json": "https://s3.waw3-1.cloudferro.com/apex-benchmarks-internal/HP96!tests_test_benchmarks.py__test_run_benchmark_bsi_!actual/job-results.json", + "openEO.nc": "https://s3.waw3-1.cloudferro.com/apex-benchmarks-internal/HP96!tests_test_benchmarks.py__test_run_benchmark_bsi_!actual/openEO.nc" + } + } +] \ No newline at end of file diff --git a/algorithm_catalog/terravision/bsi/notebooks/bsi.ipynb b/algorithm_catalog/terravision/bsi/notebooks/bsi.ipynb new file mode 100644 index 00000000..60525c8a --- /dev/null +++ b/algorithm_catalog/terravision/bsi/notebooks/bsi.ipynb @@ -0,0 +1,147 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "id": "ee7563e0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Authenticated using refresh token.\n" + ] + } + ], + "source": [ + "import openeo\n", + "connection = openeo.connect(\"openeofed.dataspace.copernicus.eu\").authenticate_oidc()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "f26cd554", + "metadata": {}, + "outputs": [], + "source": [ + "shape = {\"west\": 5.05, \"south\": 51.21, \"east\": 5.1, \"north\": 51.23}\n", + "start_date, end_date = [\"2025-05-01\", \"2025-05-31\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "00ce4f96", + "metadata": {}, + "outputs": [], + "source": [ + "public_url = \"https://raw.githubusercontent.com/ITA-TECNOLOGIA/Ard-Terravision/b848749026d3397cd89969e549712e21e992d4a7/src/main/python/utils/openeo_udp/bsi.json\"\n", + "# Create a processing graph from the EVI process using an active openEO connection\n", + "bsi = connection.datacube_from_process(\n", + " \"BSI\",\n", + " namespace=public_url,\n", + " temporal_extent=[start_date, end_date],\n", + " spatial_extent=shape,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "7942fdd4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0:00:00 Job 'cdse-j-26071311505440a49f8906851cc5f6c6': send 'start'\n", + "0:00:03 Job 'cdse-j-26071311505440a49f8906851cc5f6c6': created (progress 0%)\n", + "0:00:09 Job 'cdse-j-26071311505440a49f8906851cc5f6c6': queued (progress 0%)\n", + "0:00:15 Job 'cdse-j-26071311505440a49f8906851cc5f6c6': queued (progress 0%)\n", + "0:00:23 Job 'cdse-j-26071311505440a49f8906851cc5f6c6': queued (progress 0%)\n", + "0:00:34 Job 'cdse-j-26071311505440a49f8906851cc5f6c6': queued (progress 0%)\n", + "0:00:46 Job 'cdse-j-26071311505440a49f8906851cc5f6c6': queued (progress 0%)\n", + "0:01:02 Job 'cdse-j-26071311505440a49f8906851cc5f6c6': queued (progress 0%)\n", + "0:01:21 Job 'cdse-j-26071311505440a49f8906851cc5f6c6': queued (progress 0%)\n", + "0:01:46 Job 'cdse-j-26071311505440a49f8906851cc5f6c6': queued (progress 0%)\n", + "0:02:16 Job 'cdse-j-26071311505440a49f8906851cc5f6c6': running (progress N/A)\n", + "0:02:54 Job 'cdse-j-26071311505440a49f8906851cc5f6c6': running (progress N/A)\n", + "0:03:41 Job 'cdse-j-26071311505440a49f8906851cc5f6c6': finished (progress 100%)\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "job = bsi.create_job(\n", + " title=f'BSI calculation for {start_date} to {end_date}',\n", + " out_format=\"NetCDF\")\n", + "job.start_and_wait()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c7970c8b", + "metadata": {}, + "outputs": [], + "source": [ + "results = job.get_results()\n", + "results.download_files()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.14.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/algorithm_catalog/terravision/bsi/records/bsi.json b/algorithm_catalog/terravision/bsi/records/bsi.json new file mode 100644 index 00000000..74b3c052 --- /dev/null +++ b/algorithm_catalog/terravision/bsi/records/bsi.json @@ -0,0 +1,133 @@ +{ + "id": "bsi", + "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-13T00:00:00Z", + "updated": "2026-07-13T00:00:00Z", + "type": "service", + "title": "Bare Soil Index (BSI)", + "description": "Estimates the Bare Soil Index (BSI) for agricultural fields from Sentinel-2 satellite imagery.", + "keywords": [ + "Agriculture", + "Soils", + "Sentinel-2", + "Data Analysis and Visualization" + ], + "language": { + "code": "en-US", + "name": "English (United States)" + }, + "languages": [ + { + "code": "en-US", + "name": "English (United States)" + } + ], + "contacts": [ + { + "name": "Pratichhya Sharma", + "position": "Researcher", + "organization": "VITO", + "links": [ + { + "href": "https://www.vito.be/", + "title": "VITO Website", + "rel": "about", + "type": "text/html" + } + ], + "contactInstructions": "Contact via VITO", + "roles": [ + "principal investigator" + ] + } + ], + "themes": [ + { + "concepts": [ + { + "id": "AGRICULTURE" + }, + { + "id": "SOILS" + }, + { + "id": "REMOTE SENSING" + }, + { + "id": "Sentinel-2 MSI" + } + ], + "scheme": "https://gcmd.earthdata.nasa.gov/kms/concepts/concept_scheme/sciencekeywords" + } + ], + "formats": [ + { + "name": "NetCDF" + } + ], + "license": "MIT" + }, + "linkTemplates": [], + "links": [ + { + "rel": "application", + "type": "application/vnd.openeo+json;type=process", + "title": "openEO Process Definition", + "href": "https://raw.githubusercontent.com/ITA-TECNOLOGIA/Ard-Terravision/b848749026d3397cd89969e549712e21e992d4a7/src/main/python/utils/openeo_udp/bsi.json" + }, + { + "rel": "code", + "type": "text/html", + "title": "TERRAVISION source code", + "href": "https://github.com/ITA-TECNOLOGIA/Ard-Terravision" + }, + { + "rel": "service", + "type": "application/json", + "title": "CDSE openEO Federation", + "href": "https://openeofed.dataspace.copernicus.eu" + }, + { + "rel": "platform", + "type": "application/json", + "title": "CDSE openEO Federation processing backend", + "href": "../../../../platform_catalog/cdse_openeo_federation.json" + }, + { + "rel": "provider", + "type": "application/json", + "title": "TERRAVISION", + "href": "../../record.json" + }, + { + "rel": "notebook", + "type": "application/x-ipynb+json", + "title": "BSI example notebook", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/9d9a31eaa56afa5909e8293f132570fe18f14d4a/algorithm_catalog/terravision/bsi/notebooks/bsi.ipynb" + }, + { + "rel": "example-output", + "type": "application/x-netcdf", + "title": "BSI example output", + "href": "https://s3.waw3-1.cloudferro.com/apex-benchmarks-internal/HP96!tests_test_benchmarks.py__test_run_benchmark_bsi_!actual/openEO.nc" + }, + { + "rel": "webapp", + "type": "text/html", + "title": "OpenEO Web Editor", + "href": "https://editor.openeo.org/?wizard=UDP&wizard%7Eprocess=BSI&wizard%7EprocessUrl=https://raw.githubusercontent.com/ITA-TECNOLOGIA/Ard-Terravision/b848749026d3397cd89969e549712e21e992d4a7/src/main/python/utils/openeo_udp/bsi.json&server=https%3A%2F%2Fopeneofed.dataspace.copernicus.eu" + }, + { + "rel": "thumbnail", + "type": "image/png", + "title": "Thumbnail image", + "href": "https://raw.githubusercontent.com/ESA-APEx/apex_algorithms/7f1bc73312dbd291cf971a557dfe7f234af573fd/algorithm_catalog/terravision/bsi/records/thumbnail.png" + } + ] +} \ No newline at end of file diff --git a/algorithm_catalog/terravision/bsi/records/thumbnail.png b/algorithm_catalog/terravision/bsi/records/thumbnail.png new file mode 100644 index 00000000..29ebaa72 Binary files /dev/null and b/algorithm_catalog/terravision/bsi/records/thumbnail.png differ diff --git a/algorithm_catalog/terravision/record.json b/algorithm_catalog/terravision/record.json new file mode 100644 index 00000000..b286920b --- /dev/null +++ b/algorithm_catalog/terravision/record.json @@ -0,0 +1,52 @@ +{ + "id": "terravision", + "type": "Feature", + "conformsTo": [ + "https://www.opengis.net/spec/ogcapi-records-1/1.0/req/record-core" + ], + "properties": { + "created": "2026-07-13T09:00:00Z", + "updated": "2026-07-13T09:00:00Z", + "type": "algorithm_provider", + "title": "TERRAVISION", + "description": "Integrated Earth Observation based platform for novel services to enhance the raw-materials mining life cycle.", + "keywords": [], + "language": { + "code": "en-US", + "name": "English (United States)" + }, + "languages": [ + { + "code": "en-US", + "name": "English (United States)" + } + ], + "contacts": [], + "themes": [], + "license": "other", + "acl": { + "admin": ["@vito.be"] + } + }, + "linkTemplates": [], + "links": [ + { + "rel": "website", + "type": "text/html", + "title": "TERRAVISION", + "href": "https://terravision-project.eu/" + }, + { + "rel": "logo-light", + "type": "image/png", + "title": "Logo", + "href": "https://terravision-project.eu/wp-content/uploads/2024/02/terravision_positive_logo_other_color_variation_big.png" + }, + { + "rel": "logo-dark", + "type": "image/png", + "title": "Logo", + "href": "https://terravision-project.eu/wp-content/uploads/2024/02/terravision_positive_logo_other_color_variation_big.png" + } + ] +}