問題タブ [astronomy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2243 参照

python - ピエフェム恒星時は予期しない結果をもたらします

ephem初めて使用していますが、 oberver.sidereal_time() の出力を理解するのに苦労しています

時角から太陽時を判断するためのスクリプトをいくつか作成しました。1 つ目は、ephem を使用して赤経を計算し、Meeus の天文アルゴリズムの式を使用して、グリニッジ平均恒星時を取得します。これは、経度を使用してローカル平均恒星時に変換できます。

これにより、いくつかのデータをプラグインしたときに期待される出力が得られます。

私が書いた 2 番目のスクリプトは、同じ方法で赤経を計算しますが、ephem の sidereal_time() を使用してローカルの見かけの恒星時を取得します。

これは私が期待する出力を得られません。

私の知る限り、2つのスクリプトの唯一の違いは、最初の時角が地方の平均恒星時を基準にしているのに対し、2番目の時角は地方の見かけの恒星時を基準にしていることです。非常に小さな要因。代わりに、約 3 時間の違いが見られます。誰が私に何が起こっているのか説明できますか?

0 投票する
1 に答える
2107 参照

javascript - 太陽の赤経と赤緯の計算

私はこのガイドに従って、JavaScript に移植しました: http://www.saao.ac.za/public-info/sun-moon-stars/sun-index/how-to-calculate-altaz/

9.(赤経)と10.(赤緯)までは順調に進んでいました。彼らがこれらに対して与える答えを再現することはできません。

(9) 太陽の赤経アルファを見つける: (a) ケープタウンの場合:

私も試しました:

程遠い!

そして10(a)、赤緯

ご覧のとおり、私はこれについて手がかりがないので、ストローを握りしめています。どんな助けでも大歓迎です。

0 投票する
2 に答える
3833 参照

math - 太陽の位置 (方位角と仰角) と緯度と経度を指定して日付と時刻を計算します。

特定の日付と座標の太陽の方位角と仰角を見つけることに関するこの非常に役立つ質問に関連しています。私は逆を見つけたいと思います: 太陽が空のその位置にある時間と日付.

したがって、誰かがおそらく既存の式を手伝ったり、リンクされている式を変更したりできるのではないかと思っています。

私の現在のアイデアは、方位角 (120 ~ 123 度) と仰角 (18 ~ 21 度) の 2 つの範囲を、両方に数度ずつ変化させることでした。次に、すべての日/時刻を反復するアルゴリズムを作成し、その日の時間に指定された範囲が存在するかどうかを確認します。最近ループして付属のアルゴリズムを使用しても、Big O を小さく保つことはできず、パフォーマンスも最適ではありません。

ヘルプやヒントをいただければ幸いです。

ありがとう。

0 投票する
1 に答える
635 参照

python - 天文シミュレーションが不正確なのはなぜですか?

太陽系の物体の動きをシミュレートするプログラムを作成しましたが、結果にさまざまな不正確さが生じています。

それはおそらく私の統合方法と関係があると思います。


tl;dr 私のシミュレーションと NASA のデータの間には、地球の位置と速度にわずかな違いがあります。以下のコードを見て、私の計算が間違っているかどうか教えてください。


私が実行したテストは、10 日間 (864000 秒) のシミュレーションで、 に開始しThu Mar 13 18:30:59 2006て に終了しThu Mar 23 18:30:59 2006ます。

シミュレーションの後、プログラムは地球に関する次の統計を報告しました。

測定単位は、もちろんメートルとメートル/秒です。

私は、HORIZONS システムを使用しThu Mar 13 18:30:59 2006て、太陽系のほとんどの大きな天体の開始位置と速度ベクトルを取得し、それらをシミュレーションに入れました。

テストの後、HORIZONS にThu Mar 23 18:30:59 2006地球データを再度問い合わせたところ、次の結果が得られました。

ご覧のとおり、結果はほとんど常に最初の 4 桁で同じです。しかし、それはまだかなり大きなミスです!数年後にシミュレートする必要があり、エラーがエスカレートする可能性があるため、心配しています。

私のシミュレーションの核心を見て、私の計算が間違っているか教えていただけませんか?

私はこのメソッドの別のバージョンを持っています.

0 投票する
6 に答える
4528 参照

python - 重力シミュレーションの何が問題になっていますか?

この回答で私に与えられたアドバイスに従って、私は重力シミュレーターにルンゲクッタ積分器を実装しました。

ただし、ソーラーシステムの1年間をシミュレートした後でも、位置はcca 110 000 kmずれており、これは許容できません。

私の最初のデータはNASAのHORIZONSシステムによって提供されました。それを通して、私は特定の時点での惑星、冥王星、衛星、デイモス、フォボスの位置と速度のベクトルを取得しました。

これらのベクトルは3Dでしたが、惑星が太陽の周りのプレートに整列しているため、3次元を無視できると言われたので、そうしました。xy座標をファイルにコピーしただけです。

これは私の改善された更新方法のコードです:

アルゴリズムは次のとおりです。

  1. システム内のすべてのボディの加速度を更新します
  2. RK4(最初のステップ)
  3. goto 1
  4. RK4(秒)
  5. goto 1
  6. RK4(3番目)
  7. goto 1
  8. RK4(4番目)

RK4の実装で何かを台無しにしましたか?または、破損したデータから始めただけですか(重要なボディが少なすぎて、3次元を無視しています)?

これはどのように修正できますか?


私のデータなどの説明...

私の座標はすべて太陽を基準にしています(つまり、太陽は(0、0)にあります)。

110 000 kmシミュレーターで予測されたものからNASAによって与えられた地球のx座標を引くことによって、エラーが発生しました。

相対誤差はごくわずかに見えますが、それは単に、私のシミュレーションとNASAの両方で、地球が太陽から本当に遠く離れているためです。距離はまだ大きく、シミュレータが役に立たなくなります。

0 投票する
1 に答える
446 参照

python - 3番目の軸の抽出、データキューブのpyfits

通常の(512x512)2Dグリッドでの強度で構成されるデータキューブfitsfileがあります。ただし、3番目の軸もあります。この軸の各値は周波数に対応します。各周波数で、そのような2D画像が撮影されます。

私はfitsファイル内でこれらの頻度値を見つけようとしてきましたが、今のところ運がありません。私は140の異なる周波数チャネルがあることを知っています、私はフィットファイルのヘッダーを見ることによって単位などを知っています。問題は、それらの140チャネルの値を見つけることです。

ちなみにPYTHONでのプログラミング。

0 投票する
2 に答える
2974 参照

python - 不等式でnumpy配列をスライスする方法は?

私は自分で解決策を見つけるために最善を尽くしましたが、関連するものを見つけていません。.tbl ファイルから抽出されたいくつかの numpy 配列があります (これは、atpy で抽出している天文テーブル形式です)。各配列には約 25,000 個の数値があり、matplotlib を使用してそれらを散布図としてプロットしています。y 軸の値は配列からそのまま取得され、x 軸は 2 つの個別の配列の値の単純な減算です。

これで問題ありませんが、実際に行う必要があるのは、特定の範囲に収まる値を抽出することです (たとえば、y の値が 10 から 13 の間で、x の値が 0 から 1 の間である必要があります)。もちろん、プロットが機能するためには、これらの値がすべて互いに一致する必要があります。これが私が持っているものです:

データをスライスするためにこの方法も試しましたが、うまくいきませんでした:

これらの配列をリストに変換しようとしたり、不等式の書式設定でさまざまなことを試したりするなど、さまざまなことを試しました。その過程で、私は答えから遠ざかったかもしれませんが、このコードは少なくとも散布図全体を出力します (希望どおりにデータを切り分けることができません)。他のいくつかの反復では、私が探している数値範囲のどこにもない空白のプロットが印刷されました。

私はPythonとこのサイトを初めて使用するので、ヒントなどをできるだけ明確にしてください。非常に専門用語が多い場合は、あなたの提案をうまく活用できない可能性があります。みんな、ありがとう。

0 投票する
1 に答える
1508 参照

python - データを反転するmatplotlibヒートマップ?

これは奇妙なものです。誰かが私を助けてくれることを願っています。matplotlib ヒートマップを使用してデータの密度プロットを実行しようとしていますが、どういうわけか、データが奇妙な方法で反転/回転しています。私は散布図を持っていて、密度のためにそれらのポイントをビニングしていますが、画像はまったく出てくるはずのものではありません。たとえば、正しい向きの元の散布図を次に示します。

元の散布図

次に、これが私のヒートマップです (構造が上から反時計回りに 90 度回転していることに注意してください。ただし、軸のデータは正しいことに注意してください...軸の数値はデータから自動的に生成されるため、軸を逆にするだけで画像が表示されます正しいが、数字はすべてオフです):

ヒートマップの向きは間違っているが、軸は正しい

データ解析ルーチンは、散布図を生成したときと同じであるため、これがどのようになるかわかりません。ヒートマップ プロットがコード化されている方法である必要があると思いますが、内訳がどこにあるのかわかりません。ヒートマップの組み込みの原点配置(左上隅)を考慮してみましたが、解決しません。コードは次のとおりです (最初にすべてのデータを解析します)。

ヒートマップのコードは次のとおりです。

私は Python にかなり慣れていないので、説明の専門用語が少ないほど、Python をうまく活用できる可能性が高くなります。皆様のご協力に感謝いたします。

0 投票する
1 に答える
1864 参照

numpy - Matplotlib で多角形を使用した Numpy Array Slicing

これはかなり単純な問題のように思えますが、私は Python を初めて使用するので、解決に苦労しています。2 つの numpy 配列 (約 25,000 の情報) から生成された散布図/ヒートマップがあります。y 軸は配列から直接取得され、x 軸は 2 つの配列の単純な減算操作から生成されます。

ここで行う必要があるのは、データをスライスして、プロットの特定のパラメーター内に収まる選択を操作できるようにすることです。たとえば、平行四辺形内にあるすべての点を抽出する必要があります。 ここに画像の説明を入力

単純な不等式を使用して長方形を切り取ることはできますが (以下のインデックスidx_cidx_hおよびidxを参照)、より複雑なジオメトリを使用してポイントを選択する方法が本当に必要です。このスライスは、ポリゴンの頂点を指定することでできるようです。これは私が見つけることができる解決策に最も近いものですが、それを実装する方法がわかりません:

http://matplotlib.org/api/nxutils_api.html#matplotlib.nxutils.points_inside_poly

理想的には、以下のインデックスに似たもの、つまり のようなものが本当に必要ですcolorjh[idx]。最終的には、さまざまな量 ( colorjh[idx]vsなどcolorhk[idx]) をプロットする必要があるため、データセット内のすべての配列 (多数の配列) にインデックスを転送できる必要があります。それは明らかかもしれませんが、それほど柔軟ではないソリューションがあると思います。つまり、このプロットを使用して関心のあるポイントを選択し、同じテーブルの他の配列で機能するためにそれらのインデックスが必要になります。

ここに私が取り組んでいるコードがあります:

私が言うように、私は Python を初めて使用するので、専門用語の説明が少ないほど、実装できる可能性が高くなります。皆様のご協力に感謝いたします。