[ncl-talk] Number of dimensions in parameter (1) of (gsn_csm_vector_scalar_map) is (1), (2) dimensions were expected
Dennis Shea
shea at ucar.edu
Sun Jan 12 08:50:33 MST 2020
Attached
On Sat, Jan 11, 2020 at 4:28 PM reza tisa <rezatisa1 at gmail.com> wrote:
> Thank Yo Mr.Shea,
>
> Re:
> ============================
> f = addfile("MJO.....nc","r") ; <=== **MY* file on ftp and attached*
> ; this
> spans 19800101 to 20181231
>
> Can i download your attached MJO_PC_INDEX.nc on ftp? because i got some
> some suspected data on my MJO_PC_INDEX.nc
>
> Best Regards,
> Reza
>
>
> Pada tanggal Sel, 7 Jan 2020 pukul 02.52 Dennis Shea <shea at ucar.edu>
> menulis:
>
>> You should put in print statements. to examine your data.
>>
>> ============================
>> f = addfile("MJO.....nc","r") ; <=== *MY* file on ftp and attached
>> ; this
>> spans 19800101 to 20181231
>> ymd = cd_calendar(f->time,-2)
>> mjo_idx = f->MJO_INDEX
>> pc1 = f->PC1
>> pc2 = f->PC2
>> ;; print(ymd+" "+ mjo_idx+" "+pc1+" "+pc2)
>>
>> n_4951 = *num*(mjo_idx.gt.0.49 .and. mjo_idx.lt.0.51)
>> n_50 = *num*(mjo_idx.eq.0.50)
>> print("n_4951="+n_4951)
>> print("n_50="+n_50)
>>
>> ---
>> re: "Then, i got this printVarSummary error message after the *6th*
>> iteration."
>>
>>
>>
>> * n_4951=5 <=== hence, there can not be a 6th
>> iteration n_50=0 <=== the are no values exactly 0.50*
>>
>> On Mon, Jan 6, 2020 at 9:34 AM Rick Brownrigg via ncl-talk <
>> ncl-talk at ucar.edu> wrote:
>>
>>> I can't run this script because there are three other files required.
>>> However, you've narrowed things to the 6th iteration. What I would do is
>>> put in addition print statements to look at the values/shapes of nt,
>>> x(lat|:,lon|:,time|nt), u(lat|:,lon|:,time|nt), v(lat|:,lon|:,time|nt) .
>>> Looing at what changes between the 5th and 6th iteration should provide
>>> some insight as to why the x/u/vAvg arrays degenerate into 1D arrays.
>>>
>>> Rick
>>>
>>>
>>> On Sun, Jan 5, 2020 at 11:10 PM reza tisa <rezatisa1 at gmail.com> wrote:
>>>
>>>> Thank you for your response Mr.Brownrigg*,*
>>>> I am glad if anyone could help me fix this.
>>>>
>>>> I also put my file and script:
>>>> MJO_PC_INDEX.nc (i got this by running mjoclivar_14.ncl)
>>>> https://drive.google.com/open?id=1pr6wTdRXE0AWaPbh-Q8wWHca8NZLTLQw
>>>>
>>>> My script (based on mjoclivar_16)
>>>> https://drive.google.com/open?id=1LLNGIASi-nmXxm204OEF2LT-iDsx5dhE
>>>>
>>>> If i put the *mjo_indx range is 0,5* *or more (in this case 1.0-1.5) *the
>>>> script is fine:
>>>> *.............. *
>>>> if (nSeason.eq.1) then
>>>> nt = ind((*mjo_indx.gt.1.0 .and. mjo_indx.lt.1.5*) .and. \
>>>> (imon.ge.5 .and. imon.le.10).and. \
>>>> ang.ge.angBnd(0,n) .and. ang.lt.angBnd(1,n))
>>>> else
>>>> nt = ind((*mjo_indx.gt.1.0 .and. mjo_indx.lt.1.5*) .and. \
>>>> (imon.ge.11 .or. imon.le. 4).and. \
>>>> ang.ge.angBnd(0,n) .and. ang.lt.angBnd(1,n))
>>>> end if
>>>> ................
>>>>
>>>>
>>>> But if i put the* mjo_indx range under 0,5 *(because i want to plot at
>>>> the exact 0,5 amplitude) like this
>>>> *(mjo_indx.gt.0.49 .and. mjo_indx.lt.0.51) *or* (mjo_indx.eq.0.5) *it
>>>> goes to error at the 6th iteration plot
>>>> ................
>>>> if (nSeason.eq.1) then
>>>> mjo_indx = decimalPlaces(mjo_indx ,1,True) ;* i put this for
>>>> rounding data to get the exact 0.5 exact amplitude*
>>>> nt = ind(*(mjo_indx.gt.0.49 .and. mjo_indx.lt.0.51)* .and. \
>>>> (imon.ge.5 .and. imon.le.10).and. \
>>>> ang.ge.angBnd(0,n) .and. ang.lt.angBnd(1,n))
>>>> else
>>>> nt = ind(*(mjo_indx.gt.0.49 .and. mjo_indx.lt.0.51) *.and.
>>>> \
>>>> (imon.ge.11 .or. imon.le. 4).and. \
>>>> ang.ge.angBnd(0,n) .and. ang.lt.angBnd(1,n))
>>>> end if
>>>> ..................
>>>>
>>>>
>>>>
>>>> *This is my printVarSummary(this message comes 5 times): *
>>>>
>>>> *Variable: xAvg*
>>>> Type: float
>>>> Total Size: 9792 bytes
>>>> 2448 values
>>>> Number of Dimensions: 2
>>>> Dimensions and sizes: *[lat | 17] x [lon | 144]*
>>>> Coordinates:
>>>> lat: [-20..20]
>>>> lon: [ 0..357.5]
>>>> Number Of Attributes: 5
>>>> _FillValue : 32766
>>>> long_name : Anomalies: Daily OLR
>>>> units : W/m^2
>>>> wgt_runave_op_ncl : wgt_runave_n
>>>> average_op_ncl : dim_avg over dimension(s): time
>>>>
>>>> *Variable: uAvg*
>>>> Type: float
>>>> Total Size: 9860 bytes
>>>> 2465 values
>>>> Number of Dimensions: 2
>>>> Dimensions and sizes: *[lat | 17] x [lon | 145]*
>>>> Coordinates:
>>>> lat: [ -20.. 20]
>>>> lon: [ 0.. 360]
>>>> Number Of Attributes: 4
>>>> _FillValue : -9.99e+08
>>>> long_name : Anomalies from Daily Climatology
>>>> wgt_runave_op_ncl : wgt_runave_n
>>>> average_op_ncl : dim_avg over dimension(s): time
>>>>
>>>> *Variable: vAvg*
>>>> Type: float
>>>> Total Size: 9860 bytes
>>>> 2465 values
>>>> Number of Dimensions: 2
>>>> Dimensions and sizes: *[lat | 17] x [lon | 145]*
>>>> Coordinates:
>>>> lat: [ -20.. 20]
>>>> lon: [ 0.. 360]
>>>> Number Of Attributes: 4
>>>> _FillValue : -9.99e+08
>>>> long_name : Anomalies from Daily Climatology
>>>> wgt_runave_op_ncl : wgt_runave_n
>>>> average_op_ncl : dim_avg over dimension(s): time
>>>>
>>>> *Then, i got this printVarSummary error message after the 6th
>>>> iteration.*
>>>> *uAvg,xAvg, and vAvg* become only *1 dimension* and then the process
>>>> stopped.
>>>> (this message should have 8 message (iteration), but when comes the 6th
>>>> iteration the printVar Summary become like this, and the it stopped):
>>>>
>>>> *Variable: xAvg*
>>>> Type: float
>>>> Total Size: 68 bytes
>>>> 17 values
>>>> Number of Dimensions: 1
>>>> Dimensions and sizes: *[lat | 17]*
>>>> Coordinates:
>>>> lat: [-20..20]
>>>> Number Of Attributes: 6
>>>> _FillValue : 32766
>>>> time : 1903728
>>>> long_name : Anomalies: Daily OLR
>>>> units : W/m^2
>>>> wgt_runave_op_ncl : wgt_runave_n
>>>> average_op_ncl : dim_avg over dimension(s): lon
>>>>
>>>> *Variable: uAvg*
>>>> Type: float
>>>> Total Size: 68 bytes
>>>> 17 values
>>>> Number of Dimensions: 1
>>>> Dimensions and sizes: *[lat | 17]*
>>>> Coordinates:
>>>> lat: [ -20.. 20]
>>>> Number Of Attributes: 5
>>>> _FillValue : -9.99e+08
>>>> time : 1144800
>>>> long_name : Anomalies from Daily Climatology
>>>> wgt_runave_op_ncl : wgt_runave_n
>>>> average_op_ncl : dim_avg over dimension(s): lon
>>>>
>>>> *Variable: vAvg*
>>>> Type: float
>>>> Total Size: 68 bytes
>>>> 17 values
>>>> Number of Dimensions: 1
>>>> Dimensions and sizes: *[lat | 17]*
>>>> Coordinates:
>>>> lat: [ -20.. 20]
>>>> Number Of Attributes: 5
>>>> _FillValue : -9.99e+08
>>>> time : 1144800
>>>> long_name : Anomalies from Daily Climatology
>>>> wgt_runave_op_ncl : wgt_runave_n
>>>> average_op_ncl : dim_avg over dimension(s): lon
>>>> fatal:Number of dimensions in parameter (1) of
>>>> (gsn_csm_vector_scalar_map) is (1), (2) dimensions were expected
>>>> fatal:["Execute.c":8635]:Execute: Error occurred at or near line 248
>>>>
>>>>
>>>> *Best Regards, *
>>>> *Reza*
>>>>
>>>> Pada tanggal Min, 5 Jan 2020 pukul 22.28 Rick Brownrigg <
>>>> brownrig at ucar.edu> menulis:
>>>>
>>>>> In the two code excerpts you provided, you left out perhaps the most
>>>>> critical piece (from the original script, shown highlighted):
>>>>>
>>>>> if (nSeason.eq.1) then
>>>>> nt = ind(mjo_indx.gt.1.0 .and. \
>>>>> (imon.ge.5 .and. imon.le.10).and. \
>>>>> ang.ge.angBnd(0,n) .and. ang.lt.angBnd(1,n))
>>>>> else
>>>>> nt = ind(mjo_indx.gt.1.0 .and. \
>>>>> (imon.ge.11 .or. imon.le. 4).and. \
>>>>> ang.ge.angBnd(0,n) .and. ang.lt.angBnd(1,n))
>>>>> end if
>>>>> if (.not.all(ismissing(nt))) then* xAvg = dim_avg_Wrap( x(lat|:,lon|:,time|nt) )
>>>>> uAvg = dim_avg_Wrap( u(lat|:,lon|:,time|nt) )
>>>>> vAvg = dim_avg_Wrap( v(lat|:,lon|:,time|nt) )
>>>>> * nDays(na) = dimsizes(nt)
>>>>>
>>>>> res at tmXBLabelsOn = False ; do not draw lon labels
>>>>> res at tmXBOn = False ; lon tickmarks
>>>>> if (n.eq.(nPhase-1)) then ;
>>>>> res at tmXBLabelsOn = True ; draw lon labels
>>>>> res at tmXBOn = True ; tickmarks
>>>>> end if
>>>>>
>>>>> plot(na) = gsn_csm_vector_scalar_map(wks,uAvg,vAvg,xAvg,res)
>>>>> end if
>>>>>
>>>>>
>>>>> The error message is self-explanatory -- the docs for
>>>>> gsn_csm_vector_scalar_map() state that uAvg/vAvg/xAvg must be two
>>>>> dimensional. I would suggest putting in print statements right after the
>>>>> highlighted lines to see what are the values/dimensionalities of any/all of
>>>>> the variables x/u/v/xAvg/uAvg/vAvg/nt. Did the script work for your data
>>>>> prior to making changes to how nt is calculated? If so, then pretty
>>>>> clearly the issue is with what nt looks like. If not, perhaps there are
>>>>> other modifications need to conform the script to your data (or vice-versa).
>>>>>
>>>>> Hope that helps...
>>>>> Rick
>>>>>
>>>>> On Sat, Jan 4, 2020 at 7:13 PM reza tisa via ncl-talk <
>>>>> ncl-talk at ucar.edu> wrote:
>>>>>
>>>>>> Hello NCL User,
>>>>>> I am trying to plot mjoclivar_16 (
>>>>>> https://www.ncl.ucar.edu/Applications/Scripts/mjoclivar_16.ncl) with
>>>>>> amplitude equal to 0.5.
>>>>>> *I change from this :*
>>>>>> ....
>>>>>> if (nSeason.eq.1) then
>>>>>> nt = ind((mjo_indx.gt.1.0 .and. \
>>>>>> (imon.ge.5 .and. imon.le.10).and. \
>>>>>> ang.ge.angBnd(0,n) .and. ang.lt.angBnd(1,n))
>>>>>> else
>>>>>> nt = ind(mjo_indx.gt.1.0 .and. \
>>>>>> (imon.ge.11 .or. imon.le. 4).and. \
>>>>>> ang.ge.angBnd(0,n) .and. ang.lt.angBnd(1,n))
>>>>>> end if
>>>>>> ........
>>>>>>
>>>>>> *To this :*
>>>>>> .....
>>>>>> line 228 (on myscript)
>>>>>> if (nSeason.eq.1) then
>>>>>> nt = ind((mjo_indx.gt.0.49 .and. mjo_indx.lt.0.51) .and.
>>>>>> \
>>>>>> (imon.ge.5 .and. imon.le.10).and. \
>>>>>> ang.ge.angBnd(0,n) .and. ang.lt.angBnd(1,n))
>>>>>> else
>>>>>> nt = ind((mjo_indx.gt.0.49 .and. mjo_indx.lt.0.51)
>>>>>> .and. \
>>>>>> (imon.ge.11 .or. imon.le. 4).and. \
>>>>>> ang.ge.angBnd(0,n) .and. ang.lt.angBnd(1,n))
>>>>>> end if
>>>>>> .......
>>>>>>
>>>>>>
>>>>>> *Then, i got this error*
>>>>>>
>>>>>> fatal:Number of dimensions in parameter (1) of
>>>>>> (gsn_csm_vector_scalar_map) is (1), (2) dimensions were expected
>>>>>> fatal:["Execute.c":8635]:Execute: Error occurred at or near line 245
>>>>>> ......
>>>>>> ncl 240> if (n.eq.(nPhase-1)) then ;
>>>>>> ncl 241> res at tmXBLabelsOn = True ; draw lon
>>>>>> labels
>>>>>> ncl 242> res at tmXBOn = True ;
>>>>>> tickmarks
>>>>>> ncl 243> end if
>>>>>> ncl 244> printVarSummary(na)
>>>>>> *ncl 245> plot(na) =
>>>>>> gsn_csm_vector_scalar_map(wks,uAvg,vAvg,xAvg,res)*
>>>>>> ncl 246> end if
>>>>>> ncl 247> delete(nt) ; will change next iteration
>>>>>> ncl 248> end do
>>>>>> .......
>>>>>>
>>>>>> *This is my printVarSummary:*
>>>>>> *Variable: mjo_indx*
>>>>>> Type: float
>>>>>> Total Size: 3744 bytes
>>>>>> 936 values
>>>>>> Number of Dimensions: 1
>>>>>> Dimensions and sizes: [time | 936]
>>>>>> Coordinates:
>>>>>> time: [1890960..1913400]
>>>>>> Number Of Attributes: 3
>>>>>> info : (PC1^2 + PC2^2)
>>>>>> long_name : MJO PC INDEX
>>>>>> _FillValue : 32766
>>>>>>
>>>>>> *Variable: na*
>>>>>> Type: integer
>>>>>> Total Size: 4 bytes
>>>>>> 1 values
>>>>>> Number of Dimensions: 1
>>>>>> Dimensions and sizes: [1]
>>>>>> Coordinates:
>>>>>>
>>>>>> Any solution for this?
>>>>>> _______________________________________________
>>>>>> ncl-talk mailing list
>>>>>> ncl-talk at ucar.edu
>>>>>> List instructions, subscriber options, unsubscribe:
>>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>>
>>>>> _______________________________________________
>>> 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/20200112/4bb5641b/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: MJO_PC_INDEX.nc
Type: application/octet-stream
Size: 285700 bytes
Desc: not available
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20200112/4bb5641b/attachment-0001.obj>
More information about the ncl-talk
mailing list