Fwd: subscripits error

From: Setareh Rahimi <setareh.rahimi_at_nyahnyahspammersnyahnyah>
Date: Fri Aug 02 2013 - 11:47:46 MDT

Dear Alessandra ,

The dimensions of yrfrac( which is time) and spia are 1 and 2
respectively. spia has been derived from spi function (standardised
precipitation index). In fact after calculating spi, I toke an avaeage on
lat/lon of spi using spia = dim_avg_n_Wrap(spi,(/1,2/)) and put in spia. I
want to plot 4 figuers, and each figure just shows 1 curve. So what is your
idea now about the error?

Kind regards,

---------- Forwarded message ----------
From: Alessandra Giannini <alesall@iri.columbia.edu>
Date: Fri, Aug 2, 2013 at 6:28 PM
Subject: Re: subscripits error
To: Setareh Rahimi <setareh.rahimi@gmail.com>
Cc: ncl-talk@ucar.edu

Hello Setareh,

the documentation about the "gsn_csm_xy" function
is pretty clear.

I copy and paste parts here:

function gsn_csm_xy (

wks [1] : graphic,
x : numeric,
y : numeric,
res [1] : logical

The X and Y coordinates of the curve(s). If *x* and/or *y* are
two-dimensional, then the leftmost dimension determines the number of

So, in your case, what are the dimensions of your x and y,
i.e. yrfrac,spia(n,:,:)?

Hint: the documentation allows for two dimensional variables at most. It
seems your spia is at least 3D...
If spia is indeed 3D, then pretending it is anything else, such as

spia(n), spia(n,:), spia(n,:,:,:)

certainly will not correct the error.

It may help to ask yourself how many curves you are trying to produce...

Hope this helps!

Alessandra Giannini
IRI for Climate and Society - The Earth Institute at Columbia University
P.O. Box 1000, Palisades NY 10964-8000
phone/fax: +1 845 680-4473/4864 - email: alesall@iri.columbia.edu
On Aug 2, 2013, at 1:16 PM, Setareh Rahimi <setareh.rahimi@gmail.com> wrote:
Dear all,
I run below codes to have a xy plot. Once running I get an error saying the
number of subscripts do not match the dimentions of variable. "spia" has 2
dimensions.The error is related to this line :plt(n) = gsn_csm_xy
(wks,yrfrac,spia(n,:,:),res) . I have also tried spia(n), spia(n,:),
spia(n,:,:,:) ,but those are wrong.Would you please help me to fix this
    f      = addfile("precip.mon.total.v6.nc","r")
    prc2   = f->precip({62456:77035},{-35:37},{344:50})
    time  = f->time({62456:77035} )
    yyyymm_i = cd_calendar(time, -2)
    ntim         = dimsizes(time)
    year         = yyyymm_i/100
    firstyr      = year(0)
    lastyr       = year(ntim-1)
    nyear        = lastyr-firstyr+1
    YYYYMM       = yyyymm_time(firstyr,lastyr , "integer")
    yrfrac = yyyymm_to_yyyyfrac(YYYYMM,0.0)
    dimp   = dimsizes(prc2)
    ntim   = dimp(0)
    nlat   = dimp(1)
    mlon   = dimp(2)
    len    = (/3,6,12,24/)
    klen   =  dimsizes(len)
    spi    =  new((/klen,ntim,nlat,mlon/),float)
    do k=0,klen-1
      spi(k,:,:,:) = dim_spi_n(prc2, len(k), False, 0)
    end do
    spia = dim_avg_n_Wrap(spi,(/1,2/))
    wks            =   gsn_open_wks ("ps","spia")
    res            =   True
    res@gsnDraw    =   False
    res@gsnFrame   =   False
    res@vpHeightF  =   0.4
    res@vpWidthF   =   0.8
    res@vpXF       =   0.1
    res@trYMinF    =   -3.0
    res@trYMaxF    =   3.0
    res@gsnYRefLine = 0.0
    res@xyMonoDashPattern = True
    res@xyLineThicknessF = 1
    plt = new ( klen, "graphic")
    xyLineColors = (/"black","red","blue","green"/)
    do n=0,klen-1
     res@xyLineColors = xyLineColors(n)
       res@gsnCenterString = "run="+len(n)
       plt(n) = gsn_csm_xy (wks,yrfrac,spia(n,:,:),res)
   end do
   resP = True ; modify the panel plot
   resP@txString = "SPI: Boulder: 1894-2010"
   resP@gsnMaximize = True
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:

ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
Received on Fri Aug 2 11:48:00 2013

This archive was generated by hypermail 2.1.8 : Wed Aug 07 2013 - 13:59:00 MDT