Personal tools
You are here: Home Documentation Version 6.3 Release Notes
Document Actions

Version 6.3 Release Notes

New Features and Bug fixes in Version 6.3

New Features:

  1. New syntax for specifying color levels based on variance (automatic open-ended color levels).
  2. New syntax for specifying color levels based on a histogram calculation.
  3. New symbols are defined after any 2-D plot: XAXIS_REVERSED,YAXIS_REVERSED.
  4. New argument to the RETURN= keyword: RETURN=isdepth

Other Changes:

  1. The family of SCAT2GRIDGAUSS* functions make a search of the area surrounding a grid cell for scattered points. The CUTOFF parameter determines the size of this area. Now the weights are calculated so that the points included are in an ellipse, as described in the documentation; previously it was a box. For backwards compatibility, the previous functions are still available, named SCAT2GRIDGAUSS_XY_V0, etc.

  2. The value of the offset in SET AXIS/STRIDES/OFFSET=  is now the value of the offset the delta from the first index value. Previously it indicated the index at which to start. That is, SET AXIS/STRIDE=n/OFFSET=0 means no offset is applied; /OFFSET=1 means start with the coordinate at the second index.

  3. The Index to the Users Guide has been reformatted to make it easier to read.


Bug Fixes:

  1. An IF block inside a REPEAT loop caused an error in some instances.
  2. The correction to grid-cell sizes for the latitude of the cell on the Earth was incorrect when the coordinate location was not centered within the grid cell.
  3. After a plot using open-ended levels a subsequent plot call with standard levels did not revert to closed-ended levels.
  4. On multi-year or multi-decade time-axis plots, the dark line every year or 5- or 10-years, sometimes disappeared.
  5. In the SAMPLEXY function, the code to handle modulo longitudes missed some data.
  6. For a curvilinear variable a fix has been made to the plot titles.
  7. A bug in contouring/ color-fill of curvilinear variables which are not defined in terms of latitude and longitude, has been corrected.
  8. Appending an irregular to a regular time axis gave an obscure message.
  9. If a single-point axis has bounds defined, then the bounds that were SAVEd was incorrect.
  10. When saving a reversed axis with /EDGES we got an error.
  11. SAVE of a string variable defined from grid-changing functions used the wrong data type.


New Features:


  1. Variance-based levels (automatic open-ended levels).
    The syntax /LEV=(-inf)(lo,hi,del)(inf) lets us specify open-ended levels, where values outside of (lo,hi) are represented by a single color at each end of the color spectrum.  Here we introduce a new syntax to let Ferret determine open-ended levels automatically. Ferret finds the mean and standard deviation of the data to be color-filled. Within the mean plus-or-minus 1 std, fine levels are chosen, and between 1 std and 2 std on each end, coarser levels are used. An open-ended level is used to represent values outside 2 std.
    Example:
    yes? SHADE/lev=50v        ! var-based levels using approx 50 levels
    yes? SHADE/lev=50vc ! var-based levels, use 0 as the "mean"

  2. Histogram-based levels.
    With histogram-based levels, Ferret sorts the observations and computes the color levels so that each color band containes approximately equal numbers of data points. This form of color management best brings out the fine structure in the data.
    Example:
    yes? FILL/lev=50h        ! histogram-based levels using approx 50 levels

  3. Two new symbols are defined for 2D plot; XAXIS_REVERSED, YAXIS_REVERSED. These are among the symbols that are automatically defined by Ferret when any plot is drawn.They take the values 0 or 1, so that for instance, a depth axis which is reversed with 0 at the top and the deepest depth at the bottom results in YAXIS_REVERSED=1.
    yes? FILL/y=0 TEMP
    yes? SHOW SYMBOL *AXIS_REVERSED
    XAXIS_REVERSED = "0"
    YAXIS_REVERSED = "1"

  4. New argument to the RETURN= keyword. RETURN=isdepth takes the value 1 if the variable has a depth axis, 0 if its Z axis is positive upwards, and returns NORMAL if there is no depth axis.
    Example:
    yes? DEFINE AXIS/UNITS=meters/Z=0:100:2 zup
    yes? LET zz = z[gz=zup]
    yes? SAY `zz,RETURN=isdepth`
    !-> MESSAGE/CONTINUE 0
    0
    yes? DEFINE AXIS/UNITS=meters/Z=0:200:2/DEPTH zdn
    yes? LET zz = Z[GZ=zdn]
    yes? SAY `zz,RETURN=isdepth`
    !-> MESSAGE/CONTINUE 1
    1
    yes? USE coads_climatology
    yes? SAY `sst,RETURN=isdepth`
    !-> MESSAGE/CONTINUE NORMAL
    NORMAL


Bug Fixes:

  1. An IF block inside a REPEAT loop caused an error. (see the report in the Ferret Users List). This has been fixed.

  2. The correction to grid-cell sizes for the latitude of the cell on the Earth was incorrect when the coordinate location was not centered within the grid cell. (See the discussion in this thread on the Ferret Users List). This has been corrected.

  3. After a plot using open-ended levels, e.g. SHADE/LEV=(-inf)(2,24,2)(inf) var, a subsequent plot call with standard levels did not revert to closed-ended levels. This is fixed.

  4. On multi-year or multi-decade time-axis plots, the dark line every year or 5- or 10-years, sometimes disappeared. This was due to pixel aliasing. The method for drawing the lines has been changed to fix this.

  5. In the SAMPLEXY function, the code to handle modulo longitudes correctly deals with points outside the x range of the data, for instance if the grid uses 0:359, it translates a scattered location at x= -10 degrees to 350. However it did not match points in the lower half of the first grid cell and the upper half of the last grid cell. This is fixed.

  6. For a curvilinear variable defined with coordinate variables that come from different datasets, the title on the plots was the variable definition not its title. This is fixed.

  7. A bug in 2-D plots of curvilinear variables where the coordinate variables do not have units of latitude and longitude, has been corrected. For instance in this plot, some contour lines went zig-zagging across the entire plot. Now this is fixed.
    yes? LET xb=x[x=0:290:10]
    yes? LET yb=y[y=0:290:10]
    yes? LET xb2 = xb + 0*yb
    yes? LET zb=I[x=0:290:10]*J[y=0:290:10]
    yes? CONTOUR xb2+zb,xb2,zb
  8. If a regular time axis is written to a file, and then times are appended such that the new times are irregularly spaced, we got an error message,
    ** netCDF error: Variable not found.
    This is because when an irregularly-spaced coordinate axis is written to a netCDF file, the behavior is that a bounds attribute is written for the irregular axis, but from the previous write operation the bounds variable is not in the existing file. The message above comes from the OPeNDAP library which is looking for the bounds variable. The messages have been changed to clarify this:
     ** netCDF error: Variable not found
    T_AXIS_bnds not found. Attempt to append irregular coordinates to NetCDF axis which has no bounds attribute.
    Write data originally with the /BOUNDS qualifier.

  9. If a single-point axis has bounds defined, then on a SAVE/BOUNDS, Ferret did not save the correct bounds (but instead saved coordinate+/- 0.5). Now the correct bounds are written.

  10. When saving a reversed axis with /EDGES we got an error:
     *** NOTE: Edges "" do not enclose point on axis ZAXLEVITR
    *** NOTE: Substituting coordinate midpoints
    We now get the correct edges, and no warning messages.

  11. SAVE of a string variable defined from some grid-changing functions was written as a float. This is fixed.



Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: