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を叩かなくても良いとなれば、色々なことをしてみたくなりますよね。