[ncl-talk] problem about Plotting r,theta data
wen
wenguanhuan at 163.com
Wed Apr 26 19:44:34 MDT 2017
Hi Mary,
Thank you for help. I had assumed that the given azimuth was the middle of 5 degree. I mean that azimuth 0 represent 357.5-2.5, and 355 represent 352.5-357.5. I had thought that the data cover the whole circle. But the shade only cover 0-355. Maybe I should use the way you suggest. Thank you!
--
Best regards,
Guanhuan Wen
At 2017-04-26 22:22:37, "Mary Haley" <haley at ucar.edu> wrote:
Hello,
I'm not sure I understand. You said you didn't have any data from 355 to 0, so I believe that's exactly what the plot is showing you.
When you plot data over a global map, we sometimes see this kind of thing because the longitude point doesn't go all the way from -180 to 180, or from 0 to 360. In that case, we set a special resource:
res at gsnAddCyclic = True
which simply creates a new data array that has more more element in the longitude direction (nlat x (nlon+1)) and we copy the first data point at the first longitude point to the end of this array, so you are effectively closing the gap.
gsnAddCyclic is only for map plots, but you could do something similar for your contour plot. Here's what the "add cyclic point" code looks like:
dims = dimsizes(pr)
ny = dims(0)
mx = dims(1)
mx1 = mx+1
pr_cyclic = new((/ny, mx1/),typeof(pr))
pr_cyclic(:,0:mx-1) = pr ; pass everything
pr_cyclic(:,mx) = (/ pr(:,0) /) ; value only
You will need to do the same thing for x and y, so I suggest making a function, like "make _cyclic" and calling it for pr, x, and y.
By the way, if you have NCL V6.1.0 or later, You don't need to use NhlNewColor. You can now use named colors directly. So, instead of this:
cnres at cnMissingValFillColor = NhlNewColor(wks,.7,.7,.7)
you can use this:
cnres at cnMissingValFillColor = "gray"
You can see all the named colors at:
http://www.ncl.ucar.edu/Document/Graphics/named_colors.shtml
--Mary
On Mon, Apr 24, 2017 at 2:46 AM, wen <wenguanhuan at 163.com> wrote:
hi all,
I am ploting r-theta data. Theta is from 0 to 355 at an interval of 5. However, the there is blank at the angular of 355-0. Do anybody know why. My script is attached bellow.
;***********************************************
; radar_1.ncl
;
; Concepts illustrated:
; - Plotting radar (r,theta) data
; - Adding shading or color fill to areas on a contour plot with missing data
; - Drawing raster contours
; - Drawing cell-filled contours
; - Using triangular meshes to create contours
;***********************************************
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
begin
pi = 4.0*atan(1.)
deg2rad = pi/180.
rad2deg = 45./atan(1.)
a = 6371.
r = ispan(0,500,10)
theta = ispan(0,355,5)
y = conform_dims((/dimsizes(r),dimsizes(theta)/),r,0)*cos(conform_dims((/dimsizes(r),dimsizes(theta)/),theta,1)*deg2rad)
x = conform_dims((/dimsizes(r),dimsizes(theta)/),r,0)*sin(conform_dims((/dimsizes(r),dimsizes(theta)/),theta,1)*deg2rad)
; x = r*sin(theta*deg2rad)
;print(lat+" "+lon )
tcnum = systemfunc("cut -d ' ' -f 1 land_tcnum_time.dat")
ltime = systemfunc("cut -d ' ' -f 2 land_tcnum_time.dat")
i = 3
tcdir = "land_gd_tc/"
tcfile = tcnum(i)+".dat"
tmp = asciiread(tcdir+tcfile,-1,"integer")
ntime = dimsizes(tmp)/6
data = onedtond(tmp,(/ntime,6/))
index = ind(ltime(i).eq.data(:,0))
lat0 = data(index,2)*0.01
lon0 = data(index,3)*0.01
a0 = a*cos(lat0*deg2rad)
lat = y/(a*deg2rad)+lat0
lon = x/(a0*deg2rad)+lon0
fd = "/gza/g3/wengh/TC/TRMM/"+tcnum(i)+"/"
fn = systemfunc("ls "+fd+"3B42."+str_get_cols(ltime(i),0,7)+"."+str_get_cols(ltime(i),8,9)+"*.HDF")
f = addfile(fn,"r")
pre = f->precipitation
latgrid = fspan(-49.875,49.875,400)
longrid = fspan(-179.875,179.875,1440)
pre!0 = "lon"
pre!1 = "lat"
pre&lon = longrid
pre&lat = latgrid
pr = new((/dimsizes(r),dimsizes(theta)/),typeof(pre))
do i=0,dimsizes(r)-1
do j=0,dimsizes(theta)-1
nlat = ind_nearest_coord(lat(i,j),latgrid,0)
nlon = ind_nearest_coord(lon(i,j),longrid,0)
pr(i,j) = (/pre(nlon,nlat)/)
end do
end do
;print(pr(0,0)+" "+x(0,0)+" "+y(0,0))
;exit
graphicname = get_script_prefix_name()
wks = gsn_open_wks("eps" ,graphicname)
;gsn_define_colormap(wks,"gui_default")
gsn_define_colormap(wks,"precip2_15lev")
;gsn_define_colormap(wks,"radar")
;gsn_define_colormap(wks,"precip2_17lev")
colors = ispan(4,17,1)
;colors(0) = 2
cnres = True
; cnres at gsnMaximize = True
cnres at sfXArray = x
cnres at sfYArray = y
cnres at cnFillOn = True
cnres at cnLinesOn = False
; cnres at cnFillMode = "RasterFill" ; this mode is fastest
cnres at trGridType = "TriangularMesh"
cnres at lbLabelAutoStride = True
; contour = gsn_csm_contour(wks,pr,cnres)
; The CellFill mode is slower but draws more outlying data
; and lets you fill in the missing value arrays, giving a good
; sense of the circular extent of the plot.
cnres at cnFillMode = "CellFill"
cnres at cnMissingValFillColor = NhlNewColor(wks,.7,.7,.7)
cnres at cnLevelSelectionMode = "ExplicitLevels" ; set manual contour levels
cnres at cnLevels = ispan(1,13,1) ; set min contour level
cnres at cnFillColors = colors
contour = gsn_csm_contour(wks,pr,cnres)
end
--
Best regards,
Guanhuan Wen
_______________________________________________
ncl-talk mailing list
ncl-talk at ucar.edu
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20170427/ee8c3f7e/attachment.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ??1.png
Type: image/png
Size: 255529 bytes
Desc: not available
Url : http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20170427/ee8c3f7e/attachment.png
More information about the ncl-talk
mailing list