[ncl-talk] Fwd: Help with creating a script for precipitation stored in shapefiles
Carlos J. Valle-Diaz
cj.vallediaz at gmail.com
Wed Oct 21 18:33:31 MDT 2015
Forgot to Cc ncl-talk...I apologize!
---------- Forwarded message ----------
From: Carlos J. Valle-Diaz <cj.vallediaz at gmail.com>
Date: Wed, Oct 21, 2015 at 8:27 PM
Subject: Re: [ncl-talk] Help with creating a script for precipitation
stored in shapefiles
To: Rick Brownrigg <brownrig at ucar.edu>
Thank you very much Rick,
I've been playing around with the script to understand the functions and
resources used to make the plot and learn NCL from it. I managed to focus
it on my area of interest (Puerto Rico). At the moment, I've been trying to
put a legend and text. I've seen an example at the website "polyg_8.ncl",
but I have a question.
I know that the gsn_polymarker_ndc(wks, x, y, res) function lets me put the
legend markers and the gsn_text_ndc(wks, text, x, y, res) function lets me
put the text. I'm using "gsres" as a resource for the polymarkers and
"txres" as a resource for the text to go along with it. My question lies in
the numeric values (x and y). In the example script I mentioned above, the
code is set for an array set defined. In my case I would have to define it
for the Globalvalues (precipitation) in my shapefile. In summary, how do I
define x and y to make a legend at an even interval of my GlobalValues and
to play with the location of both the markers and text? (See script
attached)
Also, I've been trying to include black circles in the loop that generates
the colored polymarkers in the plot to make it more visible, but haven't
been succesful. I've tried the following sequence, for example, and marks
an error. What am I doing wrong?
do i=0, dimsizes(f->Globvalue) - 1
indx = doubletoint( (f->Globvalue(i)-globMin) / globRange *
numColors) + 1 ; skip first color in table
if (indx.ge.numColors) then
indx = numColors - 1
end if
gsres at gsMarkerIndex = 4
gsres at gsMarkerThicknessF = 2
gsres at gsMarkerColor = "Black"
gsn_polymarker(wks, plot, f->Lon(i), f->Lat(i), gsres)
gsres at gsMarkerIndex = 1
gsres at gsMarkerSizeF = 0.03
gsres at gsMarkerColor = cmap(indx, :)
gsn_polymarker(wks, plot, f->Lon(i), f->Lat(i), gsres)
end do
Thanks again,
Carlos
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20151021/0a2a5386/attachment.html
-------------- next part --------------
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
begin
wks = gsn_open_wks("X11","NWS-Precip-2011071215")
f = addfile("nws_precip_2011071215.shp","r")
minLat = 17.30
maxLat = 19
latRange = maxLat - minLat
minLon = 292
maxLon = 295
lonRange = maxLon - minLon
globMin = min(f->Globvalue)
globRange = max(f->Globvalue) - min(f->Globvalue)
mres = True
mres at mpLimitMode = "Corners" ; corner method of zoom
mres at mpLeftCornerLatF = minLat - (latRange * .01)
mres at mpLeftCornerLonF = minLon - (lonRange * .01)
mres at mpRightCornerLatF = maxLat + (latRange * .01)
mres at mpRightCornerLonF = maxLon + (lonRange * .01)
mres at gsnDraw = True ; don't draw yet
mres at gsnFrame = False ; don't advance frame yet
mres at gsnMaximize = False
mres at pmTickMarkDisplayMode = "Always" ; turn on tickmarks
mres at tiMainString = "NWS Precipitation July 12 2011 at 15 UTC"
plot = gsn_csm_map(wks,mres)
cmap = read_colormap_file("prcp_1")
numColors = dimsizes(cmap(:,0)) - 1 ; skip the first color in the table
print(globMin + " " + globRange)
txres = True
txres at txFontHeightF = 0.015
gsres = True
do i=0, dimsizes(f->Globvalue) - 1
indx = doubletoint( (f->Globvalue(i)-globMin) / globRange * numColors) + 1 ; skip first color in table
if (indx.ge.numColors) then
indx = numColors - 1
end if
gsres at gsMarkerIndex = 1
gsres at gsMarkerSizeF = 0.03
gsres at gsMarkerColor = cmap(indx, :)
gsn_polymarker(wks, plot, f->Lon(i), f->Lat(i), gsres)
gsn_polymarker_ndc(wks, x, y, gsres)
gsn_text_ndc(wks, text, x, y, txres)
end do
draw(plot)
frame(wks)
end
More information about the ncl-talk
mailing list