Aktionen

NetCDF Operators: Unterschied zwischen den Versionen

Aus BAWiki

imported>Schade Peter
(kepheus durch themis ersetzt)
(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>).)
 
(12 dazwischenliegende Versionen von 8 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===
====Allgemein====
* ncks -d dim, min, max,[ stride] in_file out_file
* 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====
* 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==
==Verfügbarkeit in der BAW-DH==
* Stand 04.02.2015
* Linux: nco-4.6.1 vom 06.08.2016
* NCO-Kommandos sind derzeit nur unter Windows auf Konsolenebene verfügbar.
* Windows: auf Konsolenebene verfügbar. Stand 04.02.2015
 


==Kochrezept zum Vorgehen unter Windows==
==Kochrezept zum Vorgehen unter Windows==
Zeile 27: Zeile 59:
   -> Befehle -> Kommandozeilenfenster öffnen
   -> Befehle -> Kommandozeilenfenster öffnen
* Suchpfad ergänzen:  
* Suchpfad ergänzen:  
   set PATH = %PATH%;\\themis\system\akprog\bin\win
   set PATH=%PATH%;%PROGHOME%\bin\win
* Ausführliche Hilfe zum Kommando einholen, z.B.:  
* Ausführliche Hilfe zum Kommando einholen, z.B.:  
   ncrcat
   ncrcat
* Kommando mit Optionen, Dateinamen etc. ausführen:  
* Kommando mit Optionen, Dateinamen etc. ausführen:  
   ncrcat -h file1.nc file2.nc result.nc
   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.
* 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.
* Beispielverzeichnis $PROGHOME/examples/ncdelta/data/emderfahrwasser-1/mes/wl. Die Zeitreihen elf verschiedener Stationen wurden mit ncrcat zu 2010_0608_0708.aequi5.nc zusammengefasst.
Zeile 39: Zeile 71:


Die empfohlenen Zitate bei Verwendung der NCO Software sind:
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. (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 http://nco.sf.net/nco.pdf].  
# Zender, C. S. (2014), [[netCDF]] Operator (NCO) User Guide, Version 4.4.8, [http://nco.sf.net/nco.pdf 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.
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.



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

  1. Originaldaten auf Richtigkeit und Vollständigkeit prüfen;
  2. (optional) boewrt.dat mit ZEITRIO in äquidistante Zeitserien gleicher Schrittweite und Länge konvertieren;
  3. Mehrere boewrt.dat mit DATACONVERT nach cf-netcdf.nc konvertieren (mit identischen Terminen);
  4. Mit ncrcat können die konvertierten Dateien zu einer cf-netcdf.nc Datei zusammengefasst werden;
  5. Typische Weiterverarbeitung: NCANALYSE;
  6. Beispiel: ncrcat -h f1.nc f2.nc ... fn.nc result.nc (-h unterdrückt die Erzeugung bzw. Modifikation eines History-Attributs);
  7. 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:

  1. 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.
  2. 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)


Strukturübersicht