# File lib/numru/nusdas.rb, line 1647
    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