Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:software:matlab:trepr:dev:treprload:ini-datei

trEPRload.ini

Um möglichst automatisch eine große Zahl verschiedener Datenformate einlesen (und erkennen) zu können, gibt es die Konfigurationsdatei trEPRload.ini, die im selben Verzeichnis wie die Funktionsdatei trEPRload.m liegen muß. Diese Datei ist in ihren Kommentaren dokumentiert.

Die Idee

Die Idee hinter der Funktion trEPRload ist, möglichst viele verschiedene Dateiformate einlesen zu können. Die Funktion trEPRload fungiert dabei lediglich als Vermittler zwischen den Dateien und den entsprechenden Routinen, die speziell zum Einlesen der Dateien geschrieben wurden.

Um aber eigenständig erkennen zu können, um welchen Dateityp es sich gerade handelt, gibt es die Konfigurationsdatei trEPRload.ini, die für jeden unterstützten Dateitypen entsprechende Parameter vorhält.

Momentan gibt es drei Parameter:

type
binary|ascii
Legt fest, ob es sich beim Dateiformat um ein Text- (ASCII) oder Binärformat handelt.
identifierString
Im Falle von Textformaten wird in den ersten drei Zeilen der Datei nach dem identifierString gesucht, um das Dateiformat zu identifizieren.
Im Falle von Binärformaten ist der identifierString die Dateiendung, da es nicht einfach ist, anderweitig den Typ einer Binärdatei zu bestimmen.
function
Die Matlab-Routine, die dazu verwendet wird, die entsprechenden Dateien einzulesen.

Jeder Block mit einer Definition für einen Dateitypen wird durch einen eineindeutigen Bezeichner in eckigen Klammern (wie bei ini-Dateien üblich) eingeleitet.

Ansonsten können beliebige Kommentare in die Datei geschrieben werden, etwa zur weiteren Beschreibung einzelner Formate oder für Hinweise auf die (manchmal notwendige) Reihenfolge der Definition gewisser Dateiformate.

Wichtiger Hinweis zur Reihenfolge der Formatdefinitionen: Die Einleseroutine trEPRload testet in der Reihenfolge der Definition die entsprechenden Dateiformate. Wenn also zwei identifierStrings überschneidende Bestandteile haben (bzw. konkret: wenn einer davon eine Untermenge des anderen ist), dann ist es wichtig, daß das Format mit dem entsprechend längeren identifierString zuerst definiert wird.

Hinzufügen neuer Formate

Sobald eine entsprechende Matlab-Routine geschrieben wurde, die ein bislang nicht unterstützes Dateiformat einlesen kann, kann ein korrespondierender Block in der trEPRload.ini-Datei hinzugefügt werden.

Hinweis für das Erstellen neuer Formate: An all diejenigen, die selbst (ASCII-)Dateiformate designen, wie das zuweilen beim Schreiben von Meßprogrammen vorkommt: Wesentlich ist eine eindeutige Identifizierbarkeit des jeweiligen Formates innerhalb der ersten drei Zeilen. Das läßt sich am Sinnvollsten durch eine entsprechende eineindeutige Kennung (wie den Namen des Dateiformates) lösen. Ob diese Kennung in einem Kommentar steht oder nicht, hängt vom Dateiformat ab, beeinflußt aber nicht die Funktion der trEPRload-Routine.1)

Die Datei

Hinweis: Bei der hier wiedergegebenen Version der Datei muß es sich nicht zwangsläufig um die letztaktuelle Version handeln. Sie ist vielmehr als Beispiel und Veranschaulichung gedacht.

"trEPRload.ini"
% Configuration file for the trEPRload function of the trEPR toolbox
%
% (c) 2010-2011, Till Biskup <till@till-biskup.de>
%
% Each file format that is recognized by the trEPRload function
% has its own entry in this file. The format of this entry is as follows:
%
% [<file format>]
% type = <ascii|binary>
% identifierString = <string that can be used to identify the file>
% function = <function that is used to handle the file>
% parameters = <additional parameters passed to the function>
% combineMultiple = <true|false> whether routine can combine multiple files
%
% In case of binary file formats, "identifierString" is the extension 
% (with leading dot).
 
[ascii_save_2Dspectrum]
type = ascii
identifierString = ascii_save_2Dspectrum
function = trEPRasciiLoad
 
[ascii_save_spectrum]
type = ascii
identifierString = ascii_save_spectrum
function = trEPRasciiLoad
 
[ascii_save_timeslice]
type = ascii
identifierString = ascii_save_timeslice
function = trEPRasciiLoad
 
% Format used in Berlin for transient data. fsc2 files are generally simple
% ascii data files with different header depending on the actual script
% used to measure. Here, the program is included in the header of the file
% together with a bunch of the most important parameters.
[fsc2]
type = ascii
identifierString = fsc2
function = trEPRfsc2Load
 
[iniFileWrite]
type = ascii
identifierString = iniFileWrite
function = iniFileRead
 
[metaGen]
type = ascii
identifierString = metaGen
function = metaGenFileRead
% should be replaced by a call to a more general function
% because metaGenFileRead and iniFileRead are nearly identical
 
% Format used in Freiburg for transient data. Compatible to gnuplot
% with special headers derived from the speksim format (see there).
% Every time slice is saved to a single file together with a time axis.
%
% IMPORTANT: gnuplot has to be defined before speksim due to the
%            nearly identical identifier string.
[gnuplot]
type = ascii
identifierString = # Source : transient
function = trEPRgnuplotLoad
combineMultiple = true
 
% Format used in Freiburg for transient data. Directly written by the
% transient spectrometer. Every time slice is saved to a single file.
%
% IMPORTANT: speksim has to be defined after gnuplot due to the
%            nearly identical identifier string.
[speksim]
type = ascii
identifierString = Source : transient
function = trEPRspeksimLoad
combineMultiple = true
 
% Format Bruker Xepr writes when exporting TREPR datasets to ASCII
[BrukerTREPRASCII]
type = ascii
identifierString =      index            Time [ns]            Field [G]
function = trEPRbrukerASCIIload
combineMultiple = false
 
[BrukerBES3T]
type = binary
identifierString = .DTA
function = trEPRbrukerBES3Tload
 
% Unzipped version of the format used from the new versions of the 
% trEPR toolbox to save the data.
[xml]
type = ascii
identifierString = <?xml version="1.0" encoding="utf-8"?>
function = xmlRead
 
% Format used from the new versions of the trEPR toolbox to save the data.
%
% It is basically a XML file that was zipped to save disk space.
[xmlzip]
type = binary
identifierString = .zip
function = xmlZipRead
1)
Der identifierString wird intern via strfind verarbeitet, d.h. in den ersten drei Zeilen wird nach dem Vorkommen der via identifierString definierten Zeichenkette gesucht.
de/software/matlab/trepr/dev/treprload/ini-datei.txt · Zuletzt geändert: 2020/09/30 21:35 von 127.0.0.1