Орбиты Солнца и Луны в эклиптических координатах с использованием поля неба

Я новичок в использовании skyfield, есть ли какой-либо документ или файл справки, который может показать мне, как получить орбиту Солнца и Луны в эклиптических координатах для определенной даты и времени. Это дополнительный вопрос этого вопроса

Я действительно не понимаю, чем этот вопрос отличается от того, на который вы ссылаетесь.
@usernumber это то, как это можно сделать, это то, как это можно сделать с помощьюskyfield

Ответы (1)

Я не могу помочь вам со скайфилдом, но я обычно использую веб-интерфейс JPL Horizons. Установка не требуется, вы также можете распечатать его в текстовом файле, если хотите:

https://ssd.jpl.nasa.gov/horizons.cgi

В противном случае я нашел документацию для Skyfield: https://rhodesmill.org/skyfield/toc.html

И если ничего из этого не работает, я сделал для вас небольшой скрипт для астропсии.

from astropy import units as u
from astropy.coordinates import SkyCoord, EarthLocation, AltAz, get_body
from astropy.time import Time
import numpy as np

# Create 1000 Timepoints between Time 1 and Time 2 (one year later)
t = np.linspace(2451545, 2451545+365, 1000)


pointlist = []

#Loop through this times
for tn in t:
    # For every timepoint, create an astropy_time object
    astropy_time = Time(tn, format="jd")
    # Get Planet (as string, "earth", "moon", "mercury" etc. in aequatorial coordinates
    planet_aequatorial = get_body("moon", time = astropy_time)
    #Transform to Barycentric True Ecliptic (relative to the center of mass of the solar system).
    planet_ecliptic =  planet_aequatorial.transform_to("barycentrictrueecliptic")

    # Add a point to the orbit. Every point is described as (longitude [deg], latitude (ecliptic coords), distance (km))
    pointlist.append([planet_ecliptic.lon.deg, planet_ecliptic.lat.deg, planet_ecliptic.distance.km])
    print(planet_ecliptic.distance.km)
    # So pointslist is a 2D array. The rows are all the 1000 points of the orbit

# In every point there is 3 columns for [Long, Lat, Distance]
print(pointlist)


# You can also save the result with
pointlist = np.array(pointlist)

np.save("results.npy", список точек)

спасибо или ответ, это дает мне одну точку, однако я хочу полную орбиту, это возможно, мой вопрос может показаться глупым, извините
создайте список времени (в юлианских днях) с помощью > import numpy as np > t = np.linspace (2451545, 2451545 + 365, 2000), затем выполните цикл по приведенному выше коду, но создайте объект Time с > t = Time (t1, формат ="jd") вместо этого
это помогло или я должен сделать это для вас?
Да, пожалуйста. это будет действительно полезно
Вы можете дать мне свой адрес электронной почты или что-то в этом роде? я не могу опубликовать весь код здесь, я думаю...
Я отредактировал первый ответ здесь
Извините за поздний ответ, я использовал его, но выходная широта не выходит за пределы 2 градусов