Datenrekonstruktion: Numerische Daten aus XY-Diagrammen

In diesem Artikel soll nicht über elektronische Bildverarbeitung berichtet werden, denn das Scannen von Schwarzweißabbildungen ist für Handyscanner mittlerweile eine leichte Übung. Dies kann man sich zunutze machen, um aus XY-Diagrammen auf einfache und schnelle Weise wieder die zugrundeliegenden numerischen Werte zu rekonstruieren.

Abb. 1: Verwendete Koordinatensysteme

Gerade im universitären Bereich sind immer noch viele ATARIs mit dem Erfassen und Verarbeiten von Meßdaten beschäftigt. Für Wissenschaftler und Ingenieure stellt sich oft das Problem, daß Daten häufig in Form von XY-Diagrammen veröffentlicht werden und damit ein Vergleich mit eigenen Ergebnissen schwer ist, da die numerischen Werte selbst natürlich nicht verfügbar sind. Als Ausweg blieb bisher nur das etwas mühselige Herausmessen der Punkte „von Hand“. Lassen sich mit einem mittelalterlichen Zeitgefühl und mit Geodreieck bewaffnet aus linearen Diagrammen noch Werte mit tolerierbarem Fehler herausmessen, findet dieses Verfahren spätestens bei logarithmischen Achsen ein Ende.

Wieso also nicht diese Sträflingsarbeit dem Computer aufbürden? Keine Angst, der mathematische Aufwand beschränkt sich auf einige elementare Kenntnisse, sofern das zu bearbeitende XY-Diagramm erst einmal am Bildschirm sichtbar ist. Zur Größe sei angemerkt, daß mit der verfügbaren Scan-Breite von 105 mm die meisten Diagramme aus Veröffentlichungen bearbeitet werden können. Es hat sich gezeigt, daß sich mit einer Auflösung von nur 100 dpi Daten bereits sehr genau rekonstruieren lassen. Ein einfacher Handyscanner ist also völlig ausreichend für unsere Zwecke, womit sich auch der Aufwand für die Hardware in einem erschwinglichen Rahmen hält.

Doch nun zur Sache. Um aus einer (eingescannten) Grafik wieder numerische Werte zu erhalten, sind die folgenden Schritte notwendig:

1) Die Grafik muß am Bildschirm angezeigt werden.

2) Die Größe der Grafik muß ermittelt werden, z.B. durch Aufziehen eines Auswahlrechtecks.

3) Die Minimal- und Maximalwerte der Achsen müssen eingegeben werden.

4) Aus den Schritten 2) und 3) werden mittels einer einfachen Formel die zugrundeliegenden Werte berechnet, z.B. nach dem Anklicken der entsprechenden Punkte mit der Maus. Aus den Schritten 2) und 3) ist weiterhin bereits ersichtlich, daß zwei Koordinatensysteme zu verwenden sind, festgelegt durch das Pixel-Raster der Bildschirmauflösung und durch den Wertebereich des zu bearbeitenden Diagrammes (s. Abb.l).

Die x'-Koordinate des Bildschirms kann in der hohen Auflösung Werte zwischen 0 und 640 annehmen, die y’-Koordinate Werte zwischen 0 und 400, wobei zu beachten ist, daß sich der Nullpunkt in der linken oberen Ecke des Bildschirms befindet. Durch die Auflösung des Bildschirms ist auch die Genauigkeit der grafischen Analyse bestimmt. Das zu bearbeitende XY-Diagramm besitzt hingegen x-Werte zwischen xmin und xmax und y-Werte zwischen ymin und ymax.

Im Folgenden wird exemplarisch für die x-Achse erklärt, wie für einen beliebigen Punkt P(x,y) x- und y-Wert bestimmt werden.

Aus Abbildung 2 kann entnommen werden, daß zwischen dem Pixel-Raster und den x-Koordinaten ein linearer Zusammenhang besteht (für die y-Achse gilt sinngemäß dasselbe; wen wundert’s?).

Es kann daher folgende Geradengleichung aufgestellt werden:

x' = mx*x + bx (1)

wobei für die Steigung mx der x-Achse gilt:

mx = (xmax'-xmin') / (xmax-xmin) (2)

(xmax'-xmin') ist die Länge der x-Achse in Pixel-Einheiten, sie muß zuvor mit Hilfe der Maus ermittelt werden, die Minimal- und Maximalwerte xmin und xmax sind einzugeben.

Der Achsenabschnitt bx der x-Achse kann durch Umformen von Gleichung 1 und Einsetzen der Maximalwerte berechnet werden:

bx = xmax' - (mx * xmax) (3)

Hiermit sind wir fast am Ziel. Wird für den Punkt P(x,y) nun per Mausklick der entsprechende x' Wert (Pixel)ermittelt, so gilt für das gesuchte x:

x = (x' - bx) / mx (4)

Ein klein wenig komplizierter geht’s aber schon noch. Zunächst sei aber nochmal darauf hingewiesen, daß die vorgestellten Berechnungen sinngemäß auch für die y-Achse durchzuführen sind.

Wie sieht die ganze Sache bei logarithmischen Achsen aus? Wie bei linearen Achsen wird auch hier wieder ein linearer Zusammenhang zwischen den „Pixel-Koordinaten“ und den tatsächlichen Werten genutzt, nur müssen diese zunächst logarithmiert werden. Das Ganze ist zur Verdeutlichung noch einmal an einem konkreten Beispiel in Abbildung 3 gezeigt.

Abb. 2: Zusammenhang zwischen den Koordinatensystemen, dargestellt für die lineare x-Achse

Hier beginnt die x-Achse bei 200 mit dem Wert 10 und endet bei 400 mit dem Wert 1000. Die Länge der Achsen in Pixel-Einheiten ist also (xmax' - xmin’) = 400 - 200 = 200 Pixel, der Wertebereich der x-Achse ist (xmax - xmin) = 1000 -10 = 990. Zur Beschreibung der logarithmischen Achse müssen die angegebenen Gleichungen daher leicht modifiziert werden. Der lineare Zusammenhang lautet

x' = mx * log(x) + bx (5)

dabei ist die Steigung

mx = (xmax'- xmin') / (log(xmax) - log(xmin)) (6)

[Für die Nichtmathematiker sei verraten, daß log(x) die Logarithmusfunktion ist, aber dies nur nebenbei.] Der Achsenabschnitt ist

bx = xmax' - (mx * log(xmax)) (7)

und der gesuchte x-Wert ist damit

x = 10^((x' - bx) / mx) (8)

Für den leidlich begabten Hobbyprogrammierer sollte es damit kein Problem sein, die angegebenen Formeln innerhalb kurzer Zeit in ein kleines und mehr oder minder komfortables Progrämmchen zu schreiben (BASIC ist völlig ausreichend) und sich damit in Zukunft einen Haufen Zeit zu sparen.

Für die Tüftler möchte ich dennoch eine kleine Herausforderung lassen, denn beim schnellen Scannen wird’ s schon mal schief, und dann verlangt es durchaus nach mehr Mathematik.

Eine komfortable Programmversion (auch zur Bearbeitung „schief“ gescannter Diagramme) kann für DM 30,- direkt beim Autor bestellt werden:

E. Jakob Petersenstr 20 D-64287 Darmstadt

Abb. 3: Beispiel für logarithmische Achsen


Links

Copyright-Bestimmungen: siehe Über diese Seite
Classic Computer Magazines
[ Join Now | Ring Hub | Random | << Prev | Next >> ]