NGSONDE

NAME
SYNOPSIS
DESCRIPTION
BUGS:
SEE ALSO:
CONTRIBUTORS:

NAME

ngsonde −− new generation radiosonde and dropsonde analysis.

SYNOPSIS

ngsonde [-h] [--nfe val] [--phs val] [--pvs val] [-s svx:svy:reftime] [--idx name] [--gph name] --lon lon0:dlon:Nlon --lat lat0:dlat:Nlat --alt alt0:dalt:Nalt -- var1 var2 ... < stdin > stdout

DESCRIPTION

Ngsonde performs a three-dimensional variational analysis of sounding observations. The analysis is done on a regular grid (longitude,latitude,altitude) with longitude and latitude in degrees and altitude in km. The grid is by default attached to the Earth reference frame, but optionally can be attached to the co-moving frame of the storm (see option -s below).

Once the grid is defined and the locations of the soundings navigated to the specified reference frame, the sounding data are grided by a weighted interpolation of the measurements within the volume of influence of each grid point, then a global search for a 3D-field that best fits the grided data is performed. Note, however, that if the number of function evaluations (see option --nfe below) is set to zero, then only the data griding is performed.

The volume of influence of a grid point is defined as the eight grid cells surrounding the grid point. The weight of a measurement within this volume is defined in terms of the distance (D) between the measurement and the grid point, so the further away the measurement is from the grid point the less weight it has. It is defined as w = (1/N)*(1/D^2), where N is the normalization factor, so the sum of all weights of the measurements contributing to a given grid point is equal to one.

For the global search, one can optionally impose a smoothing constraint on the resultant field. The smoothing is performed by 1-dimensional Lapacian-like operators (one in each dimension). These operators are the same as those used in ng3dvar.

The global minimization of the target function (misfit + smoothness) is carried out by the conjugate gradient algorithm of Shanno and Phua. The search is initialized with a sounding profile constructed by horizontally averaging the input soundings. For levels with bad data averages, but bounded with good data, the value of the profile is obtained by cubic spline interpolation. For layers with bad data at the top or bottom, the profile values are assigned the closest good horizontal average.

The search is terminated if the total number of evaluations of the target function exceeds the given max number of function evaluations (see option ânfe below) or if the convergence criterion is satisfied. The convergence and stopping criteria for the conjugate gradient algorithm are hard coded into the program. Interested users should look into cgm_conmin.c.

Command Line Parameters:

-h

shows a brief explanation of the various command line parameters and their default values.

--nfe val

Number of function evaluations allowed before the program stops searching for the solution. A val of zero will produce only the grided data (local fit). The Default value is 100000.

--phs val

Weight of horizontal smoothing. Values around 0.1 produce reasonable results. The default value is -1 (meaning no smoothing).

--pvs val

Weight of vertical smoothing. As of 08/09/2010, our experience indicates that a value of 0.1 is probably to much and a value of 10^-6 is probably to small. More research is due here, so please feel free to explore (please report your findings). The default value is -1 (meaning no smoothing).

-s svx:svy:reftime

Adjustments to sounding positions introduced by time skew in moving reference frames: svx --zonal velocity in m/s, svy --meridional velocity in m/s, reftime --reference time in ks. Default values are 0:0:0.

--idx name

Name of the vertical index for variable fields. By default pressure is assumed to be the index. However, sometimes soundings are pre-processed, so a new index is used. For instance height, or time may be used as indices. Note that regrdless of what is the index of the fields, the pressure is still going to be used by default to find out the height of the measurement via the standard atmosphere. That behavior can be overwritten using the option --gph below.

--gph name

Name of the variable that specifies the altitude grid, in km. By default, the altitude is calculated from the pressure (in mb) via the standard atmosphere. (The parameters for the standard atmosphere are defined in function ngZcalc inside nglfit.c.) This option maybe useful when a better estimate of the height is available in the sounding data, for instance, if an estimate of the altitude is obtained via the integration of the hydrostatic equation.

--lon lon0:dlon:Nlon

grid parameters for the east-west axis: lon0 --initial latitude, dlon --step, Nlon --Number of points.

--lat lat0:dlat:Nlat

grid parameters for the north-south axis: lat0 --initial latitude, dlat --step, Nlat --Number of points.

--alt alt0:dalt:Nalt

grid parameters for the vertical axis: alt0 --initial altitude, dalt --step, Nalt --Number of points.

var1 var2 ...

names of the variables to be analyzed.

Input:
A Candis file with one sounding per slice is expected on the standard input. Pressure (in mb) is the expected index for all variables in the sounding file. It should be named "pres". If the index is different, it must be specified using the option --idx (see above). The names for fields of longitude and latitude are expected to be "lon" and "lat", respectively. The time variable (in ks) should be named "monotime".

Because the analysis is based on least-squares fits, the input soundings must be quality controlled to avoid outliers. On the other hand, the soundings are not required to have their data interpolated to regularly spaced levels.

Output:
The output is send to the standard output. It has a 3D-grid structure, with indices lon,lat and z constructed from the command line parameters. The units for lon and lat are degrees and for z are km. These indices are chosen, so they correspond to the same indices produced by ng3dvar. Only fields requested for analysis will be passed to the output and their names will be the same as their names in the input file.

BUGS:

Vertical smoothing should be set to zero in the current incarnation if sondes with variable vertical height ranges are used. If this is not done, the smoothing has unexpected effects which insert strong biases at levels near the top or bottom elevations of sondes.

SEE ALSO:

ng3dvar http://physics.nmt.edu/~raymond/software/candis/html/ng3dvar.1.html

CONTRIBUTORS:

Max Brister, Carlos Lopez Carrillo, and Dave Raymond

GRC, New Mexico Tech