Skip to content

Add Brockmann Consult GmbH as provider and the EFAST UDP#303

Merged
JanssenBrm merged 18 commits intomainfrom
bc-efast
Feb 2, 2026
Merged

Add Brockmann Consult GmbH as provider and the EFAST UDP#303
JanssenBrm merged 18 commits intomainfrom
bc-efast

Conversation

@JanssenBrm
Copy link
Contributor

No description provided.

@algorithm-services-catalogue
Copy link

algorithm-services-catalogue bot commented Jan 9, 2026

🧹 Catalogue's Preview Site Cleanup

The preview site for this pull request has been cleaned up.

If you need a new preview, please reopen the PR or create a new one.

@JanssenBrm
Copy link
Contributor Author

Thank you @Hneuschmidt for the initial update. I already did the following minor fixes, which allows you to check the results through the preview feature:

  • To show the record in the catalogue, the record itself needs to be placed in a records folder.
  • The keywords of the service need to be aligned with the following list:
    "keywords": {
    "type": "array",
    "description": "The topic or topics of the APEx service. This represents a list of EarthData Taxonomy (https://gcmd.earthdata.nasa.gov/KeywordViewer).",
    "items": {
    "type": "string",
    "enum": [
    "Agriculture",
    "Land Use/Land Cover Classification",
    "Vegetation",
    "Normalized Difference Vegetation Index (NDVI)",
    "Leaf Area Index (LAI)",
    "Fraction of Absorbed Photosynthetic Active Radiation (fAPAR)",
    "Fraction of Vegetation Coverage (fCOVER)",
    "Energy Production/Use",
    "Wind Energy Production/Use",
    "Solar Energy Production/Use",
    "Natural Hazards",
    "Wildfires",
    "Sentinel-1",
    "Sentinel-2",
    "Sentinel-3",
    "Landsat-8",
    "Digital Elevation/Terrain Model (DEM)",
    "ECMWF ERA5",
    "Data Analysis and Visualization",
    "Statistical Applications"
    ]
    },
    . This list is based on the predefined EarthData taxonomy. I have updated the keywords accordingly in fc7258a#diff-fb05d03016cdf2ae882094bc5dffd00368c6802f6eb6d78d185b99956c16fabdR18-R21, but feel free to review it.

In general, I would like to suggest the following changes to enhance the integration in the APEx Algorithm Catalogue:

Feel free to reach out if you need any additional support! Happy to help!

@Hneuschmidt
Copy link
Contributor

Dear Bram, I have created a new pull request addressing your comments (#306 ). I was not sure how to add changes on top of yours in this PR, that's why there is a new one.

@JanssenBrm
Copy link
Contributor Author

Thank you for the changes @Hneuschmidt, much appreciated! Some feedback:

  • The description field is now updated, but strangely rendered. I have asked our dev to have a look at it the reason. In any case, it is rendered using markdown, but it should work with the provided text. However, as it is markdown, you could also improve the rendering a bit more, as I noticed you are using links. As they are not defined as markdown links, they will just be formatted as plain text. Making them markdown links allows users to click on them. It is just a minor suggestion.
  • Regarding the notebook, feel free to use the application/x-ipynb+json mime-type. I have created an issue to make this more formal (http://github.com/ESA-APEx/apex_algorithms/issues/307). I did experience a couple of issues when executing the notebook myself (using the Jupyterlite link that is used on the catalogue):
    • The notebook did not contain any instructions to install some of the core libraries, it might be useful include an install statement such as %pip install openeo contextily
    • I got an error on the generation of the maps (OSError: image file is truncated) in the beginning of the notebook.
    • I got an error when trying to download the files (might be a version mismatch of the used openeo client)

File :27
ndvi_job.get_results().download_file(ndvi_cube_pathfrom IPython.display import Image, display)
^
SyntaxError: invalid syntax. Perhaps you forgot a comma?

@Hneuschmidt
Copy link
Contributor

Dear @JanssenBrm,

Thank you for the review. The notebook needs a few small updates in general, I'll make sure to integrate your comments in that update and report back when it is done.

@JanssenBrm
Copy link
Contributor Author

Thanks @Hneuschmidt! In the meantime, I also got the feedback that the current description of the UDP contains an indentation that is causing the text to be displayed as a code block (https://www.jetbrains.com/help/hub/markdown-syntax.html#indented-code-blocks). Could you have a look at reformatting the description field of the UDP?

@Hneuschmidt
Copy link
Contributor

Dear @JanssenBrm , the notebook has been fixed and dependencies included on the process graph repo.
The notebook is quite heavy and relies on dask, so I don't expect it to run correctly on jupyterlite. Furthermore, the issue you encountered with plotting the spatial extend does not reproduce on my local jupyter server, it may also be related to Jupyterlite.

I suggest we add reduced version of the notebook that works with jupyterlite.

The indents in the UDP description are removed and it now renders correctly in the preview.

From my perspective, the remaining tasks are as follows:

  1. Create a reduced version of the example notebook to support jupyterlite
  2. Correctly attribute DHI

Anything else?

@JanssenBrm
Copy link
Contributor Author

JanssenBrm commented Jan 21, 2026

Thank you for the attributions @Hneuschmidt. Indeed, we can summarize it using the following todo:

  • Create a reduced version of the example notebook to support jupyterlite
  • Link the new example notebook to the record and remove the current notebook relationship.
  • Correctly attribute DHI
  • Add a thumbnail image

BTW - the attribution for DHI is pretty straight forward as you will just need to move the file to the DHI folder.

@Hneuschmidt
Copy link
Contributor

Dear @JanssenBrm all the TODOs should now be complete, with the following caveats:

  • The new notebook relies on JupyterGIS which could work with jupyterlite but doesn't in our deployment, see my recent email
  • I added the thumbnail link in the same manner as the other thumbnail links I see in the repository (with reference to refs/heads/main on this repository) so the thumbnail will not show up until it is merged to main.
    Is is possible to specify a relative link, like for the records?

@Hneuschmidt
Copy link
Contributor

Hneuschmidt commented Jan 27, 2026

I have left BC information as algorithm provider, even though it is not used anymore. Is there a way to attribute BC's work on this implementation in some way? Currently, my name appears as "implementor", so that we can be contacted in case someone has technical questions regarding the implementation. In addition, would it be possible to add a card "Implemented by" on the right, where "Powered by" and "Provided By" are already present?

@JanssenBrm
Copy link
Contributor Author

Thank you for the feedback @Hneuschmidt.

  • Regarding the notebook, I have updated our JupyterLite environment to a kernel that allows us to pre-install a couple of packages, so the JupyterGIS package should now be available. I have tested the notebook, and it is successfully executing now. You can actually delete the pip install cell as it is currently installed on the JupyterLite environment.
  • To support the usage of relative thumbnails, I have created Add support for relative paths apex-algorithms-catalogue-web#72. I have also downscaled the current thumbnail as it is quite large (6MB, 2000px).
  • Regarding the "implemented by" I'm not sure if this would cause confusion, as we have always stated that the IP remains with the algorithm PI (in this case, DHI). However, what you could do is to include in the description a markdown callout in the UDP description that states that this toolbox was ported by Brockmann in the context of APEx. This would provide a bit more context and more visibility. Adding this to the UDP description, this would make it visible in all of the openEO-compatible tooling.

To be honest, for me, the record is ready-to-go. Let me know if you still want to adapt the notebook and/or UDP description before merging.

@Hneuschmidt
Copy link
Contributor

Hneuschmidt commented Jan 28, 2026

I have removed the pip cell in the notebook. My understanding is that the UDP description is loaded dynamically on loading to the page, so if I update the description, it should be reflected on the page, even after merging the record?

If this is the case, the record can be merged.

@JanssenBrm
Copy link
Contributor Author

The pages are pre-rendered as they are quite static. This means that we load the UDP description on the deployment of the algorithm catalogue, so any changes after this deployment will require another trigger on our side. So it would be great if the change can be done before merging this record, but we can always trigger an update. Let me know how you would like to continue.

@Hneuschmidt
Copy link
Contributor

Okay, in that case please wait until I have updated the UDP description, I will let you know once this is complete.

@Hneuschmidt
Copy link
Contributor

@JanssenBrm I have updated the process graph to include an additional parameter (temporal_score_stddev). The example notebook is updated accordingly.

From my point of view, the record is complete and can be integrated

@JanssenBrm JanssenBrm merged commit 3bac431 into main Feb 2, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants