NetCDF Operators: Unterschied zwischen den Versionen
Aus BAWiki
imported>Schade Peter (+ Ausdünnen von NetCDF-Dateien entlang einer Dimension) |
(Die LinkTitles-Erweiterung hat automatisch Links zu anderen Seiten hinzugefügt (<a target="_blank" rel="nofollow noreferrer noopener" class="external free" href="https://github.com/bovender/LinkTitles">https://github.com/bovender/LinkTitles</a>).) |
||
(7 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 17: | Zeile 17: | ||
# Beispiel: ncrcat -h f1.nc f2.nc ... fn.nc result.nc (-h unterdrückt die Erzeugung bzw. Modifikation eines History-Attributs); | # Beispiel: ncrcat -h f1.nc f2.nc ... fn.nc result.nc (-h unterdrückt die Erzeugung bzw. Modifikation eines History-Attributs); | ||
# Mehr Information: [http://nco.sourceforge.net/nco.html#ncrcat-netCDF-Record-Concatenator ncrcat-netCDF-Record-Concatenator]. | # Mehr Information: [http://nco.sourceforge.net/nco.html#ncrcat-netCDF-Record-Concatenator ncrcat-netCDF-Record-Concatenator]. | ||
===Verketten mehrerer zeitlich aufeinanderfolgender [[NetCDF]]-Dateien=== | |||
* Ausgabezeitpunkte und -indices ermitteln aus [[UNTRIM|UnTRIM]]-sdr-Ausgabe, [[UNTRIM|UnTRIM]]-Steuerdatei und dem Header der [[NetCDF]]-Datei (ncdump -h) | |||
* Ggf. Dateien zuschneiden, sodass die Ausgabezeitpunkte kontinuierlich fortlaufen mit | |||
ncks -d nMesh2_data_time,min,max,[stride] in_file out_file | |||
* Zusammenfügen mit | |||
ncrcat in1_file in2_file out_file | |||
==== Typische Anwendung==== | |||
* Zusammenfügen synoptischer Modellergebnisse (Simulation + Folgelauf) | |||
* Voraussetzung ist, dass die Zeitvariable nMesh2_data_time als UNLIMITED dimensioniert ist. Dies ist nicht der Fall bei den aggregierten Daten, die mit [[NCAGGREGATE|ncaggregate]] erstellt worden sind. In diesem Fall muss in beiden Dateien die Dimension auf UNLIMITED gesetzt werden mit dem Befehl | |||
ncks -O --mk_rec_dmn nMesh2_data_time in_file out_file | |||
.* Die so entstandenen Dateien können dann wie oben beschrieben zusammengefügt werden. Dabei wird für jeden Zeitschritt eine Warnung ausgegeben (WARNING Intra-file non-monotonicity......); diese scheint aber auf die Weiterverarbeitung keine Auswirkungen zu haben. | |||
===Ausdünnen von [[NetCDF]]-Dateien entlang einer Dimension=== | ===Ausdünnen von [[NetCDF]]-Dateien entlang einer Dimension=== | ||
Zeile 22: | Zeile 34: | ||
* ncks -d dim, min, max,[ stride] in_file out_file | * ncks -d dim, min, max,[ stride] in_file out_file | ||
* Mehr Optionen unter [https://linux.die.net/man/1/ncks]. | * Mehr Optionen unter [https://linux.die.net/man/1/ncks]. | ||
* Die Zählung erfolgt im C-Stil, d.h. das erste Feldelement hat den Wert 0. | |||
* Den weiter unten beschriebenen '''ncks-Fehler unbedingt beachten'''. | |||
==== Typisches zeitliches Ausdünnen synoptischer Modellergebnisse==== | ==== Typisches zeitliches Ausdünnen synoptischer Modellergebnisse==== | ||
* Beispiel: | * Beispiel: | ||
ncks -d nMesh2_data_time 1, 19, 6 in_file out_file | ncks -d nMesh2_data_time,1,19,6 in_file out_file | ||
* Dadurch werden die Daten des ersten, siebten, dreizehntehn und neunzehnten Zeitschritts extrahiert. Die nicht von nMesh_data_time abhängigen Variablen werden unverändert übernommen. | * Dadurch werden die Daten des ersten, siebten, dreizehntehn und neunzehnten Zeitschritts extrahiert. Die nicht von nMesh_data_time abhängigen Variablen werden unverändert übernommen. | ||
==== Typisches räumliches Ausdünnen meteorologischer Anfangs- und Randwerte==== | ==== Typisches räumliches Ausdünnen meteorologischer Anfangs- und Randwerte==== | ||
* Voraussetzung ist, dass die Daten auf zweidimensionalen, strukturierten Gittern vorliegen. | * Voraussetzung ist, dass die Daten auf zweidimensionalen, strukturierten Gittern vorliegen. | ||
* Schritt 1: | * Schritt 1: | ||
ncks -d rlon 600,900 iconeu.nc tmp_reduced_rlon.nc | ncks -d rlon,600,900 iconeu.nc tmp_reduced_rlon.nc | ||
* Schritt 2: | * Schritt 2: | ||
ncks -d rlat 200,500 tmp_reduced_rlon.nc iconeu.reduced_in_space.nc | ncks -d rlat,200,500 tmp_reduced_rlon.nc iconeu.reduced_in_space.nc | ||
* Damit wird ein "Quadrat" von 301 * 301 Werten in Längen- und Breitenrichtung augeschnitten. Die meteorologischen Felder lassen sich damit für das Anwendungsgebiet maßschneidern, was den anschließenden IO des Modelles deutlich reduzieren kann. Beim Ausschneiden ist | * Damit wird ein "Quadrat" von 301 * 301 Werten in Längen- und Breitenrichtung augeschnitten. Die meteorologischen Felder lassen sich damit für das Anwendungsgebiet maßschneidern, was den anschließenden IO des Modelles deutlich reduzieren kann. | ||
* Beim Ausschneiden ist zu beachten, dass die Daten unter Umständen in einem rotierten Gitter vorliegen. Wenn die rotated_pole Variable die folgende Eigenschaft hat, können die Werte ohne weitere Koordinatentransformation ausgeschnitten werden: | |||
* char rotated_pole; | * char rotated_pole; | ||
rotated_pole:grid_north_pole_latitude = 90. ; | rotated_pole:grid_north_pole_latitude = 90. ; | ||
Zeile 44: | Zeile 59: | ||
-> Befehle -> Kommandozeilenfenster öffnen | -> Befehle -> Kommandozeilenfenster öffnen | ||
* Suchpfad ergänzen: | * Suchpfad ergänzen: | ||
set PATH=%PATH%; | set PATH=%PATH%;%PROGHOME%\bin\win | ||
* Ausführliche Hilfe zum Kommando einholen, z.B.: | * Ausführliche Hilfe zum Kommando einholen, z.B.: | ||
ncrcat | ncrcat |
Aktuelle Version vom 21. Oktober 2022, 09:48 Uhr
Über NCO
Der NCO "Werkzeugkasten" ermöglicht die Manipulation sowie Analyse von in NetCDF Dateiformaten abgelegten Daten. Darin eingeschlossen sind die Formate DAP, HDF4 und HDF5. NCO nutzt dabei die vielfältigen Möglichkeiten der CF (Climate & Forecast) Metadaten Konvention. Ebenso die flexible Beschreibung der physikalischen Einheiten basierend auf UDUNITS. Datenaustausch über das Netzwerk wird durch OPenDAP unterstützt. Die Art der Speicherung (z.B. Kompression, Chunking, Gruppenbildung) via HDF (Hierarchisches Dateiformat) kann in einfacher Weise beeinflusst werden. Viele leistungsfähige mathematische und statistische Methoden der GSL (GNU Scientific Library) stehen zur Verfügung. NCO ist schnell, mächtig, und frei verfügbar.
Für weitere Informationen siehe nco.sourceforge.net.
Typische Anwendungsfälle in der BAW
Verketten mehrerer nach NetCDF konvertierter boewrt.dat Dateien zu einer cf-netcdf.nc Datei
- Originaldaten auf Richtigkeit und Vollständigkeit prüfen;
- (optional) boewrt.dat mit ZEITRIO in äquidistante Zeitserien gleicher Schrittweite und Länge konvertieren;
- Mehrere boewrt.dat mit DATACONVERT nach cf-netcdf.nc konvertieren (mit identischen Terminen);
- Mit ncrcat können die konvertierten Dateien zu einer cf-netcdf.nc Datei zusammengefasst werden;
- Typische Weiterverarbeitung: NCANALYSE;
- Beispiel: ncrcat -h f1.nc f2.nc ... fn.nc result.nc (-h unterdrückt die Erzeugung bzw. Modifikation eines History-Attributs);
- Mehr Information: ncrcat-netCDF-Record-Concatenator.
Verketten mehrerer zeitlich aufeinanderfolgender NetCDF-Dateien
- Ausgabezeitpunkte und -indices ermitteln aus UnTRIM-sdr-Ausgabe, UnTRIM-Steuerdatei und dem Header der NetCDF-Datei (ncdump -h)
- Ggf. Dateien zuschneiden, sodass die Ausgabezeitpunkte kontinuierlich fortlaufen mit
ncks -d nMesh2_data_time,min,max,[stride] in_file out_file
- Zusammenfügen mit
ncrcat in1_file in2_file out_file
Typische Anwendung
- Zusammenfügen synoptischer Modellergebnisse (Simulation + Folgelauf)
- Voraussetzung ist, dass die Zeitvariable nMesh2_data_time als UNLIMITED dimensioniert ist. Dies ist nicht der Fall bei den aggregierten Daten, die mit ncaggregate erstellt worden sind. In diesem Fall muss in beiden Dateien die Dimension auf UNLIMITED gesetzt werden mit dem Befehl
ncks -O --mk_rec_dmn nMesh2_data_time in_file out_file
.* Die so entstandenen Dateien können dann wie oben beschrieben zusammengefügt werden. Dabei wird für jeden Zeitschritt eine Warnung ausgegeben (WARNING Intra-file non-monotonicity......); diese scheint aber auf die Weiterverarbeitung keine Auswirkungen zu haben.
Ausdünnen von NetCDF-Dateien entlang einer Dimension
Allgemein
- ncks -d dim, min, max,[ stride] in_file out_file
- Mehr Optionen unter [1].
- Die Zählung erfolgt im C-Stil, d.h. das erste Feldelement hat den Wert 0.
- Den weiter unten beschriebenen ncks-Fehler unbedingt beachten.
Typisches zeitliches Ausdünnen synoptischer Modellergebnisse
- Beispiel:
ncks -d nMesh2_data_time,1,19,6 in_file out_file
- Dadurch werden die Daten des ersten, siebten, dreizehntehn und neunzehnten Zeitschritts extrahiert. Die nicht von nMesh_data_time abhängigen Variablen werden unverändert übernommen.
Typisches räumliches Ausdünnen meteorologischer Anfangs- und Randwerte
- Voraussetzung ist, dass die Daten auf zweidimensionalen, strukturierten Gittern vorliegen.
- Schritt 1:
ncks -d rlon,600,900 iconeu.nc tmp_reduced_rlon.nc
- Schritt 2:
ncks -d rlat,200,500 tmp_reduced_rlon.nc iconeu.reduced_in_space.nc
- Damit wird ein "Quadrat" von 301 * 301 Werten in Längen- und Breitenrichtung augeschnitten. Die meteorologischen Felder lassen sich damit für das Anwendungsgebiet maßschneidern, was den anschließenden IO des Modelles deutlich reduzieren kann.
- Beim Ausschneiden ist zu beachten, dass die Daten unter Umständen in einem rotierten Gitter vorliegen. Wenn die rotated_pole Variable die folgende Eigenschaft hat, können die Werte ohne weitere Koordinatentransformation ausgeschnitten werden:
- char rotated_pole;
rotated_pole:grid_north_pole_latitude = 90. ;
Verfügbarkeit in der BAW-DH
- Linux: nco-4.6.1 vom 06.08.2016
- Windows: auf Konsolenebene verfügbar. Stand 04.02.2015
Kochrezept zum Vorgehen unter Windows
- Konsole im Datenverzeichnis öffnen, z.B. über TotalCommander:
-> Befehle -> Kommandozeilenfenster öffnen
- Suchpfad ergänzen:
set PATH=%PATH%;%PROGHOME%\bin\win
- Ausführliche Hilfe zum Kommando einholen, z.B.:
ncrcat
- Kommando mit Optionen, Dateinamen etc. ausführen:
ncrcat -h file1.nc file2.nc result.nc
- Durch Setzen der Option -h unterbindet man das Schreiben der Attribute history und nco_openmp_thread_number. Letzteres würde bei der Weiterverarbeitung mit Programmen wie NCANALYSE einen Fehler verursachen. Wenn man auf die Option -h verzichtet, kann man nco_openmp_thread_number alternativ mit dem Tool ncatted entfernen.
- Beispielverzeichnis $PROGHOME/examples/ncdelta/data/emderfahrwasser-1/mes/wl. Die Zeitreihen elf verschiedener Stationen wurden mit ncrcat zu 2010_0608_0708.aequi5.nc zusammengefasst.
Zitate
Die empfohlenen Zitate bei Verwendung der NCO Software sind:
- Zender, C. S. (2008), Analysis of Self-describing Gridded Geoscience Data with netCDF Operators (NCO), Environ. Modell. Softw., 23(10), 1338-1342, doi:10.1016/j.envsoft.2008.03.004.
- Zender, C. S. (2014), netCDF Operator (NCO) User Guide, Version 4.4.8, http://nco.sf.net/nco.pdf.
Das erste Zitat soll dann benutzt werden, wenn insbesondere auf Design, Zweck und Optimierung von NCO abgehoben wird. Das zweite soll dann verwendet werden, falls auf spezielle Eigenschaften der Software oder den User Guide selbst verwiesen wird.
zurück zu Standard-Software-Anwendungen (Add-ons)