Zuerst dachte ich darüber nach, einfach zu kratzen, weil ich die Position und das Alter des Mondes ermitteln wollte, aber ich fand heraus, dass es eine sehr nützliche Bibliothek namens PyEphem gibt. Es gibt keinen Artikel mit dem Tag PyEphem in Qiita, also werde ich ihn schreiben.
--https: //pypi.org/project/ephem/ (Quelle) --https: //rhodesmill.org/pyephem/ (Referenz)
Für Details lesen Sie die Referenz, aber hier ist eine einfache Verwendung.
import ephem
import datetime
from math import degrees as deg
# Body(Himmelskörper)Erstellen Sie eine Instanz der Klasse.
moon = ephem.Moon()
# Observer(Beobachter)Erstellen Sie eine Instanz der Klasse.
shinjuku = ephem.Observer()
shinjuku.lat = '35.6846'
shinjuku.lon = '139.7106'
shinjuku.elevation = 60
shinjuku.date = datetime.datetime.utcnow() #Sie können nach der Position eines beliebigen Datums fragen
#Berechnen Sie den Himmelskörper, den der Betrachter sieht.
moon.compute(shinjuku)
print(deg(moon.alt)) # 20.88288333068003(Höhe vom Horizont(In Grad mit Grad umrechnen))
print(deg(moon.az)) # 218.0421642706897(Richtung mit Norden als 0 Grad)
print(moon.moon_phase) # 0.2820702016225599(Mond Phase)
print(shinjuku.date - ephem.previous_new_moon(shinjuku.date)) # 24.138740752328886(Mondzeitalter)
Die Position künstlicher Satelliten kann auch unter Verwendung von Daten berechnet werden, die als TLE bezeichnet werden und von Orbitinformationen bereitgestellt werden, die Dienste wie JAXA und NASA bereitstellen. (Auch mit Pyorbital möglich)
Internationale Raumstation (ISS) TLE https://spaceflight.nasa.gov/realdata/sightings/SSapplications/Post/JavaSSOP/orbit/ISS/SVPOST.html Es ist im Abschnitt "TWO LINE MEAN ELEMENT SET" geschrieben. (Es gibt viele einschließlich Vorhersagen) Da der Wert aufgrund von Änderungen in der Flugbahn schwankt, ist es erforderlich, ihn entsprechend zu erfassen. Der Wert am 17.08.2020: 15: 00.000 (17. Februar? 17:15 UTC?) Ist
ISS
1 25544U 98067A 20048.52024880 .00016717 00000-0 10270-3 0 9000
2 25544 51.6378 225.5202 0004926 282.0303 78.0295 15.49172297 13304
Versuchen Sie auf der Grundlage des oben Gesagten, die Position der ISS aus dem aktuellen (in Shinjuku eingestellten) Shinjuku zu berechnen.
line1 = 'ISS'
line2 = '1 25544U 98067A 20048.52024880 .00016717 00000-0 10270-3 0 9000'
line3 = '2 25544 51.6378 225.5202 0004926 282.0303 78.0295 15.49172297 13304'
iss = ephem.readtle(line1, line2, line3)
#Position von Shinjuku aus gesehen
iss.compute(shinjuku)
print(deg(iss.alt)) # -51.61249863302519
print(deg(iss.az)) # 142.92199525046195
#Wo die ISS ist
iss.compute(datetime.datetime.utcnow())
print(deg(iss.sublat)) # -50.990213758123666
print(deg(iss.sublong)) # -139.8713732199458
print(iss.elevation) # 433325.5
print(iss.eclipsed) # True
Von Shinjuku aus gesehen liegt es etwa 51 Grad unter dem südöstlichen Horizont, 430.000 Meter über dem Osten Neuseelands, und es sieht aus wie Essen.
Wir verwenden es, um die Monatsinformationen auf Twitter- und LINE-Bots anzuzeigen, die auf Razpie ausgeführt werden.
Recommended Posts