Skip to content

Add SEVIRI LST datareader#1836

Open
MWesselkamp wants to merge 2 commits intoecmwf:developfrom
MWesselkamp:seviri_datareader_rebased
Open

Add SEVIRI LST datareader#1836
MWesselkamp wants to merge 2 commits intoecmwf:developfrom
MWesselkamp:seviri_datareader_rebased

Conversation

@MWesselkamp
Copy link

@MWesselkamp MWesselkamp commented Feb 13, 2026

Description

This PR supersedes #1803 was based on main. This rebased version is now based on the latest develop as requested. Changes to 1803 include configuration files.
Changes to 1803:

  • updated configuration files

Note: The integration test test_train_multi_stream on the model directory currently fails.
The rest of the description follows 1803.

I implemented a custom datareader for the SEVIRI Level 2 land surface temperature product (LST). It works on on a gridded (lat lon) datastore of full Seviri images at hourly temporal resolution. The datastore is loaded with xarray during initialisation and lazily in the workers to avoid deadlocks caused by forked dataloaders.

The datareader extracts regions of interest from an image using indices that are stored in metadata files. It subsamples in time and space, e.g. here reduces hourly data to 6-hourly time steps. It loads normalisation statistics from external metadata files. It incorporates geoinfo (e.g. here DEM) from the datastore or returns empty geoinfo if not specified in the config.

This datareader is added to the MultiStreamSampler. A config used for finetuning for prognostic forecasting is added to configs/streams/.

I documented the datareader implementation with medium level of detail here: https://gitlab.jsc.fz-juelich.de/hedgedoc/s/LvbrmAWvf#

Issue Number

This is not linked to an issue.

Checklist before asking for review

  • I have performed a self-review of my code
  • My changes comply with basic sanity checks:
    • I have fixed formatting issues with ./scripts/actions.sh lint
    • I have run unit tests with ./scripts/actions.sh unit-test
    • I have documented my code and I have updated the docstrings.
    • I have added unit tests, if relevant
  • I have tried my changes with data and code:
    • I have run the integration tests with ./scripts/actions.sh integration-test
    • (bigger changes) I have run a full training and I have written in the comment the run_id(s): launch-slurm.py --time 60
    • (bigger changes and experiments) I have shared a hegdedoc in the github issue with all the configurations and runs for this experiments
  • I have informed and aligned with people impacted by my change:
    • for config changes: the MatterMost channels and/or a design doc
    • for changes of dependencies: the MatterMost software development channel

@@ -0,0 +1,343 @@
# (C) Copyright 2024 WeatherGenerator contributors.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The data reader should go into the extra packages, i.e. https://github.com/ecmwf/WeatherGenerator/tree/develop/packages/readers_extra

dataset = DataReaderAnemoi
case "fesom":
dataset = DataReaderFesom
case "msg_lst":
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove when the reader is in https://github.com/ecmwf/WeatherGenerator/tree/develop/packages/readers_extra

@@ -0,0 +1,36 @@
SEVIRI_LST :
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove from the PR. We need a separate repo for the configs and are in the process of creating it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants