Aktionen

NetCDF

Aus BAWiki

Version vom 5. Juni 2018, 09:23 Uhr von imported>Lang Guenther (Literatur: Lang, G. (2018) ergänzt)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Allgemeines

Zielsetzung dieser BAWiki-Seiten

Dieser Bereich des BAWiki enthält alle NetCDF-Konventionen, die zur Speicherung typischer BAW-spezifischer Daten in NetCDF-Dateien (siehe network common data form) erforderlich sind. Insbesondere werden auch alle lokalen Konventionen aufgeführt, die über die international vereinbarte CF-Metadaten-Konvention hinausgehen. In vielen Fällen, in denen die CF-Konventionen unzueichend sind, werden i. W. die Unstructured Grid Metadata Conventions for Scientific Datasets (UGRID Conventions) verwendet. Die aktuelle Version der UGRID Conventions wird auf auf GITHUB beschrieben. Nützliche Mustervorlagen zur Verwendung insbesondere globaler Attribute sind bei den NODC NetCDF Templates zu finden. Das Datenzentrum NODC firmiert seit einiger Zeit unter National Centers for Environmental Information (NCEI).

Die seit 2010 entwickelte BAW-Ausprägung einer NetCDF-Datei wird als Datei des Typs CF-NETCDF.NC bezeichnet. Ab Version NetCDF-4.0 wird HDF (Hierarchical Data File, siehe HDF5 Group) als darunter liegendes Dateiformat verwendet. Damit werden Konzepte wie Online-Kompression der gelesenen/geschriebenen Daten sowie das File Chunking auch bei Verwendung der NetCDF API unterstützt

Wichtige NetCDF Hilfsmethoden

Die wichtigsten Hilfsmethoden der NetCDF Utilities sind:

  • NCDUMP Inhalt einer NetCDF Datei als Text (selektiv) ausgeben;
  • NCCOPY Inhalt einer NetCDF Datei selektiv kopieren, Kompressionsniveau abwandeln, innere Struktur der Datei (File Chunking) abwandeln; und
  • NCGEN erzeugt eine NetCDF Datei aus einer CDL Textdatei; optional kann auch C oder FORTRAN Code automatisch damit erzeugt werden.

Einen guten Gesamtüberblick gibt die NetCDF-Dokumentation.

File Chunking

Die Chunk Size der in einer CF NetCDF abgelegten Variablen kann die Geschwindigkeit, mit der diese entlang verschiedener Dimensionen gelesen werden kann, erheblich beeinflussen. Typisch für unterschiedliche Zugriffe ist z. B. der räumliche (synoptische) Zugriff gegenüber dem Zeitserien-Zugriff. Die Chunk Size kann sehr allgemein über die NetCDF API individuell optimiert werden. In vielen Situationen können befriedigende Ergebnisse allerdings auch schon auf sehr einfachem Wege mit Hilfe der Hilfsprogramme NCCOPY oder NCCHUNKIE erzielt werden. Für weitergehende Informationen lese man:

NetCDF vs. GRIB

Neben NetCDF ist GRIB ein weit verbreitetes Dateiformat. Zur Problematik der Unterschiede von NetCDF und GRIB wurde im September 2014 ein Workshop beim ECMWF abgehalten. Weitere Informationen auf der Website des Workshops Closing the GRIB/NetCDF gap.

Literatur

Biookaghazadeh, Saman, et al. (2015) Enabling scientific data storage and processing on big-data systems. Big Data (Big Data), 2015 IEEE International Conference on. IEEE, 2015 Verwenden von in netCDF-Dateien gespeicherten Daten in dem Big-Data Analysesystem Hadoop.

Lang, G. (2016) "Uniform post-processing of computational results based on UGRID CF netCDF files", 13th International UnTRIM Users Workshop 2016, Villa Madruzzo, Italy, May 30th - June 1st (doi:10.13140/RG.2.1.5059.8000).

Lang, G. (2018) "A few remarks on chunked I/O using netCDF-4/HDF5", 15th International UnTRIM Users Workshop 2018, Villa Madruzzo, Italy, May 28th - May 30th (doi:10.13140/RG.2.2.31262.23368).

Signell, R. P. und Snowden, D. P. (2014) Advances in a Distributed Approach for Ocean Model Data Interoperability. J. Mar. Sci. Eng. 2014, 2, 194-208. Verweist u. a. auf die Vorteile der Verwendung des UGRID CF Standards für die Speicherung von Daten in netCDF-Dateien.

Wie man Unidata danken kann

"Software and technologies developed and distributed by the Unidata Program Center are (with very few exceptions) Free and Open Source, and you can use them in your own work with no restrictions. In order to continue developing software and providing services to the Unidata community, it is important that the Unidata Program Center be able to demonstrate the value of the technologies we develop and services we provide to our sponsors — most notably the National Science Foundation. Including an acknowledgement in your publication or web site helps us do this."

"It helps even more if we are aware of what you're doing. If you're using Unidata technologies and citing them in a paper, poster, thesis, or other venue, we'd be grateful if you would let us know about it by sending a short message to support@unidata.ucar.edu. Thanks!"

Informell

Zitat

  • Unidata, (year): Package name version number [software]. Boulder, CO: UCAR/Unidata Program Center. Available from URL-to-software-page.

DOI

Wo wird NetCDF verwendet?

Für eine Übersicht siehe Where is NetCDF used?.

Qualitätssicherung mit NetCDF-Attributen

Die Qualitätssicherung von Analyseergebnissen wird von den Programmen NCANALYSE, NCDELTA und NCAGGREGATE auf der Basis verschiedener NetCDF-Attribute unterstützt.

Attribut actual_range

Darin wird der aktuelle Wertebereich einer (geophysikalischen) Variablen festgehalten. Mit ncdump -h kann der Anwender sich alle relevanten Metadaten einer NetCDF-Datei ausgeben lassen. Das Ergebnis dieses Befehls kann mit grep nach dem Attribut actual_range durchsucht werden. Auf diesem Wege erhält man eine einfache Übersicht, ob der aktuelle Wertebereich einer Variablen zulässig ist oder nicht.

Automatische Verifikation des Wertebereichs

Die oben genannten Programme führen beim Schließen der von ihnen erzeugten NetCDF-Dateien einen automatischen Vergleich des aktuellen mit dem zulässigen Wertebereich durch, insofern

  • das Attribut actual_range (aktueller Wertebereich),
  • das Attribut cfg_bounds_name (Klasse des zulässigen Wertebereichs), und
  • eine Datei des Typs bounds_verify.dat (Beschreibung der zulässigen Wertebereiche für alle Klassen)

vorhanden sind. $PROGHOME/cfg/dmqs/bounds/bounds_verify.dat enthält z. B. typische Angaben zu den zulässigen Wertebereichen der verschiedenen (Variablen-) Klassen.

Das Ergebnis des Vergleichs der aktuellen mit den zulässigen Wertebereichen wird in (Drucker-) SDR-Dateien protokolliert. Die dort vorhanden Informationen zeigen dem Anwender an, ob eine Verletzung des zulässigen Wertebereichs vorliegt oder nicht. Einen schnellen Überblick erhält man mit grep Pruefergebnis auf die SDR-Datei.

Beim Vergleich des aktuellen mit dem zulässigen Wertebereich wird bei reellwertigen Variablen die Maschinengenauigkeit (machine epsilon) verwendet, die sich mit Hilfe von (Fortran) EPSILON wie folgt darstellt:

  • Variable mit einfacher Genauigkeit: ca. 1.2E-07;
  • Variable mit doppelter Genauigkeit: ca. 2.2E-16.

Für Daten folgt daraus für die zulässige Toleranz 2 * EPSILON * ABS(data).

Globale Attribute

Einzelpositionen, Profile und Gitter

Zeitkoordinate

Vertikalkoordinate

Reduktion der Datensatzgröße

Traditionell, d. h. bis zum Erscheinen von NetCDF-4 (HDF), konnte die Größe der Datensätze mit

reduziert werden. Die Verwendung dieser Methoden wird heute (NetCDF-4 (HDF)) nicht mehr empfohlen. Über die NetCDF API kann jede Variable individuell (Online) beim Schreiben einer Datei komprimiert werden. Existierende NetCDF Dateien können außerdem mit Hilfe von NCCOPY nachträglich komprimiert werden.

Horizontales Koordinatensystem

Daten

Synoptische Daten

Zeitserien

Analysedaten


zurück zu Standard-Software-Anwendungen (Add-ons)


Strukturübersicht