[Thread Prev][Thread Next][Index]

Re: SAVE in EOF analysis



Hi Boyin,
You are right. The spatial, time and statistics are all computed
each time the the underlying EOF software is called, but as the
Ferret External Functions framework can only return one
(multi-dimensional) result for each function, there we wrote three
functions, which each return one of the results. This indeed means
that the same calculation is repeated when you call eof_space,
eof_tfunc, and eof_stat, and for larger problems this is a big waste
of computing time.
If you like, I can provide the source code for these, if you would
like to create one function which writes some of the results out to
intermediate files. Then you could compile this function yourself and
call it as a locally-compiled external function.

Another thing which will help is a set of functions which are not yet
released, which run faster. These functions can be called in cases where
the input data does not have gaps in time. Please see this and other
messages in the mail archives, which you'll find if you search for the
string "SVD" in the archives.

http://ferret.pmel.noaa.gov/Ferret/Mail_Archives/fu_2003/msg00647.html

I will try to make these functions available as external function code
which users can compile themselves, as soon as possible.

Ansley Manke

Boyin Huang wrote:

Hi, ferreters:

I have two questions

(1) We use the following commands to calculate EOF
space distribution and its time magnitude. Does this
mean that the caculation for eof_space, eof_st, and
eof_tfunc is compeletely separated? I would simply
think that the time function and statistics should
have already stored somewhere, when eof_space is
calculated (about an hour). But it looks not, since
"LET eof_st = eof_stat" also takes an hour to finish.

LET eof_xy =
eof_space(eof_ave[X=($x1):($x2),Y=($y1):($y2)], 0.5)
LET eof_st = eof_stat
(eof_ave[X=($x1):($x2),Y=($y1):($y2)], 0.5)
LET eof_tm =
eof_tfunc(eof_ave[X=($x1):($x2),Y=($y1):($y2)], 0.5)

SAVE/CLOBBER/FILE="eof_space.cdf" eof_xy
SAVE/CLOBBER/FILE="eof_tfunc.cdf" eof_tm[i=1:`nout`]
SAVE/CLOBBER/FILE="eof_stats.cdf" eof_st

(2) Using ncdump command, I found that the number of
EOFs are not consistent: 4550 or 3687? Although we are
interested in first several EOFs, the question is: are
they consistent in space and time domain when we talk
about EOF-n?

netcdf eof_stats {
dimensions:
XAX1_4550 = 4550 ; YAX1_3 = 3 ;


netcdf eof_space {
dimensions:
LONGITUDE66_156 = 91 ;
LATITUDE18_67 = 50 ;
LATITUDE18_67edges = 51 ;
TAX1_4550 = UNLIMITED ; // (4550 currently)

netcdf eof_tfunc {
dimensions:
XAX1_3687 = 3687 ;
TYEAR = UNLIMITED ; // (10 currently)





=====
Boyin Huang
The Center for Research on the Changing Earth System (CRCES)
10211 Wincopin Circle, Suite 240
Columbia, Maryland 21044
Tel. 410-992-5300/819 (O), 410-737-4557(H)
Fax. 410-992-5944, Email. byh@crces.org
http://byh.crces.org

__________________________________
Do you Yahoo!?
Exclusive Video Premiere - Britney Spears
http://launch.yahoo.com/promos/britneyspears/



[Thread Prev][Thread Next][Index]

Dept of Commerce / NOAA / OAR / PMEL / TMAP

Contact Us | Privacy Policy | Disclaimer | Accessibility Statement