2017-12-05 13 views

答えて

4

これは面白い問題ですが、私は良い答えがあると思います。

素晴らしいastropy packageをご覧ください。私はあなたがcoordinates moduleを使用する必要があると信じています。これらの線に沿って

何か:ここ

import astropy.coordinates as coord 
from astropy.time import Time 
import astropy.units as u 


loc = coord.EarthLocation(lon=0.1 * u.deg, 
          lat=51.5 * u.deg) 
now = Time.now() 

altaz = coord.AltAz(location=loc, obstime=now) 
sun = coord.get_sun(now) 

print(sun.transform_to(altaz).alt) 

は、我々が現在の時刻に0.1度経度と緯度51.5場所の地平線上に太陽の角度を取得しています。

FYI、.zen天頂角を与えるでしょう。 alecxeの答え@

+0

なぜ標準の 'datetime'の代わりに独自の' Time'クラスを使用していますか? –

+0

@ MarkRansom私は 'AltAz'は' Time() 'インスタンスを期待していますが、確かではないと思っています - まだパッケージの力を探っています。ありがとう。 – alecxe

+0

Alecxeにご連絡いただきありがとうございます。これが私にとって役立つことを願っています。もう一度ありがとうございます –

3

は素晴らしいですが、私は元の質問が

from astropy.coordinates import get_sun, AltAz, EarthLocation 
from astropy.time import Time 

sun_time = Time('2017-12-6 17:00') #UTC time 
loc = EarthLocation.of_address('Baltimore, MD') # anything the google geocoding API resolves 
altaz = AltAz(obstime=sun_time, location=loc) 

zen_ang = get_sun(sun_time).transform_to(altaz).zen 

zen_ang特定の時間の天頂角)を求めているものに少し近いです若干の修正を追加しようと思いましたAngleオブジェクトです - the docsの詳細については、numpyスカラーと "degrees"の関連単位のように機能します。

関連する問題