[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