{"id":37735527,"url":"https://github.com/crim-ca/weaver","last_synced_at":"2026-01-16T14:00:35.921Z","repository":{"id":34351190,"uuid":"173996994","full_name":"crim-ca/weaver","owner":"crim-ca","description":"Weaver: Workflow Execution Management Service (EMS); Application, Deployment and Execution Service (ADES); OGC API - Processes; WPS; CWL Application Package","archived":false,"fork":false,"pushed_at":"2026-01-13T13:27:07.000Z","size":101737,"stargazers_count":28,"open_issues_count":132,"forks_count":6,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-01-13T16:24:23.897Z","etag":null,"topics":["ades","common-workflow-language","cwl","ems","ogc","ogc-api-processes","remote-execution","web-application","web-processing-service","workflow","wps"],"latest_commit_sha":null,"homepage":"https://pavics-weaver.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crim-ca.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null,"zenodo":".zenodo.json","notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-03-05T18:11:42.000Z","updated_at":"2026-01-09T23:22:18.000Z","dependencies_parsed_at":"2023-09-25T01:51:22.083Z","dependency_job_id":"db61e284-91a1-47ed-9222-a804d5d65664","html_url":"https://github.com/crim-ca/weaver","commit_stats":{"total_commits":4362,"total_committers":26,"mean_commits":"167.76923076923077","dds":0.4401650618982118,"last_synced_commit":"3a6cc5877950ed651daa779458d151d5adbb4330"},"previous_names":[],"tags_count":111,"template":false,"template_full_name":null,"purl":"pkg:github/crim-ca/weaver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crim-ca%2Fweaver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crim-ca%2Fweaver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crim-ca%2Fweaver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crim-ca%2Fweaver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crim-ca","download_url":"https://codeload.github.com/crim-ca/weaver/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crim-ca%2Fweaver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28479072,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ades","common-workflow-language","cwl","ems","ogc","ogc-api-processes","remote-execution","web-application","web-processing-service","workflow","wps"],"created_at":"2026-01-16T14:00:23.951Z","updated_at":"2026-01-16T14:00:35.913Z","avatar_url":"https://github.com/crim-ca.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"=============================================\nWeaver\n=============================================\n\n\\| `Summary`_\n\\| `Features`_\n\\| `Links`_\n\\| `Installation`_\n\\| `Configuration`_\n\\| `Documentation`_\n\\| `Extra Details \u0026 Sponsors`_\n\\|\n\n**Implementations**\n\n* |ogc-api-proc-long|\n    - |ogc-api-proc-part1-v1|_\n    - |ogc-api-proc-part1-v2|_\n    - |ogc-api-proc-part2|_\n    - |ogc-api-proc-part3|_\n    - |ogc-api-proc-part4|_ (including Provenance)\n* |wps-long|\n* |esgf| processes\n* |cwl-long| for |ogc-apppkg|_\n* |w3c-prov|_ for provenance metadata tracking through |ogc-api-proc| and |cwl|\n* |jupyter-nb-app|_ deployment as |ogc-apppkg|_\n* |ems-long| for dispatching distributed workflow processing\n* |ades-long| for processing close to the data\n\nWeaver (the nest-builder)\n  *Weaver birds build exquisite and elaborate nest structures that are a rival to any human feat of engineering.\n  Some of these nests are the largest structures to be built by birds.*\n  [`Eden \u003chttp://web.archive.org/web/20240416100924/https://eden.uktv.co.uk/animals/birds/article/weaver-birds/\u003e`_].\n\n  *Although weavers are named for their elaborately woven nests, some are notable for their selective parasitic\n  nesting habits instead.*\n  [`Wikipedia \u003chttps://en.wikipedia.org/wiki/Ploceidae\u003e`_]\n\n`Weaver` is an OGC-API flavored |ems| that allows the execution of workflows chaining various\napplications and |wps| inputs and outputs. Remote execution is deferred by the `EMS` to one or many\n|ades| or remote service providers, and employs |cwl-long| configurations to define an |ogc-apppkg|_ deployed\nfor each process.\n\n\n.. start-badges\n\n.. list-table::\n    :stub-columns: 1\n    :widths: 20,80\n\n    * - dependencies\n      - | |py_ver| |deps| |pyup|\n    * - license\n      - | |license| |license_scan|\n    * - citation\n      - | |citation-zenodo| |citation-cff|\n    * - build status\n      - | |readthedocs_build_status| |docker_build_mode| |docker_build_status|\n    * - tests status\n      - | |github_latest| |github_tagged| |coverage| |codacy|\n    * - releases\n      - | |version| |commits-since| |docker_image|\n\n.. |py_ver| image:: https://img.shields.io/badge/python-3.10%2B-blue.svg?logo=python\n    :alt: Requires Python 3.10+\n    :target: https://www.python.org/getit\n\n.. |commits-since| image:: https://img.shields.io/github/commits-since/crim-ca/weaver/6.8.1.svg?logo=github\n    :alt: Commits since latest release\n    :target: https://github.com/crim-ca/weaver/compare/6.8.1...master\n\n.. |version| image:: https://img.shields.io/badge/latest%20version-6.8.1-blue?logo=github\n    :alt: Latest Tagged Version\n    :target: https://github.com/crim-ca/weaver/tree/6.8.1\n\n.. |deps| image:: https://img.shields.io/librariesio/github/crim-ca/weaver?logo=librariesdotio\u0026logoColor=white\n    :alt: Libraries.io Dependencies Status\n    :target: https://libraries.io/github/crim-ca/weaver\n\n.. |pyup| image:: https://pyup.io/repos/github/crim-ca/weaver/shield.svg?logo=pyup\n    :alt: PyUp Dependencies Status\n    :target: https://pyup.io/account/repos/github/crim-ca/weaver/\n\n.. |github_latest| image:: https://img.shields.io/github/actions/workflow/status/crim-ca/weaver/tests.yml?label=master\u0026branch=master\u0026logo=github\n    :alt: Github Actions CI Build Status (master branch)\n    :target: https://github.com/crim-ca/weaver/actions?query=workflow%3ATests+branch%3Amaster\n\n.. |github_tagged| image:: https://img.shields.io/github/actions/workflow/status/crim-ca/weaver/tests.yml?label=6.8.1\u0026branch=6.8.1\u0026logo=github\n    :alt: Github Actions CI Build Status (latest tag)\n    :target: https://github.com/crim-ca/weaver/actions?query=workflow%3ATests+branch%3A6.8.1\n\n.. |readthedocs_build_status| image:: https://img.shields.io/readthedocs/pavics-weaver?logo=readthedocs\n    :alt: ReadTheDocs Build Status (master branch)\n    :target: `ReadTheDocs`_\n\n.. |docker_build_mode| image:: https://img.shields.io/docker/automated/pavics/weaver.svg?label=build\u0026logo=docker\n    :alt: Docker Build Mode (latest version)\n    :target: https://hub.docker.com/r/pavics/weaver/tags\n\n.. below shield will either indicate the targeted version or 'tag not found'\n.. since docker tags are pushed following manual builds by CI, they are not automatic and no build artifact exists\n.. |docker_build_status| image:: https://img.shields.io/docker/v/pavics/weaver/6.8.1?label=tag\u0026logo=docker\n    :alt: Docker Build Status (latest version)\n    :target: https://hub.docker.com/r/pavics/weaver/tags\n\n.. |docker_image| image:: https://img.shields.io/badge/docker-pavics%2Fweaver-blue?logo=docker\n    :alt: Docker Image\n    :target: https://hub.docker.com/r/pavics/weaver/tags\n\n.. |coverage| image:: https://img.shields.io/codecov/c/gh/crim-ca/weaver.svg?label=coverage\u0026logo=codecov\n    :alt: Code Coverage\n    :target: https://codecov.io/gh/crim-ca/weaver\n\n.. |codacy| image:: https://app.codacy.com/project/badge/Grade/2b340010b41b4401acc9618a437a43b8\n    :alt: Codacy Badge\n    :target: https://app.codacy.com/gh/crim-ca/weaver/dashboard\n\n.. |license| image:: https://img.shields.io/github/license/crim-ca/weaver.svg#\n    :target: https://github.com/crim-ca/weaver/blob/master/LICENSE.txt\n    :alt: GitHub License\n\n.. |license_scan| image:: https://app.fossa.com/api/projects/git%2Bgithub.com%2Fcrim-ca%2Fweaver.svg?type=shield\u0026issueType=license\n    :target: https://app.fossa.com/projects/git%2Bgithub.com%2Fcrim-ca%2Fweaver?ref=badge_shield\u0026issueType=license\n    :alt: FOSSA Status\n\n.. |citation-zenodo| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.14210717.svg#\n    :alt: Zenodo DOI\n    :target: https://zenodo.org/doi/10.5281/zenodo.14210717\n\n.. |citation-cff| image:: https://img.shields.io/badge/citation-cff-blue\n    :alt: CFF\n    :target: https://github.com/crim-ca/weaver/blob/master/CITATION.cff\n\n.. end-badges\n\n----------------\nSummary\n----------------\n\n`Weaver` is primarily an |ems| that allows the execution of workflows chaining various\napplications and |wps| inputs and outputs. Remote execution of each process in a workflow\nchain is dispatched by the *EMS* to one or many registered |ades| by\nensuring the transfer of files accordingly between instances when located across multiple remote locations.\n\n`Weaver` can also accomplish the `ADES` role in order to perform application deployment at the data source using\nthe application definition provided by |cwl-long| configuration. It can then directly execute\na registered process |ogc-apppkg|_ with received inputs from a WPS request to expose output results for a\nfollowing `ADES` in a `EMS` workflow execution chain.\n\n`Weaver` **extends** |ogc-api-proc|_ by providing additional functionalities such as more detailed job logs\nendpoints, adding more process management and search request options than required by the standard, and supporting\n*remote providers* registration for dynamic process definitions, to name a few.\nBecause of this, not all features offered in `Weaver` are guaranteed to be applicable on other similarly\nbehaving `ADES` and/or `EMS` instances. The reference specification is tracked to preserve the minimal conformance\nrequirements and provide feedback to |ogc-long|_ (OGC) in this effect.\n\n`Weaver` can be launched either as an `EMS`, an `ADES` or an `HYBRID` of both according to its configuration.\nFor more details, see `Configuration`_ and `Documentation`_ sections.\n\n----------------\nFeatures\n----------------\n\nFollowing videos present some of the features and potential capabilities of servicing and executing processes\noffered by |ades| and |ems| instances like `Weaver`.\n\n.. list-table::\n    :stub-columns: 1\n    :widths: 20,80\n\n    * - **Keywords**\n      - |kw01| |kw02| |kw03| |kw04| |kw05| |kw06| |kw07| |kw08| |kw09| |kw10| |kw11| |kw12|\n\n.. |kw01| image:: https://img.shields.io/badge/Software%20Architecture-blue\n   :alt: Software Architecture\n.. |kw02| image:: https://img.shields.io/badge/Cloud%20Computing-blue\n   :alt: Cloud Computing\n.. |kw03| image:: https://img.shields.io/badge/Earth%20Observation-blue\n   :alt: Earth Observation\n.. |kw04| image:: https://img.shields.io/badge/Big%20Data-blue\n   :alt: Big Data\n.. |kw05| image:: https://img.shields.io/badge/Satellite%20Data-blue\n   :alt: Satellite Data\n.. |kw06| image:: https://img.shields.io/badge/Data%20Processing-blue\n   :alt: Data Processing\n.. |kw07| image:: https://img.shields.io/badge/Workflow%20Processing-blue\n   :alt: Workflow Processing\n.. |kw08| image:: https://img.shields.io/badge/Climate%20Science-blue\n   :alt: Climate Science\n.. |kw09| image:: https://img.shields.io/badge/Climate%20Services-blue\n   :alt: Climate Services\n.. |kw10| image:: https://img.shields.io/badge/Application%20Package-blue\n   :alt: Application Package\n.. |kw11| image:: https://img.shields.io/badge/Machine%20Learning-blue\n   :alt: Machine Learning\n.. |kw12| image:: https://img.shields.io/badge/Open%20Science-blue\n   :alt: Open Science\n\n.. remove-pypi-start\n\nApplications\n~~~~~~~~~~~~~~~~\n\nThe video shares the fundamental ideas behind the architecture, illustrates how application stores for Earth\nObservation data processing can evolve, and illustrates the advantages with applications based on machine learning.\n\n.. Tag iframe renders the embedded video in ReadTheDocs/Sphinx generated build,\n   but it is filtered out by GitHub (https://github.github.com/gfm/#disallowed-raw-html-extension-).\n   The following div displays instead video thumbnail with an external link only for GitHub.\n   When iframe properly renders, the image/link div is masked under it to avoid seeing two \"video displays\".\n.. raw:: html\n\n    \u003cdiv style=\"position: relative; padding-bottom: 21.5%; height: 0; overflow: hidden; height: auto; max-width: 50em;\"\n    \u003e\n        \u003ciframe src=\"https://www.youtube.com/embed/no3REyoxE38\" frameborder=\"0\" allowfullscreen\n                alt=\"Watch the Application video: http://www.youtube.com/watch?v=v=no3REyoxE3\"\n                style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%;\"\u003e\n\n        \u003c/iframe\u003e\n        \u003cdiv style=\"max-width: 50em;\"\u003e \u003c!-- alternate view for GitHub --\u003e\n            \u003cb\u003eWatch the Application video on YouTube\u003c/b\u003e\n            \u003cbr\u003e\n            \u003ca href=\"https://www.youtube.com/watch?v=no3REyoxE38\"\u003e\n                \u003cimg src=\"https://img.youtube.com/vi/no3REyoxE38/mqdefault.jpg\"\n                     alt=\"Watch the Application video: http://www.youtube.com/watch?v=v=no3REyoxE3\"\n                /\u003e\n            \u003c/a\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbr\u003e\n\n.. note::\n    See section `Extra Details \u0026 Sponsors`_ for further application examples and concrete demonstrations.\n\n.. remove-pypi-end\n\n.. remove-pypi-start\n\nPlatform\n~~~~~~~~~~~~~~~~\n\nThe video shares the fundamental ideas behind the architecture, illustrates how platform managers can benefit from\napplication stores, and shows the potential for multidisciplinary workflows in thematic platforms.\n\n.. see other video comment\n.. raw:: html\n\n    \u003cdiv style=\"position: relative; padding-bottom: 21.5%; height: 0; overflow: hidden; height: auto; max-width: 50em;\"\n    \u003e\n        \u003ciframe src=\"https://www.youtube.com/embed/QkdDFGEfIAY\" frameborder=\"0\" allowfullscreen\n                alt=\"Watch the Platform video: http://www.youtube.com/watch?v=v=QkdDFGEfIAY\"\n                style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%;\"\u003e\n        \u003c/iframe\u003e\n        \u003cdiv style=\"max-width: 50em;\"\u003e \u003c!-- alternate view for GitHub --\u003e\n            \u003cb\u003eWatch the Platform video on YouTube\u003c/b\u003e\n            \u003cbr\u003e\n            \u003ca href=\"https://www.youtube.com/watch?v=QkdDFGEfIAY\"\u003e\n                \u003cimg src=\"https://img.youtube.com/vi/QkdDFGEfIAY/mqdefault.jpg\"\n                     alt=\"Watch the Platform video: http://www.youtube.com/watch?v=v=QkdDFGEfIAY\"\n                /\u003e\n            \u003c/a\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cbr\u003e\n\n.. remove-pypi-end\n\n----------------\nLinks\n----------------\n\nDocker image repositories:\n\n.. list-table::\n    :header-rows: 1\n\n    * - Name\n      - Reference\n      - Access\n    * - DockerHub\n      - `pavics/weaver \u003chttps://hub.docker.com/r/pavics/weaver\u003e`_\n      - |public|\n    * - CRIM registry\n      - `ogc/weaver \u003chttps://docker-registry.crim.ca/repositories/3463\u003e`_\n      - |restricted|\n    * - CRIM OGC Processes\n      - `ogc-public \u003chttps://docker-registry.crim.ca/namespaces/39\u003e`_\n      - |restricted|\n\n.. |public| image:: https://img.shields.io/badge/public-green\n.. |restricted| image:: https://img.shields.io/badge/restricted-orange\n\nFor a prebuilt image, pull as follows:\n\n.. code-block:: shell\n\n    docker pull pavics/weaver:6.8.1\n\nFor convenience, following tags are also available:\n\n- ``weaver:6.8.1-manager``: `Weaver` image that will run the API for WPS process and job management.\n- ``weaver:6.8.1-worker``: `Weaver` image that will run the process job runner application.\n\nFollowing links correspond to existing servers with `Weaver` configured as *EMS* or *ADES* instances respectively.\n\n.. list-table::\n    :widths: 15,35,10,50\n    :header-rows: 1\n\n    * - Institution \u0026 Partners\n      - Project \u0026 Description\n      - Version\n      - Entrypoint\n    * - `CRIM`_\n      - `DACCS`_ / |ogc|_ - *Hirondelle* Development Instance\n      - |crim-hirondelle-weaver-version|\n      - `https://hirondelle.crim.ca/weaver \u003chttps://hirondelle.crim.ca/weaver\u003e`_\n    * - `CRIM`_\n      - Demonstration Services Portal\n      - |crim-services-weaver-version|\n      - `https://services.crim.ca/weaver \u003chttps://services.crim.ca/weaver\u003e`_\n    * - `Ouranos`_\n      - `PAVICS`_ Server\n      - |ouranos-pavics-weaver-version|\n      - `https://pavics.ouranos.ca/weaver/ \u003chttps://pavics.ouranos.ca/weaver/\u003e`_\n    * - |UofT|_\n      - |marble|_ - `RedOak`_ Instance\n      - |UofT-RedOak-weaver-version|\n      - `https://redoak.cs.toronto.edu/weaver/ \u003chttps://redoak.cs.toronto.edu/weaver/\u003e`_\n    * - `CRIM`_, `ECCC`_, `CLIMAtlantic`_, `Ouranos`_, `PCIC`_, `PCC`_\n      - `ClimateData.ca`_ / `DonneesClimatiques.ca`_ Portal\n      - |climate-data-weaver-version|\n      - `https://pavics.climatedata.ca/ \u003chttps://pavics.climatedata.ca/\u003e`_\n\n.. |crim-hirondelle-weaver-version| image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fhirondelle.crim.ca%2Fweaver%2Fversions\u0026query=%24.versions%5B0%5D.version\u0026label=version\n.. |crim-services-weaver-version| image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fservices.crim.ca%2Fweaver%2Fversions\u0026query=%24.versions%5B0%5D.version\u0026label=version\n.. |ouranos-pavics-weaver-version| image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpavics.ouranos.ca%2Fweaver%2Fversions\u0026query=%24.versions%5B0%5D.version\u0026label=version\n.. |UofT-RedOak-weaver-version| image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fredoak.cs.toronto.edu%2Fweaver%2Fversions\u0026query=%24.versions[0].version\u0026label=version\n.. |climate-data-weaver-version| image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpavics.climatedata.ca%2Fversions\u0026query=%24.versions[0].version\u0026label=version\n\n.. note::\n    The test servers will **not** necessarily be up-to-date with the *latest* version.\n\n----------------\nInstallation\n----------------\n\nInstallation of `Weaver` from source can be performed instead of using the Docker containers.\n\n.. code-block:: sh\n\n    pip install https://github.com/crim.ca/weaver\n\nFor more details, please refer to the `Installation \u003chttps://pavics-weaver.readthedocs.io/en/latest/installation.html\u003e`_\nsection of the documentation.\n\n----------------\nConfiguration\n----------------\n\nAll configuration settings can be overridden using a ``weaver.ini`` file that will be picked during\ninstantiation of the application. An example of such file is provided here: `weaver.ini.example`_.\n\nSetting the operational mode of `Weaver` (`EMS`/`ADES`/`HYBRID`) is accomplished using the\n``weaver.configuration`` field of ``weaver.ini``. For more configuration details, please refer to Documentation_.\n\n.. _weaver.ini.example: ./config/weaver.ini.example\n\n----------------\nDocumentation\n----------------\n\nThe REST API documentation is auto-generated and served under any running `Weaver` application on route\n``{WEAVER_URL}/api/``. This documentation will correspond to the version of the executed `Weaver` application.\nFor the latest documentation, you can refer to the `OpenAPI Specification`_ served directly on `ReadTheDocs`_.\n\nFor the |ogc-api-proc|_ compliant Python and Shell clients, please refer to\nthe `Weaver CLI and Client \u003chttps://pavics-weaver.readthedocs.io/en/latest/cli.html\u003e`_ documentation.\n\nMore ample details about installation, configuration and usage are also provided on `ReadTheDocs`_.\nThese are generated from corresponding information provided in `docs`_ source directory.\n\n.. _ReadTheDocs: https://pavics-weaver.readthedocs.io\n.. _`OpenAPI Specification`: https://pavics-weaver.readthedocs.io/en/latest/api.html\n.. _docs: ./docs\n\n-------------------------\nExtra Details \u0026 Sponsors\n-------------------------\n\nThe project was initially developed upon *OGC Testbed-14 – ESA Sponsored Threads – Exploitation Platform* findings and\nimprovements following from previous |ogc-tb13-cloud-er|_ architecture designs.\nIt was also built upon sponsorship from the *U.S. Department of Energy* to support common\nAPI of the |esgf|. The findings are reported on the |ogc-tb14|_ thread, and more\nexplicitly in the |ogc-tb14-platform-er|_.\n\nThe project has been employed for |ogc-tb15-ml|_ to demonstrate the use of Machine Learning interactions with OGC web\nstandards in the context of natural resources applications. The advancements are reported through the |ogc-tb15-ml-er|_.\nThe combination of |cwl-long| with the |ogc-api-proc|_ standard in the context of Machine Learning and Geomatics\napplications deployment was also presented at the |cwl-2021-conf|_ conference, with multiple example use case\ndemonstrating pretrained model inference for lake and river feature classification over satellite imagery,\nland-cover mapping of raster imagery, and climate analysis leveraging preexisting |wps-long| servers.\nThe video recording of these demonstrations is available under the blog post |cwl-2021-video|_.\n\nDevelopments are continued in |ogc-tb16|_ to improve methodologies in order to provide better\ninteroperable geospatial data processing in the areas of Earth Observation Application Packages.\nFindings and recommendations are presented in the |ogc-tb16-data-access-proc-er|_.\n\nVideos and more functionalities were introduced in `Weaver` following |ogc-eo-apps-pilot|_.\nCorresponding developments are reported in the |ogc-eo-apps-pilot-er|_. See `Features`_ for demonstrations.\n\n`Weaver` has been used to participate in interoperability testing effort that lead to |ogc-best-practices-eo-apppkg|_\ntechnical report. This resulted, along with previous efforts, in the definition of |ogc-api-proc-part2|_ backed by\nvalidated test cases using |cwl-long| as the representation method for the deployment and execution of |ogc-apppkg|_\nclose to the data.\n\n`Weaver` is employed in the |ogc-ospd|_ initiative to demonstrate reusability, portability, and transparency\nin the context of open science in Earth Observation, using |ogc-apppkg|_ encoded as |cwl|_ for interoperability\nand distributed processing workflows. Its related developments and demonstrations were presented at\nthe |ogc-129th-mm|_ (2024, Montréal) and the |ESIP-2024|_ during the |ESIP-2024-panel|_.\nVideo recordings and related outcomes are available under the following links:\n\n- **Report**: |ogc-ospd-er|_\n- **Video**: |ogc-ospd-demo-video|_\n- **Video**: |ogc-ospd-crim-video|_\n- **Video**: ESIP presentation |ESIP-2024-presentation|_\n\n`Weaver` is employed in |ogc-tb20-gdc|_ to improve and work on the integration of multiple\ncommunity standards involved in workflow design, such as |cwl|_, `openEO`_, |ogc-api-proc-part3|_\nand |ogc-api-proc-part4|_, for processing of multidimensional data involved through *GeoDataCube* interactions.\nSupport of extended traceability and provenance metadata using |w3c-prov|_ over executed processing jobs has also\nbeen implemented during this effort to provide data lineage and better integrity, provenance and trust (IPT)\nof derived products resulting from processing workflows.\nOutcomes were presented during the |ogc-tb20-demo-days|_ and the |ogc-131st-mm|_ events.\nCorresponding reports are available online at the following locations:\n\n- |ogc-tb20-gdc-api-file-report|_\n- |ogc-tb20-gdc-prov-demo-report|_\n- |ogc-tb20-gdc-usage-test-report|_\n\n.. fixme: Add the OGC Testbed-20 report references when published (https://github.com/crim-ca/weaver/issues/812).\n\nThe project is furthermore developed through the |DACCS-long| (|DACCS-grant|_)\ninitiative and is employed by the `ClimateData.ca`_ / `DonneesClimatiques.ca`_ portal.\n\n`Weaver` is implemented in Python with the `Pyramid`_ web framework.\nIt is part of `PAVICS`_ and `Birdhouse`_ ecosystems and is available within the `birdhouse-deploy`_ server stack.\n\n.. NOTE: all references in this file must remain local (instead of imported from 'references.rst')\n..       to allow Github to directly referring to them from the repository HTML page.\n.. |cwl-long| replace:: `Common Workflow Language`_ (CWL)\n.. _`Common Workflow Language`: https://www.commonwl.org/\n.. |cwl| replace:: CWL\n.. _cwl: https://www.commonwl.org/\n.. |cwl-2021-conf| replace:: CWLcon 2021\n.. _cwl-2021-conf: https://cwl.discourse.group/c/cwlcon-2021/\n.. |cwl-2021-video| replace:: ML Processing Pipelines using CWL, Deployment in Context of Research Teams and OGC-API Integration\n.. _cwl-2021-video: https://cwl.discourse.group/t/ml-processing-pipelines-using-cwl-deployment-in-context-of-research-teams-and-ogc-api-integration/269\n.. _openEO: https://openeo.org/\n.. |jupyter-nb-app| replace:: Jupyter Notebook Applications\n.. _jupyter-nb-app: https://pavics-weaver.readthedocs.io/en/latest/package.html#jupyter-notebook-applications\n.. |esgf| replace:: `Earth System Grid Federation`_ (ESGF)\n.. _`Earth System Grid Federation`: https://esgf.llnl.gov/\n.. |ems| replace:: Execution Management Service\n.. _ems: https://docs.ogc.org/per/18-050r1.html#_crim\n.. |ems-long| replace:: |ems|_ (EMS)\n.. |ades| replace:: Application, Deployment and Execution Service\n.. _ades: https://docs.ogc.org/per/18-050r1.html#_application_deployment_and_execution_service\n.. |ades-long| replace:: |ades|_ (ADES)\n.. |wps| replace:: `Web Processing Services`\n.. _wps: https://www.ogc.org/standard/wps/\n.. |wps-long| replace:: |wps|_ (WPS)\n.. |ogc| replace:: OGC\n.. _ogc: https://www.ogc.org/\n.. |ogc-long| replace:: *Open Geospatial Consortium*\n.. _ogc-long: https://www.ogc.org/\n.. |ogc-api-proc| replace:: *OGC API - Processes*\n.. _ogc-api-proc: https://github.com/opengeospatial/ogcapi-processes\n.. |ogc-api-proc-long| replace:: |ogc-api-proc|_\n.. |ogc-api-proc-part1-v1| replace:: *OGC API - Processes - Part 1: Core (v1.0)*\n.. _ogc-api-proc-part1-v1: https://docs.ogc.org/is/18-062r2/18-062r2.html\n.. |ogc-api-proc-part1-v2| replace:: *OGC API - Processes - Part 1: Core (v2.0)*\n.. _ogc-api-proc-part1-v2: https://docs.ogc.org/DRAFTS/18-062r3.html\n.. |ogc-api-proc-part2| replace:: *OGC API - Processes - Part 2: Deploy, Replace, Undeploy (DRU)*\n.. _ogc-api-proc-part2: https://docs.ogc.org/DRAFTS/20-044.html\n.. |ogc-api-proc-part3| replace:: *OGC API - Processes - Part 3: Workflows and Chaining*\n.. _ogc-api-proc-part3: https://docs.ogc.org/DRAFTS/21-009.html\n.. |ogc-api-proc-part4| replace:: *OGC API - Processes - Part 4: Job Management*\n.. _ogc-api-proc-part4: https://docs.ogc.org/DRAFTS/24-051.html\n.. |ogc-tb13-cloud-er| replace:: *OGC Testbed-13 - Cloud Engineering Report*\n.. _ogc-tb13-cloud-er: https://docs.ogc.org/per/17-035.html\n.. |ogc-tb14| replace:: *OGC Testbed-14*\n.. _ogc-tb14: https://www.ogc.org/initiatives/testbed-14/\n.. |ogc-tb14-platform-er| replace:: *ADES \u0026 EMS Results and Best Practices Engineering Report*\n.. _ogc-tb14-platform-er: http://docs.opengeospatial.org/per/18-050r1.html\n.. |ogc-tb15-ml| replace:: *OGC Testbed-15 - Machine Learning Thread*\n.. _ogc-tb15-ml: https://www.ogc.org/initiatives/testbed-15/#MachineLearning\n.. |ogc-tb15-ml-er| replace:: *OGC Testbed-15: Machine Learning Engineering Report*\n.. _ogc-tb15-ml-er: http://docs.opengeospatial.org/per/19-027r2.html\n.. |ogc-tb16| replace:: *OGC Testbed-16*\n.. _ogc-tb16: https://www.ogc.org/initiatives/t-16/\n.. |ogc-tb16-data-access-proc-er| replace:: *OGC Testbed-16: Data Access and Processing Engineering Report*\n.. _ogc-tb16-data-access-proc-er: http://docs.opengeospatial.org/per/20-016.html\n.. |ogc-tb16-ipynb-er| replace:: *OGC Testbed-16: Earth Observation Application Packages with Jupyter Notebooks Engineering Report*\n.. _ogc-tb16-ipynb-er: http://docs.opengeospatial.org/per/20-035.html\n.. |ogc-tb20-gdc| replace:: *OGC Testbed-20 - GeoDataCubes*\n.. _ogc-tb20-gdc: https://www.ogc.org/initiatives/ogc-testbed-20/\n.. |ogc-tb20-demo-days| replace:: OGC Testbed-20 Demonstration Days\n.. _ogc-tb20-demo-days: https://www.ogc.org/event/t20-demo-days/\n.. |ogc-tb20-gdc-api-file-report| replace:: OGC Testbed 20 GeoDataCube (GDC) API Profile Report\n.. _ogc-tb20-gdc-api-file-report: https://docs.ogc.org/per/24-035.html\n.. |ogc-tb20-gdc-prov-demo-report| replace:: OGC Testbed 20 GDC Provenance Demonstration Report\n.. _ogc-tb20-gdc-prov-demo-report: https://docs.ogc.org/per/24-036.html\n.. |ogc-tb20-gdc-usage-test-report| replace:: OGC Testbed 20 GDC Usability Testing Report\n.. _ogc-tb20-gdc-usage-test-report: https://docs.ogc.org/per/24-037.html\n.. |ogc-ospd| replace:: *OGC Open Science Persistent Demonstrator*\n.. _ogc-ospd: https://www.ogc.org/initiatives/open-science/\n.. |ogc-ospd-demo-video| replace:: OGC Open Science Demonstrations - Part 1\n.. _ogc-ospd-demo-video: https://www.youtube.com/watch?v=CB_-Gn3eruM\n.. |ogc-ospd-crim-video| replace:: OGC OSPD CRIM Workflow Demonstration in Galaxy\n.. _ogc-ospd-crim-video: https://www.youtube.com/watch?v=68glSbzRIQI\n.. |ogc-ospd-er| replace:: OGC Open Science Persistent Demonstrator (OSPD) Report\n.. _ogc-ospd-er: http://docs.opengeospatial.org/per/24-022.html\n.. |ogc-eo-apps-pilot| replace:: *OGC Earth Observation Applications Pilot*\n.. _ogc-eo-apps-pilot: https://www.ogc.org/initiatives/eoa-pilot/\n.. |ogc-eo-apps-pilot-er| replace:: *OGC Earth Observation Applications Pilot: CRIM Engineering Report*\n.. _ogc-eo-apps-pilot-er: http://docs.opengeospatial.org/per/20-045.html\n.. |ogc-best-practices-eo-apppkg| replace:: *OGC Best Practice for Earth Observation Application Package*\n.. _ogc-best-practices-eo-apppkg: https://docs.ogc.org/bp/20-089r1.html\n.. |ogc-129th-mm| replace:: *OGC 129th Member's Meeting*\n.. _ogc-129th-mm: https://portal.ogc.org/meet/?p=default\u0026mid=95\n.. |ogc-131st-mm| replace:: *OGC 131st Member's Meeting*\n.. _ogc-131st-mm: https://events.ogc.org/131MM#/agenda?day=3\u0026lang=en\u0026sessionId=126498000002166220\n.. |ogc-apppkg| replace:: *OGC Application Package*\n.. _ogc-apppkg: https://github.com/opengeospatial/ogcapi-processes/blob/master/openapi/schemas/processes-dru/ogcapppkg.yaml\n.. |ESIP| replace:: *Earth Science Information Partners*\n.. _ESIP: https://www.esipfed.org/\n.. |ESIP-2024| replace:: *Earth Science Information Partners* (ESIP) 2024 Meeting\n.. _ESIP-2024: https://2024julyesipmeeting.sched.com/\n.. |ESIP-2024-panel| replace:: *Cross-Platform Interoperability for Scalable Computing in Open Science Analysis and Algorithm Development*\n.. _ESIP-2024-panel: https://2024julyesipmeeting.sched.com/\n.. |ESIP-2024-presentation| replace:: *Perspectives on the integration of OGC standards to improve interoperability of open science data processing workflows*\n.. _ESIP-2024-presentation: https://www.youtube.com/watch?v=7gqkdRuy2AE\u0026list=PL8X9E6I5_i8iIFrualb2PriPQoF52aIPh\u0026index=36\n.. _CRIM: https://crim.ca/\n.. _Ouranos: https://www.ouranos.ca/\n.. _PAVICS: https://pavics.ouranos.ca/index.html\n.. _Birdhouse: http://bird-house.github.io/\n.. _birdhouse-deploy: https://github.com/bird-house/birdhouse-deploy\n.. |DACCS-long| replace:: *Data Analytics for Canadian Climate Services*\n.. _DACCS: https://github.com/DACCS-Climate\n.. |DACCS-grant| replace:: DACCS\n.. _DACCS-grant: https://app.dimensions.ai/details/grant/grant.8105745\n.. _ClimateData.ca: https://ClimateData.ca\n.. _DonneesClimatiques.ca: https://DonneesClimatiques.ca\n.. |UofT| replace:: University of Toronto\n.. _UofT: https://utoronto.ca\n.. _RedOak: https://redoak.cs.toronto.edu/\n.. |marble| replace:: Marble Climate\n.. _marble: https://marbleclimate.com/\n.. |CLIMAtlantic| replace:: CLIMAtlantic\n.. _CLIMAtlantic: https://climatlantic.ca/\n.. |ECCC| replace:: Environment and Climate Change Canada (ECCC)\n.. _ECCC: https://www.canada.ca/en/environment-climate-change.html\n.. |PCIC| replace:: Pacific Climate Impacts Consortium (PCIC)\n.. _PCIC: https://www.pacificclimate.org/\n.. |PCC| replace:: Prairie Climate Centre (PCC)\n.. _PCC: https://prairieclimatecentre.ca/\n.. _Pyramid: http://www.pylonsproject.org\n.. |w3c-prov| replace:: W3C PROV\n.. _w3c-prov: https://www.w3.org/TR/prov-overview\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrim-ca%2Fweaver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrim-ca%2Fweaver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrim-ca%2Fweaver/lists"}