[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:003457] Re: 質量流線関数の描画
- To: dennou-ruby@xxxxxxxxxxx
- Subject: [dennou-ruby:003457] Re: 質量流線関数の描画
- From: ISHIOKA Sho <sc420529@xxxxxxxxxxxxxxxxx>
- Date: Thu, 15 Dec 2011 17:29:10 +0900
堀之内様,
石岡 @岡山大です.
返信ありがとうございます.
>> 鉛直staggered grid なら数値積分法はこれが正解でしょうね.
鉛直 staggered grid になっています.
>> p はゼロのほうからやってます? (たぶんそのほうがいい.)
p はゼロのほうから積分しています.
>> ただ,σレベルで平均すると,異なる P のデータを重ねることになります.
>> 低気圧・高低気圧で微妙に異なる P のデータを重ねることになりますから,
>> P 座標に補間した上で平均するのと結果は異なるでしょう.どれくらい
>> かはわかりませんが,傾圧波が卓越するところではそれなりに違ってもおか
>> しくないと思います.
P 座標に補間した上で平均を行うようにしてみます.
ただ自分がいま卒論の提出で手が回らないのでしばらくかかると
思いますがご容赦ください.
(2011/12/15 14:49), Takeshi Horinouchi wrote:
> 堀之内です.追伸.
> σ座標の連続の式のzonal meanは,おそらく子午面で
> 非発散の形で表せないのでは? (log PS の移流項における
> 水平風の鉛直シアーが邪魔になって.) その場合,子午面
> 流線関数は定義できないことになります.
>
>> 岡山大石岡さま:
>>
>> 鉛直staggered grid なら数値積分法はこれが正解でしょうね.
>> p はゼロのほうからやってます? (たぶんそのほうがいい.)
>>
>> σレベルでやってますが,各時刻各点での PS を使ってるのは良いですね.
>> ただ,σレベルで平均すると,異なる P のデータを重ねることになります.
>> 低気圧・高低気圧で微妙に異なる P のデータを重ねることになりますから,
>> P 座標に補間した上で平均するのと結果は異なるでしょう.どれくらい
>> かはわかりませんが,傾圧波が卓越するところではそれなりに違ってもおか
>> しくないと思います.
>>
>> # あと,もちろん地形がある場合σレベルで平均したくないですね.
>>
>>> 堀之内様,
>>>
>>> 石岡 @岡山大です.
>>>
>>> 以下のような子午面の質量流線関数の絵を描く
>>> スクリプトができました.
>>> ありがとうございます.
>>>
>>>
>>> --- ここから ---
>>> # mass stream function
>>> # 質量流線関数
>>> #
>>>
>>> require 'numru/ggraph'
>>> require 'numru/gphys'
>>> include NumRu
>>> include Math
>>>
>>> # file open
>>> vwind = GPhys::IO.open( "V.nc", "V")
>>> ps = GPhys::IO.open( "Ps.nc", "Ps")
>>> sigdot = GPhys::IO.open( "SigDot.nc", "SigDot")
>>>
>>> #
>>> usetime = { 'time'=>1340..1440 }
>>> vwind = vwind.cut(usetime)
>>> ps = ps.cut(usetime)
>>> sigdot = sigdot.cut(usetime).mean('lon','time')
>>>
>>> # constant
>>> grav = UNumeric[9.8, "m.s-2"]
>>> a = UNumeric[6400000.0, "m"]
>>>
>>> #
>>> sgm = sigdot.axis("sigm").to_gphys
>>> sgm = NArray.to_na(sgm.to_a)
>>>
>>> psi = sigdot.copy
>>> psi[false] = 0
>>> psi.units = 'kg.s-1'
>>> psi.long_name = 'mass stream function'
>>>
>>> cos_phi = ( vwind.axis("lat").to_gphys * (PI/180.0) ).cos
>>> alph = vwind * cos_phi * ps * a * PI * 2 / grav
>>>
>>> alph = alph.mean('lon','time')
>>> for i in 0..15
>>> k = 15-i
>>> psi[true,k] = psi[true,k+1] + alph[true,k] * (sgm[k] - sgm[k+1])
>>> end
>>>
>>> # DCL
>>> DCL.gropn(1)
>>> DCL.sgpset('lcntl',false)
>>> DCL.uzfact(0.7)
>>>
>>> # GGraph
>>> GGraph.tone( psi, true, "nlev"=>2 )
>>> GGraph.contour( psi, false)
>>>
>>> DCL.grcls
>>>
>>> --- ここまで ---
>>>
>>>
>>> (2011/12/09 13:01), Takeshi Horinouchi wrote:
>>>> 岡山大石岡さま:
>>>>
>>>> 了解です.詰まったら遠慮なく相談してください.
>>>>
>>>> # 詰まらなくても,定義はこれこれですとか,数値的にはこんな風にやって
>>>> みようと思いますなど,適宜実況中継してくれてかまいません.
>>>>
>>>>> 堀之内様,
>>>>>
>>>>> 石岡 @岡山大です.
>>>>>
>>>>> 返信ありがとうございます.
>>>>> 無いようなので, こちらで作ってみようと思います.
>>>>>
>>>>>
>>>>> (2011/12/08 23:57), Takeshi Horinouchi wrote:
>>>>>> 堀之内です.
>>>>>>
>>>>>> 子午面の,ですね.
>>>>>> ないですが,計算は簡単ですよね.(10行程度.私自身も
>>>>>> 計算したりはしてます...)
>>>>>>
>>>>>> # もしかして,どうやって計算するのがいいか迷ってる?
>>>>>> なら,演習問題としてやってください.
>>>>>>
>>>>>>> 石岡 @岡山大です.
>>>>>>>
>>>>>>> GPhys について質問させてください.
>>>>>>>
>>>>>>> dcpam で計算された結果を使って質量流線関数の
>>>>>>> 図を作りたいのですが, GPhys に質量流線関数を
>>>>>>> 計算するようなメソッドなどはないでしょうか.
>>>>>>>
>>>>>>> もしありましたら教えていただけないでしょうか.
>>>>>>> よろしくお願いします.
>>>>>>>
>>>>>>> --
>>>>>>> 岡山大学理学部
>>>>>>> 地球科学科 BC4
>>>>>>> 石岡 翔
>>>>>>>
>>>>> --
>>>>> 岡山大学理学部
>>>>> 地球科学科 BC4
>>>>> 石岡 翔
>>>>>
>>>> 堀之内 武
>>>> 北海道大学 地球環境科学研究院 地球圏科学部門
>>>> 〒060-0810 札幌市北区北10条西5丁目
>>>>
>>>>
>>>
>>> --
>>> 岡山大学理学部
>>> 地球科学科 BC4
>>> 石岡 翔
>>>
>> 堀之内 武
>> 北海道大学 地球環境科学研究院 地球圏科学部門
>> 〒060-0810 札幌市北区北10条西5丁目
>>
>
--
岡山大学理学部
地球科学科 BC4
石岡 翔