[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:002439] Re: integrate
- To: dennou-ruby@xxxxxxxxxxx
- Subject: [dennou-ruby:002439] Re: integrate
- From: Shin-ichi Takehiro <takepiro@xxxxxxxxxxxxxx>
- Date: Sun, 04 Sep 2005 15:35:45 +0900
竹広です.
integrate で重みを使い出すと, 次元変数だけでなくその重み変数も
一緒に保持して欲しいんですが, そうすると GPhys オブジェクトの
定義にかかわるのでおおごとですよね. そこでとりあえず
gp コマンドシリーズで重み変数も一緒に読み書きするための
メソッドを作ってみました.
gtool4 規約では重み座標の名前は dimname + _'weight' で
正しいでしょうか?
問題ないようでしたらとりあえず gpcommon.rb へいれて
一連の gp コマンドに採り入れようと思いますがいかがでしょう.
======================================================================
def open_gturl_with_dimweights(gturl)
file, var, slice, thinning = GPhys::IO.parse_gturl(gturl)
gp = GPhys::IO.open(file,var)
gp = gp.cut(slice) if slice
gp = gp[thinning] if thinning
gp_weights = Hash.new
gp.axnames.each{|dim|
weight_name = dim + '_weight'
if ( GPhys::IO.var_names(file).include?(weight_name) ) then
gp_weights[dim] = GPhys::IO.open(file, weight_name)
if slice then
gp_weights[dim] = gp_weights[dim].cut(slice[dim]) if slice.key?(dim)
end
if thinning then
gp_weights[dim] = gp_weights[dim][thinning[dim]] if thinning.key?(dim)
end
end
}
[gp, gp_weights]
end
def write_with_dimweights(file, gp, gp_weights)
GPhys::IO.write(file, gp)
gp.axnames.each{|dim|
GPhys::IO.write(file, gp_weights[dim]) if gp_weights.key?(dim)
}
end
======================================================================