[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:003628] dclext.rb の color_bar (Re: GPhys 石岡緯度分割等対応)



堀之内さん

# dcdvlop 宛てをやめて dennou-ruby 宛てにしました

お返事ありがとうございます。
いま使っているのは 1.2.2-2 です。
CVS版で既に対応がなされているのならそれでいいのですが。

CVS版を見れるのは ruby グループの人だけですよね?
私は見れないので、グループに入れていただくか、
dclext.rb だけ送っていただけたら、見てみようと思います。

とりあえず、不具合再現スクリプトをお送りします。
(チュートリアルのデータ T.jan.nc を使用します)

内藤

(2013/03/12 12:28), Takeshi Horinouchi wrote:
> 内藤さん
> 
> CVS版のソースをみると,その辺は問題なさそうにみえるのですが,
> 使ってるのは1.2.2 でしょうか。そのあたりは1.2.2からの
> 変更がありますので,もしよければ CVS をみて頂けると
> 幸いです。(あるいは不具合再現スクリプトを送るか。)
> 
>> 内藤です。
>>
>> まだ間に合うでしょうか?
>> 現状に対する、気がついている不具合について。
>> 不具合とまではいかないかもしれないけど。
>>
>> 複数ページ繰り返し描画していて、あるページの値が欠損値だったりすると、
>> それ以降のページの文字が小さくなってしまいます。
>> カラーバーを描かなければこの問題は生じません。
>>
>> ちょっと見てみたところ、
>> dclext.rb の color_bar の中で rsizel1 に charfact をかけて使用し
>> 最後に rsizel1_bk に復元しているようですが、最後まで行かずに
>> 途中の return で返る場合には復元されないで返ってきてしまう、
>> ということのようです。
>>
>> パッチとか用意してなくてすみません。
>> return の箇所全てに復元処理を入れるか、
>> ensure か何か使って、返る前に必ず復元させるようにするか、
>> だとは思うのですが。
>>
>> ------------
>> 京都大学 大学院理学研究科 地球惑星科学専攻
>> 内藤 陽子 <naito@xxxxxxxxxxxxxxxxxx>
>>
>> (2013/03/04 12:49), Takeshi Horinouchi wrote:
>>> 堀之内です。
>>>
>>> Rubyのデータ解析ライブラリ GPhys を,分割ファイルのバーチャル
>>> 結合機能をかしこくして,ISPACKのMPI時の緯度分割にも対応するように
>>> しました(CVS版)。これを機にバージョンアップしてリリースしようと
>>> 思ってますが,ユーザーのみなさん,現状(1.2.2 または CVS版)
>>> に対する要望や気が付いている不具合等あれば教えてください。
>>>
>>> ちなみに GPhys::IO.open に(ファイルポインターでなく)パスが
>>> 与えられた場合裏でとっておいて使いまわしてほしいというのが
>>> 確か12月のミーティングででたと思いますが,これはペンディング
>>> です(そのせいで GC の対象外になりそうなのが要検討かと)。
>>>
>>> 堀之内 武
>>> 北海道大学 地球環境科学研究院 地球圏科学部門
>>> 〒060-0810 札幌市北区北10条西5丁目
>>>
> 
> 堀之内 武
> 北海道大学 地球環境科学研究院 地球圏科学部門
> 〒060-0810 札幌市北区北10条西5丁目
> 
require "numru/ggraph"
include NumRu

### get data ###
gphys = GPhys::IO.open("T.jan.nc","T").copy

### make missing page ###
narray = gphys.val
narray.invalidation(true,true,2)
narray.invalidation(true,true,5)
narray.invalidation(true,true,7)
varray = gphys.data.replace_val(narray)
gphys = GPhys.new(gphys.grid_copy,varray)

### graph ###
iws = 2
DCL.gropn(iws)
DCL.sgpset('lcntl',false)
GPhys.each_along_dims(gphys,"level"){|sub_gphys|
  GGraph.tone_and_contour(sub_gphys)
  GGraph.color_bar("charfact"=>0.7)
}
DCL.grcls