(Tips) 1から作成したGPhysを欠損値とともにncに出力
作成者: 加藤亮平
1 から作成した GPhys を欠損値情報とともに netcdf に出力する方法を記す.
GPhys に欠損値情報を加えるには, GPhys を構成する主変数の VArray に欠損値を設定した後 GPhys を作成すればよい.
- VArray に設定する配列は NArrayMiss ではなく NArray で OK
- 単に NArrayMiss を GPhys を構成する主変数の VArray に設定しただけでは, 欠損値情報を netcdf に書き込むことはできないようだ.
欠損値の設定は以下の部分
rmiss = -9.99e10 # missing value
rm = NArray.float(1).fill(rmiss) # VArray に設定する欠損値は String か数値の NArray / Array でないといけない
zz = VArray.new( z0, {'missing_value'=>rm}, "z" ) # set missing value
コード: create_gphys_with_missing_value.rb
require "numru/ggraph"
include NumRu
nx = NArray.float(10).indgen! # 0,1,2,..
ny = NArray.float(10).indgen! # 0,1,2,..
vx = VArray.new( nx, {"long_name"=>"x coord","units"=>"m"}, "x")
vy = VArray.new( ny, {"long_name"=>"y coord","units"=>"m"}, "y")
xax = Axis.new.set_pos(vx)
yax = Axis.new.set_pos(vy)
grid = Grid.new(xax, yax)
z0 = NArray.float(vx.length, vy.length).indgen!
rmiss = -9.99e10 # missing value
z0[2,3] = rmiss
rm = NArray.float(1).fill(rmiss)
zz = VArray.new( z0, {'missing_value'=>rm}, "z" ) # set missing value
gp = GPhys.new(grid,zz)
p gp.val.class # => NArray
#-----output netcdf
ofile = NetCDF.create("out.nc")
GPhys::IO.write(ofile, gp)
ofile.close
#-----test draw
gp2 = GPhys::IO.open("out.nc", "z")
DCL.glpset('LMISS', true)
DCL.gropn(1)
GGraph.tone_and_contour(gp2)
DCL.grcls

キーワード:[欠損値] [missing value]
参照: