Aktionen

NetCDF Operators: Unterschied zwischen den Versionen

Aus BAWiki

imported>Schade Peter
(ncks-Fehler)
imported>Lang Guenther
Zeile 39: Zeile 39:
   rotated_pole:grid_north_pole_latitude = 90. ;
   rotated_pole:grid_north_pole_latitude = 90. ;


====Ncks-Fehler beim Extrahieren mit einer Schrittweite ungleich eins====
====NCKS-Fehler beim Extrahieren mit einer Schrittweite (''Stride'') ungleich eins====
Die folgende Extraktion kann unter bestimmten Voraussetzungen fehlerhaft sein: <BR>
Die folgende Verwendung von NCKS kann unter bestimmten Voraussetzungen (''Stride'' ungleich 1) zu fehlerhaft extrahierten Ergebnissen führen:
ncks -d dim, min, max,[ stride] in_file out_file <BR>
 
Wer den Fehler auf einfache Weise vermeiden möchte, setze '''stride auf 1 oder verzichte auf stride'''. Dann sollte die Extraktion sicher funktionieren.<BR>
ncks -d dim, min, max,[ stride] in_file out_file
Wer auf die Angabe des strides oder der Schrittweise größer 1 nicht verzichten kann, beachte dass ncks dann nur für die in CDL-Schreibweise letzte Dimension funktioniert. Dies ist die intern am schnellsten variierende Dimension<BR>
 
Beispiel einer Variablen mit mehreren Stationen (Dimension time_series) und mehreren Zeitpunkten (Dimension time).
Aktuell beobachtetes Verhalten für Variablen mit mehreren Stationen (Dimension ''time_series'') und mehreren Zeitpunkten (Dimension ''time'') bei Verwendung des o. g. Kommandos für dim=''time'' und ''Stride'' ungleich 1:
* water_level (time_series, ''time'')
* '''Fehlfunktion''' bei Reihenfolge (''time_series'', ''time'');
* Nur für die o.g. Sortierung funktioniert der Befehl
* '''korrekte Funktion''' bei Reihenfolge (''time'', ''time_series'');
* ncks -d ''time'',1,19,in_file out_file.
Wer den Fehler auf einfache Weise vermeiden möchte, setze ''Stride'' auf 1 oder verzichte auf ''Stride''.  Falls auf eine Extraktion mit ''Stride'' ungleich 1 nicht verzichtet werden kann, muss die Reihenfolge der Dimensionen mit z. B.
* Die Möglichkeiten bei abweichend sortierten Variablen werden noch untersucht.
 
ncpdq -a dim1,dim2 in_file out_file
 
verändert werden.
 
Der Fehler wurde via [https://sourceforge.net/ SourceForge] an die Entwickler von NCO gemeldet. Wahrscheinlich benutzen wir eine veraltete Version von NCO (aktuell 4.6.1, empfohlen 4.7.1).
 
==Verfügbarkeit in der BAW-DH==
==Verfügbarkeit in der BAW-DH==
* Linux: nco-4.6.1 vom 06.08.2016
* Linux: nco-4.6.1 vom 06.08.2016

Version vom 12. Januar 2018, 15:57 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.

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. ;

NCKS-Fehler beim Extrahieren mit einer Schrittweite (Stride) ungleich eins

Die folgende Verwendung von NCKS kann unter bestimmten Voraussetzungen (Stride ungleich 1) zu fehlerhaft extrahierten Ergebnissen führen:

ncks -d dim, min, max,[ stride] in_file out_file

Aktuell beobachtetes Verhalten für Variablen mit mehreren Stationen (Dimension time_series) und mehreren Zeitpunkten (Dimension time) bei Verwendung des o. g. Kommandos für dim=time und Stride ungleich 1:

  • Fehlfunktion bei Reihenfolge (time_series, time);
  • korrekte Funktion bei Reihenfolge (time, time_series);

Wer den Fehler auf einfache Weise vermeiden möchte, setze Stride auf 1 oder verzichte auf Stride. Falls auf eine Extraktion mit Stride ungleich 1 nicht verzichtet werden kann, muss die Reihenfolge der Dimensionen mit z. B.

ncpdq -a dim1,dim2 in_file out_file

verändert werden.

Der Fehler wurde via SourceForge an die Entwickler von NCO gemeldet. Wahrscheinlich benutzen wir eine veraltete Version von NCO (aktuell 4.6.1, empfohlen 4.7.1).

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%;\\themis\system\akprog\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