爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 12415|回复: 14

[经验总结] 奇异值的判定

[复制链接]

新浪微博达人勋

发表于 2015-8-27 23:36:33 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
潮位异常值的判定
1.首先利用matlab画出潮位随时间的变化,有图分析:
                              
将上图放大不难看出,水位变化是有周期的,周期为11~13小时。纵观全图只有两个点不合规律,下面两个图就是把这两个异常值所在的区域放大所示,明显看出第394,第523,这两个点的数值为异常值。
2.利用FORTRAN编程找出异常值
剔除异常值思想:水位的变化是有周期的,并且周期大于十小时,故而我们可以用变率判别法。
变率判别法具体指的是:如果一个点此时刻潮位是增加的,并且上一个时刻潮位是减小的,那么下一个时刻必定也是增加的,或者是如果一个点此时刻潮位是减小的,并且上一个时刻潮位是增加的,那么下一个时刻必定也是减小的。我们可以通过观察数据可以发现,其周期必定大于四小时,所以这个方法是可行的。
我们首先读取数据,把二维数组转换成一维数组,其次利用变率判别法找出异常值。
编程如下:
program work1
implicit none
integer::i,j,k,d
integer::b(744)  !将数据文件有二维数组转化成一维数组
integer::p(743)   !每隔一小时水位之差
integer::c(62,12)  !读取文件数据
character(len=30)::a1,a2,a3,a4  !文件开头介绍
real::q(743)
open(11,file='D:\work1.txt')
open(10,file='D:\sjs_t_97aug_m(harmonic).TXT')
read(10,'(a3)'),a1
read(10,'(a18)'),a2
read(10,'(a6,x,a6)'),a3
read(10,'(a2)'),a4
write(11,*),a1,a2,a3,a4
do i=1,62
read(10,'(11(I4,1x),I4)')c(i,1:12)
end do !读取元数据
k=0
do i=1,62
do j=1,12
   k=k+1
  b(k)=c(i,j)
end do
end do
write(11,*),b!把二维数组转化为一维数组
do i=1,743
   p(i)=(b(i+1)-b(i))
end do  !每隔一小时水位之差
do i=2,743
    if(p(i-1)>0.and.p(i)<0.and.p(i+1)>0.or.p(i-1)<0.and.p(i)>0.and.p(i+1)<0)exit
enddo
print*,'异常值为第',i+1,'个'
do while(i<741)
do i=i+2,743
     if(p(i-1)>0.and.p(i)<0.and.p(i+1)>0.or.p(i-1)<0.and.p(i)>0.and.p(i+1)<0)exit
enddo
print*,'异常值为第',i+1,'个'
enddo
endprogram
!利用变率判别法
通过此方法,我们找出了第394、523个观测值为异常值
3.对异常值进行插值处理
令异常点处的值等于前后两个正常值的均值,那么就修正了异常值

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-28 09:33:15 | 显示全部楼层
直接上方法的我喜欢,简单粗暴
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-28 14:59:18 | 显示全部楼层
找规律 拼算法
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-30 20:30:51 | 显示全部楼层
感谢楼主分享
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-11 18:01:56 | 显示全部楼层
感谢楼主!!!作业刚好要用到
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-13 09:17:23 | 显示全部楼层
感谢楼主!非常好!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-13 20:50:47 | 显示全部楼层
感谢楼主,正好要用到判定
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-14 17:49:20 | 显示全部楼层
运行程序会触发断点呀!!!就是do while语句那里
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-14 20:39:05 | 显示全部楼层
直接上方法,楼主敞亮儿!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-5-20 14:49:48 | 显示全部楼层
感谢楼主分享
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表