Skip to content

Malta #31

@merretbuurman

Description

@merretbuurman

This is a template to structure the integration of the use cases' analyses into AquaINFRA's virtual research environment.
Please copy this template and assign all those who should be involved using the "Assignees" - feature on the right, for example, any developers or use case members from your side.

And please use the comment section below. No mailing will be necessary and the entire communication is in one place. Individual persons can be pinged using, for instance, @MarkusKonk

Description

  • Rather a technical than a thematic description
  • How to run the analysis?
  • Which programming languages are used?
  • How does the workflow look like?
  • Which functions are used and how are they connected?
  • Anything else needed to run the analysis?

Malta use case will have two main steps (plus maybe visualisation):

  1. SEAWAT groundwater model (FORTRAN?? C?? compiled, Joel already dockerized, but so far no user parameters possible). Or was this called ModFlow? What is ModFlow? What is iMod?
  2. mitgcm model (FORTRAN, compiled, Joel will attempt to dockerize), probably including post-processing so that users receive NetCDF or similar "readable" files instead of cryptic binary mitgcm output files?

@ Sarah, maybe you can explain a little bit what the steps do (not too much into water details), and what are the inputs and outputs (again, not too much into water details, but rather technical: Are inputs/outputs files (and which formats) or numbers or ... ?

During our meeting on 5 June 2025 we decided to go for dockerizing both steps. Dockerized model will have less performance than non-dockerized, as we cannot use OpenMPI etc., but if we reduce spatial and temporal resolution and timespan, it will be ok for a demo.

Compilation: I think we agreed to start with a pre-compiled model. Whether we'll try to provide compilation-on-request, let's see (need to check security aspects, but if we do it inside a container and strictly restrict what users can pass as input, maybe it can be ok. Tbd).

Status and next steps

Currently the docker image for SEAWAT fails to build, some file is missing in the repo! @ Sarah @ Joel

  • Next meeting: Thu 26 June, 11 AM CEST in IGB's AquaINFRA zoom channel
  • Next meeting: Wed 16 Juli, 11 AM CEST in Google Meet channel provided by Joel
  • Sarah and Joel to be added to this repo and assigned to this issue
  • TODOs until then, mitgcm side (let's see how far we get):
    • Joel: Try dockerize mitgcm, simple case.
    • Merret: Provide Sarah+Joel with GitHub repo that contains the work done with Savitri (mitgcm fork and postprocessing repo)
  • TODO until then, SEAWAT side (let's see how far we get)
    • Sarah: Provide Merret with GitHub repo with the SEAWAT work (Joel's Dockerfile, ...)
    • Merret to commit her changes to the Dockerfile, so Joel can then add user params.
    • Sarah/Joel to update repo so that the Docker image build does not fail anymore
    • Merret to commit the pygeoapi python stuff to the repo too
    • Sarah/Joel: to work on user parameters (so users can change what happens in SEAWAT)
    • Joel to include those user params in the entrypoint/dockerfile (ask Merret in case of questions)
    • Sarah/Joel: To somehow make the example run quicker for testing (so far takes 2.5 - 3 hrs for one test run...)
    • Sarah/Joel: Would it be possible to write the outputs that you want the user to receive into a directory called "/out" inside the container? We can use "/app/malta_simulation", but if we use "/out" we can reuse standard code which we've been using in all the use cases so far.
    • Merret to add the user params to the process
    • Sarah/Joel to test these

Done

  • On May 2nd, Joel sent the Dockerfile:

The Docker image for the Malta Ground Water Model is found here: [...]
Once the Docker image is setup, one needs to:
cd /app/SCRIPTS
./run_model.sh
The results appear in /app/malta_simulation

  • On May 23rd, Merret modified so that the run_model.sh gets run from the entrypoint, and added the whole thing to the AquaINFRA server as a first demo version:

[...] I already put the current version on the server, to test out a few things, and also to show you how this will look eventually. I had to adapt the Dockerfile a little to add a CMD/ENTRYPOINT that our server can run, and I added a python file (to allow our server calling the docker) and a JSON file (containing the descriptions of the model and the parameters). If you want to try it out, see below. But running it on our dev server takes between 2 hrs and 3.5 hrs, so there is no quick testing

URLs

URL to input datasets: ???
URL to GitHub:

Commands for running R/Python scripts

Commands for running Docker commands:

cURL Commands for running OGC API Processes:

Checklist

  • Assign all involved people:
    • Savitri
    • Sarah
    • Merret
    • Joel
    • Markus
    • Quim??
  • Input data is identified and/or accessible via DDAS
    • Input data is made accessible under an open license
  • Analysis code is available on GitHub
    • Analysis code is made accessible under an open license
    • Dependency's license is verified - are we allowed to provide this as a service?
      • SEAWAT/iMOD/MOFLOW dependency (Deltares or USGS?)
      • MITgcm dependency
  • Workflow is sketched (see Oulu presentation by Sarah - maybe extend with file formats / user params)
  • Analysis is split into reusable functions
    • Input parameters are identified
    • functions follow input - processing - output - logic
    • input data can be passes via URL
    • output data is stored in file, e.g., csv, json etc.
  • Reusable functions are saved in separate files
  • Runtime, libraries, and library versions identified
  • R commands are added to README
  • Analysis is dockerized
  • Docker commands are added to README
  • OGC API Processes created locally
    • python scripts created
    • titles and descriptions for input parameters added to json
  • OGC API Processes deployed on server
  • Tests successful
  • Galaxy tool created locally
  • Galaxy tool deployed on server
  • Tests successful
  • Workflow is complete

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions