What's new in Ferret and PyFerret v7.6
New Features and enhancements
I. Version 7.6 includes support for Discrete Sampling Geometries datasets, containing collections of Timeseries, Profiles, Trajectories, and Points. The CF standard describes these file types, and data written using Contiguous ragged array representation of Discrete Sampling Geometries is supported for graphics, netCDF output, many analysis operations such as transformations, and comparison with gridded datasets. The file standard is described in Chapter 9 of the CF standard. In documentation and commands, the abbreviation dsg or DSG is used to indicate Discrete Sampling Geometries, specifically the contiguous ragged array form. In the DSG terminology, a "feature" is a single Timeseries, Profile, Trajectory, or Point. DSG files may contain one or a collection of features.
The newDocumentation for DSG-specific commands is here. Also see discussion in the PLOT chapter.
The demo script dsg_tutorial.jnl illustrates the new capabilities, and dsg_point_plot.jnl, dsg_prof_plot.jnl, dsg_timeseries_plot.jnl, and dsg_traj_plot.jnl explore each of the currently-available feature-types in more depth. New example datasets for these data types are included in the FerretDatasets download.
Support for timeSeriesProfile and trajectoryProfile data types is not yet implemented, but we are planning to offer support for those types in an upcoming release.
II. Variables in netCDF files of type string are now supported. Previously only char type and numeric types were supported.
Bug fixes
- PPL PLOT now works consistently after a RIBBON/SET or PLOT/RIBBON/SET command.
- Formatting of values with grave-accent syntax when setting the precision gives consistent results.
- Calendar types specified in the time attributes netCDF files Gregorian and Proleptic Gregorian are handled identically.
- A bug having to do with packed netCDF data and the missing and _FillValue flags, reported on the Users' List, is fixed.
- A bug comparing data with two datasets and reversed-order Z-axes is fixed.
- On colorbar labels, numbers with very small or very large magnitudes switched from decimal to scientific notation. This is addressed.
- In PyFerret, when using system fonts particularly on Mac systems, the labels on colorbars may lie on top of the colorbar. A simple tweak on this is implemented; please continue to report what you are seeing.
- Polygon plots drawn as overlays did not handle modulo-longitude locations correctly. This is fixed.
- SHOW GRID for expressions did not always correctly show if the axes are **full** or **compressed**. This is fixed.
- Coordinate variables in a file which are named I, J, etc now are assumed to be in the X, Y,... directions. (Note that an "axis" attribute is the gold standard for indicating axis directions.)
- Units of "degree" on a variable in a PLOT/VS plot triggered the labeling of the axes to be done as if degree means degrees_east or degrees_north. In this instance the intent was degrees of temperature. Now degrees of latitude or longitude will be assumed only if the units have some indication that this is the intent.
- The syntax varname.attname in expressions, getting the value of attributes to use in string or numeric operations, did not consistently get the attribute values, when there were multiple instances of varname.attname in a single expression. This is fixed.
- For aggregation datasets and descriptor datasets, /BRIEF on SHOW DATA/MEMBERS/BRIEF previously didn't change the output. Now that brief output lists only the file names.
- If a variable in a file is named using a reserved keyword such as z, and we rename the variable, there was an inconsistency related to the upper- or lower-case spelling of the file variable. This is fixed.
- File attributes longer than 2048 characters were truncated in writing files or in the output of SHOW ATTRIBUTE. Now the entire attribute is written.
- A symbol evaluation within a REPEAT loop was parsed before the loop execution started. Now it is evaluated within each iteration of the loop.
- USE/ORDER= did not reorder the grids when the dimensionality of the grids for variables isn't the same in the file, e.g. when there are 1-D variables and 2-D variables. Now, the grids of the variables with the largest number of dimensions are permuted first, determining the directions of the axes of other variables.