气象统计实习五

实习五 趋势分析方法

  1. 资料介绍

现有全球海洋海温场资料,文件名HADISST_50y.grd. 时段:冬季1958~2007年共50年。水平分辨率:不等距(具体参考HADISST_50y文件)。

要求:

1)以热带印度洋(35~125E,20S~20N)区域平均海温时间序列为例,利用气候趋势分析的三种方法(线性倾向估计、滑动平均及累积距平)分析热带印度洋平均海温随时间的变化趋势。

2)近50年冬季全球海温变化趋势如何(线性倾向估计)?

注:附计算思路,并通过图示分析计算结果。

一、程序

 1 线性倾向估计

   program main

    implicit none

    integer,parameter::nt=50

    real sst(nt),a,b,sst1(nt),r

    integer it,t(nt)

    do it=1,nt

        t(it)=1958-1+it

    enddo

    open(1,file='D:\2021tj\practice5\HASISST_1.grd',form='binary')

    read(1)(sst(it),it=1,nt)

    close(1)

    call huigui(t,sst,nt,a,b)

   ! write(*,*)'x=',a,'+',b,'t'

    do it=1,nt

        sst1(it)=a+b*t(it)

    enddo

    !write(*,*)sst1

    open(2,file='D:\2021tj\practice5\sst_huigui.grd',form='binary')

    write(2)(sst1(it),it=1,nt)

    close(2)

   

    call relative(sst,t,nt,r)

    r=r*b

    write(*,*)r

    end program

   

   

   

      subroutine huigui(x,y,nt,a,b)

    implicit none

    integer nt

    real y(nt),a,b     !x,y为需要做回归分析的变量,a,b为系数

    real:: xave=0.0,yave

    real k,q,m     !k为b的分子,q为分母

    integer it,x(nt)

    yave=0.0

    !write(*,*)x**2

    do it=1,nt

            xave=xave+x(it)/nt

             yave=yave+y(it)/nt

    enddo

   ! write(*,*)xave

    k=0.0

            q=0.0

            m=0.0

            do it=1,nt

                k=k+x(it)*y(it)

                q=q+x(it)**2

            !write(*,*)q(ix,iy)

            enddo

            k=k-nt*xave*yave

            q=q-nt*(xave**2)

            b=k/q

            a=yave-b*xave

    !write(*,*)q

    end subroutine huigui

    subroutine relative(x,t,nt,r)

    implicit none

    integer nt,it

    real x(nt),r,q,k,tave,xave

    integer t(nt)

    tave=0

    xave=0.0

    do it=1,nt

        tave=tave+t(it)*1.0/nt

        xave=xave+x(it)/nt

    enddo

    k=0.0

    q=0.0

    do it=1,nt

        k=k+t(it)**2

        q=q+x(it)**2

    enddo

    k=k-nt*tave**2

    q=q-nt*xave**2

    r=sqrt(k/q)

    end subroutine

2)滑动平均

program main

    implicit none

    integer,parameter::nt=50

    real sst(nt),sst1(42)

    integer it

    open(1,file='D:\2021tj\practice5\HASISST_1.grd',form='binary')

    read(1)(sst(it),it=1,nt)

    close(1)

    call sliding_average(sst,nt,9,sst1)

   ! write(*,*)'x=',a,'+',b,'t'

    write(*,*)sst1

    open(2,file='D:\2021tj\practice5\sliding_average.grd',form='binary')

    write(2)(sst1(it),it=1,42)

    close(2)

    end program

   

   

    subroutine sliding_average(x,nt,n,y)

    implicit none

    real x(nt),y(nt-n+1)

    integer nt,n,it,i

    do it=1,nt-n+1

        do i=it,it+n-1

            y(it)=y(it)+x(i)

        enddo

        y(it)=y(it)/n

    enddo

    end subroutine sliding_average

3)累积距平

program main

    implicit none

    integer,parameter::nt=50

    real sst(nt),sst2(nt)

    integer it,i

    open(1,file='D:\2021tj\practice5\HASISST_1.grd',form='binary')

    read(1)(sst(it),it=1,nt)

    close(1)

    !write(*,*)sst

    call cumulative_distance(sst,nt,sst2)

    write(*,*)sst2

    open(2,file='D:\2021tj\practice5\cu_dis.grd',form='binary')

    write(2)(sst2(it),it=1,nt)

    close(2)

    end program

   

    subroutine cumulative_distance(x,nt,y)

    implicit none

    real x(nt),y(nt),xave

    integer nt,it,i

    xave=0.0

    do it=1,nt

        xave=xave+x(it)/nt

    enddo

    !write(*,*)xave

    do it=1,nt

        y(it)=0.0

        do i=1,it

            y(it)=y(it)+(x(i)-xave)

        enddo

    enddo

   

    end subroutine

       

二、ctlgs文件

1.热带印度洋海温区域平均海温序列

2.线性倾向估计

3.滑动平均

4.累积距平

三、图形及其分析

 

由以上三图可知,从线性倾向估计中,可看出,50年热带印度洋海温呈上升趋势,且可得出其相关系数为0.3749,大于r(0.05)=0.2875, 表明这种上升趋势在α=0.05显著性水平上是显著的。

9点滑动平均可以看出,气温变化趋势变得平缓了

由累积距平可看出,从1970年到1997年左右气温以负距平为主,表明气温低于气候平均值,在1997年之后,气温以正距平为主,说明气温高于气候平均值,并且有一直上升的趋势。

  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值