When to use NCL rather than HLUs and/or LLUs
This module discusses the benefits and limitations of using NCL and
when it may be more appropriate to use high level and low level utilities
for creating an NCAR Graphics application. Some of the strengths of NCL
include its array manipulation capabilities and data I/O functions.
However, if users are very familiar with the traditional NCAR Graphics
interface, they may want to continue using the low level utilities until
more functionality is added to the
HLUs and the NCL.
New users are encouraged to learn and use the NCAR Command Language
for creating contours, maps, and graphs. NCL has a simple grammar and uses
most of the standard and familiar programming constructs found in common
computer and scripting languages. Veteran users of the NCAR Graphics
software, however, may want to continue to use the
traditional C and Fortran interfaces
rather than learn a new system of creating plots. As the software evolves
and more functionality is added to the NCL and the HLUs, then traditional
users will want to migrate to the new interfaces.
One of the strengths of NCL is its
data I/O capabilities.
NCL can be used to read several different formats of data using only a
handful of NCL statements. On the other hand, if users want to import
data using the HLU or LLU interface, then they will need to learn how to
use the interface to the libraries for each data format they want to
read and write.
So, for example, to read a NetCDF data file using NCL, users only need to
use the NCL addfile statement to import netCDF data. On the other hand,
a C or Fortran application that reads NetCDF data must contain the
appropriate include files, link and load options, and correct sequence
of statements to open and read the file.
Another advantage of using NCL over other interfaces is that NCL
automatically performs resource type conversion so that it is not
necessary, as with the HLUs, to use a different function to set
resources depending on the resource type.
So, for example, to set the text font height to a float value and the
text font color to an integer index value using the HLU C interface,
you would use two different HLU commands.
With NCL, however, there is no need to use a separate function for setting
float, integer, or any other type of resources. In NCL, all resource
assignments can be performed with a single, consistent
"txFontHeightF" : 0.01
"txFontColor" : 18
NCL supports array operations that are not available in C and Fortran
without special libraries or user functions. Users can perform many
single-statement array operations in NCL without having to write special
matrix functions and procedures that support full array manipulation.
For example, if AR1 and AR2 are two-dimensional arrays, then multiplication
of these two matrices is accomplished with a single statement.
AR3 = AR1 * AR2
NCL also supports a wide range of array selection methods. Users can extract
subsets of data, specify strides, and select data ranges using
special array subscripts.
Although similar functionality is available in FORTRAN90, this functionality
is not available in C.
Since NCL is an interpreted language, it is not necessary to compile an
NCL script in order to execute a program. Script changes can be made
quickly with a program editor and tested without having to recompile
the NCL program.
NCL functionality mirrors what is available with the HLUs. However, the
current release of the software does not support isosurfaces, field flows,
cell arrays, histograms, 3-D plots, and weather maps. Users will have to
use the low level utilities to gain access to this functionality at this time.
In future releases of NCAR Graphics, however, the HLUs and NCL will contain
the bulk of NCAR Graphics functionality.
User Guide Control Panel
NG4.1 Home, Index, Examples, Glossary, Feedback, UG Contents, UG WhereAmI?
$Revision: 1.5 $ $Date: 1998/06/15 22:08:30 $