Hi,
I just finished (yesterday) putting together the beta version of the latest PyFerret (1.0). If anybody wants to try it out and give me some feedback, let me know. So far, I have just built and tested on RedHat and Ubuntu Linux systems, but I do want to get an OS X version put together.
Karl
Brief (?) release notes for 1.0:
(1) Added -nodisplay command-line option (since you don't need a display when run in this mode); deprecated -gif, -unmapped, -batch, -transparent
(2) SET GRAPHICS is gone, replaced by SET WINDOW options; in particular /QUALITY={HIGH, DRAFT}, default HIGH
(3) SET WINDOW: added /QUALITY= /ANTIALIAS /NOANTIALIAS /COLOR= /OPACITY= /THICKEN= /XPIXELS= /YPIXELS= /XINCHES= /YINCHES= /TEXTPROM= to the other SET WINDOW options
(3a) /COLOR= /OPACITY= sets window background color and opacity
(3b) /XINCHES=,/YINCHES= gives full plot size in inches. Default size of vector (PS, PDF) plots.
(3c) /XPIXELS=,/YPIXELS= gives initial scaling factor to viewer so displayed image is this size in pixels. Default size of raster (PNG) plots.
(3d) Default /XIN=10.5, /YIN=8.5 to fit letter-sized page; all margins 1.375 inches to keep (close to) /asp=0.75:ax;
(3e) /SIZE=0.7, as in Ferret. Display's DPI (dots per inch), or 120 DPI for -nodisplay, used if /XPIXELS and /YPIXELS are not given
(3f) over-specification of sizes (e.g., /XIN=10.5, /YIN=8.5, /ASP=0.75:axis) gives an error
(4) SET WINDOW /THICKEN= scales all line thicknesses (which are now in points = 1/72 inches); default 0.75 to match ferret displayed thicknesses.
(5) All heights of automatic labels scaled according window size using /XINCHES= and /YINCHES= values. Thus SET WINDOW /TEXTPROM= brought back, but now actually does scale the height of all automatic text.
(6) automatic scaling of the image to fit the displayed window frame
(6a) forces window frame to be correct aspect ratio, unless window is maximized
(6b) can be turned off and back on from the Image->Scale menu item
(7) SHOW WINDOW shows more info (quality, displayed, antialias, thicken factor, text prominence factor)
(8) FRAME: added /XINCHES= /YINCHES= /XPIXELS= /YPIXELS= to override default image sizes from SET WINDOW
(8a) enforces same aspect ratio, so only one of /XINCHES and /YINCHES, and only one of /XPIXELS and /YPIXELS, can be given
(8b) PS and PDF output no longer scaled (or centered) to a letter-sized page
(9) Image->Save As... no longer brings up the print dialog after selecting the PS or PDF format in the filename box.
(9a) When high-quality displayed (Qt), PS and PDF always saves to a letter-sized page, so a large image could get cut off
(9b) With -nodisplay (Cairo), PS and PDF saved are the size of the image, so never cut off and no extra whitespace
(10) FRAME /FILE=... /FORMAT=... can now also be issued any time, using any supported format, when running with -nodisplay. Eliminates the need for -batch and set mode meta; eliminates most differences between high-quality displayed and -nodisplay sessions.
(11) SET WINDOW /THICK= scales symbol sizes as well as line thickness. Only future drawing in a window affected by changes in the value.
(12) CONTOUR (including FILL), PLOT, VECTOR, SHADE, POLYGON: added /OPACITY=
(13) /OPACITY= overrides color opacity, in fill only if simultaneous filling and line drawing (i.e., contour /fill /line /opac=10 /l=1 sst has faint color but normal contour lines)
(14) CONTOUR, PLOT, VECTOR, POLYGON: enhanced /COLOR=, /THICK=
(15) palettes and /COLOR= options now accept RGB 3-tuple (gives opaque color) or RGBA 4-tuple
(16) /THICK= can (in most places) be any positive value, and is in points (1/72 inches); will override thickness from line numbers
(17) PPL COLOR can include the option fifth number (fourth color value) for opacity; if not given, A=100, which is opaque
(18) PPL COLOR 0, R, G, B [, A] can be set to any color and will change the background color; same as SET WINDOW /COLOR=(R,G,B,A)
(19) Change in behavior in PyFerret from Ferret (was in earlier PyFerret as well): except for color 0 (background color), changing the color values for a color number have no effect of past drawings in a window with that color number; only future drawings in the window with that color number will use the new color (i.e., PPL COLOR 1, 100, 0, 100 will not change black lines already plotted, but future drawings will use magenta instead of black.) No need to protect colors.
(20) PPL LABSET HLAB1, HXLAB, HYLAB values now used for automatic labels, so user can customize heights of automatic labels
(21) Fixed issue with viewports not clearing. Also works when using -nodisplay.
(22) SET WINDOW /QUALITY= ignored if started with -nodisplay option. So the same script can be used for a high-quality displayed session and a -nodisplay session.
(23) removed deferral of graphics updates, which cause incomplete images to be saved or displayed
(24) If ESMP (ESMF Python) package present, adds curv2rect and curv3srect Python external functions to standard set of external functions.
(25) Added symbols PROGRAM_NAME ("Ferret" or "PyFerret") and PPL$SCALE (scaling factor for automatic lengths and text heights).
(26) Includes latest fixes and enhancements in Ferret code (6.8.5 beta)
Some known issues:
(A) control-C handling problems: (1) if done while reading from a data set, can leave Ferret in strange state with regards to that data set; (2) sometimes slips through to the viewers and kills the viewers.
(B) The white lines in shades and fills is seen again in PS and PDF. My previous patch, which was removed, instead showed darker color lines in translucent fills and shades from overlap. Can do a fill then shade, or shade then fill, to work around the problem. The worst offender is "go fland", but multiple calls reduces or removes the problem.
(C) Need to SET MODE LINECOLORS 7 (or larger) in order for the color 'white' (now color 7) to be interpreted correctly; otherwise gives purple.
(D) update online documentation !!!