PDL :: io :: flexraw

PDL :: io :: flexraw ist ein flexibles binäres E / A-Format für Perldl.
Jetzt downloaden

PDL :: io :: flexraw Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Robin Williams
  • Website des Verlags:
  • http://search.cpan.org/~kgb/PDL-2.3.2/IO/FlexRaw/FlexRaw.pm

PDL :: io :: flexraw Stichworte


PDL :: io :: flexraw Beschreibung

PDL :: io :: flexraw ist ein flexibles binäres E / A-Format für Perldl. PDL :: io :: flexraw ist ein flexibles binäres E / A-Format für Perldl.Synopsis Verwenden Sie PDL; Verwenden Sie PDL :: io :: flexraw; ($ x, $ y, ...) = ReadFlex ("Dateiname" ) ($ x, $ y, ...) = Mapflex ("Dateiname" ) $ HDR = WriteFlex ($ File, $ PDL1, $ PDL2, ...) WriteFexhdr ($ Datei, $ HDR) FlexRAW ist eine generische Methode für die Eingabe und Ausgabe von `rohen 'Datenarrays. Insbesondere ist es so konzipiert, die Ausgabe von FORTRAN 77 unformatierten Dateien und der Schreibfunktion von Low-Level-C-C zu lesen, auch wenn die Dateien komprimiert oder gzippt sind. Wie in Fastraw wird die Datendatei durch eine Header-Datei ergänzt (obwohl dies durch das optionale $ HDR-Argument ersetzt werden kann). Weitere Informationen können in die Header-Datei aufgenommen werden, als für Fastraw - die Beschreibung kann auf mehrere Datenobjekte innerhalb einer einzelnen Eingabedatei erweitert werden. Zum Beispiel, um die Ausgabe eines Fortran-Programms real * 4 A (4.600.600) offen zu lesen (8 , file = 'Banana', Status = 'NEU', FORM = 'unformated') schreiben (8) A close (8) Die Header-Datei (`banana.hdr ') könnte aussehen. Form = unformatiertes Byte 14 # Datenfloß 3 # Dies wird 4600600 Byte 14 ignoriert, da wir dann alle dimsthe-Daten mit $ A = (Readflex (Banana ')) eingibt ; Das Format der HDR-Datei ist eine Erweiterung, die von Fastraw verwendet wird. Kommentarleitungen (beginnend mit #) sind erlaubt, ebenso wie beschreibende Namen (wie anderswo: Byte, Kurz, Ushort, lang, Float, doppelt) für die Datentypen - Beachten Sie, dass der Fall von Flexraw ignoriert wird. Nach dem Typ gibt eine ganzzahlige Integer die Anzahl der Abmessungen der Daten "Chunk" an, und anschließend die Größe der Größe jeder Dimension. So beschreibt der oben genannte Spezifizierer (`Float 34 600600 ') unser FORTRAN-Array. Ein Skalar kann als "Float 0" (oder "Float 11" oder "Float 21 1" usw.) beschrieben werden. Wenn alle Abmessungen gelesen werden - oder a # nach Whitespace erscheint - wird der Rest der aktuellen Eingabeleitung ignoriert. Was ist um die zusätzlichen 4 Bytes an Kopf und Schwanz, die wir gerade weggeworfen haben? Diese werden von Fortran (zumindest auf Sonnen, Alphas und Linux) hinzugefügt, und geben die Anzahl der von jedem Schreibgeschriebenen Bytes an - dieselbe Nummer wird am Start und am Ende jedes Teils von Daten eingesetzt. Möglicherweise müssen Sie dies in einigen Fällen wissen. Im Allgemeinen versucht Flexraw, es selbst zu handhaben, wenn Sie einfach eine Zeile hinzufügen, die "F77" in der Kopfzeile, vor allen Daten-Anzeigen: # FlexRaw-Datei-Header für F77-Form = unformatiert F77 # -Daten-Float 34 600600-- Die Redundanz in Fortran-Datendateien ermöglicht sogar FlexRAW, automatisch mit Dateien zu befassen, die auf anderen Maschinen geschrieben wurden, die BY-BY-BYTE-Bestellung verwenden. Dies funktioniert nicht immer - es ist ein 1 in 4 Milliardener Chance, es wird nicht, auch wenn Sie regelmäßig 4 GB-Dateien lesen! Es funktioniert derzeit nicht für komprimierte Dateien, sodass Sie `Swap '(noch einmal vor allen Datenanzeigen) sagen können, um sicherzustellen, dass die Byte-Reihenfolge ausgetauscht wird. Das optionale $ HDR-Argument ermöglicht die Verwendung eines anonymen Arrays, um den Header zu geben Informationen, anstatt eine .hdr-Datei zu verwenden. Beispielsweise, $ header = }]; @a = Readflex ('Banane', $ Header); liest unsere Beispieldatei erneut. Als Sonderfall kann, wenn NDIMs 1 ist, Dims als Skalar angegeben werden. Verwenden Sie PDL; Verwenden Sie PDL :: io :: fastraw; @pdls = ($ pdl1, $ pdl2, ...); $ HDR = WriteFlex ("FNAME", @ pdls); @ pdl2 = readflex ("fname", $ HDR); WriteFlexhdr ("Fname", $ HDR); @ pdl3 = readflex ("fname"); - WriteFlex erstellt die Datendatei und gibt den Dateiheader als anonymous Hash zurück, der mit WriteFlexhdr in eine .hdr-Datei geschrieben werden kann. Das Lesen komprimierter Daten wird automatisch eingeschaltet, wenn das Dateiname wurde angefordert in Seine Schnittstelle ähnelt `readflex '. Zusätzliche Optionen Geben Sie an, ob die Daten `readonly 'geladen werden sollen, wenn die Datendatei auf der Grundlage der Headerinformationen oder" TRUNC'-TRUNCE an die Länge der Leser gelesen werden soll. Die zusätzliche Geschwindigkeit des Zugangs bringt einige Einschränkungen miteinander: MapFlex lesst nicht komprimierte Daten, automatisch erkennen F77-Dateien oder Lesen Sie F77-Dateien, die von mehr als einer einzigen unformatierten Schreibanweisung geschrieben wurden. Ernsthafter, dauert die Datenausrichtungsbeschränkungen, dass Mapflex einige Dateien nicht lesen kann, abhängig von den Anforderungen des Host-Betriebssystems (sie kann auch in Abhängigkeit von der Einstellung des `UAC-Flags auf einem bestimmten Gerät). Möglicherweise haben Sie ähnliche Probleme mit den gemeinsamen Blöcken in Fortran. MapFlex warnen Sie nach diesem Problem, wenn er auftritt, und geben Sie die abgebildeten PDLs zurück, bevor das Problem auftritt. Dies kann entweder mit der Neuorganisation der Datendatei (große Typen zunächst dabei, als Regel-Daumen) oder einfacher mithilfe von `readflex 'umgehen. Anforderungen: · Perl.


PDL :: io :: flexraw Zugehörige Software