[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
Sun Jan 5 23:10:46 MST 2020


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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20200106/a418c727/attachment.html>


More information about the ncl-talk mailing list