def val(type=nil)
if type
unless [:reference, :full, :original].include?(type)
raise "type is invalid"
end
else
type = @type
end
case @name2
when "x", "y"
x,y = get_xy(type==:reference)
case @name2
when "x"
return x
when "y"
return y
end
when "plane"
case type
when :reference, :full
return NArray.to_na(@meta[:planes].collect{|pl| pl.to_i})
when :original
return NArray.to_na(@meta[:planes])
end
when "validtime"
case type
when :reference
return @meta[:validtimes]
when :full, :original
nv = @meta[:nvalidtime]
nb = @meta[:nbasetime]
na = NArray.int(nv,nb)
bts = @meta[:basetimes]
vts = @meta[:validtimes]
unit = @meta[:validtime_unit]
nb.times{|j|
bt = bts[j]
nv.times{|i|
na[i,j] = time_from_zerotime(vts[i], bt, unit)
}
}
na.reshape!(nv) if nb==1
return na
end
when "member"
case type
when :reference, :full
return NArray.sint(@meta[:nmember]).indgen
when :original
return NArray.to_na(@meta[:members])
end
when "basetime"
return NArray.to_na(@meta[:basetimes])
end
end