問題タブ [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.
python - spg4、pyephemによるPython衛星追跡 - 位置が一致しない
特定の場所から、tle で定義された特定の衛星を追跡する基本的な Python スクリプトを作成しようとしています。私はアスト/軌道の人ではありませんが、より賢くなろうとしています。
私が使用しているさまざまなモデルが非常に異なる位置の答えを与えているという問題に直面しています。使用してみました: pyEphem spg4 predict (スクリプトからの exec システム コール)
私がテストしている衛星は、ISS と directv10 です (1 つは固定され、もう 1 つは移動しており、検証のためにインターネット追跡が利用可能です)。
予測ソースを変更して eci の場所を取得したので、それを使用して実際の場所を知ることができます。また、観測を検証するために使用する az、el、範囲も指定します。私は実際の場所を取得するためにspg4を使用しています。観測位置には PyEphem を使用しています。
私はspg4からECEFの位置を取得しています:
pyephem ベースの観察の私のコードは次のとおりです。
llh2ecef 変換:
aer2ecef:
(ecef の位置を使用して) 3D 地球上の位置を比較してプロットすると、いたるところで答えが得られます。eci 位置の予測 (ecef に変換) は、ISS 追跡 Web サイト ( http://www.n2yo.com/?s=25544 )で見たものと一致します。
get_real() の結果は、スケールと場所がかなりずれています。get_ob() の結果の縮尺は正しいが、地球上の位置が間違っている
結果の例:
予測ベース:
Python ベース:
az、el、および範囲は、2 つの観測値の間で一致しません。位置が「真の」位置と一致しません。(緯度と経度はありますが、高さは ecef2llh 変換後ではありません。
Web ベースのトラッカーと比較すると、予測される「真の」位置が Web サイトと一致していることに気付きました。directv10 の場合、pyEphem は方位角と仰角に一致しますが、ISS には一致しません。
それらを地球上にプロットすると、予測されたeciの「真の」場所が正しい場所にあります-トラッカーWebサイトと一致します)。spg84 ecef の位置 (predict と同じはずだと思っていましたが、地球の反対側にあります。predict の「観測された」位置は、spg84 の位置に近いです。pyEphem は高度が完全にずれており、表示されていません (あまりにも低い、地球の内側)。
私の質問は、python モデルをどこで間違って使用しているのかということです。私の理解では、spg84のpropagate()呼び出しは、衛星の実行位置をメートル単位で返す必要があります。私は、eci2efec 変換後の予測位置と一致する必要があると考えていたでしょう。また、sat.sublat、sat.sublong、sat.elevation を使用すると、llh2ecef() が一致することも期待していました。
私が言ったように、私は周回するすべてのものに慣れていないので、単純な数学の間違いか何かをしていると確信しています。私はグーグルで回答、例、チュートリアルを可能な限り検索しようとしましたが、これまでのところ何も役に立ちませんでした(これらのバグを解決するために複数の ecef2llh および llh2ecef メソッドを試しました.
正しい方向への提案、アドバイス、指針をいただければ幸いです。誰かの役に立てば、私が使用している完全なコードを投稿/送信できます。私はここに重要な部分を投稿したことを確認しようとしましたが、これを (すでに非常に) 長い投稿にしたくありませんでした。
助けてくれてありがとう。
アーロン
アップデート:
問題の少なくとも一部を見つけました。spg84.propagate() は、ECEF ではなく ECI で場所を返します。eci2ecef をすばやく実行すると、予測応答と完全に一致します。
助けを求めて投稿した後、私はいつも解決策を見つけるようです;)
次に、オブザーバーの位置で何が起こっているかを把握する必要があります。要するに: pyEphem.compute() から結果を取得し、衛星の ecef 位置を取得するにはどうすればよいですか? 緯度、経度、標高ではなく、az、el、範囲の値で行うことをお勧めします。
aer2ecef 呼び出しのバグを推測しています。
ありがとう。
更新 2:
「真の」位置と一致するように観測を取得しました。単位に問題があったようです。作業コード:
適切な位置を返すには aer2ecef() メソッドが必要です...
python - ATpy と numpy を使用して大きなファイルを効率的に読み取るには?
私はこれに対する答えを探しましたが、実際に法案に合うものはないようです。ATpy で読み取ろうとしている非常に大きなファイルがあり、データは numpy 配列の形式になっています。小さいファイルの場合、次のコードで十分です。
そこから、プロットの目的で後で操作する必要がある変数をいくつか作成します。これらの種類の操作がたくさんあります。
等
しかし、非常に大きなファイルの場合、コンピューターはそれを処理できません。解析が開始される前にすべてのデータがメモリに格納されていると思いますが、2GB のファイルには適していません。では、これらの大きなファイルを処理するために代わりに何を使用できますか?
人々がデータをチャンクに分割し、for
ループを使用して各行を反復している投稿をたくさん見てきましたが、これらのファイルの性質と操作の種類を考えると、ここではうまくいかないと思いますこれらの配列で行う必要があります。ファイルのすべての行に対して単一の操作を実行することはできません。各行には、列に割り当てられた多数のパラメーターが含まれているためです。場合によっては、単一の列の数値に対して複数の操作を実行する必要があります。
正直なところ、ATpy と numpy を使用して舞台裏で行われているすべてのことをよく理解していません。私は Python を初めて使用するので、それを明確に説明する回答に感謝します (つまり、多くの暗黙のコーディング知識に頼らないでください)。これを解析するきれいな方法が必要ですが、私はそれを見つけていません。ありがとう。
python - PyEphem を使用して惑星の正しい経度と星座を計算する方法
PyEphem を使用して太陽の緯度と経度を計算しようとしましたが、理解できないのは、太陽の経度と星座を計算するときです
43:02:58.8 は 13.02 おうし座ですが、星座を取得しようとすると
それは牡羊座と言っています何が間違っているのかわかりません誰か助けてください
astronomy - pyephem、libnova、stellarium、JPL Horizo nsは月のRA / DECに同意しませんか?
軽微な編集: JPL の Horizons ライブラリはオープン ソースではないことを以下に述べます。実際、それはここで入手できます: http://naif.jpl.nasa.gov/naif/tutorials.html
2013-01-01 00:00:00 UTC での北緯 0 度、東緯 0 度、海面高度での J2000 エポックの月の赤経と赤緯は?
悲しいことに、ライブラリが異なれば、答えもわずかに異なります。度に変換された、要約された結果 (RA が最初):
私の質問:なぜですか?ノート:
これらの違いは小さいと思いますが、次のとおりです。
私は pyephem と libnova を使用して、太陽/月の出/日の入りを計算しています。これらの時間は、高緯度 (真夜中の太陽など) の位置に非常に敏感です。
JPL の Horizons ライブラリがオープン ソースでないことは理解できますが、他の 3 つのライブラリはオープン ソースです。誰かがこれらのライブラリの違いを解決してマージするべきではありませんか? これが私の主な不満です。stellarium/pyephem/libnova ライブラリの作成者は、これらの計算を行う方法に根本的な違いがありますか?それとも、コードをマージする必要があるだけですか?
また、計算が異なる他の理由がある可能性があることも認識しており、これらの考えられるエラーを修正するための助けをいただければ幸いです。
Pyephem と Libnova は、J2000 の代わりに日付のエポックを使用している可能性があります
月は、観測者の位置が赤経/赤緯 (視差効果) に影響を与えるほど十分に近いです。
これらのライブラリの元の C 実装ではなく、Perl の Astro::Nova と Python の pyephem を使用しています。ただし、これらの違いが Perl/Python を使用することによって引き起こされる場合、それは私の意見では重要です。
私のコード(生の結果付き):
- まず、Perl と Astro::Nova:
[JPL Horizons には POST データが必要なので (実際にはそうではありませんが、ふりをしています)、URL を投稿できませんでした]。
私はそれらをリンクしていません(怠惰です)が、私自身の質問のいくつかを含め、この質問(精密天文学ライブラリの不一致)に効果的に還元されるスタックオーバーフローに関する多くの未回答の質問があると思います。
私はhttps://github.com/barrycarter/bcapps/tree/master/ASTROでこのようなものをプレイしています
python - healpy を使用した 2 次元 ndarray への Gnomonic 射影
Gnomview を使用すると、球状マップのノモニック投影を視覚化できます。射影を 2 次元の numpy.ndarray に格納するにはどうすればよいですか? map_out
IDL の gnomview のオプションに相当する healpy は何ですか?
google-maps-api-3 - Google マップ Sky API を使用して夜空の星の位置を取得する方法
Google Earth Sky APIのドキュメントを見た後、これを使用して夜空をレンダリングできることがわかりました。
しかし、星の正確な位置と名前を知ることはできますか? さらに、空にあるすべての星を数えることはできますか?
ruby - Rubyで天文イベントを計算する最も信頼できる方法は何ですか?
緯度と経度が与えられたので、月と太陽の天頂だけでなく、天文学的、航海的、民間の薄明を Ruby で計算する必要があります。
緯度/経度と日付に基づいてローカルで動作する (ネットワーク呼び出しは必要ありません) gem は完璧ですが、クエリできるネットワーク サービスも必要です。
Weather Underground はこの情報を Web 経由で表示しますが、API はすべてのフィールドを提供しません (たとえば、天頂が欠落しています)。
solareventcalculator
宝石ですが、いくつかの機能が欠けており、場合によっては日没時間を正しく計算しますが、日付が正しくありません.
RubyGems には、天文学に関する 1 つの結果しかありませsetec_astronomy
ん。これは、KeePass 検索ユーティリティのようです。
ここに関連する回答がありますが、より進化していませんSolarEventCalculator
。
python - Python と 1D スペクトル - フィット ファイル内のデータにアクセスする方法
私はPythonが初めてで、欲しい答えを探していましたが、見つかりませんでした。1D スペクトル ファイル (.fits) があり、その波長とフラックス情報にアクセスしたいと考えています。たとえば、波長値をプラグインすると、入力波長で光束を与えるプログラムを作成しようとしています。そのようなプログラムの書き方や、どのモジュールから始める必要があるかについて、誰かが簡単なガイドを教えてくれませんか? numpy と pyfits はタスクを実行するのに十分でしょうか? どうもありがとう。