• ベストアンサー

望遠鏡の視野の計算

ある時間における望遠鏡の視野の赤経と赤緯を計算したいと思っています。 簡単に計算できる方法があったら教えていただけないでしょうか。 変数は観測場所の緯度、経度(UTCとの対応)、視野中心のAlt、Azimath、視野半径(角度)から求まるはずですよね。 何か参考資料等もあればよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • equinox2
  • ベストアンサー率48% (321/660)
回答No.7

Javascriptのサンプルです。HEADとBODYに分けていますので、合体して hc2ec.htm の名称で保存してください。 <BODY BGCOLOR="#E0E0EE"> <CENTER><TT><B><FONT SIZE=+1>地平座標から赤道座標への変換</FONT></B><P> <FORM METHOD = "post" NAME = "sel">【日時】  <INPUT TYPE = "text" NAME = "yb" SIZE = "5">年 <INPUT TYPE = "text" NAME = "mb" SIZE = "3">月 <INPUT TYPE = "text" NAME = "db" SIZE = "3">日  <INPUT TYPE = "text" NAME = "hb" SIZE = "3">時 <INPUT TYPE = "text" NAME = "nb" SIZE = "3">分 <INPUT TYPE = "text" NAME = "sb" SIZE = "3">秒   <INPUT TYPE = "button" VALUE = "変換" onClick ="hc2ec(this.form)"><P> 【観測地】 緯度 <INPUT TYPE = "text" NAME = "ido" SIZE = "7"> 経度 <INPUT TYPE = "text" NAME = "keido" SIZE = "7"> 方位 <INPUT TYPE = "text" NAME = "houi" SIZE = "7"> 高度 <INPUT TYPE = "text" NAME = "koudo" SIZE = "7"> <BR><BR><BR><BR><B> 【結果】  赤経 <INPUT TYPE = "text" NAME = "alfa" SIZE = "10"> 赤緯 <INPUT TYPE = "text" NAME = "delta" SIZE = "10"><P> MJD <INPUT TYPE = "text" NAME = "mjd" SIZE = "14"> 地方恒星時 <INPUT TYPE = "text" NAME = "lst" SIZE = "10"> </B></FORM></CENTER> <script language="JavaScript"> <!-- CurDate = new Date(); y = CurDate.getYear(); if(y < 1900) y = 1900 + y; document.sel.yb.value = y; document.sel.mb.value = CurDate.getMonth() + 1; document.sel.db.value = CurDate.getDate(); document.sel.hb.value = CurDate.getHours(); document.sel.nb.value = CurDate.getMinutes(); document.sel.sb.value = CurDate.getSeconds(); document.sel.ido.value = 35.654; // 観測地の初期値 北緯35度39分16秒 document.sel.keido.value = 139.745; // 観測地の初期値 東経139度44分41秒 document.sel.houi.value = 0.0; document.sel.koudo.value = 0.0; // --> </script> </BODY> </HTML>

choppy
質問者

お礼

レスどうもです。 まだちゃんとは理解できていないのですが、読み込んで理解してみます。 それにしてもまさに欲しかったものが出来ていますね。 全部やってもらってしまった。。。

その他の回答 (6)

  • equinox2
  • ベストアンサー率48% (321/660)
回答No.6

Javascriptのサンプルです。HEADとBODYに分けていますので、合体して hc2ec.htm の名称で保存してください。 ステラナビゲータで精度を確認しましたが、赤経、赤緯で1分程度の誤差のようです。(大気補正はなし) <HTML> <HEAD> <TITLE>地平座標から赤道座標への変換 Version 1.00</TITLE> <script language="JavaScript"> <!-- function hc2ec(form) { var PI = 3.14159265358979; var RAD = 180 / PI; var yy = eval(form.yb.value); var mm = eval(form.mb.value); var dd = eval(form.db.value); var hr = eval(form.hb.value); var mn = eval(form.nb.value); var sc = eval(form.sb.value); var ido = eval(form.ido.value); var keido = eval(form.keido.value); var houi = eval(form.houi.value); var koudo = eval(form.koudo.value); // 時角(t)の計算 phi = ido / RAD; z = (90.0 - koudo) / RAD; // 高度から天頂距離に変換 a = houi / RAD; Delta = Math.asin(Math.sin(phi) * Math.cos(z) - Math.cos(phi) * Math.sin(z) * Math.cos(a)); cdct = Math.cos(phi) * Math.cos(z) + Math.sin(phi) * Math.sin(z) * Math.cos(a); cdst = Math.sin(z) * Math.sin(a); if (cdct < 0) t = Math.atan(cdst/cdct) + PI; else if (cdct > 0 && cdst <= 0) t = Math.atan(cdst/cdct) + 2.0 * PI; else t = Math.atan(cdst/cdct); // 地方恒星時(lst)の計算 if( mm <= 2) { m = Math.floor(365.25 * (yy-1)) + Math.floor((yy-1) / 400) - Math.floor((yy-1) / 100) + Math.floor(30.59 * ( mm + 10)) + dd - 678912; } else { m = Math.floor(365.25 * yy) + Math.floor(yy / 400) - Math.floor(yy / 100) + Math.floor(30.59 * ( mm - 2)) + dd - 678912; } mjd = m + hr / 24 + mn / 1440 + sc / 86400 - 0.375; d = (0.671262 + 1.002737909 * (mjd - 40000) + keido / 360.0); lst = 2 * PI * (d - Math.floor(d)); // 時角から赤道座標への変換 Alfa = lst - t; if (Alfa < 0) Alfa = Alfa + 2 * PI; dalfa = (Alfa * RAD / 15.0); hhalfa = Math.floor(dalfa); mmalfa = Math.floor((dalfa - hhalfa) * 60.0); ssalfa = Math.floor((dalfa - hhalfa - mmalfa /60.0) * 3600.0); if (hhalfa < 10) hhalfa = "0" + hhalfa; if (mmalfa < 10) mmalfa = "0" + mmalfa; if (ssalfa < 10) ssalfa = "0" + ssalfa; sAlfa = " " + hhalfa + ":" + mmalfa + ":" + ssalfa; ddelta = Delta * RAD; if (ddelta >= 0) { hhdelta = Math.floor(ddelta); mmdelta = Math.floor((ddelta - hhdelta) * 60.0); ssdelta = Math.floor((ddelta - hhdelta - mmdelta /60.0) * 3600.0); if (hhdelta < 10) hhdelta = "0" + hhdelta; if (mmdelta < 10) mmdelta = "0" + mmdelta; if (ssdelta < 10) ssdelta = "0" + ssdelta; sDelta = " " + hhdelta + ":" + mmdelta + ":" + ssdelta; } else { hhdelta = Math.ceil(ddelta); mmdelta = Math.floor((hhdelta - ddelta) * 60); ssdelta = Math.floor((hhdelta - mmdelta /60.0 - ddelta) * 3600); if (ddelta > -1 && ddelta < 0) hhdelta = "-0" + hhdelta; if (ddelta > -10 && ddelta <= -1) hhdelta = "-0" + (0 - hhdelta); if (mmdelta < 10) mmdelta = "0" + mmdelta; if (ssdelta < 10) ssdelta = "0" + ssdelta; sDelta = hhdelta + ":" + mmdelta + ":" + ssdelta; } form.alfa.value = sAlfa.substring(0,9); form.delta.value = sDelta.substring(0,9); sMjd = " " + mjd; dlst = lst * RAD / 15.0; hhlst = Math.floor(dlst); mmlst = Math.floor((dlst - hhlst) * 60); sslst = Math.floor((dlst - hhlst - mmlst /60.0) * 3600); if (hhlst < 10) hhlst = "0" + hhlst; if (mmlst < 10) mmlst = "0" + mmlst if (sslst < 10) sslst = "0" + sslst; sLst = " " + hhlst + ":" + mmlst + ":" + sslst; form.mjd.value = sMjd.substring(0,12); form.lst.value = sLst.substring(0,9); } // --> </script> </HEAD>

noname#58790
noname#58790
回答No.5

これは離心率計算方法。 出して良いと思われる部分しか公開出来ないと言うか、 細かな部品から全部公開してしまう訳にも行きません。 ここは御容赦願います。^^; まあ、気が向いたら球面三角法の変換プログラムも出すかもしれません。^^; 「物理」「天文」のカテゴリーで「ひまわり」のキーで探せば人工衛星の高度のプログラムとか、地球の重力計算とか、太陽の高度(円計算)とか、色々見つかるかもしれません。 日本語ですので計算方法(間違いを含めて)参考になるかもしれません。 ’離心率を求める。 半径1は、14959780.691 半径2は、14957691.9245322 結果1は、(半径1*半径1)-(半径2*半径2) 結果2は、SQRT(結果1) 結果3は、結果2/半径1 結果3を、表示。

choppy
質問者

お礼

レスありがとうございます。 日本語のプログラミング言語の存在を初めて知りました。 さて質問内容の天体の位置計算なのですが、地球と天体の位置について考察したいのではなく、望遠鏡の視野を赤経、赤緯に変換することに関心があります。 ということで天体の運動とは少し違うかもしれません。 教えていただいた内容で検索してみます。

noname#58790
noname#58790
回答No.4

がんばってますね。 私は「運動」と認識していますので、やり方が少し違うんです。 だからURLを探してもまずみつかりまへん。^^; 地球の楕円を計算した一部です。 一応は計算上の誤差は0です。 補正の参考にして下さい。 http://kujirahand.com/himawari/ ここのソフトで動きます。 楕円要素が確定した後は、 Y=√b^2-(b^2X^2/a^2) で(X、Y)座標を求め、 ここから太陽からの距離Rより、この座標での向心力(万有引力) を求め、(GMm/r^2)ここから遠心力を求め、 (GMm/r^2=mV^2/r) 地球の速度を出して行きます。 また、角度も出せます。 面積速度が計算出来るならしめたものです。 天文単位は、14959780.691 近日点は、天文単位*0.983 「近日点距離は、{近日点}kmです。」と、表示。 焦点間隔は、(天文単位-近日点)*2 「予備計算、焦点~焦点間は、{焦点間隔}kmです。」と、、表示。 遠日点1は、近日点+焦点間隔 「計算上の遠日点距離は、{遠日点1}kmです。」と、表示。 遠日点は、天文単位*1.017 「天文単位での計算上の遠日点距離は、{遠日点}kmです。」と、表示。 誤差は、遠日点1-遠日点 「誤差は、{誤差}kmです。」と、表示。 ’X軸、半径a 直径1は、近日点*2+焦点間隔 「X軸直径は、{直径1}kmです。」と、表示。 半径aは、直径1/2 「X軸半径直径aは、{半径a}kmです。」と、表示。 ’Y軸、半径b 離心率は、0.01671022 半径bは、半径a*SQRT(1-(離心率*離心率)) 半径bを、表示。

  • equinox2
  • ベストアンサー率48% (321/660)
回答No.3

目的に合致するのがあるとは思えませんが、 http://www.google.co.jp/search?hl=ja&q=javascript%E3%80%80%E5%A4%A9%E6%96%87&btnG=Google+%E6%A4%9C%E7%B4%A2&lr= 天体の位置計算(増補版)は、海上保安庁水路部が開発した、惑星の位置計算の略算式が載っている数少ない本で重宝していますが、内容が古いので2000年基準には合わない部分もあります。 また、先に挙げた2冊より難解ですが、これが理解できれば、目的の計算は簡単にできるでしょう。 ところで、望遠鏡の向きから赤道座標を計算する必要があるケースってどんな場合でしょうか? #望遠鏡の方位、高度を高精度で測定するのは容易ではないと思いますが・・(特に方位) #赤道儀で極軸望遠鏡を使用すれば別ですが、質問の内容からは経緯台と思われますので

choppy
質問者

お礼

『天体の位置計算』はかなり詳しいので、これから何とか理解できるようになってみます。 もちろん5度も10度もずれていいわけではないのですが、ある程度細かい計算は省いてもよさそうですね。 望遠鏡の位置がなんらかの制約により、ある程度決まってしまうとすると、そんな望遠鏡で観測可能なエリアを知っておくことに意味が発生するのです。 つまりこの赤経、赤緯のときには観測可能だとか、もう無理だということが判断できるわけですね。

  • equinox2
  • ベストアンサー率48% (321/660)
回答No.2

こんな感じで計算します。 ●地平座標から赤道座標への変換 sin(δ) = sin(φ)・cos(z) - cos(φ)・sin(z)・cos(A) cos(δ)・cos(t) = cos(φ)・cos(z) + sin(φ)・sin(z)・cos(A) cos(δ)・sin(t) = sin(z)・sin(A) φ:緯度  z:天頂距離(高度)  A:方位角  δ:赤緯  t:時角 ●地方恒星時の計算(省略) 検索すれば見つかります ・ユリウス日の計算 ・地方恒星時の計算 ●時角から赤経への変換 α = s - t s:地方恒星時  t:時角  α:赤経 参考になる本 ・天文の計算教室     斉田博 著  ISBN4-8052-0602-0 C3044 ・日の出・日の入りの計算 長沢 工 著 ISBN4-8052-0634-9 C3044 #赤道座標から地平座標への変換はScriptで何度も書いていますが、逆の計算の実績はなし・・・

choppy
質問者

お礼

ご回答、ありがとうございます。 座標変換は球の対応で決まっているのですよね。 参考図書として、長沢工著の天体の位置計算という本を図書館で見つけました。 さらに微少なずれを入れるには、固有運動とか歳差を入れる必要がありそうですね。 この手のスクリプト、ライブラリとしてどこかで公開されていたりしないのでしょうか。

noname#58790
noname#58790
回答No.1

円計算で近時、誤差と言うデーターしか無いです。 http://www1.odn.ne.jp/kentaurus/astropos.htm 素人は円で計算する。市販品は楕円で軌道から計算する。 こう言う酷評があります。 安易な道を選択せず 「実用的」では無く「本物(誤差が全く無い)」を目指すべきです。 >簡単に計算できる方法。 この付近の計算方法が限度なのだと認識しています。 これ以上の計算方法は販売しても使用者がいないのでは商品価値がありません。 簡単に計算すれば1hは平気で狂います。 誤差の範疇では無く、間違いの領域でもあります。 地球の座標と運動要素に関しては見つかりませんでした。(r、V、G) 私は出すつもりが今の所全く無いので 御自分で楕円座標を求め計算するか、この手の書籍を購入すべきでしょう。 まず計算してそれを知る。 天体の運行を良く理解する事が大切です。 安易な道を選択せず、図書館か本屋へ向かうのが近道だと思います。

choppy
質問者

お礼

ご回答、ありがとうございます。 リンク先では円で計算していますが、これでは不正確という趣旨ですね。 ただ楕円座標で計算する方法も式は違えど、基本的には円と同じということになるのでしょうね。 Webで探すのをあきらめるとすると、専門書でしょうか。 Astronomical Algorithmsという本に行き着きましたが、どうも入手が難しいようで躊躇しています。 比較的すぐに入手可能な本で、このような計算が詳しい本はどういったものでしょうか。

関連するQ&A

  • 赤経 赤緯 視赤経 視赤緯 について

    赤経と赤緯の数値が分かっていて 視半径、地球との距離 の数値も分かっている場合 視赤経 視赤緯 を知りたいのですが、 どうすればよいでしょうか? 計算式見たいのがあったら、教えてほしいのですが 地球のある地点から惑星を見る場合です

  • 緯度・経度からの角度計算

    A船の所在位置の緯度・経度と、B船の所在位置の緯度・経度がわかっている場合、A船からみると、B船は今自分のどの角度にあるのか?このような各緯度・経度より2地点間の角度を計算する計算公式はないでしょうか? もしわかる方があれば、是非僕に教えてくださいよう、よろしくお願いします。(今すごく悩んでいます、もしできるなら、EXCELに取り込みたいです) もしヒントになるサイトのURLがあれば、それもかまいません。 どうぞよろしくお願いします。教えて下さい。

  • 天文年鑑の惑星視位置の計算について(2)視赤緯・視赤経の計算

    天文年鑑の惑星視位置の計算の中の視赤緯・視赤経の計算で、「αの日変化」、「δの日変化」という項が出てきますが、これはどのように計算し求めたらよいのでしょうか?あるいはこれを掲載した、表があるのでしょうか? どうも突然現れる変数のような気がするのですが・・・。

  • 赤道儀での導入

    天体を視野の中心に捉えようと、赤経軸,赤緯軸を一生懸命モータードライブにより動かしているんですが、方位高度式の経緯台に今まで慣れてきたせいもあって、なかなか思う様に天体が中心に寄ってくれません。 なんか、自分の意図する逆の方向ばかり望遠鏡を動かしてしまいます。 最悪、せっかく視野に入れたのに、自ら視野外に出してしまうなんてことも。。。 あ~ストレスたまります。 赤道儀に手慣れた方々、如何して、星の日周運動に慣れていったんですか? 何か、コツとかわかりやすい例えがあれば、お教え下さい。 それとも、ひたすら導入操作をやり、慣れていくしかないのでしょうか? 小生、自動導入を使わず、赤道儀での手動導入訓練中であります。

  • 地球上の2点の大円上の点の等分割方法

    地球上の2点の緯度経度が与えられて、その2点を通る大円(地球中心を円の中心とした円軌道)を通る線(円周の一部)を100等分した点の緯度経度を算出するアルゴリズムを教えていただきたいのですが。 地球は理想的な球体でいいです。 私の考え方は、まず地球の中心から表面の2点の間の角度を調べる。 方法としては中心からの2つのベクトルの内積をとってcosの逆関数で角度を出すというものです。そしたら角度を等分割して対応する点が特定され、それを緯度経度に戻すということなのですが。後半の部分(緯度経度値の算出)が思いつきません。 考えたらできそうですが、定番アルゴリズムのようなものがあるだろうと思ったのでお尋ねしました。最終的にはプログラム化したいのですが。よろしくお願いします。

  • 指定地点(緯度・経度)から指定半径内にの地点情報(緯度・経度)を取得す

    指定地点(緯度・経度)から指定半径内にの地点情報(緯度・経度)を取得する方法がわかりません。 JavaとMySQLを使用して、DB内にデータ管理している施設情報を 現在地点(緯度・経度)と、半径距離数(100m,500m,1kmなど)を指定し、 その半径内の緯度・経度に含まれる施設情報を取得したいです。 http://d.hatena.ne.jp/ilo/20090212/1234448136 上記のサイトを参考にしていますが、距離からの度数の計算方法がわかりません。 Javaでの、距離からの度数の計算方法を教えてください。 宜しくお願いします。

  • 所定の緯度経度の範囲内で音が鳴るアプリ

    あらかじめ決めた緯度経度から半径○mとか、角度が○秒以内だとブザーが鳴るようなアプリはないでしょうか。 できれば、近ければ近いほどブーーーーーー!、遠ければぶ、、、ぶ、、、ぶ、、…と、いうような、分かりやすいものがあればより良いです。

  • 3点の緯度経度よりそれぞれへの角度を求める(球面三角法にて)

    機知の3地点の緯度経度より、 三角形を作ったときの それぞれの角度の求め方を教えてください。 出来ればエクセルで処理をしたいのですが・・・  (球面三角法にて完全球面とした時で   地球半径6,371,000)

  • 正距方位図法の計算式

    お世話になります。 任意の地点からの正距方位図法で地図を描画する為の計算式を教えて下さい。 具体的には、任意の地点を原点とし、変数に緯度経度を入れると、XY座標が得られるものです。 よろしくお願いします。

  • 緯度・経度の入力で2地点間の角度の判るソフト

    緯度・経度の判っている2地点の角度(方角)が判るフリーソフトを紹介お願いいたします。  例・ 皇居から甲府駅は北を0にした時何度の角度・方角になりますか ?   実際には、別々の5万分の1 地形図から、離れている2地点の経度・緯度を入力して、どの角度なのかを知りたいのです。  (20万分の1の地図では、地点の特定が困難ですから)  パソコンソフト「カシミール3D」を所有していますが旨く計算できませんので。