NetCDF in QGIS: mit Expression die time range der Bänder einstellen

In QGIS wird eine NetCDF-Datei als Raster mit einem Band pro Zeitstempel geöffnet. In den Temporal Settings wird die Zeit leider nicht eingestellt, aber sie steht im Namen des Bands und kann mit einer Expression umgewandelt werden

Wenn ich eine NetCDF-Datei in QGIS als Raster öffne, dann bekomme ich ein Rasterlayer mit sehr vielen Bändern, ein Band pro Zeitstempel. Leider werden beim Öffnen die zeitlichen Einstellungen dieser Bänder nicht eingestellt, sodass man nicht einfach mit der Zeitsteuerung einzelne Zeitpunkte wählen oder eine Animation abspielen kann. Immerhin steht der Zeitstempel im Namen des Bands, allerdings in der Form time=1867128 (hours since 1800-01-01). Das reicht zum Glück aus, um in den Layereigenschaften unter „Zeitlich“ Anfang und Ende mithilfe einer Expression einzutragen (unter Konfiguration: „Fester Zeitraum je Kanal“).

Für den Anfang:

-- Epoche extrahieren und zu datetime umwandeln
to_datetime(
  right(
    regexp_substr(@band_name, 'hours since \\d{4}-\\d{2}-\\d{2}')
  , 10)
) 
-- Anzahl der Stunden hinzuaddieren
+
make_interval(
  hours:=to_int(
	regexp_substr(regexp_substr(@band_name, 'time=\\d+'), '\\d+')
)) 

Jetzt kann man aus der Tabelle ablesen, wie groß die Zeitschritte sind (z.B. 6 Stunden). Für „Ende“ können wir das entsprechende Intervall zu obiger Expression hinzuaddieren:

-- Vollständige Expression von oben
+ make_interval(hours:=6)