Ich muss einige Daten aus einer Berechnung schreiben, die später von Paraview gelesen werden (.vtu- oder vtk-Datei).
Soll ich mich bei der Dateigröße für das ASCII-Format oder das Binärformat entscheiden?
quelle
Ich muss einige Daten aus einer Berechnung schreiben, die später von Paraview gelesen werden (.vtu- oder vtk-Datei).
Soll ich mich bei der Dateigröße für das ASCII-Format oder das Binärformat entscheiden?
Wenn Ihre einzige Sorge die Dateigröße ist, möchten Sie Binärdateien. Nehmen wir für ein anschauliches Beispiel an, Sie schreiben eine Gleitkommazahl mit doppelter Genauigkeit in eine Datei. Nehmen wir an, dass das Dateisystem dies perfekt handhabt und alle Werte für Datei, Header und Auffüllung 0 sind.
Für eine Binärdatei würde diese Zahl die genaue Größe der Zahl im RAM oder 8 Bytes annehmen.
Im ASCII-Format würde es halten:
Angenommen, es wird nur 1 Byte für ein Zeichen verwendet. Das sind 22 Byte, um dieselbe Nummer zu speichern. Hierbei werden nicht die Zeichen gezählt, die zum Abgrenzen zwischen den Zahlen erforderlich sind (normalerweise mindestens 1). Daher ist die Dateigröße für das ASCII-Format etwa dreimal so groß.
Sie können die Dateigröße gegen die Genauigkeit der gespeicherten Dateien eintauschen (behalten Sie nur 5-6 Stellen in der Basis bei), aber das hängt davon ab, wofür Sie sie verwenden. Der Hauptvorteil von ASCII ist das Debuggen oder Erzeugen von lesbaren Daten.
In der Praxis benötigen Sie selten Daten in Visualisierungsdateien, die genauer sind als beispielsweise drei gültige Ziffern. In diesem Fall ist ASCII - vielleicht überraschend - oft kompakter als eine binäre Form. Wenn Sie über eine Archivierung nachdenken, wird das Bezipen dieser ASCII-Dateien wahrscheinlich die kleinsten Dateien ergeben, die Sie erhalten können.
Das heißt, Paraview liest das VTU-Format, das eine komprimierte Binärform hat (XML-basiert, aber die Daten werden zuerst libz-komprimiert und dann erneut uuencodiert, um ASCII-Text zu erhalten). Bei typischen Dateien spart dies einen Faktor von 4-10. Für große Dateien ist dies definitiv der richtige Weg.
quelle