NOAA-PMEL / Ferret

The Ferret program from NOAA/PMEL
https://ferret.pmel.noaa.gov/Ferret/
The Unlicense
55 stars 20 forks source link

crash or hang on frame/file= gif with many colors #1162

Open karlmsmith opened 7 years ago

karlmsmith commented 7 years ago

Reported by @AnsleyManke on 27 Oct 2011 18:05 UTC A user reports that if he draws color plots in six viewports, then runs FRAME/file=image.gif, Ferret hangs.

http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2011/msg00804.html

With upcoming changes to our graphics I'll mark this as low priority.

I find that if I set up six viewports and make plots, say of different timesteps of COADS_CLIMATOLOGY sst, each with the default ~30 colors, indeed Ferret can't save the gif image.

It issues a **ERROR Ferret crash; signal = 11

I can see in ws_fill_rep.F that the "usable colors", i.e. the number available after subtracting from 256 the number of line colors and the colors already used in the plot, is not coming close to 250.

The hang happens in a call under the FRAME command, in grab_image_xwd.c calls Get_XColor which is doing "convert direct color representation to indexed color" and under that a while loop storing unique colors and counting the total number of unique colors.

The same behavior happens on this simple script

yes? use etopo20
yes? shade/lev=200 rose
yes? frame/file=rose.gif

The color-level allocation has actually chosen 154 separate levels for this plot.

I thought it might be that this came up with the switch to gfortran/gcc but I can go back and run older versions of Ferret and the same thing happens.

Is perhaps the color key defining or using a new set of levels?

Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/1890

karlmsmith commented 7 years ago

Comment by @karlmsmith on 27 Oct 2011 18:49 UTC PyFerret with the new graphics can create the rose image and save it as a PNG without a problem. (I just realized that the viewer does not support saving GIF images.)