Frage

Wer es haben heraus genug Erfahrung w / NetCDF und HDF5 einige Pluspunkte / Nachteile über sie als eine Möglichkeit der Speicherung von wissenschaftlichen Daten zu geben?

Ich habe HDF5 verwendet und möchte / schreiben über Java lesen, aber die Schnittstelle ist im Wesentlichen ein Wrapper um die C-Bibliotheken, die ich verwirrend gefunden haben, so NetCDF faszinierend scheint aber ich weiß fast nichts über sie.

Bearbeiten meine Anwendung ist „nur“ für die Datenprotokollierung, so dass ich eine Datei, die ein selbstbeschreibenden Format hat. Wichtige Merkmale für mich in der Lage sind willkürlich Metadaten hinzuzufügen, für die schnellen Schreibzugriff mit bis Bytefeldgruppen anhängen, und mit Single-writer / multiple-Lesern Concurrency (stark bevorzugt, aber kein Muss. NetCDF docs sagen, sie haben SWMR aber don ‚t sagen, ob sie irgendeinen Mechanismus unterstützen, um sicherzustellen, dass zwei Autoren nicht die gleiche Datei auf einmal mit katastrophalen Folgen) öffnen können. Ich mag die hierarchische Aspekt HDF5 (insbesondere I Liebe die gerichtete azyklische Graph Hierarchie, viel flexibler als ein „normalen“ Dateisystem-ähnliche Hierarchie), bin die NetCDF docs jetzt lesen ... wenn es erlaubt nur einen Datensatz pro Datei dann wird es wahrscheinlich nicht für mich arbeiten. : (

Update - sieht aus wie NetCDF-Java liest aus netCDF-4-Dateien, sondern schreibt nur von netCDF-3-Dateien, die hierarchischen Gruppen nicht unterstützen. darn.

Update 2009-Jul-14 : Ich beginne mit HDF5 in Java wirklich aufzuregen. Die Bibliothek verfügbar ist nicht so toll und es hat einige große Stolpersteine, die mit Java Abstraktionsschichten (Verbindung Datentypen) zu tun haben. Ein großes Dateiformat für C, aber sieht aus wie ich nur verlieren. >: (

War es hilfreich?

Lösung

empfehle ich Ihnen hdf5 statt NetCDF. NetCDF ist flach, und es wird sehr schmutzig nach einer Weile, wenn Sie nicht in der Lage sind, Dinge zu klassifizieren. Natürlich Klassifizierung ist auch eine Frage der Debatte, aber zumindest haben Sie diese Flexibilität.

Wir führten eine genaue Auswertung von HDF5 vs. NetCDF wenn ich Q5Cost schrieb, und das Endergebnis war für HDF5 Hände nach unten.

Andere Tipps

Ich muss zugeben müssen mit HDF5 ist sehr viel einfacher, auf lange Sicht. Es ist nicht schwer einfache Datenstrukturen in NetCDF-Format zu bekommen, aber sie auf dem Weg zu manipulieren ist eine Art Schmerz.

Die „H“ in HDF5 steht für „hierarchischen“, die (für mich jedenfalls) in eine wirklich einfache Art und Weise übersetzt, um Daten zu manipulieren, um nur Knoten bewegen und Referenzierung Knoten von anderen Orten.

Darf ich fragen, welche Art von Projekt ist das? Ich benutze diese sowohl für viele HPC wissenschaftlichen Modellierungsaufgaben. Kann ich annehmen, dass Sie das gleiche tun? Wenn ja, der Trend, den ich sehe, bin ist es, Menschen zu HDF5 bewegen, aber das könnte in Ihrer speziellen Domäne unterschiedlich sein.

Allerdings Sie am Ende gehen, viel Glück!

NetCDF, ab Version 4.0 (2008) kann die meisten HDF5 Dateien lesen und schreiben, und bietet Zugriff auf die hierarchischen Funktionen von HDF5 über das erweiterte Datenmodell.

HDF5 ist äußerst funktionsreiche und hat einige großartige Leistungsmerkmale.

NetCDF hat eine einfachere API und eine viel breitere Werkzeugbasis. Es gibt viele Tools, die netCDF-Daten verarbeiten.

Ich weiß, das ist ein älterer Post, und das ursprüngliche Plakat angezeigt hat, haben sie bewegt, aber für alle, die hier enden ... die netCDF-Java-Bibliothek (Stand 4.3.13) hat netCDF-4 Schreib Unterstützung über die netCDF C-Bibliothek. Es ist immer noch in der Betaphase, aber es funktioniert und Feedback sicherlich zu schätzen wissen !

Bitte beachten Sie die netCDF-Java Referenz docs für weitere Details.

Versuchen Sie, in jedem einige kleine Beispielanwendung zu schreiben, und die Erfahrung vergleichen. Wenn zukünftige Skalierbarkeit des Codes parallele Ausführung (über MPI oder dergleichen) für Sie wichtig ist, ich weiß, dass HDF eine parallele Implementierung hat, die Menschen ständig zu verbessern arbeiten. Ich bin mir nicht sicher NetCDF.

Späte edit: Für NetCDF, gibt es jetzt Parallel NetCDF von Argonne . Es funktioniert sehr gut, und das Entwicklungsteam ist sehr aktiv in sie weiter zu verbessern.

1) netcdf-4-C-Bibliothek ist eine Schicht auf der Oberseite der HDF-5-C-Bibliothek. Die API wird als einfacher als die HDF5 Bibliothek, aber am Ende haben Sie so ziemlich die gleiche Funktionalität. Netcdf unterstützt keine Grafiken, aber HDF5 tut. In der Tat, HDF nicht verhindert Zyklen in Ihrem Diagramm, denke ich.

2) die HDF-Gruppe hat einen Java-API für HDF-5-C-Bibliothek.

3) Unidata hat netcdf-Java-Bibliothek, die Java rein ist, kann aber nur lesen HDF-5.

NetCDF, die HDF5 in sein eigenes Datenmodell übersetzt, sieht aus und funktioniert super ... , bis Sie herausfinden, dass NetCDF nicht unsigned Werte nicht unterstützt! Siehe auch meine Frage , wie Werte ohne Vorzeichen erkennen in bestehenden HDF5 Dateien mit NetCDF.

Update: Eigentlich ist es stellt sich heraus, dass, obwohl NetCDF-3 nicht unterzeichnet Werte unterstützen, NetCDF-4 unterzeichnet Werte unterstützt, obwohl die NetCDF API in Java zur Bestimmung Signedness ist ein wenig verworren .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top