Данные поля неба, чтобы получить Апогей и Перигея для заданного диапазона дат

Я пытался зациклить данные поля неба, чтобы получить Апогей и Перигея для данной даты, но не смог. Благодарен за любую помощь. заранее спасибо

import numpy as np
import matplotlib.pyplot as plt

from skyfield.api import Loader, Topos 

load = Loader('~/Documents/fishing/SkyData')
data = load('de421.bsp')
ts   = load.timescale()

planets = load('de421.bsp')
earth   = planets['earth']
moon    = planets['moon']
Chennai  = earth + Topos('13.0827 N', '80.2707 E', elevation_m = 6.7)


alt, az, dist  = Chennai.at(dt).observe(moon).apparent().altaz()

from datetime import timedelta, date

def daterange(date1, date2):
    for n in range(int ((date2 - date1).days)+1):
    yield date1 + timedelta(n)


start_dt = date(2018, 12, 20)
end_dt = date(2019, 1, 13)


for dt in daterange(start_dt, end_dt):
    print(dt.strftime("%Y-%m-%d"))
    print ("altitude: ", alt.degrees)
    print ("azimuth:  ", az.degrees)
    print ("distance (to center of Moon): ", dist.km)
    print ("distance to closest point on moon: ", round(dist.km, 0) - 1767.)
    print ("compare to: ", 364857)

1 ответ

Похоже, ваш код будет выводить одни и те же значения снова и снова, потому что вы вызываете только .at().observe() один раз в верхней части вашей программы. Вместо этого попробуйте звонить каждый раз, когда вы проходите через for цикл, имея это будет первым утверждением внутри for блок кода цикла.

Другие вопросы по тегам