[gradsusr] Setting color bar for animation
Jennifer Adams
jma at cola.iges.org
Wed Mar 23 15:11:47 EDT 2011
For shaded contours, 'q shades' will give you the color # and range of
values for each color. For a contour plot, 'q contours' will give you
the list of color numbers and the associated contour level.
--Jennifer
On Mar 23, 2011, at 2:22 PM, Clay Blankenship wrote:
> Yes, that is correct. Ideally, I would specify the range and not
> have to pick the exact colors. (I'll go back and do that later if
> necessary.) Just specifying
> clevs initially works fine on my first plot. If I 'd' the variable,
> and then 'cbar', I get the range of values I want. However if I
> advance the time one step,
> and do the 'd var' and 'cbar' again, I get a different value
> range. It appears that I have to set clevs every time I do a plot.
> How is it getting reset?
> (And I still haven't figured out how to print out the current clevs
> and ccols.)
>
> Clay
>
>
>
>
>
> On Mar 23, 2011, at 11:23 AM, Jeffrey Duda wrote:
>
>> Clay,
>> In your original thread post, you asked how to plot a consistent
>> range and set of colors for each time slice of data you want to
>> display. Is that correct? If so, then all you need to do is use
>> the "set clevs" and "set ccols" commands before you display the
>>
>> data. Unless you want to adjust the range of contours and colors
>> so that they fit the maximum and minimum value in the domain
>> each time you display data, then it really is that simple. Simple
>> code to do this would be:
>>
>>
>> 'set dbuff on'
>> t = 1
>> 'set gxout shaded'
>> while (t <= 5)
>> 'set t 't
>> 'draw title Temperature'
>> 'set clevs A B C D E F G H I ...'
>> 'set ccols 17 18 29 20 21 22 23 ...'
>>
>> 'd t'
>> 'cbar'
>> 'swap'
>> t = t + 1
>> endwhile
>>
>> This example assumes you have defined color numbers 17, 18, 19, ...
>> and so on using the "set rgb" command prior to this section
>>
>> of code. It might be easier just to write a separate script file
>> that defines the colors, then issues the "set clevs" and
>> "set ccols" command. Then you could replace some of the code above
>> with something like
>>
>>
>> 'set dbuff on'
>> t = 1
>> 'set gxout shaded'
>> while (t <= 5)
>> 'set t 't
>> 'draw title Temperature'
>> 'run mycolorscript.gs'
>>
>> 'd t'
>> 'cbar'
>> 'swap'
>> t = t + 1
>> endwhile
>>
>> where you created the script called mycolorscript.gs. I have
>> sample animated gifs stored at http://www.meteor.iastate.edu/~jdduda/sfc_div.gif
>>
>> and http://www.meteor.iastate.edu/~jdduda/radar3.gif that show how
>> I used those command lines and a while loop to create the
>> frames necessary for an animation, then used gifsicle to make the
>> animated gif. Gifsicle is another way to make animations,
>>
>> but you have to use it outside of Grads, and you'd need to make the
>> images first (i.e., the frames of the animation).
>>
>> I hope this clarifies things.
>>
>> Jeff Duda
>>
>> On Wed, Mar 23, 2011 at 10:42 AM, Clay Blankenship <clay.b.blankenship at nasa.gov
>> > wrote:
>> OK, from the command line I can use make_clevs to specify any range
>> of levels and plot and get the color bar. But both of my scripts
>> dd.gs (a script to plot, specify a range, and make a color bar) and
>> ani.gs (animation) do not plot the full color bar when I specify
>> the range with script arguments. I can't figure out what's going
>> on...
>>
>> Also, I am still looking for a way to display the current ccols and
>> clevs. Do you have to use 'q shades'?
>>
>> One more thing, this animation script regulates its speed by
>> redrawing the plot a certain number of times; is there a better way
>> to do that?
>>
>> Thanks,
>> Clay
>>
>> ****dd.gs***********
>> function dd (args)
>> *Plot a variable and its color scale.
>> * dd variable [ -cmin minimum value ]
>> * [ -cmax maximum value ]
>> * [ -cint color scale ]
>>
>> variable=subwrd(args,1)
>>
>> ccint=''
>> ccmin=''
>> ccmax=''
>> string=''
>> space=' '
>> n=2
>>
>> while(n<9)
>> idx=subwrd(args,n)
>> opt=subwrd(args,n+1)
>> if(idx='');break;endif
>> if(idx='-cint');ccint=opt;endif
>> if(idx='-cmin');ccmin=opt;endif
>> if(idx='-cmax');ccmax=opt;endif
>> if(idx='-string');string=opt;endif
>> n=n+2
>> endwhile
>>
>> 'c'
>> 'set gxout shaded'
>> if(ccint!=''); 'set cint 'ccint;endif
>> if(ccmin!=''); 'set cmin 'ccmin;endif
>> if(ccmax!=''); 'set cmax 'ccmax;endif
>> if(ccmin!=''); if(ccmax!=''); 'set rbrange 'ccmin ' 'ccmax;
>> endif;endif
>>
>> *CBB 3/22/11 set the levels
>> 'make_clevs ' cmin cmax cint
>> 'd 'variable
>>
>> *Add date and user-input string
>> 'q time'
>> say result
>> cctime=subwrd(result,3)
>> coln=substr(cctime,3,1)
>> if coln = ':'
>> dmy =substr(cctime,7,9)
>> else
>> dmy =substr(cctime,1,12)
>> day =substr(cctime,1,3)
>> my =substr(cctime,4,9)
>>
>> *dmy =substr(cctime,4,9) *cbb changed
>> endif
>>
>> * 'draw title 'dmy space string
>> 'draw title 'day space my space string
>>
>> 'q shades'
>>
>> 'cbar2'
>>
>> ****END***********
>>
>> ***ani.gs************
>>
>> * Display animation
>> * ga> run ani variable [ -I slowness (default=10) ]
>> * [ -cint, -ci contour interval ]
>> * [ -cmin, -mn minimum contour level ]
>> * [ -cmax, -mx maximum contour level ]
>> * ex. ga> run ani t-t.2 -ci 0.1 -mn -0.5 -I 5 -cmax 0.3
>> * >>>> plot (t-t.2) with slowness=5, contour_interval=0.1
>> * minimum contour level=-0.5, maximum contour level=0.3
>> *
>> * Nov. 9, 1999
>> Masami Nonaka
>> *
>> function ani (args)
>>
>> variable=subwrd(args,1)
>>
>> slow=''
>> ccint=''
>> ccmin=''
>> ccmax=''
>> cbar=''
>> n=2
>>
>> while(n<10000)
>> idx=subwrd(args,n)
>> opt=subwrd(args,n+1)
>> if(idx='');break;endif
>> if(idx='-I');slow=opt;endif
>> if(idx='-Int');slow=opt;endif
>> if(idx='-cint');ccint=opt;endif
>> if(idx='-cmin');ccmin=opt;endif
>> if(idx='-cmax');ccmax=opt;endif
>> if(idx='-ci');ccint=opt;endif
>> if(idx='-mn');ccmin=opt;endif
>> if(idx='-mx');ccmax=opt;endif
>> n=n+2
>> endwhile
>>
>> defaultslow=10
>> if(slow=''); slow=defaultslow;endif
>>
>> 'q dims'
>> say result
>> aline=sublin(result,5)
>> cctime1=subwrd(aline,11)
>> cctime2=subwrd(aline,13)
>> tmin=substr(cctime1,1,9)
>> tmax=substr(cctime2,1,9)
>> it=tmin
>> 'set dbuff on'
>> while (it <=tmax)
>> 'set t 'it
>> i=0
>> while (i <slow)
>> if(ccint!=''); 'set cint 'ccint;endif
>> if(ccmin!=''); 'set cmin 'ccmin;endif
>> if(ccmax!=''); 'set cmax 'ccmax;endif
>> if(ccmin!=''); if(ccmax!=''); 'set rbrange 'ccmin ' 'ccmax;
>> endif;endif
>>
>> *CBB 3/22/11 setting max min clevs
>> 'make_clevs ' cmin cmax cint
>>
>> 'display 'variable
>>
>> 'run date.gs'
>>
>>
>>
>> 'query shades'
>> shdinfo = result
>> if(subwrd(shdinfo,1)!='None');'run fcbar.gs';endif
>>
>> 'swap'
>> i=i+1
>> endwhile
>> it=it+1
>> endwhile
>> 'set t ' tmin ' ' tmax
>>
>>
>> ****END***********
>>
>>
>>
>>
>>
>>
>> On Mar 22, 2011, at 5:23 PM, Goodson,Ron [Edm] wrote:
>>
>>> I see in my original note I mislead you .. when I said I do my
>>> make_clevs.gs before cbar. As was noted by Jeffrey . the settings
>>> of clevs, ccols (all that stuff) must happen before the display of
>>> the variable. So swap those two lines of "display" and
>>> "make_clevs".
>>>
>>>
>>>
>>> The other thing I usually do right at the start of my programs
>>> (and only has to be done once .. unlike settings clevs, ccols
>>> which must be done before each display) is to setup some custom
>>> colours through "set rgb" (one entrie per colour) and rbcols (to
>>> set the order of the colours). You don't need to do this if you
>>> are using the GrADS standard scheme of 16 colours.
>>>
>>>
>>> ron
>>>
>>> From: gradsusr-bounces at gradsusr.org [mailto:gradsusr-bounces at gradsusr.org
>>> ] On Behalf Of Clay Blankenship
>>> Sent: March 22, 2011 4:05 PM
>>> To: GrADS Users Forum
>>> Subject: Re: [gradsusr] Setting color bar for animation
>>>
>>> OK, that make_clevs works for me when I do a simple 'd' on my
>>> variable, but when I try to use a little fancier script (not even
>>> an animation, just trying to pass the range on the command line),
>>> I lose the min and max values.
>>>
>>> If I do:
>>>
>>> c
>>> make_clevs 0 2 0.2
>>> d soilwat5
>>> cbar
>>>
>>> I get a colorbar from 0 to 2 in steps of .2, even though the
>>> variable range is 0 to 1 (so far, so good).
>>>
>>> If I do:
>>>
>>> dd soilwat5 -cmin 0 -cmax 2 -cint 0.2
>>>
>>> I get a colorbar from 0 to 1 in steps of 0.2. The colors are the
>>> same for the different ranges, it just doesn't show the ones above
>>> 1. Is this because clevs are set and ccols are not? I was hoping
>>> ccols would get set automatically like it does when you don't
>>> specify levels.
>>>
>>> This happens whether or not I use the make_clevs line in the
>>> following script.
>>>
>>> BTW, this seems really basic, but I can't figure out how to see
>>> the current values of ccols and clevs.
>>> cbar is getting its ccols and clevs from 'q shades', but it
>>> doesn't react to ccols and clevs until a plot has been made.
>>>
>>> Script follows.
>>>
>>> Thanks for the help,
>>> Clay
>>>
>>>
>>
>> --
>> Clay Blankenship * USRA Research Scientist
>> clay.b.blankenship at nasa.gov * 256-961-7638
>> 320 Sparkman Drive * Huntsville, AL 35805 USA
>> National Space Science and Technology Center at NASA-MSFC/UAH
>>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> gradsusr mailing list
>> gradsusr at gradsusr.org
>> http://gradsusr.org/mailman/listinfo/gradsusr
>>
>>
>>
>>
>> --
>> Jeff Duda
>> Iowa State University
>> Meteorology Graduate Student
>> 3134 Agronomy Hall
>> www.meteor.iastate.edu/~jdduda
>> <ATT00001.txt>
>
> --
> Clay Blankenship * USRA Research Scientist
> clay.b.blankenship at nasa.gov * 256-961-7638
> 320 Sparkman Drive * Huntsville, AL 35805 USA
> National Space Science and Technology Center at NASA-MSFC/UAH
>
>
>
>
>
>
> _______________________________________________
> gradsusr mailing list
> gradsusr at gradsusr.org
> http://gradsusr.org/mailman/listinfo/gradsusr
--
Jennifer M. Adams
IGES/COLA
4041 Powder Mill Road, Suite 302
Calverton, MD 20705
jma at cola.iges.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://gradsusr.org/pipermail/gradsusr/attachments/20110323/b41a4d09/attachment-0003.html
More information about the gradsusr
mailing list