ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:363.25KB ,
资源ID:23049568      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23049568.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(气象统计分析与预报经验正交函数分解.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

气象统计分析与预报经验正交函数分解.docx

1、气象统计分析与预报经验正交函数分解实验二 经验正交函数分解一、目的和要求:经验正交函数分解(EOF)是统计天气分析中气象要素场最基础的研究模型,是必须理解和掌握的方法之一,是后续课程中许多气象要素场的计算结果的理解的基础理论,也是毕业设计和论文中的基本分析方法。该方法用个数较少的几个空间分布模态来描述环流形势,而且基本涵盖环流场的信息,既能作为天气分析模型,其方法的延拓又能作为天气预报模型,在实际工作中也有极强的实用意义。通过该实验,深刻理解气象要素场的统计模型的意义,掌握气象要素场分析的基本方法,为实际预报业务和科研工作打下一定的基础。二、实验的主要内容:对(-,-)850hPa高度场进行经

2、验正交展开(EOF.FOR),输出分析主要参数指标;绘制环流型图和相应的时间系数序列图,并加以分析。三、步骤:3.1 熟悉资料方法3.1.1 资料提供的资料为NCEP/NCAR 60年(1948年-2007年)逐年112月的850hPa高度场资料,资料范围为(-,-),网格距为2.5*2.5,纬向格点数为144,经向格点数为73。资料为NC格式,资料从南到北、自西向东排列,每月为一个记录,按年逐月排放,注意读取方式以及记录长度。本次实验应用NCEP/NCAR(-,-) 58年(1948年-2005年)逐年7月的850hPa高度场资料,纬向格点数为73,经向格点数为37。3.1.2 方法(经验正

3、交函数分解EOF)EOF(经验正交函数分解)是针对气象要素场进行的,其基本原理是把包含p个空间点(变量)的场随时间变化进行分解。设抽取样本容量为n的资料.则场中任一空间点i和任一时间点j的距平观测值可看成由p个空间函数和时间函数(k=1,2,p)的线性组合,表示成EOF功能是从一个气象场多次观测资料中识别出主要空间型及其时间演变规律。EOF展开就是将气象变量场分解为空间函数(V)和时间函数(T)两部分的乘积之和:X=VT。应用步骤:1) 资料预处理(距平或标准化处理)2) 计算协方差矩阵3) 用Jacobi方法或迭代法计算协方差矩阵的特征值与特征向量4) 将特征值从大到小排列5) 计算特征向量

4、的时间系数6) 计算每个特征向量的方差贡献7) 结果输出3.2 编写程序要求编写主程序,其中包括资料读入,范围截取,子程序调用。注意:EOF的资料输入,时间场一维,空间场一维。*(附程序,对关键部分标志出)*EOF程序C*C *C PROGRAM NOTES *C *C THIS PROGRAM USES EOF TO ANALYSIS TIME SERIES *C OF METEOROLOGICAL FIELD *C *C*C *C * Parameter Table * *C *C Mt=LENTH OF TIME SERIES *C N =NUMBER OF GRID-POINTS (

5、or STATIONS ) *C KS=-1, SELF; KS=0, DEPATURE; KS=1, STANDERDLIZED DEPATURE *C KV = NUMBER OF EIGENVALUES WILL BE OUTPUT *C KVT = NUMBER OF EIGENVECTORS AND TIME SERIES WILL BE OUTPUT *C MNH = Minimum(Mt,N) *C EGVT=EIGENVECTORS, ECOF=TIME COEFFICIENTS FOR EGVT *C ER(KV,1)=LAMDA; LAMDA=EIGENVALUE *C E

6、R(KV,2)=ACCUMULATE LAMDA *C ER(KV,3)=THE SUM OF COMPONENTS VECTORS PROJECTED ONTO *C EIGENVACTOR. *C ER(KV,4)=ACCUMULATE ER(KV,3) *C *C* PARAMETER(N=73*37, MT=58, MNH=58) PARAMETER(KS=1, KV=10, KVT=10) REAL F(N,MT),AVF(N),DF(N),ER(MNH,4) REAL A(MNH,MNH),S(MNH,MNH),V(MNH)c*c INFN输入数据文件名;OUTERA输出特征值及方

7、差贡献、累积方差贡献的文件名(文本);c OUTTC1输出时间系数文件(文本);OUTTC2输出时间系数文件(二进制);c OUTTEVT输出特征向量文件(二进制);c* CHARACTER*50 INFN,OUTERA,OUTTC1,OUTTC2,OUTEVT DATA INFN/hgt8501948-2005july.grd/ DATA OUTERA/hgt_XT03ER3.DAT/ DATA OUTTC1/hgt_XT03TC13.DAT/ DATA OUTTC2/hgt_XT03TC23.DAT/ DATA OUTEVT/hgt_XT03VT3.DAT/ C- Read ORIGINA

8、L DATA - write(*,*)Now is reading primative field ! OPEN (8,FILE=INFN,FORM=UNFORMATTED,ACCESS=DIRECT,RECL=N) DO IT=1,MT READ (8,REC=IT)(F(IS,IT),IS=1,N) END DO pause C* START TO RUN EOF PROGRAM * WRITE(*,*) write(*,*) FIRST STEP write(*,*) forming the initial matrix (F) by using TRANSF ! CALL TRANSF

9、(N,Mt,F,AVF,DF,KS) WRITE(*,*) write(*,*) STEP 2 write(*,*) achiving the covariance matrix by using the FORMA ! CALL FORMA(N,Mt,MNH,F,A) WRITE(*,*) write(*,*) STEP 3 write(*,*) caculating the eigenvalue and eigenvectors WRITE(*,*) by using Jacob method ! CALL JCB(MNH,A,S,0.001) WRITE(*,*) write(*,*)

10、STEP 4 write(*,*) arrange the eigenvalue and eigenvectors WRITE(*,*) by using ARRANG ! CALL ARRANG(MNH,A,ER,S) WRITE(*,*) write(*,*) STEP 5 write(*,*) the caculation of standard eigenvectors WRITE(*,*) by using TCOEFF ! CALL TCOEFF(KVT,N,Mt,MNH,S,F,V,ER) write(*,*) write(*,*) STEP 6 write(*,*) outpu

11、ting eigenvalue and accumulation using OUTER ! CALL OUTER(MNH,ER,OUTERA) WRITE(*,*) WRITE(*,*) STEP 7 write(*,*) outputing the time coefficient of the eigenvecters ! CALL OUTVT1(KVT,N,Mt,MNH,S,F,OUTTC1,OUTTC2) WRITE(*,*) WRITE(*,*) STEP 8 write(*,*) outputing the eigenvecters ! CALL OUTVT3(KVT,N,Mt,

12、MNH,S,F,OUTEVT) ENDC * FINISH THE MAIN PROGRAM *C *C SUBROUTINE FUNCTION *C *C THIS SUBROUTINE PRINTS ARRAY ER *C ER(KV,1) FOR SEQUENCE OF EIGENVALUE FROM BIG TO SMALL *C ER(KV,2) FOR EIGENVALUE FROM BIG TO SMALL *C ER(KV,3) FOR SMALL LO=(LAMDA/TOTAL VARIANCE) *C ER(KV,4) FOR BIG LO=SUM OF SMALL LO)

13、 *C *C - SAVING THE EIGENVALUE AND ERROR -* SUBROUTINE OUTER(MNH,ER,OUTERA) DIMENSION ER(MNH,4) CHARACTER*50 OUTERA open (30,file=OUTERA) WRITE(30,510) WRITE(30,520) WRITE(30,530) (IS,(ER(IS,J),J=1,4),IS=1,MNH) CLOSE(30) 510 FORMAT(25X,EIGENVALUE AND ANALYSIS ERROR) 520 FORMAT(5X,N,8X,LAMDA,10X,SLAM

14、DA,11X,PH,12X,SPH) 530 FORMAT(I6,2E15.6,2F15.5) RETURN ENDC*C SUBROUTINE FUNCTION *C *C THIS SUBROUTINE PRINTS STANDARD EIGENVECTORS *C AND ITS TIME-COEFFICENT SERIES *C*C - save time-coeffivcent seried of S.E. - SUBROUTINE OUTVT1(KVT,N,M,MNH,S,F,OUTTC1,OUTTC2) DIMENSION F(N,M),S(MNH,MNH) CHARACTER*

15、50 OUTTC1,OUTTC2 OPEN(31,file=OUTTC1) OPEN(32,file=OUTTC2,FORM=UNFORMATTED,ACCESS=DIRECT,RECL=KVT) WRITE(31,400) WRITE(31,200) (IS,IS=1,KVT) DO J=1,M IF(M.GE.N) THEN WRITE(31,300) J,(F(IS,J),IS=1,KVT) WRITE(32,REC=J) (F(IS,J),IS=1,KVT) ELSE WRITE(31,300) J,(S(J,IS),IS=1,KVT) WRITE(32,REC=J) (s(J,IS)

16、,IS=1,KVT) ENDIF END DO CLOSE(31) 200 FORMAT(3X,10I15) 300 FORMAT(I5,10E15.7) 400 FORMAT(30X,TIME-COEFFICENT SERIES OF S. E.) RETURN ENDC - save standard eignvectors - SUBROUTINE OUTVT3(KVT,N,M,MNH,S,F,OUTEVT) DIMENSION F(N,M),S(MNH,MNH) CHARACTER*50 OUTEVT OPEN(33,file=OUTEVT,FORM=UNFORMATTED,ACCES

17、S=DIRECT,RECL=N) DO JS=1,KVT IF(M.GE.N) THEN WRITE(33,REC=JS)(S(I,JS),I=1,N) ELSE WRITE(33,REC=JS)(F(I,JS),I=1,N) ENDIF END DO CLOSE(33) RETURN ENDC*C SUBROUTINE FUNCTION *C *C THIS SUBROUTINE PROVIDES INITIAL F BY KS (optional parameter) *C ks=-1, 0, or 1 according to primative field *C* SUBROUTINE

18、 TRANSF(N,M,F,AVF,DF,KS) REAL F(N,M),AVF(N),DF(N) IF (KS) 30,10,1010 DO I=1,N AVF(I)=0.0 DF(I)=0.0 END DO DO I=1,N DO J=1,M AVF(I)=AVF(I)+F(I,J) END DO AVF(I)=AVF(I)/M DO J=1,M F(I,J)=F(I,J)-AVF(I) END DO END DO IF (KS.EQ.1) THEN DO I=1,N DO J=1,M DF(I)=DF(I)+F(I,J)*F(I,J) END DO DF(I)=SQRT(DF(I)/M)

19、 DO J=1,M F(I,J)=F(I,J)/DF(I) END DO END DO END IF 30 CONTINUE RETURN ENDC - FORMA - SUBROUTINE FORMA(N,M,MNH,F,A) REAL F(N,M),A(MNH,MNH) IF (M-N) 40,50,50 40 DO I=1,MNH DO J=1,I A(I,J)=0.0 DO IS=1,N A(I,J)=A(I,J)+F(IS,I)*F(IS,J) END DO A(J,I)=A(I,J) END DO END DO RETURN 50 DO I=1,MNH DO J=1,I A(I,J

20、)=0.0 DO JS=1,M A(I,J)=A(I,J)+F(I,JS)*F(J,JS) END DO A(J,I)=A(I,J) END DO END DO RETURN ENDc*C SUBROUTINE FUNCTION *C *C THIS SUBROUTINE COMPUTS EIGENVALUES AND EIGENVECTORS OF A *c* SUBROUTINE JCB(N,A,S,EPS) DIMENSION A(N,N),S(N,N) DO I=1,N DO J=1,N IF (I.EQ.J) THEN S(I,J)=1.0 ELSE S(I,J)=0.0 END I

21、F END DO END DO G=0.0 DO I=2,N I1=I-1 DO J=1,I1 G=G+2.*A(I,J)*A(I,J) END DO END DO S1=SQRT(G) S2=EPS/FLOAT(N)*S1 S3=S1 L=0 50 S3=S3/FLOAT(N) 60 DO 130 IQ=2,N IQ1=IQ-1 DO 130 IP=1,IQ1 IF(ABS(A(IP,IQ).LT.S3) GOTO 130 L=1 V1=A(IP,IP) V2=A(IP,IQ) V3=A(IQ,IQ) U=0.5*(V1-V3) IF (U.EQ.0.0) G=1. IF (ABS(U).G

22、E.1E-10) G=-SIGN(1.,U)*V2/SQRT(V2*V2+U*U) ST=G/SQRT(2.*(1.+SQRT(1.-G*G) CT=SQRT(1.-ST*ST) DO I=1,N G=A(I,IP)*CT-A(I,IQ)*ST A(I,IQ)=A(I,IP)*ST+A(I,IQ)*CT A(I,IP)=G G=S(I,IP)*CT-S(I,IQ)*ST S(I,IQ)=S(I,IP)*ST+S(I,IQ)*CT S(I,IP)=G END DO DO I=1,N A(IP,I)=A(I,IP) A(IQ,I)=A(I,IQ) END DO G=2.*V2*ST*CT A(IP

23、,IP)=V1*CT*CT+V3*ST*ST-G A(IQ,IQ)=V1*ST*ST+V3*CT*CT+G A(IP,IQ)=(V1-V3)*ST*CT+V2*(CT*CT-ST*ST) A(IQ,IP)=A(IP,IQ) 130 CONTINUE IF (L-1) 150,140,150 140 L=0 GOTO 60 150 IF (S3.GT.S2) GOTO 50 RETURN ENDc*C SUBROUTINE FUNCTION *C *C THIS SUBROUTINE PROVIDES A SERIES OF EIGENVALUES *C FROM MAX TO MIN *C*

24、SUBROUTINE ARRANG(MNH,A,ER,S) DIMENSION A(MNH,MNH),ER(MNH,4),S(MNH,MNH) TR=0.0 DO I=1,MNH TR=TR+A(I,I) ER(I,1)=A(I,I) END DO MNH1=MNH-1 DO K1=MNH1,1,-1 DO K2=K1,MNH1 IF(ER(K2,1).LT.ER(K2+1,1) THEN C=ER(K2+1,1) ER(K2+1,1)=ER(K2,1) ER(K2,1)=C DO I=1,MNH C=S(I,K2+1) S(I,K2+1)=S(I,K2) S(I,K2)=C END DO E

25、ND IF END DO END DO ER(1,2)=ER(1,1) DO I=2,MNH ER(I,2)=ER(I-1,2)+ER(I,1) END DO DO I=1,MNH ER(I,3)=ER(I,1)/TR ER(I,4)=ER(I,2)/TR END DO RETURN ENDC*C THIS SUBROUTINE PROVIDES STANDARD EIGENVECTORS *C (M.GE.N, SAVED IN S; M.LT.N, SAVED IN F) AND ITS TIME COEFFICENTS *C SERIES (M.GE.N, SAVED IN F; M.LT.N, SAVED IN S) *C* SUBROUTINE TCOEFF(KVT,N,M,MNH,S,F,V,ER) DIMENSION S(MNH,MNH),F(N,M),V(MNH),ER(MNH,4) DO J=1,MNH C=0.0 DO I=1,MNH C=C+S(I,J)*S(I,J) END DO C=SQRT(C) DO I=1,M

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1