What's new in PyFerret v7.63
Ferret v7.6 was the last release of classic-Ferret. Future updates will include only PyFerret. Ferret users can install PyFerret using the Anaconda Miniconda installer or with the tar files available for Linux systems. Existing releases of Ferret remain available and users are welcome to ask questions about Ferret topics.
New Features and enhancements
1) Version 7.63 includes further support for Discrete Sampling Geometries datasets. Graphics, data listings and masking is included for collections of TrajectoryProfiles and TimeseriesProfiles, in addition to the support for Timeseries, Profiles, Trajectories, and Points data that were available in V7.6.
The V7.6 release notes includes more background on Discrete Sampling Geometries.
The Documentation for DSG-specific commands is here. Also see discussion in the PLOT chapter.
2) For all Discrete Sampling Geometries types, new capabilities are added:
- A new set of RETURN= keywords, RETURN=*coord, returns the names of the coordinate variables in a DSG dataset. Example:
! returns the coordinate variable that contains the longitudes yes? define symbol lon_var = `temperature,return=xcoord` ! returns the coordinate variable that contains the time coordinates yes? define symbol time_var = `temperature,return=tcoord`
- The PLOT/ALONG= qualifier allows for plotting in a different direction than the native direction for the data type. So a TrajectoryProfile variable can be plotted either as a set of profiles or as trajectories colored by the data at some depth. TimeseriesProfile data can be plotted as a timeseries at each station. Or Timeseries or Profile data can be plotted on a map with a simple command.
yes? use timeseries_dsg_data.nc yes? plot/ALONG=XY temp ! A map with temperatures at one time yes? use profile_dsg_data yes? plot/ALONG=XY density ! plots a map of the density measurements at one depth.
3) A minor change: When drawing a PLOT/VS plot, previously the plot axes exactly coincided with the minimum and maximum values contained in the points plotted. Now the axes are drawn with an approximately 1% "buffer" so that plot points do not lie exactly on the axes. Note that the range of the axes of any plot can always be controlled with PLOT/HLIM= /VLIM=
Bug fixes
A bug is fixed where the command "PLOT/VS xpts, ypts" crashed the program, in some instances where the xpts contains just one point, or its values that are all the same, and they represent negative longitudes.
A technique for good-looking plots can be to do "shade/noaxes my_var" followed by "fill/over/axes my_var". A bug is fixed where some regions and a time-depth plot resulted in incorrectly drawn plot axes.
When asking for a range on a longitude axis, an inconsistency is fixed: if the grid points are centered so that the boundary between grid cells falls right at 0 degrees, and if we asked for data in a range ending at 0 degrees, for instance -10:0 degrees longitude, the result differed from when the request is given when requesting data in x=350:360. This is fixed so that the grid-points returned is the same in either case.