Forum der Vereinigung der Sternfreunde

Forum of the German Amateur Astronomy Association
Aktuelle Zeit: 14. Dezember 2018, 05:42:24 AM

Alle Zeiten sind UTC+02:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 11. Juli 2018, 07:26:20 AM 
Offline
Meister
Benutzeravatar

Registriert: 20. Januar 2013, 20:03:54 PM
Beiträge: 392
Wohnort: Leipzig
Liebe Sternfreunde,

für unser Journal habe ich einen Aufsatz zur Bahnbewegung geschrieben. Es wird übrigens im nächsten Heft einen zweiten Teil geben. Wie im Text angegeben, stelle ich das kleine Python-Programm hier ein. Ihr könnt es ausschneiden und unter z.B. ellip.py speichern (wichtig ist die Endung .py) und damit experimentieren.

Wer selbst eintippt, es gibt eine Falle: In Python werden Schleifen durch Einrückungen angegeben. Dies muss einheitlich sein, udn darf nicht nur so aussehen. Man kann Tabulatoren benutzen oder Leerzeichen. Aber nicht mal Tabulatoren und mal Leerzeichen. Auch wenn es am Bildschirm gleich aussieht, ist es für den Sprachinterpreter unterschiedlich und er wird "meckern" = mit einer Meldung abbrechen. Ein Hilfe ist es, die Sonderzeichen einzublenen, bessere Texteditoren können das. Ich habe Leerzeichen verwendet.
Code:
import math
# Ellipse
a=1
e=0.6
b=math.sqrt(1-e*e)
f_ellip=math.pi*a*b
# Startpunkt
t=0
u=a*math.cos(t)-e
v=b*math.sin(t)
# Fläche ist erstmal 0
f=0
anzahlSchritte=200
# Schleife durch alle Werte von t
for i in range(0, anzahlSchritte):
        t=t+2*math.pi/anzahlSchritte
        x=a*math.cos(t)-e
        y=b*math.sin(t)
        p=math.sqrt((x-u)**2+(y-v)**2)
        q=math.sqrt(u**2+v**2)
        r=math.sqrt(x**2+y**2)
        s=(p+q+r)/2
        f=f+math.sqrt(s*(s-p)*(s-q)*(s-r))
        u=x
        v=y
        # Ephemeriden drucken
        print("Teilfläche (%):"+str(100*f/f_ellip)),
        T=180*math.atan2(y,x)/math.pi
        print("wahre Anomalie:",T)
        print("")
print("Berechnet: "+str(f))
print("Theorie:   "+str(f_ellip))
diff=abs(f-f_ellip)
print("Differenz   "+str(diff))
name = input("Fertig?")

_________________
Uwe Pilz, Fachgruppen Kometen und Astrophysik/Algorithmen.
Oft benutzte Instrumente: Swarovski SLC 7x50B, Fujinon 16x70 FMT-SX-2, TMB Apo 105/650, Ninja Dobson 320/1440


Nach oben
   
BeitragVerfasst: 11. Juli 2018, 15:52:22 PM 
Offline
Nutzer
Benutzeravatar

Registriert: 11. Februar 2017, 20:14:57 PM
Beiträge: 42
Wohnort: Wien
Feine Sache.
Habe das Script zum testen auf eine Raspberry Pi / Model B Rev 2 laufen lassen - Und es lief :D (Bin leider MS Windoof-lastig seit mehr als 20 Jahren)
Vor Windows war der TI99A mein Einstieg in das programmieren, und nebenbei der Brotkasten - Bin hauptsächlich im SQL-Bereich unterwegs...
Habe noch einen Raspberry Pi 3 Model B in Reserve und werde mir den für die kommenden Python-Programme vorbereiten.
Freue mich auf weitere Scripts um mal was neues wieder zu lernen....

_________________
LG Rudolf S.
Österreichischer Astronomischer Verein (ÖAV)
Vereinigung der Sternfreunde e.V.
Visueller Beobachter/DeepSky, Sonne, Mond
Meteorscatter mit SDRPlay1 / HDSDR, SDRPlay & Uno
Beim Beobachten von einzigartigen Deep-Sky-Objekten müssen die Tränen der Ergriffenheit zum Ohr hin abfließen.


Zuletzt geändert von Rudolf Sanda am 11. Juli 2018, 16:47:15 PM, insgesamt 1-mal geändert.

Nach oben
   
BeitragVerfasst: 11. Juli 2018, 16:00:07 PM 
Offline
Meister
Benutzeravatar

Registriert: 01. August 2006, 16:08:56 PM
Beiträge: 3805
Wohnort: 68163 Mannheim
Hallo Uwe,

zuerst möchte ich dir danken, dass du diese "Abteilung" oder Fachgruppe in unserem Forum übernommen hast und pflegen möchtest.

Jeder, der sich ernsthaft mit astronomischen Fragen beschäftigt kommt mindestens einmal in die Lage, ein spezifisches Problem mit dem PC/Laptop lösen zu wollen....und dazu ist häufig ein selbst gebasteltes Programm der beste Weg. Denn es zwingt den Anwender, das zu lösende Problem erst einmal richtig zu verstehen.
Zu Zeiten der Taschenrechner hat man evtl. noch den alten Jan Meeus (Astronomische Algorithmen) verwendet, Daten aus den Astronomischen Almanachs entnommen... Und sich ein kleines Programm z.B. in Basic erstellt.

Deine Wahl für Python ist für Anwender, die nicht beruflich oder täglich programmieren, vermutlich die beste. Auch ich versuche mich seit einigen Wochen in die Sprache einzuarbeiten, mit dem Ziel sie evtl. im spektroskopischen Bereich anzuwenden. Bisher arbeite ich mit ESO-Midas, um Spektrenaufnahmen auszuwerten. Gelegentlich treten aber Probleme auf, die mit dem "vorgefertigten" Midas nicht erfasst sind.

Zwischenzeitlich gibt es auch öffentlich zugängliche Python-Bibliotheken für den (Hobby)Astronomen, wie z.B. AstroPy (http://www.astropy.org/), und dafür wieder spezielle Bibliotheken wie Ccdproc (is is an affiliated package for the AstroPy package for basic data reductions of CCD images, https://ccdproc.readthedocs.io/en/latest/). Es scheint sich zu lohnen, Python zu erlernen.

Auch in der Fachgruppe Spektroskopie gibt es unter dem Thread viewtopic.php?f=4&t=5141 eine Diskussion, inwieweit für uns Python eine Alternative bieten könnte.

Ich bin gespannt, wie sich das weiter entwickelt.

_________________
Herzliche Grüße / best regards

Lothar

https://lotharschanne.wordpress.com/


Nach oben
   
BeitragVerfasst: 11. Juli 2018, 16:10:27 PM 
Offline
Meister
Benutzeravatar

Registriert: 01. August 2006, 16:08:56 PM
Beiträge: 3805
Wohnort: 68163 Mannheim
noch zur Ergänzung:
Python wird ja in Paketen organisiert. Neben einer Grundinstallation (ich verwende anaconda, installiert in meinem Userverzeichnis, darin Python 3.6.5) werden für spezielle Probleme Pakete geladen, die dann in einer Pythonsitzung (Konsole) oder einem Pythonskript (Programm) geladen (= importiert) werden.
Für Astronomen ist Astropy gedacht, zu dem noch eine Menge zusätzlicher Unter-Pakete gehören. Wer sich dafür interessiert schaue einmal im folgenden link nach:
http://www.astropy.org/affiliated/index.html

_________________
Herzliche Grüße / best regards

Lothar

https://lotharschanne.wordpress.com/


Nach oben
   
BeitragVerfasst: 11. Juli 2018, 19:47:49 PM 
Offline
Meister
Benutzeravatar

Registriert: 20. Januar 2013, 20:03:54 PM
Beiträge: 392
Wohnort: Leipzig
Recht vielen Dank für eure Antworten.

Ich selbst verwende eigentlich C++ für wirkliche Programme. Ich weiß von den Paketen für Python, werde sie aber für diese Simulationsexperimente nicht einsetzen. Für mich ist diese Python-Grundinstallation der Ersatz für das Basic vor 30 Jahren - damals haben wir alles in Basic gemacht.

Mir kommt es darauf an, dass ich mit den kleinen Programmen nahe an der Algebra bin. Die Formelsätze sollen im Programm gut wiederzufinden sein, daneben noch paar Schleifenkonstrukte und Verzweigungen und gut - mehr verlangt die Mathematik meist nicht. Ich halte es für dieses Aufgabengebiet (einfach mal was zu erforschen) nicht für sinnvoll, zu tief in die Praktiken der "ordentlichen" Programmierung einzusteigen.

Neben den kleinen Programmen der VdS-Aufsätze können gern hier im Forum die Herangehensweise an größere Vorhaben besprechen und ich werde auch meinen Senf dazugeben.

~

Es ist cool, das ein Rasberry geeignet ist. Hätte ich nicht gedacht.

~

> Zu Zeiten der Taschenrechner hat man evtl. noch den alten Jan Meeus (Astronomische Algorithmen) verwendet,

Irgendwr in einer Ecke habe ich noch die alte Fotokopie des alten "Meeus" aus den 80ern: Hier in Leipzig gibt's die Deutsche Bücherei (jetzt: Deutsche Nationalbibliothek) mit allem deutschen Schriftgut. In meinem Umfeld war jemand, der dort gearbeitet hatte Bücher mal mit nach Hause nehmen konnte. So entstanden ein paar Rollen mit Schwarzweiß-Negativen, welche wir alle auf sog. Dokumentenpapier abgezogen haben. Inzwischen habe ich das richtige Buch gekauft, dass auch nicht mehr Taschenrechnerprogramme, sondern BASIC enthält. Nach wie vor stehen aber die Algorithmen dort im Vordergrund und nicht die Programme selbst.

Meine ersten Programmierversuche habe ich übrigens mit einem russischen Programmierbaren Taschenrechner BS-34 unternommen: 98 Programmschritte, 14 Speicher (als Vektor benutzbar), leider keine Zufallszahlen. Später hatte ich dann einen ZX-81, alles noch in der DDR.

_________________
Uwe Pilz, Fachgruppen Kometen und Astrophysik/Algorithmen.
Oft benutzte Instrumente: Swarovski SLC 7x50B, Fujinon 16x70 FMT-SX-2, TMB Apo 105/650, Ninja Dobson 320/1440


Nach oben
   
BeitragVerfasst: 12. Juli 2018, 10:37:31 AM 
Offline
Nutzer
Benutzeravatar

Registriert: 11. Februar 2017, 20:14:57 PM
Beiträge: 42
Wohnort: Wien
Zitat:
Mir kommt es darauf an, dass ich mit den kleinen Programmen nahe an der Algebra bin. Die Formelsätze sollen im Programm gut wiederzufinden sein, daneben noch paar Schleifenkonstrukte und Verzweigungen und gut - mehr verlangt die Mathematik meist nicht. Ich halte es für dieses Aufgabengebiet (einfach mal was zu erforschen) nicht für sinnvoll, zu tief in die Praktiken der "ordentlichen" Programmierung einzusteigen.
Neben den kleinen Programmen der VdS-Aufsätze können gern hier im Forum die Herangehensweise an größere Vorhaben besprechen und ich werde auch meinen Senf dazugeben.

Meine ersten Programmierversuche habe ich übrigens mit einem russischen Programmierbaren Taschenrechner BS-34 unternommen: 98 Programmschritte, 14 Speicher (als Vektor benutzbar), leider keine Zufallszahlen. Später hatte ich dann einen ZX-81, alles noch in der DDR.
Idee finde ich gut, und ist sicher für einige ein Anreiz auch die (einfachen) mathematische Themen der Astronomie näher kennenzulernen bzw. selbst sich damit zu befassen.

Wenn ich da ZX81 lese werden Erinnerungen wach / Hatte Anfang bis Miite der 90er mit einigen Programmierern aus Ostdeutschland persönlichen Kontakt, und diese auch nach Wien eingeladen - Waren interessante Gespräche / Themen im Bezug auf Hard- & Software.....

_________________
LG Rudolf S.
Österreichischer Astronomischer Verein (ÖAV)
Vereinigung der Sternfreunde e.V.
Visueller Beobachter/DeepSky, Sonne, Mond
Meteorscatter mit SDRPlay1 / HDSDR, SDRPlay & Uno
Beim Beobachten von einzigartigen Deep-Sky-Objekten müssen die Tränen der Ergriffenheit zum Ohr hin abfließen.


Nach oben
   
BeitragVerfasst: 21. Juli 2018, 17:33:26 PM 
Offline
Neueinsteiger

Registriert: 01. April 2010, 01:20:49 AM
Beiträge: 7
Wohnort: Lauenbrück
Ein paar kleine Anmerkungen zu Deinem interessanten Beitrag zur Simulationen zur Bahnbewegung von Planeten:

- Wenn Du nicht von Numpy Gebrauch machst dann empfehle ich gerade beim math Modul ein import * from math (also alle Symbole in den Namespace bringen) oder eine explizite Importierung (from math import atan2,sin,cos,...). Es wirkt sehr unübersichtlich wenn überall der Modulname (math.xxx) davor steht. Leider wurden die grundlegenden mathematischen Operationen nicht in den Core aufgenommen, aber Python war ja nie als mathematisch-technische Sprache entworfen worden.

- Eine Einrücktife von 4 Spaces ist bei Python üblich.

- Der Wertebereich der wahren Anomalie ist [0,360] deg. Beim ATAN2 kann das Ergebnis negativ werden, dann musst du 360 addieren. Oder Du addierst immer 360 deg und machst von der Modulo Funktion Gebrauch.

So sähe meine Version Deines Programms dann aus:
Code:
from math import atan2,sin,cos,degrees,fmod,sqrt,pi

# Ellipse
a = 1
e = 0.6
b = sqrt(1-e*e)
f_ellip = pi*a*b

# Startpunkt
t = 0
u = a*cos(t)-e
v = b*sin(t)

# Fläche ist erstmal 0
f = 0
anzahlSchritte = 200

# Schleife durch alle Werte von t
for i in range(anzahlSchritte):
    t = t + 2*pi/anzahlSchritte
    x = a*cos(t)-e
    y = b*sin(t)
    p = sqrt((x-u)**2+(y-v)**2)
    q = sqrt(u**2+v**2)
    r = sqrt(x**2+y**2)
    s = (p+q+r)/2
    f = f + sqrt(s*(s-p)*(s-q)*(s-r))
    u = x
    v = y
    # Ephemeriden drucken
    print("Teilfläche (%): ", 100*f/f_ellip)
    T = fmod(atan2(y,x) + 2*pi, 2*pi)
    print("Wahre Anomalie: ", degrees(T))
    print("")

print("Berechnet: ", f)
print("Theorie  : ", f_ellip)
print("Differenz: ", abs(f-f_ellip))

input("\nTaste drücken... ")

Und in Julia würde das Programm wie folgt aussehen:
Code:
# Ellipse
a = 1
e = 0.6
b = sqrt(1-e*e)
f_ellip = pi*a*b

# Startpunkt
t = 0
u = a*cos(t)-e
v = b*sin(t)

# Fläche ist erstmal 0
f = 0
anzahlSchritte = 200

# Schleife durch alle Werte von t
for i = 0:anzahlSchritte-1
    t = t + 2*pi/anzahlSchritte
    x = a*cos(t)-e
    y = b*sin(t)
    p = sqrt((x-u)^2+(y-v)^2)
    q = sqrt(u^2+v^2)
    r = sqrt(x^2+y^2)
    s = (p+q+r)/2
    f = f + sqrt(s*(s-p)*(s-q)*(s-r))
    u = x
    v = y
    # Ephemeriden drucken
    println("Teilfläche (%): ", 100*f/f_ellip)
    T = mod(180*atan2(y,x)/pi + 360, 360)
    println("Wahre Anomalie: ",180*T/pi)
    println()
end

println("Berechnet: ", f)
println("Theorie  : ", f_ellip)
println("Differenz: ", abs(f-f_ellip))

print("\nTaste drücken ..."); readline()


VG Mike


Nach oben
   
BeitragVerfasst: 22. Juli 2018, 15:46:21 PM 
Offline
Meister
Benutzeravatar

Registriert: 20. Januar 2013, 20:03:54 PM
Beiträge: 392
Wohnort: Leipzig
Lieber Mike,

vielen Dank für die konkreten Hinweise hier. Ich hoffe, ich komme demnächst näher an "Python-Geist" heran. Für das Heft 67 bitte ich nochmals um Nachsicht, das ist schon in der Druckphase.

_________________
Uwe Pilz, Fachgruppen Kometen und Astrophysik/Algorithmen.
Oft benutzte Instrumente: Swarovski SLC 7x50B, Fujinon 16x70 FMT-SX-2, TMB Apo 105/650, Ninja Dobson 320/1440


Nach oben
   
BeitragVerfasst: 14. Oktober 2018, 07:35:29 AM 
Offline
Meister
Benutzeravatar

Registriert: 20. Januar 2013, 20:03:54 PM
Beiträge: 392
Wohnort: Leipzig
Liebe Sternfreunde,

das Heft 67 ist erschienen und ich möchte das leicht modifizierte Programm mit Bahnellipsen-Experimenten hier ablegen.
Code:
# Grafik ca. von -300 bis 300
from turtle import *
def plot(x,y):
    penup()
    goto(x,y)
    pendown()
    dot(4)
    hideturtle()
  

# Hauptprogramm
import math
a=1
e=0.3
b=math.sqrt(1-e*e)
plot(300*e,0) # Sonne
t=0
u=a*math.cos(t)-e
v=b*math.sin(t)
plot(300*(u+e), 300*v)
f=0
i=1
anzahlPunkte = 32
for i in range(anzahlPunkte-1): 
    while f<math.pi*a*b/anzahlPunkte:
        t=t+math.pi/1000
        x=a*math.cos(t)-e
        y=b*math.sin(t)
        p=math.sqrt((x-u)**2+(y-v)**2)
        q=math.sqrt(u**2+v**2)
        r=math.sqrt(x**2+y**2)
        s=(p+q+r)/2
        f=f+math.sqrt(s*(s-p)*(s-q)*(s-r))
        u=x
        v=y
    f=f-math.pi*a*b/anzahlPunkte
    plot(300*(x+e),300*y)
name = input("Fertig?")

_________________
Uwe Pilz, Fachgruppen Kometen und Astrophysik/Algorithmen.
Oft benutzte Instrumente: Swarovski SLC 7x50B, Fujinon 16x70 FMT-SX-2, TMB Apo 105/650, Ninja Dobson 320/1440


Nach oben
   
BeitragVerfasst: 27. Oktober 2018, 12:03:39 PM 
Offline
Nutzer
Benutzeravatar

Registriert: 11. Februar 2017, 20:14:57 PM
Beiträge: 42
Wohnort: Wien

Rückmeldung:
Programmcode auf Win7 mit Python aber auch auf einem PI getestet.
Lief ohne Probleme.
EIn Anfang um mit Python klarzukommen.....
Danke für die Veröffentlichung.

_________________
LG Rudolf S.
Österreichischer Astronomischer Verein (ÖAV)
Vereinigung der Sternfreunde e.V.
Visueller Beobachter/DeepSky, Sonne, Mond
Meteorscatter mit SDRPlay1 / HDSDR, SDRPlay & Uno
Beim Beobachten von einzigartigen Deep-Sky-Objekten müssen die Tränen der Ergriffenheit zum Ohr hin abfließen.


Nach oben
   
BeitragVerfasst: 27. Oktober 2018, 17:54:02 PM 
Offline
Meister
Benutzeravatar

Registriert: 20. Januar 2013, 20:03:54 PM
Beiträge: 392
Wohnort: Leipzig
Lieber Rudolf,

das freut mich, dass es unproblematisch klappt. Es gab ja zwei Gründe, weshalb ich diese Programmiersprache ausgewählt habe - die ich eigentlich gar nicht benutze:
1) Für alle wichtigen Betriebssysteme verfügbar
2) Nahe dran an der Algebra, mann kann die Formeln ohne viel drumherum eintippen.

Es freut mich weiter, dass auch diese einfache Grafik läuft. Auch diese habe ich ausgewählt, weil sie ohne Zusatzmodul einfach verfügbar ist.

_________________
Uwe Pilz, Fachgruppen Kometen und Astrophysik/Algorithmen.
Oft benutzte Instrumente: Swarovski SLC 7x50B, Fujinon 16x70 FMT-SX-2, TMB Apo 105/650, Ninja Dobson 320/1440


Nach oben
   
BeitragVerfasst: 28. Oktober 2018, 12:57:51 PM 
Offline
Nutzer
Benutzeravatar

Registriert: 11. Februar 2017, 20:14:57 PM
Beiträge: 42
Wohnort: Wien
Zitat:
Lieber Rudolf,
das freut mich, dass es unproblematisch klappt. Es gab ja zwei Gründe, weshalb ich diese Programmiersprache ausgewählt habe - die ich eigentlich gar nicht benutze:
1) Für alle wichtigen Betriebssysteme verfügbar
2) Nahe dran an der Algebra, mann kann die Formeln ohne viel drumherum eintippen.
Es freut mich weiter, dass auch diese einfache Grafik läuft. Auch diese habe ich ausgewählt, weil sie ohne Zusatzmodul einfach verfügbar ist.
Hallo Uwe.
Bei Punkt 2 stimmt dies 100%ig. Bei anderen "Programmiersprachen" geht oft vieles nur über Umwege, wo dann doch der Frust in der Vordergrund rückt, das Interesse & die Freude an solchen Aufgaben oft verdrängt. Ich habe eine Zeit mit Scilab exemperimentiert dies jedoch bald verworfen..... obwohl man damit auch vieles Umsetzen könnte bzw. kann.
Werde nun öfters mit Python versuchen, diverse Berechnungen (mit Unterstützung von Manuels) umzusetzen.

_________________
LG Rudolf S.
Österreichischer Astronomischer Verein (ÖAV)
Vereinigung der Sternfreunde e.V.
Visueller Beobachter/DeepSky, Sonne, Mond
Meteorscatter mit SDRPlay1 / HDSDR, SDRPlay & Uno
Beim Beobachten von einzigartigen Deep-Sky-Objekten müssen die Tränen der Ergriffenheit zum Ohr hin abfließen.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 12 Beiträge ] 

Alle Zeiten sind UTC+02:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de