[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