# [ncl-talk] The rigmost dimension of x must be equal to the rightmost dimension of y

Fri Sep 1 16:04:33 MDT 2017

```Hi Melanie,
clmMonTLL and calcMonAnomTLL expect the input arrays to be 3-dimensional
and ordered time x latitude x longitude. Your x2 array is a 4-dimensional
array. Try doing this to eliminate the depth dimension:
x2Clm   = clmMonTLL(x2(:,0,:,:))                             ;
(12,lat,lon;)
x2Anom  = calcMonAnomTLL(x2(:,0,:,:), xClm)                ; (time, lat,lon)

alternatively, you can use rmMonAnnCycTLL to do the same thing:
x2Anom = rmMonAnnCycTLL(x2(:,0,:,:))

https://www.ncl.ucar.edu/Document/Functions/Contributed/rmMonAnnCycTLL.shtml

Hope that helps!

On Fri, Sep 1, 2017 at 12:58 PM, Melanie O' hanoly <mel.hanoly at gmail.com>
wrote:

>
> Thank you so much for help me..
> But  now have some problems in calculating anomalies
>
> Variable: x
> Type: double
> Total Size: 29760000 bytes
>             3720000 values
> Number of Dimensions: 3
> Dimensions and sizes: [time | 372] x [lat | 100] x [lon | 100]
> Coordinates:
>             time: [   0..16260480]
>             lat: [-89.09999999999999..89.10000000000002]
>             lon: [   0..356.4]
> Number Of Attributes: 2
>   _FillValue : -999000000
>   missing_value : -999000000
>
> Variable: x2
> Type: float
> Total Size: 14880000 bytes
>             3720000 values
> Number of Dimensions: 4
> Dimensions and sizes: [time | 372] x [depth | 1] x [latitude | 100] x
> [longitude | 100]
>
> fatal:Number of dimensions in parameter (0) of (clmMonTLL) is (4), (3)
> dimensions were expected
> fatal:["Execute.c":8640]:Execute: Error occurred at or near line 86 in
> file eof.ncl
>
> fatal:Number of dimensions in parameter (0) of (calcMonAnomTLL) is (4),
> (3) dimensions were expected
> fatal:["Execute.c":8640]:Execute: Error occurred at or near line 88 in
> file eof.ncl
>
> This is my script
>
> "; ==============================================================
> ; compute climatology and Anomalies                      2 file
> ; =============================================================
>  (86)  x2Clm   = clmMonTLL(x2)                             ; (12,lat,lon;)
>  (87)
>  (88)  x2Anom  = calcMonAnomTLL(x2, xClm)                ; (time, lat,lon)
>
>   printVarSummary(x2Anom)
>    printMinMax(x2Anom, True)
> ; ================================================================="
>
>
>
> On Tue, Aug 22, 2017 at 5:42 PM, Adam Phillips <asphilli at ucar.edu> wrote:
>
>> Hi Melanie,
>> regCoef operates on the rightmost dimensions of the two input arrays, and
>> expects those two rightmost dimensions to have the same size. See the
>> documentation here:
>> https://www.ncl.ucar.edu/Document/Functions/Built-in/regCoef-1.shtml
>> referring specifically to the Arguments - y section near the top.
>>
>> Thus, assuming your EOF/principal component timeseries was computed over
>> the TIME1 dimension, you should change this:
>> eof_regres(ne,:,:) = (/ regCoef(eof_ts(ne,:),
>> x2(TIME1|:,DEPTH1_1|:,LAT|:,LON|:))/)
>> to this:
>> eof_regres(ne,:,:) = (/ regCoef(eof_ts(ne,:),
>> x2(DEPTH1_1|0,LAT|:,LON|:,TIME1|:))/)
>> (Note that I also changed "DEPTH1_1|:" to "DEPTH1_1|0" so that the first
>> and only index is chosen, that way the array returned to the lefthand side
>> of the equal sign will be dimensioned lat (100) x lon (100).)
>>
>> If you were using regCoef_n, you could do this:
>> eof_regres(ne,:,:) = (/ regCoef_n(eof_ts(ne,:),
>> x2(TIME1|:,DEPTH1_1|0,LAT|:,LON|:),0,0) /)
>>
>> The last two arguments represent the dimension number to operate on for
>> the eof_ts and x2 arrays. In this specific case, you are index subscripting
>> eof_ts from a 2D array to a 1D array, and thus regCoef_n will only see a 1D
>> array and the 1st dimension should be operated on. Finally, you are
>> dimension reordering x2, and you don't really need to do this if you were
>> to use regCoef_n. You just need to indicate the correct dimension to
>> operate on with the last provided argument.
>>
>> Hope that all helps. If you have any further questions please respond to
>> the ncl-talk email list.
>>
>> On Tue, Aug 22, 2017 at 2:19 PM, Melanie O' hanoly <mel.hanoly at gmail.com>
>> wrote:
>>
>>> *Dear NCL users, I just have a little knowledge on NCL. So, could anyone help me?*
>>>
>>> *I have two data with 372 timestep, one has 3D and the other 4D, someone please help me with this error?*
>>>
>>> *"**fatal:regCoef: The rightmost dimension of x must be equal to the rightmost dimension of y"*
>>>
>>> *The summary is bellow*
>>>
>>>
>>> *This is the scrip line error "; Regress;
>>> =================================================================
>>> eof_regres = eof ; create an array w meta data do ne=0,neof-1
>>> eof_regres(ne,:,:) = (/ regCoef(eof_ts(ne,:),
>>> x2(TIME1|:,DEPTH1_1|:,LAT|:,LON|:))/) end do printVarSummary(eof_regres)
>>> printMinMax(eof_regres, True)*
>>> *"*
>>>
>>>
>>> *If i use regCoef_n, shows this error "fatal:syntax error: function
>>> regCoef_n expects 4 arguments, got 2"*
>>> Summary
>>>  University Corporation for Atmospheric Research
>>>  NCAR Command Language Version 6.4.0
>>>  The use of this software is governed by a License Agreement.
>>>  See http://www.ncl.ucar.edu/ for more details.
>>>
>>> Variable: x
>>> Type: double
>>> Total Size: 29760000 bytes
>>>             3720000 values
>>> Number of Dimensions: 3
>>> Dimensions and sizes: [time | 372] x [lat | 100] x [lon | 100]
>>> Coordinates:
>>>             time: [   0..16260480]
>>>             lat: [-89.09999999999999..89.10000000000002]
>>>             lon: [   0..356.4]
>>> Number Of Attributes: 2
>>>   _FillValue : -999000000
>>>   missing_value : -999000000
>>>
>>> Variable: x2
>>> Type: double
>>> Total Size: 29760000 bytes
>>>             3720000 values
>>> Number of Dimensions: 4
>>> Dimensions and sizes: [TIME1 | 372] x [DEPTH1_1 | 1] x [LAT | 100] x
>>> [LON | 100]
>>> Coordinates:
>>>             TIME1: [1928.06849316134..1958.561643829649]
>>>             DEPTH1_1: [17.5..17.5]
>>>             LAT: [-89.1..89.1]
>>>             LON: [ 0..356.4]
>>> Number Of Attributes: 4
>>>   long_name : DIC[L=1:372]
>>>   _FillValue : -9.999999999999999e+33
>>>   missing_value : -9.999999999999999e+33
>>>   history : From dic_uvic
>>>
>>> Variable: eof_ts
>>> Type: double
>>> Total Size: 2976 bytes
>>>             372 values
>>> Number of Dimensions: 2
>>> Dimensions and sizes: [evn | 1] x [time | 372]
>>> Coordinates:
>>>             evn: [1..1]
>>>             time: [   0..16260480]
>>> Number Of Attributes: 3
>>>   ts_mean : 1.196080271862835e-13
>>>   matrix : covariance
>>>   _FillValue : -999000000
>>>
>>> fatal:regCoef: The rightmost dimension of x must be equal to the
>>> rightmost dimension of y
>>> fatal:["Execute.c":8640]:Execute: Error occurred at or near line 128 in
>>> file eof_cfsr.ncl
>>>
>>> Variable: eof_regres
>>> Type: double
>>> Total Size: 80000 bytes
>>>             10000 values
>>> Number of Dimensions: 3
>>> Dimensions and sizes: [evn | 1] x [lat | 100] x [lon | 100]
>>> Coordinates:
>>>             evn: [1..1]
>>>             lat: [-89.09999999999999..89.10000000000002]
>>>             lon: [   0..356.4]
>>> Number Of Attributes: 6
>>>   _FillValue : -999000000
>>>   method : transpose
>>>   matrix : covariance
>>>   pcvar : 13.29658
>>>   eval : 634047.31020702
>>>   eval_transpose : 24386.43500796231
>>> (0)
>>> (0) min=-0.04332826535433597   max=0.02833814180143831
>>>
>>>
>>> *Melanie O'Hanoly*
>>> *Oceangrapher*
>>> *PhD canditate at Alfred Wegener Institute Helmholtz Centre for Polar
>>> and Marine Research*
>>>
>>> _______________________________________________
>>> ncl-talk mailing list
>>> ncl-talk at ucar.edu
>>> List instructions, subscriber options, unsubscribe:
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>
>>>
>>
>>
>> --
>> Associate Scientist,  Climate and Global Dynamics Laboratory, NCAR
>> www.cgd.ucar.edu/staff/asphilli/   303-497-1726 <(303)%20497-1726>
>>
>> <http://www.cgd.ucar.edu/staff/asphilli>
>>
>
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>

--