Астропия: получение значений времени, когда солнце находится в указанном азимутальном диапазоне

Я хотел бы получить диапазон времени, когда азимут Солнца составляет, скажем, от 132 до 150 градусов. Как я могу сделать это с астропией? (или любые другие астрономические модули на основе Python)

Пока что я написал это в своем коде, чтобы попытаться выполнить интерполяцию в качестве отправной точки:

import numpy as np
import matplotlib.pyplot as plt
from astropy import units as u
from astropy.time import Time
from astropy.coordinates import SkyCoord, EarthLocation, AltAz, get_sun

from scipy import interpolate

melbourne= EarthLocation(lat=-37.814*u.deg, lon=144.96332*u.deg, height=37*u.m)
utcoffset = +11*u.hour  # AEDT
midnight = Time('2018-2-08 00:00:00') + utcoffset

time_range = np.linspace(0, 24, 1000)*u.hour
times = midnight + time_range

altazframe = AltAz(obstime=times, location=melbourne)
sunaltazs = get_sun(times).transform_to(altazframe)

x=times
y=sunaltazs.az

#interpolate values
f = interpolate.interp1d(sunaltazs.az, times, kind='cubic')
xnew=f(ynew)

Но я получаю ошибку во второй последней строке, утверждая: ValueError: setting an array element with a sequence.

Несмотря на эту ошибку, я хотел проверить, нахожусь ли я на правильном пути для интерполяции значений времени, когда солнце находится в диапазоне от>132 градусов до< 150 градусов. Если так, как я могу решить эту ошибку? Иначе, есть ли другие лучшие способы сделать это?

0 ответов

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