- 积分
- 138
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-11-3
- 最后登录
- 1970-1-1
|
发表于 2014-4-18 17:13:45
|
显示全部楼层
楼主你好,我想问一下你的测试数据是怎么处理得到的,我对自己的数据做标准化之后放到eof里运行提示原始数据有问题。
下面是我的标准化程序
! prepare data for eof analysis
! the program is to normalize skt
! mt: the length of time series;
! mo: the month numbers; my: the year numbers;
! skt2: the work array; avf: the average of skt;
! df: the variance of skt;
program main
parameter(nx=192,ny=94,my=66,mt=794,mo=12,undef=-9.96921e+36)
dimension skt(mo,my,nx,ny),avf(mo,nx,ny),df(mo,nx,ny)
dimension skt1(nx,ny,mt),skt2(nx,ny,mt),skt3(nx,ny,my),skt4(mo,my,nx*ny)
integer i,j,k,kk,iy,im
real a(nx*ny,66)
open(1,file='d:\paper\output\skt.grd',form='binary')
read(1)(((skt1(i,j,k),i=1,nx),j=1,ny),k=1,mt)
do iy=1,my
do im=1,mo
kk=(iy-1)*1+im
do i=1,nx
do j=1,ny
skt(im,iy,i,j)=skt1(i,j,kk)
enddo
enddo
enddo
enddo
do im=1,mo
do i=1,nx
do j=1,ny
avf(im,i,j)=0.0
do iy=1,my
avf(im,i,j)=avf(im,i,j)+skt(im,iy,i,j)/real(my)
enddo
enddo
enddo
enddo
do im=1,mo
do iy=1,my
do i=1,nx
do j=1,ny
if(skt(im,iy,i,j).ne.undef) then
skt(im,iy,i,j)=skt(im,iy,i,j)-avf(im,i,j)
else
skt(im,iy,i,j)=undef
endif
enddo
enddo
enddo
enddo
do im=1,mo
do i=1,nx
do j=1,ny
df(im,i,j)=0.0
do iy=1,my
if(skt(im,iy,i,j).ne.undef)THEN
df(im,i,j)=df(im,i,j)+skt(im,iy,i,j)*skt(im,iy,i,j)
else
df(im,i,j)=undef
endif
enddo
if(df(im,i,j).ne.undef)then
df(im,i,j)=SQRT(df(im,i,j)/real(my))
endif
enddo
enddo
enddo
do im=1,mo
do iy=1,my
do i=1,nx
do j=1,ny
If(skt(im,iy,i,j).ne.undef)then
skt(im,iy,i,j)=skt(im,iy,i,j)/df(im,i,j )
else
skt(im,iy,i,j)=undef
endif
enddo
enddo
enddo
enddo
do iy=1,my
do im=1,mo
kk=(iy-1)*1+im
do i=1,nx
do j=1,ny
skt2(i,j,kk)=skt(im,iy,i,j)
enddo
enddo
enddo
enddo
do iy=1,my
do i=1,nx
do j=1,ny
skt3(i,j,iy)=(skt(2,iy,i,j)+skt(3,iy,i,j)+skt(4,iy,i,j))/3.0
enddo
enddo
enddo
do k=1,66
do j=1,ny
!a((j-1)*nx+1:(j-1)*nx+nx+1,k)=skt3(:,j,k)
a(nx*(j-1)+1:nx,k)=skt3(:,j,k)
end do
end do
open(2,file='d:\paper\output\skt2.grd',form='binary')
write(2)(((skt2(i,j,kk),i=1,nx),j=1,ny),kk=1,mt)
open(3,file='d:\paper\output\a.grd',form='binary')
write(3)((a(i,j),i=1,nx*ny),j=1,my)
close(2)
close(3)
end
|
-
运行后的问题
|