# Presentation

The NCSTAT software is a collection of many operators for complex statistical processing and analysis of huge climate model outputs and datasets. These statistical tools are written in pure and portable Fortran95/2003 [fortran] using the NetCDF Fortran90 interface [netcdf-f90] of the NetCDF library [netcdf] for input/output data transfer, the OpenMP API [openmp] for parallel reading of NetCDF files and the STATPACK software [statpack] for numerical and parallel computations.

Each NCSTAT operator is a stand-alone UNIX command line program executed at the shell-level like, e.g., ls or mkdir. The NCSTAT operators take NetCDF files as input, perform an operation or a statistical task (e.g., averaging, computing vertical integrals or computing a Principal Component Analysis for example), and produce one or several NetCDF files as output. There are some restrictions for NetCDF datasets that can be processed with NCSTAT. First, NetCDF datasets are only supported for the classic data model and arrays up to 4 dimensions. Most NCSTAT operators also assume that these dimensions are used by the horizontal and vertical grid and the time associated with climate data.

The NCSTAT operators are primarily designed to aid manipulation and complex analysis of climate data at a higher level than the famous NCO [nco] and CDO [cdo] softwares already commonly used in the climate community. In deed, after some experience, most of the users will find that NCO, CDO and NCSTAT are not concurrent, but very complementary softwares.

The main characteristics of NCSTAT are:

> - Very simple UNIX command line interface like NCO [nco] and CDO [cdo]
> - Operators can be combined in a flexible way to produce sophisticated statistical analysis including univariate statistics, multivariate analysis, time series, power and cross-power spectrum analyses, filtering and trend computations, correlation and regression analyses of multi-dimensional arrays. Detailed statistical testing of the results is also available in most operators
> - Fast parallel and out-of-core processing of large datasets
> - Many operators handle datasets with missing values
> - Support of many different grid types explicitly or implicitly by the use of mesh-mask files
> - Tested on many UNIX/Linux systems and MacOs-X