良い質問!
予想とは異なる回答が得られる理由は 2 つあります。
まず、天文学者が現在使用している星座の境界は、1875 年にたまたま黄道があった位置を使用して確立されました。得られる答えは数度ずれます。実際に 1875 座標で経度を知るには、次のように尋ねる必要があります。
import ephem
sun = ephem.Sun()
sun.compute('2011/05/04')
print "Today's coordinates:", ephem.Ecliptic(sun).lon
sun.compute('2011/05/04', epoch='1875')
print "In 1875 coordinates:", ephem.Ecliptic(sun).lon
このスクリプトを実行すると、次の出力が得られます。
Today's coordinates: 43:02:58.8
In 1875 coordinates: 41:18:14.1
これにより、結果からエラーの原因が 1 つ取り除かれます。PyEphem関数は、1875 とは異なるconstellation()
を持つボディを引数として指定した場合、星座境界のテーブルで空の位置を検索する前に、座標を 1875 に自動的に変換することに注意してください。epoch
あなたが直面している他の問題は、公式の星座の境界線が、雄羊 (おうし座) やうろこ (てんびん座) などの形を形成する空の星の実際のグループを示していることです。そして、これらの数値は、黄道を横切る正確に 30° にまたがるそれぞれに近づくことさえありません (返される角度から 30° を差し引いているので、予想どおりでしたか?)。黄道に沿ってあらゆる角度で星座を印刷すると、(a) 星座の幅が大きく異なることがわかり、(b) へびつかい座の一部があるため、12 ではなく 13 の星座が黄道を横切っていることがわかります。 1875年の黄道に沿って。
参考になる参考資料を次に示します。
http://en.wikipedia.org/wiki/Constellation#IAU_constellations
http://en.wikipedia.org/wiki/Precession