Skip to main content
  • Home
  • Documentation
  • FAQ
  • Downloads
  • Support
  • Current Release Notes
  • Ferret Users Guide
    • Users Guide Index
    • Commands Reference
    • 1. Introduction
    • 2. Data Set Basics
    • 3. Variables & Expressions
    • 4. Grids & Regions
    • 5. Animations & Gif Images
    • 6. Customizing Plots
    • 7. Handling String Data Symbols
    • 8. Working with Special Data Sets
    • 9. Computing Environment
    • 10. Converting to NetCDF
    • 11. Writing External Functions
    • Glossary
    • Appendix A: Functions
    • Appendix B: PPLUS Guide
    • Appendix C: Ferret-Specific PPLUS Enhancements
  • Previous Release Notes
  • Tutorials and Demos
    • Ferret Tour
    • DSG files: Discrete Sampling Geometries Demo
    • Ferret sorting demo
    • Fast Fourier Transforms demo
    • Empirical Orthogonal Functions demo
    • Ferret objective analysis demo
    • Ferret Palette Demo
    • Map projections
    • Ferret polygon vector demo
    • Ferret Graticules demo
    • Ferret Polytube Demo
    • Ferret Polymark Demo
    • Ferret Constant-Array demo
    • Ferret land_detail demo
    • COADS Tour
    • Levitus Tour
    • Use OPeNDAP
    • Ferret binary read demo
  • PyFerret
    • PyFerret Downloads and Install
    • What is PyFerret?
    • Why use PyFerret?
    • PyFerret for the Ferret user
    • PyFerret command syntax: quick-start notes
    • PyFerret for the Python user
    • Graphics in PyFerret ?
    • New Ferret functionality
    • PyFerret Python functions and constants
    • PyFerret Python objects and methods
    • Ferret external functions in Python
    • Ferret Fortran external functions
    • PyFerret metadata-and-data dictionaries
  • OPeNDAP
    • OPeNDAP usage in Ferret
    • Use OPeNDAP Demo
    • Test OPeNDAP

Version 6.8.2 Release Notes

What's new in the Ferret V6.8.2 release

This release is concurrent with a release of PyFerret v0.0.9, built with double-precision variables, six dimensions, and working traditional (Fortran-based) Ferret external functions. See the PyFerret Release Notes for the complete list of changes specific to PyFerret.

There is one Ferret bug fix and some new scripts released with v6.8.2.

Ferret v6.8.2 is linked with NetCDF 4.2

Bug fix:

In Ferret v6.7, we made changes so that Ferret adheres more closely with the CF conventions for axis directions. In v6.7 through 6.81, this did not extend to dimensions in netCDF and OPeNDAP datasets which do not also have a coordinate axis associated with them. That is, there may be dimensions which are intended to be interpreted just as an abstract axis in a grid, and they do not have a corresponding coordinate variable with attributes. Ferret was still using the names of these dimensions to set their direction, so that a dimension called "t_station" was given a T direction, and eta_psi was given an E dimension (in 6D Ferret). This is changed so that the directions are determined by the position of dimensions in the grids of variables. If directions also have a coordinate variable, the attributes of the coordinate variable are used to set the direction of the axis.

New scripts:

1) Vertical "land" scripts, which use one of the topography datasets to show where the ocean bottom is with a line or by shading below the bottom of the sea:

vland.jnl: Draw a vertical bathymetry line showing a slice in the x or y direction

vfland.jnl: Draw a filled vertical bathymetry slice in the x or y direction

The script for these images is below.

vertical land scripts

script:

yes? use levitus_climatology
yes? set win/siz=0.5/asp=2
 
! Draw a vertical section plotyes
? set view upper
yes? shade/x=48E:98E/y=10n salt
yes? fill/over/nolab/x=48E:98E/y=10n salt
 
! Draw a line showing the bottom of the sea
yes? go vland 20 thick x=48E:98e y=10n
! Start with the same section plot
yes? set view lower
yes? shade/x=48E:98E/y=10n salt
yes? fill/over/nolab/x=48E:98E/y=10n salt
 
! Fill below the ocean bottom
yes? go vfland 20 gray x=48E:98e y=10n
 

Of course you can combine these to make the ocean bottom with a filled and outlined area:

! Gray ocean-bottom fill, with a blue outline:
yes? go vfland 20 gray x=0:40 y=35
yes? go vland 20 blue x=0:40 y=35

Unlike the XY scripts, we MUST specify the x and y region, and these always draw an overlay; they do not have a "basemap" option.

2) Additional "polytube" scripts. The existing script, polytube.jnl, defines and draws polygons using the midpoints of the locations on the curve. This looks fine if the points along the path are fairly dense. If there are large excursions or noticeable corners along the path, polytube cuts the corners, making quite an odd looking plot. The new script draws polygons that are "bent" around the corners that are defined by the points. This script is contributed by Ned Cokelet. Here are two plots, the upper being the plot drawn by polytube.jnl, and the lower by polytube_bent.jnl, along the path drawn with a heavy black line. The script that made this example is below the image.

The script:

polytube_bent image

yes? set win/siz=0.5/asp=2
yes? set view upper
yes? 
yes? ! define some points and a variable "sst" at those points
yes? let pi = 4.0*atan(1.0)
yes? let npts = 6 ! Vary npts to get a coarser or finer trackline
yes? define axis/t=0:`npts-1`:1/units=days t_ax
yes? let tim = t[gt=t_ax]
yes? let xpts = 180 + 50*COS(2*pi*tim/(npts-1))
yes? let ypts = 15 + 20*SIN(2*pi*tim/(npts-1))
yes? let sst = 35 - ypts + RANDN(ypts)
yes? let sst1 = if (l eq 3) then sst/0 else sst ! Test function with missing value which should not plot
 
yes? ! Draw the polytube using polytube.jnl
yes? set view upper
yes? go basemap x=120:250 Y=25s:65n 20
yes? go polytube polygon/over/key/title="POLYTUBE script" xpts,ypts,sst
yes? plot/vs/over/nolab/line/sym/thick=2 xpts,ypts
 
yes? ! Now draw the polytube using polytube_bent.jnl
yes? set view lower
yes? go basemap x=120:250 Y=25s:65n 20
yes? go polytube_bent polygon/over/key/title="POLYTUBE_BENT script" xpts,ypts,sst