Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: fixed broken links

...

Metview provides a set of NetCDF handling macro functions, allowing users to apply a number of functions and operators to NetCDF data - see NetCDF Functions.

How operators and functions work on NetCDF

...

When two netCDF variables are involved, both files have to have the same number of data points in each current variable, as an operation between two netCDFs is carried out between each pair of corresponding data values. Thus :

nc3 = nc1+nc2

corresponds to

for each data value i

nc3i = nc2i + nc1i

 

nc2 = nc1+a

corresponds to

for each data value i

nc1i = nc1i + a

 

nc2 = f(nc1)

corresponds to

for each data value i

nc2i = f(nc1i)

 

NOTE : Like fieldsets, a netCDF resulting from an operation on two other netCDFs, will take the metadata (e.g. date, time, parameter, levels, ...) from the first netCDF.

...

Example 2 : To operate on two netcdf files, assigning the result to a third netcdf, you should create the output netcdf first by a simple copying of one of the input netcdfs :

Code Block
languagebash
# Derive cross sections of temperature forecast and analysis
# in two netcdf variables, tfc_xs and tan_xs....

(...)

# derive the list of netcdf variables
var_list = variables(tfc_xs)

# create output netcdf
diff_xs = tfc_xs

# loop over variables and create fc-an difference cross-section
for i = 1 to count(var_list) do
    setcurrent(tan_xs, i)
    setcurrent(tfc_xs, i)
    setcurrent(diff_xs, i)
    diff_xs = tfc_xs - tan_xs
end for 

Extracting

...

NetCDF

...

values

If

...

you

...

need

...

to

...

have

...

access

...

to

...

the

...

data

...

values

...

of

...

a

...

netcdf

...

current

...

variable,

...

you

...

can

...

use

...

function

...

values()

...

:

     val_list = values(netcdf)

which

...

returns

...

a

...

vector

...

with

...

all

...

the

...

values

...

for

...

the

...

current

...

variable.You

...

can

...

then

...

use

...

the

...

Vector

...

functions

...

to

...

manipulate

...

the

...

data.

...

This

...

technique

...

could

...

even

...

be

...

used

...

to

...

create

...

a

...

new

...

Geopoints

...

variable

...

with

...

the

...

netCDF

...

data,

...

or

...

to

...

insert

...

the

...

values

...

into

...

a

...

GRIB

...

field.

 

An

...

alternative

...

method

...

for

...

accessing

...

individual

...

values

...

is

...

to

...

the

...

use

...

the

...

function

...

value()

...

:

    val = value(netcdf, n)

which

...

returns

...

the

...

nth

...

value

...

from

...

the

...

current

...

netcdf

...

variable.