Project

General

Profile

EOF and area weighting

Added by Paolo Davini over 12 years ago

Goodmorning,

I have a question which is probably kind of simple, but I don't know how to solve this without asking here.

I am computing the EOF analysis through the eof function in CDO, and I am wondering if the area weighting (which is mandatory for this kind of analysis in spheric coordinates as in a model or in Reanalysis data) is included in the computation or if the anomalies must be weighted previous the operation.

Thank to everybody in advance.
Kind Regards

Paolo


Replies (1)

RE: EOF and area weighting - Added by Hans Chen about 12 years ago

Hi Paolo,

I realize you posted this one month ago, but maybe it could still be helpful for you or someone else who stumbles upon this. I had the same question and found your thread when Googling. In an attempt to find the answer, I checked the source code of CDO and found the following in src/EOFs.c:

/*                                                                                                        
 * TODO:                                                                                                  
 * Role of the weights for eofs. Should not be mixed up with division with                                
 * number of contributing values during summation.                                                        
 */                                                                                                       

//#define OLD_IMPLEMENTATION                                                                              
#define WEIGHTS 1

[...]

  weight      = (double*) malloc(gridsize*sizeof(double));                                                
  if ( WEIGHTS )                                                                                          
    gridWeights(gridID1, &weight[0]);                                                                     
  else                                                                                                    
    for(i=0;i<gridsize;i++)                                                                               
      weight[i]=1;                                                                                       

So to answer your question, yes, I believe CDO uses area weighting when computing the EOFs (note that I'm not 100 % sure), at least in 1.5.4 which is the version I use. I also tried to change WEIGHTS to 0 and it yielded a different result.

With best regards,
Hans

    (1-1/1)