[gradsusr] Diagnostics in Ctl File?
Rowell, Mason D.
Mason.D.Rowell-1 at ou.edu
Sun Nov 13 11:07:24 EST 2011
Eric,
You agree that dx and dy are defined right though?
Mason
________________________________________
From: gradsusr-bounces at gradsusr.org [gradsusr-bounces at gradsusr.org] on behalf of Eric Altshuler [ela at cola.iges.org]
Sent: Sunday, November 13, 2011 1:33 AM
To: GrADS Users Forum
Subject: Re: [gradsusr] Diagnostics in Ctl File?
I believe the factor of 2 in the denominator of Jeff's expression for temperature advection should not be there. The expression should be:
'define tadv = -ugrdprs*cdiff(tmpprs,x)/dx - vgrdprs*cdiff(tmpprs,y)/dy'
because the cdiff function, when evaluated at a grid point (i,j), gives the difference of its argument between the grid points at (i+1) and (i-1) or (j+1) and (j-1), i.e. the distance the difference is taken across is two grid points. This is also true of dx and dy because they are themselves the results of using cdiff. Thus, if there is a factor of 2 in the denominator, then there must also be one in the numerator, and they would cancel.
Eric
----- Original Message -----
From: "Mason D. Rowell" <Mason.D.Rowell-1 at ou.edu>
To: "GrADS Users Forum" <gradsusr at gradsusr.org>
Sent: Saturday, November 12, 2011 8:57:32 PM
Subject: Re: [gradsusr] Diagnostics in Ctl File?
Disregard. I am getting the script to use it now. Though I am curious about the discrepancy between Jeff's definition of temp. advection and that suggested by the cdiff documenation....
Mason
From: gradsusr-bounces at gradsusr.org [gradsusr-bounces at gradsusr.org] on behalf of Rowell, Mason D. [Mason.D.Rowell-1 at ou.edu]
Sent: Saturday, November 12, 2011 7:03 PM
To: GrADS Users Forum
Subject: Re: [gradsusr] Diagnostics in Ctl File?
All,
Interesting, I get a display when used at the command line, but when run within the script, I get,
'Function not found: cdiff
Error occurred on line 15'
Why could this be? It is not syntax related..it just doesn't recognize it within the script...the only difference is that it is used in a definition (for defining dx) and not with a display command like when used at the command prompt...
Mason
From: gradsusr-bounces at gradsusr.org [gradsusr-bounces at gradsusr.org] on behalf of Jeff Duda [jeffduda319 at gmail.com]
Sent: Friday, November 11, 2011 11:07 PM
To: GrADS Users Forum
Subject: Re: [gradsusr] Diagnostics in Ctl File?
Mason,
What happens when you enter the command
'd cdiff(tmpprs,x)' ?
Does it display something that looks like the meridional gradient in temperature?
Jeff
On Fri, Nov 11, 2011 at 11:00 PM, Rowell, Mason D. < Mason.D.Rowell-1 at ou.edu > wrote:
Jeff,
My problem comes in using cdiff. Everything else should be fine (it is practically verbatim from the webpage). I have a suspicion it is because it uses x and y as arguments on two different lines but I don't really have much of a way to know without more Grads experience. Could this be causing the problem?
Mason
From: gradsusr-bounces at gradsusr.org [ gradsusr-bounces at gradsusr.org ] on behalf of Jeff Duda [ jeffduda319 at gmail.com ]
Sent: Friday, November 11, 2011 3:17 PM
To: GrADS Users Forum
Subject: Re: [gradsusr] Diagnostics in Ctl File?
Mason,
I preferred to derive the formulas for spacings myself. Simple trigonometry reveals the following that you should use for dx and dy (i.e., meridional and zonal grid spacing):
dx = Re*cos(phi)*d(theta)
dy = Re*d(phi)
where Re is the radius of the Earth (6371 to 6374 km), phi is latitude, theta is longitude, and the d operator means "change in". To convert this to Grads scripting code, you use the cdiff command. Also note that all angle measures need to be in radians, so you'll have to convert them as you do the operation. Here are the literal Grads command lines I use for this:
re = 6.371e3
'define dx = 're'*cos(lat*(3.1419/180))*cdiff(lon*(3.14159/180))'
'define dy = 're'*cdiff(lon*(3.14159/180))'
Obviously you can assign the conversion factor pi/180 to a script variable to simplify the symbolism there:
conv_factor = 3.14159/180
e.g., 'define dy = 're'*cdiff(lon*'conv_factor')'
If you try to display dx or dy, you should get a nice little image that contours or colors dx and dy (dx should decrease towards the poles and not change along a line of constant latitude, and dy should only be a function of latitude as well). Now use this to define temperature advection (assuming the temperature variable is tmpprs and wind is ugrdprs/vgrdprs):
'define tadv = -ugrdprs*cdiff(tmpprs,x)/(2*dx) - vgrdprs*cdiff(tmpprs,y)/(2*dy)'
The 98cbar.gs is indeed just a script that defines color levels and sets a color scheme for when you plot temperature advection. Changing the color tables is rather easy in Grads. You only need to define a color using 'set rgb # R G B', where # is anything between 16 and 255 (just a reference number) and R, G, and B are between 0 and 255. Then you set the contour intervals manually using 'set clevs , , , , , ...' where you insert literally the levels you want to use (separated by SPACES, not COMMAS). Then set the colors for those levels using 'set ccols , , , , , , ,+1' again using the reference numbers for each color and separating by SPACES. The "+1" is for the fact that you need one additional color for the number of levls you put. You can consult the controlling colors page for full info on what I just said. Also, I have a number of very simple color bar scripts that I've used in the past. I can provide them to all if anyone is interested.
You can also create a simple color bar using the cbar.gs script which is provided in the script library .
Let me know if you need any more help.
Jeff
On Fri, Nov 11, 2011 at 2:50 PM, Rowell, Mason D. < Mason.D.Rowell-1 at ou.edu > wrote:
Jeff and others,
Strange. This is exactly what was suggested in the ctl file near the comments at the bottom (that which I pulled from nomads). The only difference is that they have also the inclusion of a 98cbar.gs script right after the other expressions like that in this link you gave me, whose utility is a mystery since it is not necessary, at least suggested as so by the cdiff documenation given that it is not included. Perhaps it is just some coloring scheme. At any rate, the script fails at the first line (which attempts to define dtx), with each line coded exactly as it is shown (with the appropriate NARR temp as TMPprs and wind as UGRDprs and VGRDprs of course). I assume it will do so again at dty, and so forth. I originally didn't include define with these since I thought they weren't necessary but adding that in didn't solve the problem anyways. I suspect it is because cdiff calls x, and since I define my domain with lat long, it doesn't have a x variable to use? There definitely !
isn't a spacing issue this time...
Mason
From: gradsusr-bounces at gradsusr.org [ gradsusr-bounces at gradsusr.org ] on behalf of Jeff Duda [ jeffduda319 at gmail.com ]
Sent: Thursday, November 10, 2011 11:11 AM
To: GrADS Users Forum
Subject: Re: [gradsusr] Diagnostics in Ctl File?
Mason,
There is a good example of how to code temperature advection in the page for the cdiff command: http://www.iges.org/grads/gadoc/gradfunccdiff.html
The reason for all of the crazy manipulations is because the data points on your grid are not uniformly spaced on the globe. Thus corrections have to be made to get the correct distance between individual grid points.
Jeff
On Thu, Nov 10, 2011 at 11:00 AM, Wesley Ebisuzaki < Wesley.Ebisuzaki at noaa.gov > wrote:
Mason,
I think that you've discovered the "private" commands used by nomads
plot software for defining new variables
and custom plots. The nomads plot package is a wrapper for GrADS. It
has the ability to run grads .gs files that
are embedded within the ctl files.
http://www.cpc.ncep.noaa.gov/products/wesley/ncep_data/plot_doc.htmlhttp://www.cpc.ncep.noaa.gov/products/wesley/ncep_data/plot_doc.html
Ask NCDC for a copy of the .gs files.
> Has anyone done this before with grads?
How do you expect the developers to debug the scripts?
Wesley
Rowell, Mason D. wrote:
> All,
>
> I noticed ample comments toward the end of the ctl files available on the nomads servers from the NARR page, with a description of how to implement these in grads scripting. I tried to take this to plot temperature advection but it didn't work, b/c the last line of the comments calls for some function never provided. Has anyone done this before with grads?
>
> Mason
> _______________________________________________
> gradsusr mailing list
> gradsusr at gradsusr.org
> http://gradsusr.org/mailman/listinfo/gradsusr
>
_______________________________________________
gradsusr mailing list
gradsusr at gradsusr.org
http://gradsusr.org/mailman/listinfo/gradsusr
--
Jeff Duda
Grad student - PhD, Meteorology
University of Oklahoma School of Meteorology - Center for Analysis and Prediction of Storms
_______________________________________________
gradsusr mailing list
gradsusr at gradsusr.org
http://gradsusr.org/mailman/listinfo/gradsusr
--
Jeff Duda
Grad student - PhD, Meteorology
University of Oklahoma School of Meteorology - Center for Analysis and Prediction of Storms
_______________________________________________
gradsusr mailing list
gradsusr at gradsusr.org
http://gradsusr.org/mailman/listinfo/gradsusr
--
Jeff Duda
Grad student - PhD, Meteorology
University of Oklahoma School of Meteorology - Center for Analysis and Prediction of Storms
_______________________________________________
gradsusr mailing list
gradsusr at gradsusr.org
http://gradsusr.org/mailman/listinfo/gradsusr
_______________________________________________
gradsusr mailing list
gradsusr at gradsusr.org
http://gradsusr.org/mailman/listinfo/gradsusr
More information about the gradsusr
mailing list