PyFerret V7.1 includes all of the features of Ferret V7.1, in addition to the PyFerret specific features listed below.
Note there is an update to the datasets that are included with the distribution; see item 2 under the bug fixes below. Download and re-install the datasets to get this update.
New features and changes in PyFerret only
- Infinite and NaN values that are returned from Ferret Python External Function (PyEF) are converted to the missing value for the array.
- Compatible with Python3.6 as well as 2.7 and 2.6
- For displayed plots, uses PyQt5, if available, otherwise PyQt4
- Addition of pyferret.FerFMRCDSet and pyferret.FerFMRCVar objects
New features in Ferret and PyFerret
- On-the-fly Union aggregations define a virtual dataset that contains the union of variables in the member datasets. When a set of variables in different files are on the same grid, a virtual dataset containing all of the variables may be defined with DEFINE DATA/AGGREGATE/U. UNION is an alias for DEFINE DATA/AGGREGATE/U.
- Simple aggregation-member syntax: For ENSEMBLE and FMRC (forecast) aggregations, a new simple syntax lets us ask for information about aggregation members, e.g. SHOW DATA 12.3 executes a "show data" command for aggregation-member 3 of dataset 12. This syntax is not currently implemented for TSERIES or UNION aggregations.
yes? let files = SPAWN("ls -1 tmp/fcst_*.nc") yes? show data/members my_fmrc currently SET data sets: 12> my_fmrc (default) Forecast aggregation name title I J K L M N FCST FIELD + FCST_ERROR 1:21 1:21 ... 1:24 ... 1:5 (L=1:24) TF_TIMES Forecast time step matrix ... ... ... 1:24 ... 1:5 Member datasets: 12.1 : tmp/fcst_1.nc 12.2 : tmp/fcst_2.nc 12.3 : tmp/fcst_3.nc 12.4 : tmp/fcst_4.nc 12.5 : tmp/fcst_5.nc yes? show data 12.4 currently SET data sets: 6> tmp/fcst_4.nc name title I J K L FCST FIELD + FCST_ERROR 1:21 1:21 ... 1:24 (L=10:33)
- SHOW DATA/MEMBERS lists information about the member datasets of a TSERIES, FMRC, or ENSEMBLE aggregation. The syntax SHOW DATA/FILES is deprecated.
- For line plots showing multiple variables, PLOT/KEY=TITLE gives control over the text in the line legend that Ferret draws. See this FAQ.
- New date-and-time data types when using Delimited-data reading (from spreadsheet-style ASCII files). Now date and time can be read as a single field and translated to date/time data. Valid date-times such as 22/01/14 03:40:00 or 22/01/2014 03:40:00 or 2014-10-30 09:40:12 or 04-16-91 06:40:00 are read and translated. See examples in Example 4 of Section 2.5.2.
- CANCEL MODE UPCASE now applies to ASCII datatsets. If this mode is set, the names given in the FILE or COLUMNS command that initializes the dataset are kept and not changed to upper-case.
- Average of @AVE. @AVE may be applied again to a variable that already has an @AVE in that direction. Mathematically this is well-defined, but previously it resulted in a Ferret syntax error. The same applies to other transformations which reduce the region: @SUM, @MIN, @MAX.
- Results of a SPAWN command: If a no-success flag is returned from a SPAWN command, then Ferret reports that as a warning. In some instances, the result of the SPAWN may not be clear, or no result is returned even on a failed command; this allows better handling of the result of SPAWN.
- On SHOW DATA, SHOW GRID, STATISTICS and diagnostic output, if the grid includes only the classic four X,Y,Z,T directions, then only those directions are shown. In effect, mode 6D_LAB is automatically applied only as needed to show grids with E and/or F axes.
Ferret and PyFerret bug fixes
- A memory leak was found in code which handles initializing datasets. This meant that when many files were opened and closed in a Ferret session, memory use increased and was not recovered on closing files. This is fixed.
- The datasets used by "go land" and "go land_detail" have updates. The data used by "go land_detail" now draws the the major rivers correctly. Previously the lower parts of several major rivers were represented in the continent-boundaries, but were not colored as rivers. In addition, the national boundary of Eritrea is added for "go land" and "go land_detail".
- For TSERIES Time aggregation of member files having E or F axes, the data was read incorrectly from the member files. This is fixed.
- Colorbar labels are now aligned and right-justified when drawing vertical colorbars.
- Incorrect colorbar labels were drawn on the page when the plot was drawn using /VLOG or /HLOG for logarithmic axes. This is fixed.
- Single-value color plots using /LEVELS= now use the correct color given by the levels qualifier.
- Fixes to automatically-generated symbols that are defined when a plot is drawn:
- Symbols LEV* show information about levels settings from the last color or contour plot. Symbol LEV_DEL was sometimes incorrect. This is fixed.
- AX_HORIZ an AX_VERT list the grid directions that are shown on the plot. For some plots with overlays, these were incorrect. This is fixed.
- There are fixes to POLYGON plots and RIBBON plots, when there are missing values in the location data.
- When drawing a time axis with short-duration time range, the graticule lines or tic marks were too dense. This is improved.
- On PLOT/VS plots, when the data have units of longitude, or latitude, sometimes the plot axes were incompletely drawn. This is fixed.
- Drawing a single-cell SHADE plot as an overlay on a 2D plot, the single color cell was not always located correctly. This is fixed.
- Using text attributes from netCDF files in expressions gave errors for some cases. This is fixed.
- On a LIST/NOROW/FORMAT=comma command, when a single variable is listed out; the /NOROW setting was ignored. In addition when /NOHEADER was given, a stray label was present at the start of the listing. Both of these issues are fixed.
- Fixes for handling the modulo length on coordinate axes representing longitude or repeating time: When a region is specified that is slightly longer than the modulo length of an axis, the axis was saved to a netCDF file with an incorrect modulo length, or marked as modulo when the axis should not be modulo. This is fixed. In addition, when coordinate data is read from a file, Ferret creates axis cell bounds if they are not in the file. In some instances Ferret was defining a longitude axis as longer than 360 degrees, and therefore not modulo, because the computed bounds lay slightly outside a 360 degree range. This is fixed.