Hallo Gemeinde,
Ich hab auch mal wieder vor, etwas mit Cocoa bzw. Objective C zu machen.
Und komme darauf zurück, was ich schon immer auf Apple-Basis mal realisieren wollte.
Ich wollte gerne eine Sternkarte plotten.
Dabei geht es darum, die Daten der Sterne, sprich Positionsangaben,
Helligkeit ect. aus ASCII Dateien auszulesen ?!
Es gibt ein grosses Achiv, von sehr grossen Katalogen,
mit teilweise meherern Millionen Datensätze an Sterndaten.
Als Beispiel,
habe ich mal den PPM Katalog ausgewählt, der Link dazu
cdsweb.u-strasbg.fr/viz-bin/ftp-index?I/208
hier kann man sich den Katalog runterladen Datei "ppm3.dat.gz".
Wenn ich diese Datei nun geladen hab, kann ich sie mit Textedit öffenen
und was dort erscheint, ist das:
[Blockierte Grafik: http://www.dwienand.de/Expo/ppm.png]
hier sind nun die einzelnen Datensätze schön der Reihe nach angeordnet.
Nun möchte ich aber dezidiert auf bestimmte Daten zugreifen und dazu gibt es zu jedem
Katalog einen Readme die etwa so aussieht:
hier stehen Byte-Bereiche, was für welche Daten reserviert ist.
Meine Fragen jetzt dazu:
* Wie kann ich es möglichst einfach Lösen, die Daten einzulesen, um sie weiter in meinem
Programm zu benutzen? Ich hatt mir gedacht, das ich einen "Importer" oder ähnliches dafür
baue, der dann das Lesen der Daten aufgrund der Byte-Angaben übernimmt ?
* Da es hier um grosse Datenmengen geht (die zusäzlich zur Laufzeit des Programms "fliessen"
müssen), müsste ich mir Strategien zur Verarbeitung überlegen? Evtl. könnte man das Ganze
in eine Datenbank importieren, doch hier sehe ich die Gefahr, das das "Lesen" zu langsam geht?
Ich will euch jetzt nicht fragen, wie das "technisch" genau vor sich geht, mir gehts nur um eine
grobe Richtung vom Denkansatz her. Also, ist es Sinnvoll da einen Importer für zu bauen?
Welche Klassen, Objekte könnte man zur Hilfe nehmen ect.
Es geht eigentlich nur?? darum, die Daten eben aus diesen Dateien zu lesen, sie in Variablen
innerhalb des Programms zwischenzuspeichern, ein paar Berechnungen mit ihnen zu machen
und sie zum Plotten von Stern-Scheibchen zu benutzen.
Jeder Ast im fliessenden Wasser würd mir helfen
Ich hab auch mal wieder vor, etwas mit Cocoa bzw. Objective C zu machen.
Und komme darauf zurück, was ich schon immer auf Apple-Basis mal realisieren wollte.
Ich wollte gerne eine Sternkarte plotten.
Dabei geht es darum, die Daten der Sterne, sprich Positionsangaben,
Helligkeit ect. aus ASCII Dateien auszulesen ?!
Es gibt ein grosses Achiv, von sehr grossen Katalogen,
mit teilweise meherern Millionen Datensätze an Sterndaten.
Als Beispiel,
habe ich mal den PPM Katalog ausgewählt, der Link dazu
cdsweb.u-strasbg.fr/viz-bin/ftp-index?I/208
hier kann man sich den Katalog runterladen Datei "ppm3.dat.gz".
Wenn ich diese Datei nun geladen hab, kann ich sie mit Textedit öffenen
und was dort erscheint, ist das:
[Blockierte Grafik: http://www.dwienand.de/Expo/ppm.png]
hier sind nun die einzelnen Datensätze schön der Reihe nach angeordnet.
Nun möchte ich aber dezidiert auf bestimmte Daten zugreifen und dazu gibt es zu jedem
Katalog einen Readme die etwa so aussieht:
File Summary:
------------------------------------------------------------------------
FileName Lrecl Records Explanations
------------------------------------------------------------------------
ReadMe 80 . This file
ppm3.dat 131 89676 The catalogue
desc.txt 78 261 Authors' description
------------------------------------------------------------------------
Byte-per-byte Description of file: ppm3.dat
------------------------------------------------------------------------
Bytes Format Units Label Explanations
------------------------------------------------------------------------
2- 7 I6 --- PPM *[700001/789676]+ Designation of the star
10-18 A9 --- DM *Durchmusterung, BD or CD
20-23 F4.1 mag Mag *Magnitude, Visual if Flag5 is 'V'
25-26 A2 --- Sp *Spectral type
28-29 I2 h RAh Right Ascension for the Equinox=J2000.0 5
31-32 I2 min RAm Right Ascension J2000 (minutes)
34-39 F6.3 s RAs Right Ascension J2000 (seconds)
42 A1 --- DE- Declination J2000 (sign)
43-44 I2 deg DEd Declination for the equinox and epoch
...
hier stehen Byte-Bereiche, was für welche Daten reserviert ist.
Meine Fragen jetzt dazu:
* Wie kann ich es möglichst einfach Lösen, die Daten einzulesen, um sie weiter in meinem
Programm zu benutzen? Ich hatt mir gedacht, das ich einen "Importer" oder ähnliches dafür
baue, der dann das Lesen der Daten aufgrund der Byte-Angaben übernimmt ?
* Da es hier um grosse Datenmengen geht (die zusäzlich zur Laufzeit des Programms "fliessen"
müssen), müsste ich mir Strategien zur Verarbeitung überlegen? Evtl. könnte man das Ganze
in eine Datenbank importieren, doch hier sehe ich die Gefahr, das das "Lesen" zu langsam geht?
Ich will euch jetzt nicht fragen, wie das "technisch" genau vor sich geht, mir gehts nur um eine
grobe Richtung vom Denkansatz her. Also, ist es Sinnvoll da einen Importer für zu bauen?
Welche Klassen, Objekte könnte man zur Hilfe nehmen ect.
Es geht eigentlich nur?? darum, die Daten eben aus diesen Dateien zu lesen, sie in Variablen
innerhalb des Programms zwischenzuspeichern, ein paar Berechnungen mit ihnen zu machen
und sie zum Plotten von Stern-Scheibchen zu benutzen.
Jeder Ast im fliessenden Wasser würd mir helfen