Enc: svdstd_sv doubt

From: <leonardo.silva_at_nyahnyahspammersnyahnyah>
Date: Tue Dec 15 2009 - 07:25:15 MST

Hi all again

This is the script that I'm using to calculate the expansion
coeficients of the SVD calculus.

I think that the things were ok until the matricies multiplying to
construct the expasion coeficients. I type a printVarSummary below to
show the dimension of the variables.

If anyone could help me i will be grateful.

ncl 0> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
ncl 1> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
ncl 2> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
ncl 3>
ncl 4> nsvd = 1
ncl 5>
ncl 6> ntim = 358
ncl 7> nlat = 28
ncl 8> mlon = 47
ncl 9>
ncl 10> ncase = 2
ncl 11> ncase1 = 1
ncl 12>
ncl 13> a = new ( (/ncase,nlat,mlon,ntim/) , float)
ncl 14> a!0 = "case" ; name dimension
ncl 15>
ncl 16> diri = "/media/disk/echam5/u-v10m/"
ncl 17>
ncl 18> f = addfile (diri+"EH5_OM_20C_2_TSURF_DETRENDRUNMEAN.nc", "r")
ncl 19> sst = f->tsurf(lat|:,lon|:,time|:)
ncl 20>
ncl 21> f0 = addfile (diri+"EH5_OM_20C_2_U10M_DETRENDRUNMEAN.nc", "r")
ncl 22> a(0,:,:,:) = f0->u10(lat|:,lon|:,time|:)
ncl 23>
ncl 24> f1 = addfile (diri+"EH5_OM_20C_2_V10M_DETRENDRUNMEAN.nc", "r")
ncl 25> a(1,:,:,:) = f1->v10(lat|:,lon|:,time|:)
ncl 26>
ncl 27> dimsst = dimsizes(sst)
ncl 28> nlat = dimsst(0)
ncl 29> mlon = dimsst(1)
ncl 30> ntim = dimsst(2)
ncl 31>
ncl 32> dimV = dimsizes(a)
ncl 33> ncas1 = dimV(0)
ncl 34> nlat1 = dimV(1)
ncl 35> mlon1 = dimV(2)
ncl 36> ntim1 = dimV(3)
ncl 37>
ncl 38> if (ntim.ne.ntim1) then
ncl 39> print("time dimensions must be the same: ntim="+ntim+"
, ntim1="+ntim1)
ncl 40> exit
ncl 41> end if
ncl 42>
ncl 43> T = onedtond( ndtooned(sst), (/ntim ,nlat *mlon /))
ncl 44> V = onedtond( ndtooned(a) , (/ntim1,nlat1*mlon1/))
warning:onedtond : output dimension sizes have fewer elements than
input, some data not
copied
ncl 45> T!0 = "time"
ncl 46> T!1 = "space"
ncl 47> V!0 = "time"
ncl 48> V!1 = "space"
ncl 49>
ncl 50> TT = T(space|:,time|:)
ncl 51> VV = V(space|:,time|:)
ncl 52>
ncl 53> svLeft = new((/nsvd,nlat *mlon /),float)
ncl 54> svRight = new((/nsvd,nlat1*mlon1/),float)
ncl 55>
ncl 56> svdec = svdstd_sv(TT,VV,nsvd,svLeft,svRight)
ncl 57>
ncl 58> asciiwrite("svd.dat", svdec)
ncl 59> asciiwrite("svLeft.dat", svLeft)
ncl 60> asciiwrite("svRight.dat", svRight)
ncl 61>
ncl 62>
ncl 63> Le = svLeft
ncl 64> Le!0 = "time"
ncl 65> Le!1 = "space"
ncl 66> Left = Le(space|:,time|:)
ncl 67>
ncl 68> Ri = svRight
ncl 69> Ri!0 = "time"
ncl 70> Ri!1 = "space"
ncl 71> Right = Ri(space|:,time|:)
ncl 72>
ncl 73> transsvLeft = transpose(Left)
ncl 74> transsst = transpose(T)
ncl 75>
ncl 76> transsvRight = transpose(Right)
ncl 77> transV = transpose(V)
ncl 78>
ncl 79> expcoeficientsL = transsvLeft*transsst
fatal:Mul: Dimension size, for dimension number 0, of operands does
not match, can't
continue

fatal:Execute: Error occurred at or near line 79

ncl 80> expcoeficientsR = transsvRight*transV
fatal:Mul: Dimension size, for dimension number 0, of operands does
not match, can't
continue

fatal:Execute: Error occurred at or near line 80

ncl 81>
ncl 82> printVarSummary(transsvLeft)

Variable: transsvLeft
Type: float
Total Size: 5264 bytes
             1316 values
Number of Dimensions: 2
Dimensions and sizes: [time | 1] x [space | 1316]
Coordinates:
Number Of Attributes: 1
   _FillValue : -999
ncl 83> printVarSummary(transsst)

Variable: transsst
Type: float
Total Size: 1884512 bytes
             471128 values
Number of Dimensions: 2
Dimensions and sizes: [space | 1316] x [time | 358]
Coordinates:
ncl 84> printVarSummary(transsvRight)

Variable: transsvRight
Type: float
Total Size: 5264 bytes
             1316 values
Number of Dimensions: 2
Dimensions and sizes: [time | 1] x [space | 1316]
Coordinates:
Number Of Attributes: 1
   _FillValue : -999
ncl 85> printVarSummary(transV)

Variable: transV
Type: float
Total Size: 1884512 bytes
             471128 values
Number of Dimensions: 2
Dimensions and sizes: [space | 1316] x [time | 358]
Coordinates:
Number Of Attributes: 1
   _FillValue : -999

----- Mensagem encaminhada de leonardo.silva@cptec.inpe.br -----
     Data: Tue, 15 Dec 2009 10:20:22 -0200
     De: leonardo.silva@cptec.inpe.br
Enderešo para Resposta (Reply-To): leonardo.silva@cptec.inpe.br
  Assunto: svdstd_sv doubt
       Para: ncl-talk@ucar.edu

Hi all

I'm trying to aplly a SVD on a covariance matrix to create a spatial
pattern and a time series which represent the Atlantic Meridional
Mode. I'm using SST and 10m wind.

Is the svdstd_sv function suitable for that? The calculus done by the
SVD of that function was made over the covariance matrix of the two
fields?

Regards

Leonardo

----- Final da mensagem encaminhada -----

_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Tue Dec 15 07:25:25 2009

This archive was generated by hypermail 2.1.8 : Thu Dec 17 2009 - 17:15:52 MST