Overview of NCL
The NCAR Command Language (NCL), a product of the Computational & Information Systems Laboratory at the National Center for Atmospheric Research (NCAR), is a free interpreted language designed specifically for scientific data processing and visualization.NCL has robust file input and output. It can read and write netCDF-3, netCDF-4 classic (as of version 4.3.1), HDF4, binary, and ASCII data, and read HDF-EOS2, GRIB1 and GRIB2 (as of version 4.3.0). The graphics are world class and highly customizable.
As of version 5.0.0, NCL and NCAR Graphics are released as one package in source code or binary format. See the download page for more information. NCAR Graphics still has its own home page.
The software comes with a couple of useful command line tools:
- ncl_filedump - prints the contents of supported files (netCDF, HDF, GRIB1, GRIB2, HDF-EOS2, and CCM History Tape)
- ncl_convert2nc - converts one or more GRIB1, GRIB2, HDF and/or HDF-EOS files to netCDF formatted files.
It runs on many different operating systems including Solaris, AIX, IRIX, Linux, MacOSX, Dec Alpha, and Cygwin/X running on Windows.
NCL can be run in interactive mode, where each line is interpreted as it is entered at your workstation, or it can be run in batch mode as an interpreter of complete scripts. You can also use command line options to set options or variables on the NCL command line.
The power and utility of the language are evident in three areas:
- file input and output
- data analysis
- visualization
In addition to common programming features, NCL also has features that are not found in other programming languages, including features that handle the manipulation of metadata, the configuration of the visualizations, the import of data from a variety of data formats, and an algebra that supports array operations.
NCL comes with many useful built-in functions and procedures for processing and manipulating data. There are over 600 functions and procedures that include routines for:
- use specifically with climate and model data
- computing empirical orthogonal functions, Fourier coefficients, singular value decomposition, averages, standard deviations, sin, cosine, log, min, max, etc.
- retrieving and converting date information
- drawing primitives (lines, filled areas, and markers), wind barbs, weather map symbols, isosurfaces, and other graphical objects
- robust file handling
- 1-dimensional, 2-dimensional, and 3-dimensional interpolation, approximation, and regridding
- facilitating computer analysis of scalar and vector global geophysical quantities (most are based on the package known as Spherepack)
- retrieving environment variables and executing system commands
NCL uses several other publicly-available software packages and databases for some of its file I/O, data analyses routines, and high-resolution coastlines. These software packages include:
- DCDFLIB -
cumulative distribution functions, inverses, and parameters for beta,
binomial, chi-square, noncentral chi-square, F, noncentral F, gamma,
negative binomial, normal, Poisson, Student's t. Developed by Barry
W. Brown, James Lovato, Kathy Russell
- FFTPACK5 - a Fortran subroutine library of Fast Fourier Transforms (FFT's) developed at the National Center for Atmospheric Research.
- g2clib - this library contains "C" decoder/encoder routines for GRIB edition 2.
- HDF 4 - a file format for storing scientific data and a software library that provides high-level APIs and a low-level data interface.
- HDF 5 - a general purpose library and file format for storing scientific data. HDF5 addresses some of the deficiencies of HDF 4.
- HDF-EOS 2 - a software library built on top of HDF4 to support EOS-specific data structures, namely Grid, Point, and Swath.
- JasPer - an open-source initiative to provide a free software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard (i.e., ISO/IEC 15444-1). This project was started as a collaborative effort between Image Power, Inc. and the University of British Columbia.
- LAPACK - a library of Fortran 77 subroutines for solving the most commonly occurring problems in numerical linear algebra.
Copyright (c) 1992-2007. The University of Tennessee. All rights reserved.- netCDF - a machine-independent format for representing scientific data (also, an interface for array-oriented data access and a library that provides an implementation of the interface).
- netCDF-4 - the next major upgrade to the netCDF standard. While supporting full backward compatibility, it allows users to read and write HDF5 files with the netCDF API, including support for groups, user-defined types, per-variable compression, and parallel I/O.
- Ngmath - a collection of mathematical procedures for which there are equivalent Fortran, C, and NCL entries.
- OPeNDAP - a framework that simplifies all aspects of scientific data networking.
- RANGS (Regionally Accessible Nested Global Shorelines) - a multi-resolution coastline database developed by Rainer Feistel from Wessel and Smith's GSHHS (Global Self-consistent Hierarchical High-resolution Shoreline) database.
- Spherepack - a collection of Fortran programs that facilitates computer modeling of geophysical processes.
- SZIP - provides lossless compression of scientific data; is provided with HDF software products as of HDF5 Release 1.6.0 and HDF4 Release 2.0.
- Triangle - a two-dimensional quality mesh generator and delaunay triangulator, used in NCL's contouring package for non-uniform grids.
- Udunits - a C/Fortran library that supports conversion of unit specifications between formatted and binary forms, arithmetic manipulation of unit specifications, and conversion of values between compatible scales of measurement. NCL uses it in particular for converting UTC-referenced time.
- UTM to lat/lon (and vice versa) converters - a set of routines written by Peter Daly of MIT Ocean Acoustics that convert UTM to Lat/Longitude and vice-versa, using the WGS-84 (GPS standard) or Clarke 1866 Datums.
- Vis5d+ - a free OpenGL-based volumetric visualization program for scientific datasets in 3+ dimensions.
- zlib - a Massively Spiffy Yet Delicately Unobtrusive Compression Library.