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

Adam Phillips asphilli at ucar.edu
Tue Aug 22 14:42:13 MDT 2017


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.
Adam

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
> Copyright (C) 1995-2017 - All Rights Reserved
>  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
>
>


-- 
Adam Phillips
Associate Scientist,  Climate and Global Dynamics Laboratory, NCAR
www.cgd.ucar.edu/staff/asphilli/   303-497-1726

<http://www.cgd.ucar.edu/staff/asphilli>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20170822/9c7684a7/attachment.html 


More information about the ncl-talk mailing list