• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:米国での太陽高度・日出没時等の算出)

米国での太陽高度・日出没時等の算出

このQ&Aのポイント
  • 米国での太陽高度や日出没時刻を計算する方法やソフトウェアについて教えてください。
  • ユタ州周辺(北緯35~39度)の冬季に太陽が地平線下10~18度にある時の太陽高度を計算したいです。
  • ステラナビを使用する方法も検討しましたが、多くの場所について調べるのは手間です。計算誤差は1分以内に収めたいです。

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

  • ベストアンサー
  • puni2
  • ベストアンサー率57% (1002/1731)
回答No.2

自作しなくても利用できそうなソフトがありますので,4つほど紹介しておきましょう。 (最初の以外は英語のソフトです) まずは機能の簡単なものから。 1.天体卓上計算機「てんた君」(シェアウェア,1000円) http://www.vector.co.jp/soft/win95/edu/se112989.html 電卓感覚で,主な天体の赤道座標と地平座標が計算できます。 ただ,表示窓に表示されるだけなので,大量に計算したいときは不便かも知れません。(一覧表のような出力ができない) また,出没・薄明時刻は出ません。 >多くの場所について、各1ヶ月分くらいの情報を調べる ということになると,できれば,1か月分まとめてぞろっと計算してくれるものがよいでしょうね。 テキスト画面(DOS窓)で使うソフトに,よさそうなのがいくつかあります。 2.Interactive Computer Ephemeris (ICE) アメリカの海軍天文台が1980年代に開発した天体暦計算ソフトです。その後,上位ソフトのMICA (Multiyear Interactive Computer Almanacに移行したので,現在はサポートはしていませんが,ICEのほうは無料なのと,計算できる期間が長い(MICAは1990~2005,ICEは1800~2050)というメリットがあり,今でも愛好者がいます。 こちらからダウンロードできます。 http://home.t-online.de/home/h.umland/page3.htm 解凍するとたくさんのファイルができますが,ice.exeが実行ファイルです。 ただし,エクスプローラなどから直接実行するのではなく,DOS窓を先に開いてから,そのファイルのあるディレクトリに移って実行した方がよいでしょう。(これは,次以降のDOSベースのソフトについても言えます) また,表示フォントを英語にしておかないと,罫線が半角カタカナに化けたりします。 詳しい使い方はFA88.docというマニュアルを見ていただければ分かると思いますが,まずF1で,日時や観測地,タイムゾーンなどの初期設定をします。 方位角と高度を知りたいときは,F7(Navigation)を押し,天体名sun(sだけでも可)を入力してEnterです。 Hcが高度,Znが方位角です。ただし,指定した一つの時刻の値しか出ません。 日出・日没,薄明はF6です。 まず出没・南中時刻が表示され,さらにF1を押すと市民・航海・天文の3つの薄明の開始・終了時刻が出ます。 こちらは,10日分(初期設定で変更可)が表になって出力されます。 さらに,出力結果をファイルに落とすこともできます。 初期メニューでF2を押し,さらにファイル名を指定すると,それ以降,画面出力と同じ内容がファイルに書き込まれます。 もう一度同じ操作で,ファイル出力を終了します。 (もっとも,DOS窓ですので,マウスで範囲指定したり,必要に応じて画面をスクロールして,コピー&ペーストでも良いわけですが。) 精度は英米の天体暦(日本でいう海上保安庁の天体位置表)と同等です。 もともと,80年代にフロッピーディスク版天体暦を1年分ずつ付録のような感じでつけていたものが発展して,250年対応になったらしいので,同等の精度は保証済みということのようです。 3. お急ぎでないのでしたら,天文計算の図書に付属しているソフトにも良いものがあります。 有名なところでは,Oliver Montenbruck, Thomas Pfleger共著,Astronomy on the Personal Computer(CD-ROMつき。第4版が最新) http://www.amazon.com/exec/obidos/tg/detail/-/3540672214/ref=pd_sim_b_3/103-7754716-2009463?%5Fencoding=UTF8&v=glance があります。 この中にあるSUNSET.exeを実行すると,太陽・月の出没時刻と,薄明(3つの内から指定した1つ)の時刻が10日分,表になって出力されます。 こちらもDOS窓を先に開いておきましょう。(エクスプローラなどから直接実行すると,終了したとたん窓も閉じてしまって,結果が読めません。) 以上の2と3は,得られる計算結果の種類や出力様式などは変えられませんが(もっとも3は,ソースコードが全て解説付きで掲載されているので,その気になればいじることも可能だけど…),もっと柔軟性のある天文計算用ソフトもあります。それがこれです。 4. Peter Duffett-Smith著 Easy PC Astronomy(フロッピーディスク付き) http://www.amazon.com/exec/obidos/tg/detail/-/0521560527/ref=pd_sim_b_5/103-7754716-2009463?%5Fencoding=UTF8&v=glance このソフトは,今までのように黙っていても自動的にメニューが出るのではなく,AstroScriptという簡単なスクリプトを書いて使うようになっています。 といっても,プログラミングといえるほど大仰なものではなく,内蔵されている計算ルーチンを順番に呼び出すだけですが,計算するデータの種類や出力様式などを自分でカスタマイズできる点は,前の2つのソフトにはない魅力です。 ただ,Windows3.1でないと動かないかも知れません。 (Win95で試したときにだめだったので,それ以来,ほとんどこのソフトを使うためだけにWin3.1マシンを残しています。2000やXPなどでは試していないので,もしかしたら動くかも知れませんが…) 職場に持って行ってしまったので,いま確認できないのですが,たぶん地平座標も,出没・薄明時刻も,まとめて計算して表形式で出力できたような気がします。 標高はもちろん,大気差も考慮,それも気圧・気温を入力して求める,という念の入れようです。 しかも,精度は英米暦と比べても最後の1桁が1違うかどうか,という精度の高さだそうです。(薄明時刻にそこまでの精度は必要ないでしょうけど)

参考URL:
http://www.vector.co.jp/soft/win95/edu/se112989.html,http://home.t-online.de/home/h.umland/page3.htm
hal-9000
質問者

お礼

 puni2さん、いろいろありがとうございます。  日本語の奴は出没時刻が出せないとのことなので(他のことに使えそうなのでゲットはしておきたいと思います)、英語ですねぇ(^^;)。しかし、これだけあれば、いろいろできそうですね。  DOSの扱いには慣れております。BATで動作させ、出力をファイルにリダイレクトできると楽ですね。  Win3.1環境は拙宅にはありませんが、導入用FDは取ってありますので、セットアップしますか。パーティションを作るところから始めなければいけませんが。

その他の回答 (5)

  • eria77
  • ベストアンサー率25% (49/196)
回答No.6

これベースに日の出時間補正プログラム作成中でこっち面倒なんでやらないから後やってね。^^ 10行のプログラムの追加ですむでな。

  • eria77
  • ベストアンサー率25% (49/196)
回答No.5

>角度にもいろいろありますが,ここで表示されるのは赤緯の絶対値なんですね。なぜ素直に赤緯の値そのものを表示しないのか,謎です。SIN( )の引数は負の数だって受け付けますよ) 補正しないと計算が大きく狂います。 こんな単純に作成は出来ません。 夏至まではコンマ台の狂いです。 これが理由です。 紙面の関係でこれ以上は、と言う感じです。 後は、赤偉に変更して(90-それ)1時間15度でサイン、コサインで太陽位置X、Y位置を出すのは簡単でしょう。北極星を中心に回ってますから、プラネタと同じです。 観測地を尋ねると追加すれば計算式補正など簡単ですよ。 これがソースです。 簡単ですから作成してみて下さい。 >いやあ,それ以前の問題でしょう。(^^;) 素晴らしいのもを期待しています。

  • puni2
  • ベストアンサー率57% (1002/1731)
回答No.4

No.3へのお礼を拝見しました。 >式を拝見したところでは、春分秋分日からの日数(絶対値を取る関数は無いんでしょうか ^^;)のサインを取り、あとは乗算と加算するだけのようですね。 「ひまわり」には,絶対値の関数 ABS( )もあります。 >ずいぶん簡単な計算なので、びっくりしました。 > 時刻は小数で入力するのでしょうか。 日の小数を時刻として取り出す式は,含まれていないようですね。 したがって,高度を求めるときに時刻は一切反映されません。 要するに,太陽の南中時の高度が求められるだけです。 だから,「ずいぶん簡単な計算」で済んでいるのです。 したがって,No.3さんは >太陽高度(地平線下)を計算する方法、あるいは計算ソフト等がありましたら、ご紹介頂けますでしょうか。への回答です。 とおっしゃっていますが,これではとうてい回答とはいえないでしょう。 質問の最初に >任意の位置(緯度と経度は既知)、任意の日時の、太陽高度(地平線下)を計算する方法、 という条件があるのですから。 >式の感じとしては、南中高度の計算のようでもありますが。 まさにおっしゃる通りで,南中高度そのものです。 基本的なアルゴリズムは, (1) 1月1日からの通日を求める。 (2) sin(通日-80)を求め(引数は度),「角度は、~度です。」と表示する。 (角度にもいろいろありますが,ここで表示されるのは赤緯の絶対値なんですね。なぜ素直に赤緯の値そのものを表示しないのか,謎です。SIN( )の引数は負の数だって受け付けますよ) (3) 54.5+赤緯を求め,「太陽角度は、~度です。」と表示する。 (太陽角度なんて言い方,聞いたことがありません。太陽の角度っていったって,それこそいっぱいありますよね。視直径だって角度だし,方位角も高度も角度です。なぜ素直に「太陽の南中高度」と言わないのでしょうか。おまけに,最初から観測地点が北緯35.5度に固定されている。) というものです。 また,仮に南中高度を求めるプログラムを書くとしても,なんでもっと簡単に,素直に書かないのかなあ,というのが率直な感想です。 1年を4つの期間に分けているので,プログラムの流れが非常に見づらくなっています。 もしかしたら,sinの引数は0~π/2の間でなくてはいけないと思っているのでしょうか。(もちろん,「ひまわり」の仕様にそんな制約はありません。) せっかく通日を算出しているのだから,(通日-80)*360/365 (をラジアンに直したもの)をsinの引数にしたらいいのに。 >後半狂うとのことですので、狂う量によっては、ちょっと困るかも(^^;)。 いやあ,それ以前の問題でしょう。(^^;)

hal-9000
質問者

お礼

 ま、ま、せっかく回答して頂いているのですから(^^;)。  この質問については、使えそうなソフトを4つご紹介頂きましたので、これにて締め切りにしたいと思います。  皆様、ありがとうございました。eria77さんも、今後ともよろしくお願い致します。

  • eria77
  • ベストアンサー率25% (49/196)
回答No.3

日本語プログラム「ひまわり」で今作成しました。 太陽高度プログラムです。^0^; 夏至までは相当な精度ですが、後半、狂います。 ベクターで、「ひまわり」を入手して下さい。 コピーアンドペーストで作動します。 作動原理は簡単でしょう。^^ >太陽高度(地平線下)を計算する方法、あるいは計算ソフト等がありましたら、ご紹介頂けますでしょうか。への回答です。 「月を入力して下さい」を、尋ねる。 もし、それ=1ならば、A=0 もし、それ=2ならば、A=31 もし、それ=3ならば、A=59 もし、それ=4ならば、A=90 もし、それ=5ならば、A=120 もし、それ=6ならば、A=151 もし、それ=7ならば、A=181 もし、それ=8ならば、A=212 もし、それ=9ならば、A=243 もし、それ=10ならば、A=273 もし、それ=11ならば、A=304 もし、それ=12ならば、A=334 「日を入力して下さい」を、尋ねる。 それ=(それ+A) 「今年の累計日数は、{それ}日です。」と、表示。 それ=10+それ もし、それ が、<180 ならば、冬至へ、飛ぶ。 もし、それ が、>180 ならば、それ=(それ-180) 夏至へ、飛ぶ。 *冬至 「冬至からの累計日数は、{それ}日です。」と、表示 もし、それ が、>90 ならば、計算式2へ、飛ぶ。 計算式1へ、飛ぶ。 *夏至 「夏至から{それ}日です。」と、表示。 もし、それ が、<90 ならば、計算式3へ、飛ぶ。違えば、計算式4へ、飛ぶ。 *計算式1 「*計算式1」と、表示。 それ=(90-それ) それを、表示。 それを、度からラジアン それ=SIN(それ) それを、表示。 それ=(23.4*それ) 「角度は、{それ}度です」と、表示。 それ=(54.5-それ) 「太陽角度は、{それ}度です。」と、表示 ラベル1へ、飛ぶ。 *計算式2 「*計算式2」と、表示。 それ=(それ-90) それを、表示。 それを、度からラジアン それ=SIN(それ) それを、表示。 それ=(23.4*それ) 「角度は、{それ}度です」と、表示。 それ=(54.5+それ) 「太陽角度は、{それ}度です。」と、表示。 ラベル1へ、飛ぶ。 *計算式3 「*計算式3」と、表示。 それ=(180-それ) 計算式2へ、飛ぶ。 *計算式4 「*計算式4」と、表示。 それ=(それ-90) それ=(90-それ) 計算式1へ、飛ぶ。 *ラベル1 参考までに。

hal-9000
質問者

お礼

 eria77さん、こちらでもありがとうございます。  日本語プログラム「ひまわり」は初めて見ました。初心者向きにわかりやすい言語ですね。  式を拝見したところでは、春分秋分日からの日数(絶対値を取る関数は無いんでしょうか ^^;)のサインを取り、あとは乗算と加算するだけのようですね。ずいぶん簡単な計算なので、びっくりしました。  時刻は小数で入力するのでしょうか。式の感じとしては、南中高度の計算のようでもありますが。  これをエクセルのマクロに移植するのは簡単そうです。ただ、後半狂うとのことですので、狂う量によっては、ちょっと困るかも(^^;)。

  • eria77
  • ベストアンサー率25% (49/196)
回答No.1

恐らく自作しか無いと考えます。 基準観測地点を赤道にし、 北、南回帰線の太陽移動(角度補正プログラム) を作成。 日の出、日の入り時間、昼、夜時間計算。 観測地日の出角、日の入り角計算。南中高度計算。 (観測地補正) 面倒なので途中でプログラム作成止めたやつです。

hal-9000
質問者

お礼

 アドバイスありがとうございます。  自分でプログラムは書けるのですが、計算式がわかりません(^^;)。ざっとした計算ならできるかもしれませんが、誤差が大きくては意味がありませんし。

関連するQ&A