hirax.net::inside out::2009年10月09日

最新記事(inside out)へ  |   年と月を指定して記事を読む(クリック!)

2009年9月 を読む << 2009年10月 を読む >> 2009年11月 を読む

2009-10-09[n年前へ]

無料配布のMathematica PlayerとIronRubyで天文学計算をしてみよう 

 さらに、「無料配布のMathematicaカーネルと(やはり同じく無料で使うことができる).NET Framework上で動作するRubyであるIronRuby」を使って色々なことをしてみよう、という話が続きます。

 今日は、Mathematicaを使って計算(入手)可能なデータの中から、天文学に関するデータを使った計算例を紹介してみます。具体的には、現在位置(緯度・経度)を指定した上で、次に太陽が昇ってくる時間を習得するスクリプトの例です。たとえば、東京タワーの緯度・経度を指定した上で、次の日の出時刻を計算してみることにしましょう。

include System
require 'Wolfram.NETLink'
include Wolfram::NETLink
kernelLink=MathLinkFactory.CreateKernelLink()
kernelLink.WaitAndDiscardAnswer()
com='$GeoLocation={35.658587,139.745425};'
com+='AstronomicalData["Sun","NextRiseTime"]'
result=kernelLink.EvaluateToInputForm(
  com, 0)
puts result
kernelLink.close
 これだけ、です。しかも実際に使っているMathematicaの命令は、
$GeoLocation={35.658587,139.745425};
AstronomicalData["Sun","NextRiseTime"]
だけです。これだけで、
{2009, 10, 13, 5, 46, 0.9059999999990396}
という風に、2009年10月13日5時46分0.9秒に陽が昇るのか、と結果をすぐに手に入れることができます。もちろん、"Sun"でなく、"Moon"なら優雅に月が昇る時刻を手に入れることができますし、たとえば、火星だって・木星だって…地平線から顔を出す瞬間の時刻を計算することができます。ラプラスの悪魔のごとく、物事が動くさまを手に入れることができます。

 こんな風に色々なデータに一瞬でアクセスできるとなれば、しかも、面倒なWEB APIを叩かなくても良いとなれば、色々なことをしてみたくなりますよね。