[ncl-talk] eofunc giving empty eigenvalues

Giorgio Graffino g.graffino at tim.it
Sun Apr 4 04:38:46 MDT 2021


Thanks Will,
I think you've hit close to home. The first time step of the original fields, which are auto-covariances computed with escovc along the multimodel ensemble dimension, is shown in the attached plot. The resulting field is largely empty for the zonal wind stress and for the wind stress curl; their time auto-covariance is even emptier. Not surprisingly, the EOFs for those two variables are blank. MSLP and TAS look fine instead. Probably there is nothing wrong with eofunc, the problem is the input field.
Cheers,Giorgio




  ----Messaggio originale----
 
 Da: will.hobbs at utas.edu.au
 
 Data: 31-mar-2021 0.55
 
 A: "Giorgio Graffino"<g.graffino at tim.it>, "ncl-talk at ucar.edu"<ncl-talk at ucar.edu>
 
 Ogg: Re: [ncl-talk] eofunc giving empty eigenvalues
 

 

 
  Hi Giorgio
    
  
    
      
    
  I don’t know the specific LAPACK code too well, but this could happen because of weak/zero covariances. There are a couple of things you may need to check with your data (if you haven’t already done so) ;
    
  
    
      
    
  
   Is it possible you have too many data points with no variance at all (e.g. land masked, or too many repeating values)
     
   The data is just white/red noise, which again will give very low covariances
     
  
  
    
      
    
  As you say, you’re masking out those weak/zero covariances, but have you checked to see how many actual values are left?
    
  
    
      
    
  Will 
    
  
    
      
    
  
    
      
    
  
   From: ncl-talk <ncl-talk-bounces at mailman.ucar.edu> on behalf of Giorgio Graffino via ncl-talk <ncl-talk at mailman.ucar.edu>
Reply to: Giorgio Graffino <g.graffino at tim.it>
Date: Wednesday, 31 March 2021 at 2:34 am
To: "ncl-talk at ucar.edu" <ncl-talk at ucar.edu>
Subject: [ncl-talk] eofunc giving empty eigenvalues
     
  
  
   
    
      
    
  
  
   Dear NCL people,
    
  
  
   
    
      
    
  
  
   I'm struggling at computing the EOFs of a zonal wind stress field. I'm always getting this warning from the eofunc functions:
    
  
  
   
    
      
    
  
  
   Warning! LAPACK routine returned eigenvalue <= 0. 
 Setting it to zero...

I've seen that the original LAPACK's dspevx function sets a 1.e-6 threshold for computing EOFs; if there is a value below that threshold, zero EOFs are returned (https://github.com/yyr/ncl/blob/master/ni/src/lib/nfpfort/eof_scripps.f). I'm using the where function to set all values below 1.e-6 as fill values (something like taux = where(taux.le.1.e-6,taux at _FillValue,taux)) before the eofunc function is called, yet I'm getting the same warning and the same empty EOFs. Is there anything else I'm missing?
    
  
  
   
    
      
    
  
  
   Thanks,
    
  
  
   Giorgio
    
  
 
 

 This email is confidential, and is for the intended recipient only. Access, disclosure, copying, distribution, or reliance on any of it by anyone outside the intended recipient organisation is prohibited and may be a criminal offence. Please delete if obtained in error and email confirmation to the sender. The views expressed in this email are not necessarily the views of the University of Tasmania, unless clearly intended otherwise.
 



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20210404/a28e0468/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Volcano_sig2noieof_cmip5_historical.png
Type: image/png
Size: 185575 bytes
Desc: not available
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20210404/a28e0468/attachment.png>


More information about the ncl-talk mailing list