Scripte

Diese Scripte hab ich geschrieben, um Daten während meiner Diplomarbeit zu verarbeiten. Sie sind zwar schon auf die entsprechenden Anforderungen unserer Meßsoftware angepasst, können aber sicher auch allgemein benutzt werden. Ich hab verschiedene Sprachen benutzt, meißt die, die am besten zum Problem passt.

eins2dat

eins2dat ließt die Daten der XPS *.1 Dateien ein. Darin gibt es nur eine Spalte mit der Zählrate und in den ersten Zeilen die Energiebereiche.

Da dies zum Plotten zu umständlich ist, fügt mein Script eine Spalte hinzu in der die Bindungsenergie steht. Diese wird aus der Kommentarzeile konstruiert.

Das Script verändert die Orginaldaten nicht, die *.1 Dateien werden nur gelesen. Es wird eine Datei erstellt die den gleichen Namen hat, nur die Endung .dat statt .1. Um mehrere Dateien in einem oder mehreren Verzecihnissen zu konvertieren kann man am einfachsten eine Bash Schleife benutzen (oder find). Mit der Option -a fragt das Script nach, ob es eine bestehende Datei gleichen Namens überschreiben soll.

eins2dat [-a] filename

eins2dat

sep_one

Nimmt man mit unserem Spektrometerprogramm über Nacht mehrere Datensätze auf, kann man diese nicht einzeln als .1 datei abspeichern. Sie werden alle hintereinander in einer großen 1-Datei (welcher Idiot nennt sein Datenformat eigentlich *.1 ?) abgespeichert. Dieses Script macht aus dieser einen Datei die entsprechenden einzelnen Spektren.

Diese einzelnen Dateien werden je nach Modus mit einem Basisnamen und einer aufsteigenden Nummer benannt.

Aufgepasst: nur wenn 1486.6 eV als Anregungsenergie benutzt wird funktioniert das Script, da einfach nach diesen Zeilen gegrepped wird.

sep_one

maximum, minimum

Kleine awk-Scripte die das Maximum, bzw. das Minimum Wert der ersten Spalte einer Datei ausgeben, was man z.B. zum Normalisieren braucht. Um eine andere Spalte zu nutzen kann es ganz einfach angepast werden.

maximum minimum

Difference spectra

Dieses Script zieht die Daten der zweiten Datei von der ersten ab. Solange beide Dateien die gleiche Zahl von Einträgen und den gleichen Bereich der X-Werte haben ist dies einfach. Hat aber eine der beiden mehr Einträge, sind die Daten verschoben oder sind die Abstände verschieden ist es deutlich komplizierter.

Das Programm ist in C++ geschrieben und wird von einem kleinen Bash Script unterstützt. Es setzt zwei Dateien mit je zwei Spalten vorraus. Ist in der ersten Datei kein passender X-Wert wird dieser linear interpoliert. Das Script gibt 4 Spalten aus, x-Spalte, y-Werte der zweiten Datei, y-Wert der ersten und die Differenz der beiden.

Benutze es wie folgt:
difference file1 file2

difference
difference.sh
difference.cpp