Will,
Y axis is latitude. The script is as follows. I got several warnings.
I wonder what is the problem?
Thanks,
Yi-Chih
warning:ContourPlotSetValues: X coordinates out of data range: defaulting
warning:ContourPlotSetValues: X coordinates out of data range: defaulting
warning:ContourPlotSetValues: X coordinates out of data range: defaulting
#####
load "$SysE/lib/ncl/helper_libs.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
begin
latS = -30.0
latN = 40.0
lonE = 70.0
lonW = 90.0
dir1 = "/fs3/SysE_DB/nmm/NMM/Monthly/Mean/"
yrStrt = 1981
yrLast = 2006
year = ispan(yrStrt, yrLast,1) ; integer
yrDir = year + "/" ; string
varName= (/"precip"/)
nyr = dimsizes(year)
dir = str_concat(dir1+yrDir(0))
fil = systemfunc("cd "+dir+" ; ls precip.nc") ;;;;;;;; read
precipitation
f = addfile (dir+fil, "r")
x = f->$varName(0)$
dims= getfilevardims(f,varName(0))
xs = x(:,{latS:latN},{lonE:lonW}) ; JJAS tropical Pacific
xu = dim_avg_n_Wrap( xs,0)
ds = dimsizes(xs)
xx = new((/nyr,ds(0),ds(1),ds(2)/),float)
delete (fil)
do ny= 0,nyr-1
dir = str_concat(dir1+yrDir(ny))
fil = systemfunc("cd "+dir+" ; ls precip.nc")
f = addfile (dir+fil, "r")
x := f->$varName(0)$
dims= getfilevardims(f,varName(0))
xs := x(:,{latS:latN},{lonE:lonW}) ; Indian Ocean
xx(ny,:,:,:)= xs
end do
printMinMax(xx,True)
printVarSummary(xx)
xx!0 = "year"
xx!1 = "time"
pcpy = dim_avg_n_Wrap( xx,0 ) *86400 ; kg/m^2/s -> mm/day
copy_VarMeta(xs,pcpy)
pcp = dim_avg_n_Wrap( pcpy,2 )
printVarSummary(pcp)
pcp!0 = "time"
pcp!1 = "lat"
ymIn = pcp(lat|:,time|:)
printMinMax(pcp,True)
printVarSummary(ymIn)
lonE = 120.0
lonW = 140.0
delete (xx)
xx = new((/nyr,ds(0),ds(1),ds(2)/),float)
do ny= 0,nyr-1
dims = getfilevardims(f,varName(0))
xs := x(:,{latS:latN},{lonE:lonW}) ; Indian Ocean
xx(ny,:,:,:)= xs
end do
xx!0 = "year"
xx!1 = "time"
pcpy = dim_avg_n_Wrap( xx,0 ) *86400 ; kg/m^2/s -> mm/day
copy_VarMeta(xs,pcpy)
printVarSummary(pcpy)
printVarSummary(pcp )
pcp = dim_avg_n_Wrap( pcpy,2 )
pcp!0 = "time"
pcp!1 = "lat"
ymAu = pcp(lat|:,time|:)
printMinMax(pcp,True)
printVarSummary(ymAu)
dir1 = "/fs3/SysE_DB/nmm/NMM/Monthly/Mean/"
year = ispan(yrStrt, yrLast,1) ; integer
dirY = year + "/" ; string
dir = str_concat(dir1+dirY(0))
lvl = (/"200","500"/)
nlvl = dimsizes(lvl)
varName= (/"temp"/)
nyr = yrLast -yrStrt +1
lonE = 30.0
lonW = 110.0
dir = str_concat(dir1+dirY(0))
fil = systemfunc("cd "+dir+" ; ls temp_500.nc")
f = addfile (dir+fil(0), "r")
t = f->$varName(0)$
dims = getfilevardims(f,varName(0))
ts = t($dims(0)$|:,{$dims(1)$|latS:latN},{$dims(2)$|lonE:lonW})
ds = dimsizes(ts)
ty = new((/nyr,4,nlvl,ds(1),ds(2)/),float) ; only JJAS in NMM data
delete (fil)
do ny= 0,nyr-1
dir = str_concat(dir1+dirY(ny))
fil = systemfunc("cd "+dir+" ; ls temp_200.nc temp_500.nc")
nlvl = dimsizes(fil)
do nl= 0,nlvl-1
f = addfile (dir+fil(nl), "r")
t = f->$varName(0)$
dims = getfilevardims(f,varName(0))
ts = t($dims(0)$|:,{$dims(1)$|latS:latN},{$dims(2)$|lonE:lonW})
ty(ny,:,nl,:,:)= ts
end do
end do
ty!0 = "year"
ty!1 = "time"
ty!2 = "label"
tl = dim_avg_n_Wrap( ty, 2 )
tm = dim_avg_n_Wrap( tl, 0 )
tlat = dim_avg_n_Wrap( tm, 2 )
ymt = tlat(lat|:,time|:)
printVarSummary(ymt)
wks= gsn_open_wks("X11","ITCZtime_NMM")
gsn_define_colormap(wks,"BlueRed")
res = True
res@gsnAddCyclic = False
res@cnFillOn = True
res@cnLinesOn = False ; turn off the contour
lines
res@cnLineLabelsOn = False
res@cnSpanFillPalette = True
res@gsnSpreadColors = True ; use full colormap
res@gsnSpreadColorStart = 10 ; for BlueRed
res@gsnSpreadColorEnd = 250 ; for BlueRed
res@trYMaxF = 40
res@trYMinF = -30
res@trXMaxF = 6
res@trXMinF = 9
res@tmXBMode = "Explicit"
res@tmXBValues = ispan(6,9,1)
res@tmXBLabels = (/"Jun","Jul","Aug","Sep"/)
res@tmXTMode = "Explicit"
res@tmXTValues = ispan(6,9,1)
res@tmXTLabels = (/"Jun","Jul","Aug","Sep"/)
; res@vpWidthF = 0.8
; res@vpHeightF = 0.4
res@gsnDraw = False
res@gsnFrame = False
plot = new(3,graphic)
res@gsnLeftString = "Average Monthly Rate of Precipitation"
res@cnLevelSelectionMode = "ManualLevels"
res@gsnRightString = "mm/day"
res@cnMinLevelValF = 1
res@cnMaxLevelValF = 11
res@cnLevelSpacingF = 1
plot(0) = gsn_csm_lat_time(wks, ymIn, res)
plot(1) = gsn_csm_lat_time(wks, ymAu, res)
res@gsnLeftString = "Temperature"
res@gsnRightString = "K"
res@cnMinLevelValF = 232
res@cnMaxLevelValF = 248
res@cnLevelSpacingF = 2
plot(2) = gsn_csm_lat_time(wks, ymt , res)
gsn_panel(wks,plot,(/3,1/),False)
; return ([/ymIn,ymAu,ymt/])
end
On Sun, Dec 22, 2013 at 9:20 AM, Will Hobbs <Will.Hobbs@utas.edu.au> wrote:
> Yi-Cheh
>
> I can't possibly answer that question in detail without knowing more
> about the y-data that you are trying to plot.
>
> However, put simply you will need to create a dummy array for your time
> that just gives the month index. Assuming that you have a valid time coord
> system, you could try this (again, with the caveat that I really don't know
> what you are trying to plot:
>
> > tdum = cd_calendar(y&time, -5) ; integer array giving year, month,day
> and time for each data point
> >xdum = tdum(:,1) ;integer array of
> months,numbered 1-12
> > res@tmXMinF = 6
> > res@tmXMaxF = 9
> > res@tmXBMode = "Explicit"
> > res@tmXBValues = ispan(6,9,1) ;
> label indices for Jun-Sep only
> > res@tmXBLabels = (/"Jun","Jul","Aug","Sep"/)
>
> >plot = gsn_csm_xy(wks, xdum, y, res)
>
>
> This is just one way of many of doing what you are trying to do, and may
> or may not be the most effective given the data you have.
>
> Will
>
> From: Yi-Chih Huang <dscpln@gmail.com>
> Date: Sunday, 22 December 2013 11:10 AM
> To: Will Hobbs <will.hobbs@utas.edu.au>
> Cc: ncl-talk <ncl-talk@ucar.edu>
> Subject: Re: tmXBValues is not working
>
> Will,
>
> Thanks for the reply. I don't want 38881-38973 showing up on x
> axis, but Jun-Sep. How to make sure that x-array in gsn_csm_xy() is
> within the range of tmXBValues (i.e. 0-3)?
>
> Thanks much,
>
> Yi-Chih
>
>
> On Sun, Dec 22, 2013 at 9:06 AM, Will Hobbs <Will.Hobbs@utas.edu.au>wrote:
>
>> Yi-Chih
>>
>> Have you ensured that the x-array in gsn_csm_xy() is within the range
>> of tmXBValues (i.e. 0-3)?
>>
>> Your post is a bit unclear, but it sounds like you have an x-array of
>> 38881-38973, which is outside your plot domain (i.e. 0-3).
>>
>> Will
>>
>> From: Yi-Chih Huang <dscpln@gmail.com>
>> Date: Sunday, 22 December 2013 10:34 AM
>> To: ncl-talk <ncl-talk@ucar.edu>
>> Subject: tmXBValues is not working
>>
>> Hello,
>>
>> I am trying to label x axis by the following two sets of commands.
>> However, nothing was labeling on x axis for the first set of commands; The
>> time range [38881..38973] was labeled on x axis for the second set of
>> commands. Could anyone indicate the right commands to label x axis?
>>
>> res@tmXBMode = "Explicit"
>> res@tmXBValues = ispan(0,3,1)
>> res@tmXBLabels = (/"Jun","Jul","Aug","Sep"/)
>>
>> res@tmXTMode = "Explicit"
>> res@tmXTValues = ispan(0,3,1)
>> res@tmXTLabels = (/"Jun","Jul","Aug","Sep"/)
>>
>> Thanks much,
>>
>> Yi-Chih
>>
>
>
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Sat Dec 21 17:48:17 2013
This archive was generated by hypermail 2.1.8 : Mon Jan 06 2014 - 13:02:22 MST