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

[dennou-ruby:002421] Re: Global attribute



竹広さん

堀之内です。

> 竹広です. 
> 
> 以前 Global attribute の扱いを質問しまして, それに沿って
> 以下のようなコード(抜粋)をかいて gp* コマンドに
> とりいれてみました. 

gp* コマンドに共通するものは別のファイルにくくりだして
require するのがいいと思います。保守すべきところが
一箇所にかたまりますので。特に今回については、私が
枠をまだ整備してないための対応法ですから、将来の
書き換えが予想されますし。今のうちにくくりだしの
作業をして、各コマンドのソースは出来るだけそれぞれ
に固有なことだけをするよう軽くしたほうがいいのでは?

> 入力ファイルが NetCDF でない場合にも対処したつもりなんですが
> いかがなものでしょうか. 
> 
> それから入力が複数ファイルの場合には gphys.data.file の返り値が
> NetCDF Class でなくファイル名の配列になってしまうので, 
> おなじ方法がとれません. その場合には別途一つのファイルを開いて
> Global attribute を読み取るぐらいでいいのでしょうか. 
> もっと洒落た方法があったら教えて下さい. 

ファイル「名」の配列を返すのは一貫性にかけますね。
ファイルオブジェクトを返すように変えたほうがいいと思います
→ 今後検討します。

>                     Takepiro(竹広真一)@数理解析研究所. 京都大学
>                       	E-mail:takepiro@xxxxxxxxxxxxxx
> 			       takepiro@xxxxxxxxxxxxxxxxxxxx
> 
> ======================================================================
> gphys = GPhys::IO.open_gturl(gturl)    # 入力
> 
> outncfile=NetCDF.create(outfilename)   # 出力
> 
> # Copy global attributes (only for NetCDF file)
> ncfile = gphys.data.file 
> if /NetCDF/  =~ ncfile.class.to_s
>   ncfile.each_att{|att|
>     att.copy(outncfile)
>   }
> end
> 
> ...
> 
> GPhys::IO.write( outncfile, gphys )
> NetCDF_Conventions.add_history(outncfile, command) # Exec command written as a history
> 
> outncfile.close
> ======================================================================
> 


-- 
堀之内 武                      horinout@xxxxxxxxxxxxxxxxxx
京都大学生存圏研究所                    phone:0774-38-3812  
611-0011 宇治市五ヶ庄                     fax:0774-31-8463