Yi-Cheh
The problem is that you are setting a range of x using the tmXBValues resource that is outside the range of the time coord for the data that you are trying to plot.
Th data you are trying to plot has x-coords (i.e. time) in the range 38881-38973, but your plot domain specified by tmXBValues is 6-9; 6-9 is obviously not in the range of your input time data, so your plotting domain has no data.
You need to EITHER set tmXBValues so that the numbers correspond to the values in the input data, OR change the time coord array of your data so that it matches the range of tmXBValues.
Will
From: Yi-Chih Huang <dscpln@gmail.com<mailto:dscpln@gmail.com>>
Date: Sunday, 22 December 2013 11:48 AM
To: Will Hobbs <will.hobbs@utas.edu.au<mailto:will.hobbs@utas.edu.au>>
Cc: ncl-talk <ncl-talk@ucar.edu<mailto:ncl-talk@ucar.edu>>
Subject: Re: tmXBValues is not working
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<http://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<http://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<http://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<http://temp_200.nc>temp_500.nc<http://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<mailto: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<mailto:dscpln@gmail.com>>
Date: Sunday, 22 December 2013 11:10 AM
To: Will Hobbs <will.hobbs@utas.edu.au<mailto:will.hobbs@utas.edu.au>>
Cc: ncl-talk <ncl-talk@ucar.edu<mailto: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<mailto: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<mailto:dscpln@gmail.com>>
Date: Sunday, 22 December 2013 10:34 AM
To: ncl-talk <ncl-talk@ucar.edu<mailto: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 23:14:38 2013
This archive was generated by hypermail 2.1.8 : Mon Jan 06 2014 - 13:02:22 MST