西澤様, 堀之内様, 石岡@岡山大です. お忙しいところありがとうございます. 教えていただいた方法で絵を描くことができました. On 2011年10月24日 17:51, Takeshi Horinouchi wrote: 堀之内です. 久々にこういう質問が流れてうれしいです.GPhys も全球平均を計算するようなメソッドなどがあるのでしょうか?西澤さんのメールからご想像通り,これに対する直接の回答は, ありません です.(^^;) で,西澤さんご指摘のやり方(avarage_weightを設定 し,GPhysのaverageメソッドを使う)もありますが, 他にどうすれば簡単かつわかりやすくできるかという のを書きます. 例として,GPhysの tar ボール付属の T.jan.nc を使うとします (チュートリアルページにおいてあるファイルです). お望みのことは,次のように陽に重みをかけて計算すればでき ます. tem = GPhys::IO.open("T.jan.nc","T") cos_phi = ( tem.axis("lat").to_gphys * (Math::PI/180.0) ).cos fact = cos_phi / cos_phi.mean tm = (tem * fact).mean("lon","lat") これなら読めば何をやってるかはわかりますね.ポイントは2行目で, 座標軸を取り出して (axisメソッド),GPhys 化する(to_gphysメソッド) ことです.すると,一次元データ(fact)でも,多次元データ(tem)と 二項演算ができます.--- 次元の対応は自動判断されます. このように axis(dim).to_gphys はいろんなところで使えますので, 覚えておくと損しません. # ちなみにもしも上記のコードの前に include NumRu::Misc::EMath しておけば,2行目は次のようにも書けます: cos_phi = cos( tem.axis("lat").to_gphys * (PI/180.0) ) さて,ここからは,西澤さんのコメントに関連して,もしもGPhys で 今以上にサポートするならどうするのが良いかかについてです. 私は今は,球面関連の基礎的な演算は GPhys付属ライブラリ lib/numru/ganalysis/planet.rb に入れていくのがいいかなと 思ってます.緯度に関する平均は絶対に cos(phi) 重みを つけるとは限らないし,また裏で自動でやってしまうと, 「そんなことやってるとは知らなかった」となるかもしれない ので,属性による自動対処よりは(やるなら)メソッドで陽 に対応するほうが良い気がしています.--- 確信というわけでは なく,どっちかといえばそうかなというレベルの話です. # いずれにしても planet.rb の整理はもっと進めたほうがいいですが.岡山大 石岡様 以下を使えばお望みのことができるのではと思います。 http://ruby.gfd-dennou.org/products/gphys/doc/axis.html#label-39 http://ruby.gfd-dennou.org/products/gphys/doc/gphys.html#label-38 netcdf にしかるべき **_weight が入っていれば、 自動で average_weight , integ_weight を設定してくれるようになってると良いのかもしれません。 これってCF か gtool4 規約等で決まっているんでしたっけ? > 識者の方 西澤誠也 2011/10/24 ISHIOKA Sho <sc420529@xxxxxxxxxxxxxxxxx>:はじめまして, 岡山大学 B4 石岡です. GPhys の使い方について質問させてください. 自分は大気大循環モデル(dcpam5)を使った計算を 行っています. そして, その計算結果の解析に GPhys を 使用しています. 今, データ (地表面温度など) の全球平均した値の時間変化の 絵を描きたいのですが, 全球平均をする方法がわからなくて 困っています. 全球平均 (水平方向) をする場合, 緯度によって経度方向の 格子点間隔が違うため重みをつけなければならないことは わかります. gtool3 には全球平均をおこなうコマンドがあるようなのですが, GPhys も全球平均を計算するようなメソッドなどがあるのでしょうか? ちなみに以下のページで探してみましたが見つけることができませんでした. http://ruby.gfd-dennou.org/products/gphys/doc/ なにかわかりましたら, 教えていただけないでしょうか. よろしくお願いします. -- 岡山大学理学部 地球科学科 BC4 石岡 翔-- Seiya Nishizawa Center for Planetary Science, Kobe University TEL : 078-599-6730 FAX : 078-599-6735堀之内 武 北海道大学 地球環境科学研究院 地球圏科学部門 〒060-0810 札幌市北区北10条西5丁目 |