RubyNetCDF Reference Manual

---------------------------------------------

Overview

RubyNetCDF is the Ruby interface of the NetCDF library. Ruby is a free object-oriented scripting language and is available from http://www.ruby-lang.org/. To handle numeric data, RubyNetCDF uses NArray, which is the standard numeric multi-dimensional array class for Ruby (http://www.ruby-lang.org/en/raa-list.rhtml?name=NArray). An NArray object holds numeric data in a consecutive memory area pointed by a C pointer. Thus, it is computationally efficient. NArray is similar to NumPy for Python, but results of some benchmark tests suggests that NArray is more efficient than NumPy.

Structure

RubyNetCDF consists of the four class in the following.

Data type

All the NetCDF variable types char, byte, short, int, float, and double are supported in this Ruby interface. These types are called, however, differently in it to adhere to the convention of Ruby, or, more specifically, of NArray. These types are named to as "char", "byte", "sint", "int", "sfloat", and "float", respectively. Therefore, the vartype (=ntype) method of the NetCDFVar class returns one of these strings. The def_var method of the NetCDF class also accepts one of them to define a variable. It should be noted especially that "float" in this library means the double in the NetCDF terminology. This is due to the convention of Ruby -- the predefined Float class corresponds to the double in C, not the float.

The "get" method of NetCDFVar class reads a variable in a NArray of the same type as in the file, except for the "char" type which is read into a "byte". This is because NArray does not have a "char" type. However, it not is not supposed to be a problem, since a byte NArray can easily handle string data.

Error handling

Errors are basically handled by raising exceptions. However, light errors in value-returning methods are handled by returning nil (e.g., if a non-existent attribute name is specified in attribute reading). Those methods that returns nil on error are explicitly written as such in the following.

Security features

Security handling is done just as in the pre-defined File class.

---------------------------------------------

How to read this manual

method_name(argument1, argument2, ...) -- arguments that can be omitted are expressed as Argument_name=Default_value

Explanation of its function

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

---------------------------------------------

Index

---------------------------------------------

class NetCDF

Class Methods

NetCDF.open(filename, mode="r", share=false)

Opens a file (class method). If mode="w" and non-existent, a new file is created.

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

NetCDF.new

Aliased to NetCDF.open

NetCDF.create(filename, noclobber=false, share=false)

Creates a NetCDF file (class method)

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

NetCDF.create_tmp(tmpdir=ENV['TMPDIR']||ENV['TMP']||ENV['TEMP']||'.', share=false)

Creates a temporary NetCDF file (class method). Its name is automatically generated, and it is deleted when closed.

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

Instance Methods

close

Closes the file.

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

ndims

Returns the number of dimensions in the file

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

nvars

Returns the number of variables in the file

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

natts

Returns the number of global attributes in the file

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

unlimited

Returns the unlimited dimension in the file

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

path

Returns the path of the file (contents of the filename specified when opened/created)

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

uri

Aliased to path

redef

Switches to the define mode. Does nothing if already in it.

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

enddef

Switches to the data mode. Does nothing if already in it.

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

sync

Synchronizes the disk copy of a netCDF dataset with in-memory buffer

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

def_dim(dimension_name, length)

Define a dimension

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

put_att(attribute_name, value, atttype=nil)

Sets a global attribute

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

def_var(name, vartype, dimensions)

Defines a variable

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

def_var_with_dim(name, vartype, shape_ul0, dimnames)

Same as def_var but defines dimensions first if needed. Raise exception if it conflicts with the lengths of exisiting dimensions.

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

var(var_name)

Opens an existing variable in the file

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

dim(dimension_name)

Opens an existing dimension in the file

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

att(attribute_name)

Opens an existing global attribute in the file

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

fill=(filemode)

Sets a fill mode. (Default behavior of NetCDF is FILL.)

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

each_dim{ ... }

Iterator regarding the dimensions in the file. Ex.: {|i| print i.name,"\n"} prints names of all dimensions

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

each_var{ ... }

Iterator regarding the variables in the file. Ex.: {|i| print i.name,"\n"} prints names of all variables

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

each_att{ ... }

Iterator regarding the global attributes of the file. Ex.: {|i| print i.name,"\n"} prints names of all of them.

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

dim_names

Returns the names of all dimensions in the file

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

var_names

Returns the names of all variables in the file

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

att_names

Returns the names of all the global attributes of the file

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

---------------------------------------------

class NetCDFDim

Class Methods

Instance Methods

length

Returns the length of the dimension

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

length_ul0

Same as length but returns 0 for the unlimited dimension

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

name=(dimension_newname)

Rename the dimension

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

name

Returns the name of the dimension

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

unlimited?

Inquires whether the dimension is unlimited or not

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

---------------------------------------------

class NetCDFVar

Class Methods

NetCDFVar.new(uri,mode="r",share=false)

Combines NetCDF.open and NetCDF#Var to open a variable with one line (no need to use this).

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

Instance Methods

dim(dim_num)

Inquires the dim_num-th dimension of the variable (dim_num=0,1,2,..)

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

dims

Returns an array of all the dimensions of the variable

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

shape_ul0

Returns the shape of the variable, but the length of the unlimited dimension is set to zero. Good to define another variable.

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

shape_current

Returns the current shape of the variable.

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

uri

Returns a combination of filename (path) and variable name as path+'?var='+varname

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

each_att{ ... }

Iterator regarding the global attributes of the variables. Ex.: {|i| print i.name,"\n"} prints names of all of them.

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

dim_names

Returns the names of all the dimensions of the variable

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

att_names

Returns the names of all the attributes of the variable

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

name

Returns the name of the variable

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

name=(variable_newname)

Rename the variable

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

ndims

Number of dimensions of the variable (which is rank of the variable).

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

ntype

Aliased to vartype

vartype

Data value type of the variable

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

natts

Returns the number of the attributes of the variable

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

file

Inquires the file that the variable is in

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

att(attribute_name)

Returns the attribute specified by its name

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

put_att(attribute_name, value, atttype=nil)

Sets an attribute

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

put(value, option=nil)

Set the values of the variable

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

scaled_put(value, option=nil)

Same as put but interprets the attributes scale_factor and add_offset

If scale_factor and/or add_offest is defined, does (value-add_offset)/scale_factor before writing. (If not, exactly the same as put.) If one of the attributes is not defined, assumes 1 for the factor and 0 for the offset.

See the document of put for arguments etc.

get(option=nil)

Returns values of the variable

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

scaled_get(option=nil)

Same as get but interprets the attributes scale_factor and add_offset

If scale_factor and/or add_offest is defined, returns value*scale_factor+add_offset. (If not, exactly the same as get.) If one of the attributes is not defined, assumes 1 for the factor and 0 for the offset. The variable type of the return value (NArray) is float (which is double precision) if the NetCDF variable is int or float; else, it is sfloat (single presision).

See the document of get for arguments etc.

---------------------------------------------

class NetCDFAtt

Class Methods

Instance Methods

name

Returns the name of the attribute

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

name=(attribute_newname)

Rename the attribute

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

copy(var_or_file)

Copies an attribute to a variable or a file. If file, becomes an global attribute

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

delete

Delete an attribute

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

put(value, atttype=nil)

Sets the value of the attribute

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

get

Returns the values of the attribute

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF

atttype

Inquires the type of attribute values

Arguments

Return value

Corresponding (dependent) function(s) in the C library of NetCDF