2011-10-05 11 views
9

Observer()のクエリに関するPyEphemモジュールの結果と標高の影響についての質問があります。私は、観察者の標高が日没時に顕著な影響を与えていることを、2つの情報源(http://curious.astro.cornell.edu/question.php?number=388など)から理解しています。しかし、次のコードでは、私は次の違いはありませんへの参照:Observer()の結果がPyEphemの標高効果を考慮していないと思われる

import ephem 

emphemObj = ephem.Observer() 
emphemObj.date = '2011/08/09' 
emphemObj.lat = '53.4167' 
emphemObj.long = '-3' 
emphemObj.elevation = 0 

ephemResult = ephem.Sun() 
ephemResult.compute(emphemObj) 
print "Sunset time @ 0m: " + str(emphemObj.previous_rising(ephemResult)) 

emphemObj.elevation = 10000 
ephemResult.compute(emphemObj) 
print "Sunset time @ 10000m: " + str(emphemObj.previous_rising(ephemResult)) 

私は出力を得る:

Sunset time @ 0m: 2011/8/8 04:38:34 
Sunset time @ 10000m: 2011/8/8 04:38:34 

私は私が何か間違ったことをやっているのではなく、これはバグであることかなり確信しています、しかし、さまざまな方法で試してみましたが、私は同じ結果で巻き返しています。誰も私がここで間違っていることを知っていますか?

私は既にhttps://launchpad.net/pyephemに投稿しましたが、私は何の反応もありませんでした。標高関数の目的を根本的に誤解していないことを願っています。

+0

あなたがリンク先の記事で例を複製する場合は、12000メートルで、赤道で、あなたは同じ結果を得るのですか?もしそうなら、彼らはまだ高度の懸念を実施していないかもしれない。 – wberry

+0

私は12000mを試したことは100%確信していませんが、確かに他の(多くの)高い値を試しました。 previous_risingによって報告された時間が変化し、標高コードが何かをしていると私は信じる。私は、それが単に「地平線」効果の代わりに大気屈折を考慮していないことを望んでいるだけです。 – Smingos

答えて

6

オブザーバーのelevationは、たとえば、アリゾナ州フラッグスタッフの高度のように、海面の標高を意味します。しかし、観察者とその望遠鏡または双眼鏡だけでなく、海面上のこの距離であると推定されます。この標高で地面、したがって地平線はでもと推定されます。したがって、増加したelevationは、高度の高い都市に移動するときに水平線が移動するため、地平線に比べて利点がありません。

hza = - acos(r/(h + r)) 
を次のように地平線 hzaまでの角度は、地球の半径 rとグランド h上記のあなたの高さに関係しているように見えます鉛筆と紙の黄色いパッドと、数分後に

、私は出力を得る

import math 
height = 10000 
hza = - math.acos(ephem.earth_radius/(height + ephem.earth_radius)) 
emphemObj.horizon = hza 
print "Sunrise time @ 10000m: " + str(emphemObj.previous_rising(ephemResult)) 

だから上のあなたの例から続く

Sunrise time @ 10000m: 2011/8/8 04:08:18 

は(「日の出」はprevious_rising()となり、「夕焼け」はnext_setting()に行くことに注意してください!)

+0

ありがとうBrandon!私は問題を理解しようと多くの時間を費やしましたが、実際に問題があるかどうかは考えずに止めませんでした。それについて考えると意味があります...しかし、重要な地方の隆起があるときには、上記の計算は間違いなく私にとって便利です。 – Smingos

+0

ああ、私はちょうど私がサンセットタイムとしてprevious_risingをラベル付けしたことに気づいた! :-)嬉しいことに、実際のコードには入っていないのです! – Smingos

関連する問題