[gradsusr] Max Value
Jeffrey Duda
jdduda at iastate.edu
Sat Apr 16 13:03:29 EDT 2011
Andrew,
I made a script to do the same thing. I've noticed in mine that I broke up
your one line into two. That might make the difference. I think what is
going on is the command is searching through your UNDEF values and finding
those to be the max. Here's how it goes in my code:
'define mxy = max('ans',x='x1',x='x2')'
'd maxloc(mxy,y='y1',y='y2')'
ymax = subwrd(result,4)
Attached is an image showing how it works. The field is 850 mb theta-e.
Script output is:
The actual maximum location is at (x,y) = (223,36) or (lat,lon) =
(36.0997,-97.4195) and is 340.864
The actual minimum location is at (x,y) = (146,279) or (lat,lon) =
(42.9153,-100.243) and is 310.718
Before I learned the faster way of doing this, I made another script that
does it using arrays. It took a bit longer to run, but I never had a
problem with accuracy. It rejects candidates that are too high or too low.
Here's the beef of that code:
*Finding the location of maximum value
max = -999999
yy = y1
while (yy <= y2)
'set y 'yy
'd maxloc('ans',x='x1',x='x2')'
line = sublin(result,2)
index = subwrd(line,4)
* if (index < 1e+6 & index > -1e+6)* (THIS TELLS THE SCRIPT TO REJECT A
POINT IF IT ESSENTIALLY IS OFF THE GRID, I.E., AN UNDEF)
'set x 'index
'd 'ans
line = sublin(result,2)
act_max = subwrd(line,4)
*setting index of max value into array
max.yy.1 = index
*setting actual max value into array
max.yy.2 = act_max
'set x 'x1' 'x2
if (max.yy.2 > max)
max_val = max.yy.2
max_locx = max.yy.1
max_locy = yy
max = max_val
endif
endif
yy = yy + 1
endwhile
Let me know if you have further questions.
Jeff Duda
On Fri, Apr 15, 2011 at 5:53 PM, Andrew Revering <andy at f5data.com> wrote:
> I’m trying to do a max value plot… I got it to give me coordinates, but
> it’s not quite right. No matter what the variable is on the map that I’m
> trying to find the max value for, it always gives me coordinates (and plots
> visually) in the far lower left corner of the screen where there are no
> values.
>
>
>
> Here is my code:
>
>
>
>
>
> ‘d maxloc(max(tt,x=0,x=1028),y=0,y=768)’
>
> Line=sublin(result,2)
>
> Ygrd=subwrd(line,4)
>
> ‘d maxloc(max(tt,y=0,y=768),x=0,x=1028)’
>
> Line=sublin(result,2)
>
> Xgrd=subwrd(line,4)
>
>
>
> ‘set x ‘xgrd
>
> Lonval = subwrd(result,4)
>
>
>
> ‘set y ‘ygrd
>
> Latval = subwrd(result,4)
>
>
>
> ‘q w2xy ‘lonval’ ‘latval
>
> Xpos = subwrd(result,3)
>
> Ypos = subwrd(result,6)
>
>
>
> Then I go further to plot the coordinate, which works. The printed lat/lon
> is correct for where the marker is, but it is NOT where the max val is. Its
> way down in the lower left corner of the image.
>
>
>
>
>
> _______________________________________________
> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://gradsusr.org/pipermail/gradsusr/attachments/20110416/e3470395/attachment-0001.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 850_TH_E_example.gif
Type: image/gif
Size: 64210 bytes
Desc: not available
Url : http://gradsusr.org/pipermail/gradsusr/attachments/20110416/e3470395/attachment-0001.gif
More information about the gradsusr
mailing list