Re: tmXBValues is not working

From: Will Hobbs <Will.Hobbs_at_nyahnyahspammersnyahnyah>
Date: Sat Dec 21 2013 - 23:14:22 MST

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