Benutzer-Werkzeuge

Webseiten-Werkzeuge


orbfit

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
orbfit [2023/05/05 08:53] torsten.roehlorbfit [2023/05/09 13:38] (aktuell) – [OrbFit Test] torsten.roehl
Zeile 1: Zeile 1:
 ====== Orbfit ====== ====== Orbfit ======
-//Das ''OrbFit Software Packet'' ist eine professionelle Software für die Astrometrie. Die von u.a. AstDys-2, NeoDys-2 und dem Minor Planet Center verwendet wird. Sie ist in Fortran geschrieben und als Opensource für Linux verfügbar. Leider ist die Software <del>schlecht</del> wenig Dokumentiert und es gibt fast keine Tutorials. Aufgrund ihrer Leistungsfähigkeit ist sie dennoch alternativlos. //+//Das OrbFit-Softwarepaket ist eine professionelle Anwendung für die Astrometrie und ein wertvolles Geschenk für Hobbyastronomen. Die Software wird unter anderem von AstDys-2, NeoDys-2 und dem Minor Planet Center genutzt. Sie ist in Fortran geschrieben und als Open-Source-Software für Linux verfügbar. Leider ist die Software nur begrenzt dokumentiert und es gibt kaum Tutorials. Trotzdem ist sie aufgrund ihrer Leistungsfähigkeit unverzichtbar.// 
 + 
 +OrbFit enthält eine Reihe von Programmen: 
 +  * ''orbfit.x'' 
 +      * Ein Programm, mit dem Berechnungen aus Beobachtungsdaten mithilfe einer Steuerdatei durchgeführt werden können.  
 +  * ''fitobs.x'' 
 +          * wie ''orbfix.x'' jedoch interaktiv, d.h. Menügesteuert. 
 +  * ''bineph.x'' 
 +          * Es kann verwendet werden, um Binärdateien zu erzeugen, die Störungen durch andere Asteroiden berücksichtigen.
  
  
Zeile 16: Zeile 24:
  
  
-====== Download Installation ======+====== DownloadInstallation & Configuration ======
  
-====== Überblick ======+===== Überblick =====
   - **OrbFit Download**   - **OrbFit Download**
           -   Herunterladen und auspacken der Software in einem Verzeichnis der eigenen Wahl            -   Herunterladen und auspacken der Software in einem Verzeichnis der eigenen Wahl 
Zeile 25: Zeile 33:
   - **OrbFit Configuration**   - **OrbFit Configuration**
           -  ''JPLEPH''  bereitstellen (<color #ed1c24>erforderlich</color>, d.h. ohne ''jpleph'' kann ''OrbFit'' nicht verwendet werden)           -  ''JPLEPH''  bereitstellen (<color #ed1c24>erforderlich</color>, d.h. ohne ''jpleph'' kann ''OrbFit'' nicht verwendet werden)
-  **OrbFit Test** +          Orbitalelemente Datei zur Verfügung stellen 
-          -  mitgelieferte Tests kompilieren +  
-  - **OrbFit Example** +<note tip>Für die Installation von OrbFit sind keine Root-Rechte erforderlich. Die Installation ist nicht besonders kompliziert, erfordert jedoch das Durchführen einiger Schritte.</note>
-          - eigene Beispiele einbinden und ausprobieren +
- +
-<note tip>Fur die Installation sind keine Rootrechte erforderlich.</note>+
 **Voraussetzungen** **Voraussetzungen**
-  *  Falls make nicht installiert ist: ''apt install make'' +  * Falls ''make'' nicht installiert ist: ''apt install make''  
 +  * Ein FTP-Client wird benötigt 
  
  
-====== Details ======+===== Details =====
 ==== OrbFit Download ==== ==== OrbFit Download ====
 //Dieser Schritt ist einfach, das Paket wird heruntergeladen und ausgepackt.// //Dieser Schritt ist einfach, das Paket wird heruntergeladen und ausgepackt.//
 OrbFit kann unter dem folgenden Link als ''tar.gz-Paket'' für Linux heruntergeladen werden. OrbFit kann unter dem folgenden Link als ''tar.gz-Paket'' für Linux heruntergeladen werden.
  
-  * **OrbFit** Homepage und Download der Software: http://adams.dm.unipi.it/orbfit/+  * **OrbFit** Download der Software: http://adams.dm.unipi.it/orbfit/
  
-Am Beispiel der Version: ''OrbFit5.0.7.tar.gz'' wird die Installation beschrieben. +Am Beispiel der Version: ''OrbFit5.0.7.tar.gz'' wird die Vorgehensweise beschrieben. 
-Im ''Homeverzeichnis'' wird ein Verzeichnis ''orbfit'' erstellt, in dieses Verzeichnis wird die heruntergeladene Software extrahiert+ 
-<Code:bash linenums:1 | > +Legen Sie ein Verzeichnis an, wo sich fortan ''OrbFit'' befinden soll. 
-mkdir orbfit +Anschließend wird die Datei ''OrbFit5.0.7.tar.gz'' in dieses Verzeichnis  verschoben und ausgepackt. 
-tar -xzf OrbFit5.0.7.tar.gz -C ./orbfit    </Code>+  * Hier wird im Homeverzeichnis ein Ordner ''orbfit''  verwendet 
 +Diese Aufgaben können mit der ''Gui'' oder der ''Konsole'' erledigt werden. 
 + 
 +<Code:bash linenums:1 | Beispiel ~/orbfit
 +mkdir orbfit  # Verzeichnis anlegen 
 +cd orbfit     # in das Verzeichnis wechseln 
 +# die Software OrbFit5.0.7.tar.gz in das Verzeichnis orbfit verschieben z.b. mit mv! 
 +tar -xzf OrbFit5.0.7.tar.gz  # Software auspacken</Code>
  
 ==== OrbFit Install ==== ==== OrbFit Install ====
-//Wenn ''make'' und ''fortran'' vorhanden sind, ist das installieren in 2 min. erledigt. Zuerst mit  ''cd'' in das Verzeichnis gewechselt in das Orbfit zuvor extrahiert wurde (hier ''~/orbfitF''). Anschießend wird der Fortran-Compiler gesetzt und dann noch einmal ''make'' aufgerufen.//+//Wenn ''make'' und ''fortran'' vorhanden sind, ist das installieren in 2 min. erledigt. 
 +Zuerst mit  ''cd'' in das Verzeichnis gewechselt in das Orbfit zuvor extrahiert wurde (hier ''~/orbfit''). 
 +Anschießend wird der Fortran-Compiler gesetzt und dann noch einmal ''make'' aufgerufen.//
  
 +
 +**Fortran**
 <Code:bash linenums:1 | > <Code:bash linenums:1 | >
-./config gfortran+./config -O gfortran   # O for Optimized
 default documentation directory is /home/student/orbfit/doc default documentation directory is /home/student/orbfit/doc
 default library directory is /home/student/orbfit/lib  </Code> default library directory is /home/student/orbfit/lib  </Code>
 +**make**
 +<Code:bash linenums:1 | >
 +make </Code>
  
 +Wenn keine Fehler aufgetreten sind, ist ''OrbFit'' damit installiert.
 +
 +Je nach Wunsch kann auf der Konsole oder in der ''~/.bashrc'' das ''bin''-Verzeichnis von OrbFit bekannt gemacht werden.
 +<Code:bash linenums:1 | >
 +export PATH="$PATH:$HOME/orbfit/bin" # ORBFIT PATH e.g. in ~/.bashrc </Code>
 +
 +
 +==== OrbFit Configuration ====
 +//Für die Berechnungen benötigt OrbFit eine ''jpleph''-Datei. Diese Datei muss erst erstellt werden, indem eine von vielen JPLEPH-Version dazu ausgewählt wird. Elegant ist es, verschiedene Versionen in einem Ordner bereitzustellen und dann zur Laufzeit einen Link auf die Version zu setzen, die OrbFit verwenden soll. Im Folgenden wird dieses Verfahren beschrieben.//
 +
 +  - JPLEPH-Version auswählen und herunterladen (es handelt sich um mehrere Dateien)
 +  - Die JPLEPH erstellen (es wird eine Binärdatei erzeugt) und bereitstellen.
 +
 +=== JPLEPH-Version auswählen und herunterladen ===
 +//Ein ''FTPClient'' ihrer Wahl wird jetzt benötigt :-). Um später verschiedene ''JPLEPH'' auswählen zu können, laden wir beispielhaft zwei Konfigurationen von Dateien herunter. Für jede wird dann eine Binärdatei erzeugt und jeweils eine zur Laufzeit von ''OrbFit'' mit Hilfe eines symbolischen links zur Verfügung gestellt. //
 +  * **FTP Adresse**  ftp://ssd.jpl.nasa.gov
 +Gehen Sie in das Verzeichnis ''/pub/eph/planets/ascii''
 +  * ''/pub/eph/planets/ascii/de421''
 +          * Laden Sie alle Dateien (4) in ein Verzeichnis Ihrer Wahl herunter
 +{{ :de421.png?400 |}}
 +  * ''/pub/eph/planets/ascii/de440''
 +          * Laden Sie auch hier alle Dateien (13) in ein Verzeichnis Ihrer Wahl herunter
 +               
 +
 +Hiermit ist dann folgende Verzeichnisstruktur vorhanden
 +{{ :jpleph_path.png?400 |}}
 +
 +Ziel ist es nun die Dateien **jpleph421** und **jpleph440** zu erzeugen. Ich zeige die Vorgehensweise an **jpleph421**.
 +
 +== Step 1:  ==
 +Inhalt des Ordners de421 ins das ''scr/jpleph'' Verzeichnis von ''OrbFit'' verschieben (oder kopieren).
 +
 +<Code:bash linenums:1 | >
 +cd jpleph/de421           # in das Verzeichnis der 4-Dateien wechseln
 +cp * ~/orbfit/src/jpleph  # alles nach orbfit/src/jpleph  kopieren </Code>
 +== Step 2:  ==
 +<Code:bash linenums:1 | >
 +cat header.421 ascp1900.421 ascp2050.421 | ./asc2eph.x
 +
 +# ... nach einiger Zeit
 +  3201 EPHEMERIS RECORDS WRITTEN.  LAST JED =   2517424.50
 +  3301 EPHEMERIS RECORDS WRITTEN.  LAST JED =   2520624.50
 +  3401 EPHEMERIS RECORDS WRITTEN.  LAST JED =   2523824.50
 +  3426 EPHEMERIS RECORDS WRITTEN.  LAST JED =   2524624.50
 +STOP  OK  </Code>
 +Damit wurde die Datei ''JPLEPH'' erstellt.
 +
 +<note>Wenn nur eine Konfiguration ausreicht wird diese
 +Datei nun mit ''mv JPLEPH ../../lib/jpleph'' ins ''lib-Verzeichnis'' verschoben und ''OrbFit'' ist einsatzbereit.
 +
 +</note>
 +
 +== Step 3:  ==
 +Die ''JPLEPH'' wird jetzt in jpleph421 umgenannt (''mv JPLEPH jpleph421'').
 +Um diese Datei ''OrbFit'' zur Verfügung zu stellen wird ein Link erstellt.
 +
 +<Code:bash linenums:1 | >
 +ln -s /pathto/jpleph421 /pathto-orbfit/lib/jpleph
 +</Code>
 +
 +Analog wird auch die ''jpleph440'' erstellt.
 +<Code:bash linenums:1 |  >
 +cat header.440 ascp01550.440 ascp01650.440 ascp01750.440 ascp01850.440 ascp01950.440 ascp02050.440 ascp02150.440 ascp02250.440 ascp02350.440 ascp02450.440 ascp02550.440 | ./asc2eph.x </Code>
 +
 +Die Dateien ''jpleph440'' und ''jpleph421'' werden in ein zu erstellendes Verzeichnis (hier ''jpleph'') kopiert, damit ist folgende Ordnerstruktur entstanden:
 +{{ :setjpleph.png?400 |}}
 +
 +Ein kleines Script liegt ebenfalls im Verzeichnis, damit verschiedene JPLEPH-Dateien schnell getestet bzw. gewechselt werden können.
 +<Code:bash linenums:1 | setJPLEPH.scr >
 +#!/bin/bash
 +# note: q&d script without exception handling etc.
 +# ADJUST PATH if neccessary!
 +TODO_JPL=$1
 +rm ~/app/orbfit/lib/jpleph
 +ln -s ~/app/jpleph/$TODO_JPL ~/app/orbfit/lib/jpleph
 +echo "...done"</Code>
 +
 +Je nach Wunsch kann jetzt die ''JPLEPH'' gewählt werden.
 +<Code:bash linenums:1 |   >
 +cd jpleph                  # ins Verzeichnis wechseln
 +./setJPLEPH.scr jpleph421  # Auswahl der jpleph421</Code>
 +
 +=== Orbitalelemente zur Verfügung stellen ===
 +Orbitalelement können **täglich aktualisiert** von ''Lowell Observatory'' heruntergeladen werden.
 + 
 +  * https://lowell.edu/
 +  * https://www.sciencedirect.com/science/article/pii/S2213133722000750?via%3Dihub
 +
 +
 +  * Download der ''astorb.dat'' Datei mit Orbitalelementen https://asteroid.lowell.edu/main/astorb/ 
 +
 +<Code:bash linenums:1 |   >
 +cd path 
 +wget http://ftp.lowell.edu/pub/elgb/astorb.dat.gz
 +gunzip astorb.dat.gz
 +</Code>
 +
 +Wie diese Datei benutzt wird, wird in den Beispielen gezeigt.
 +====== OrbFit Test & eigene Beispiele ======
 +
 +<note tip>Orbfit (''orbfit.x'') funktioniert immer nachdem gleichen Prinzip.
 + 
 + Beobachtungsdaten (''*.obs oder *.rwo'') und eine Steuerdatei (''*.oop'') (die sagt was mit den Daten gemacht werden  sollen) werden dem Programm ''orbfit.x'' übergeben. Das Programm ''orbfit.x'' erzeugt dann eine Reihe von Ausgabedateien mit dem Ergebnissen.
 +
 +
 +Falls Störungen durch Asteroiden berücksichtigt werden sollen, müssen diese in Form einer ''*.bai'' und ''*.bep'' Datei vorliegen.
 +
 +In den meisten Fällen wird auch eine Datei mit Orbitalelementen (z.b. ''astorb.dat'') benötigt.  
 +
 +</note>
 +
 +
 +  * **OrbFit Test**
 +      -  mitgelieferte Tests kompilieren
 +  * **OrbFit Example**
 +      - eigene Beispiele einbinden und ausprobieren
 +==== OrbFit Test ====
 +Um die mitgelieferten Beispiele von ''OrbFit'' auszuprobieren, wechselt man in das Verzeichnis ''test'' und ruft den Befehl ''make'' auf.
 + 
 +
 +<Code:bash linenums:1 | >
 +cd ~/orbfit/tests/
 +make </Code>
  
 +<note tip>Falls weitere Beispiele gewünscht sind, können ältere OrbFit-Versionen verwendet werden, da diese häufig andere Beispiele enthalten. Die Beispiele sind jeweils im ''test'' Verzeichnis der entsprechenden ''OrbFit''-Version zu finden.
  
 +  * https://github.com/Unipisa/OrbFit-Depository/tree/master/browsable_source
 +</note>
 +Es kann hilfreich sein, das Studium der verschiedenen Konfigurationsmöglichkeiten von ''OrbFit'' in einem eigenen ''Workspace'' durchzuführen. Im nächsten Abschnitt wird erläutert, wie dies gemacht werden kann.
 +==== eigene Beispiele ====
 +FIXME Beispiele hinzufügen
orbfit.1683276812.txt.gz · Zuletzt geändert: 2023/05/05 08:53 von torsten.roehl