[ncl-talk] Number of dimensions in parameter (1) of (gsn_csm_vector_scalar_map) is (1), (2) dimensions were expected

reza tisa rezatisa1 at gmail.com
Mon Jan 6 16:37:57 MST 2020


Thank you so much Mr.Rick and Mr.Dennis for your advice,
Now, i am print and still inspecting the data

This is all my file if you need to see the data:
olr anomaly:
https://drive.google.com/open?id=1lgzfmmadfmXUWkUT1n8DAsTbvp0oQ-Fc

uwnd 850 anomaly
https://drive.google.com/open?id=1PKpTYxGT5VAE6F5ydu0j89VHlRN7gC9p

vwnd 850 anomaly
https://drive.google.com/open?id=1dHLN40qMCihCeTdBuX48tgJfRlW9HCZC

mjo pc index (got by running mjo clivar_14):
https://drive.google.com/open?id=1pr6wTdRXE0AWaPbh-Q8wWHca8NZLTLQw


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/20200107/f608e928/attachment.html>


More information about the ncl-talk mailing list