[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
Mon Jan 6 12:52:38 MST 2020


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/20200106/5fd9ab62/attachment.html>


More information about the ncl-talk mailing list