气象统计实习(防止丢失)

 

一、Fortran程序

   program main

    implicit none

    integer,parameter :: nt=30,nx=32,ny=7

    integer ix,iy,it,y1,y2

    real:: sst(nx,ny,nt)=0.0,ave(nx,ny)=0.0,sx(nx,ny)=0.0,jvping(nx,ny,nt)=0.0

    open(1,file='C:\lianxi\2021\practice1\NCEP_TPSST_30y_Wt.dat',form='binary')

      do it=1,nt

          read(1) ((sst(ix,iy,it),ix=1,nx),iy=1,ny)

      end do

      close(1)

 !计算平均气候场

          do ix=1,nx

              do iy=1,ny

                  do it=1,nt

                  ave(ix,iy)=ave(ix,iy)+sst(ix,iy,it)/30.0

                  end do 

              end do

          end do

 !计算均方差场 

        do iy=1,ny

            do ix=1,nx

                do it=1,nt

                   if(sst(ix,iy,it) .GT. 1000)continue             !若该点的值为缺测值,则跳过该值

            sx(ix,iy)=sx(ix,iy)+((sst(ix,iy,it)-ave(ix,iy))**2)

                end do

                sx(ix,iy)=sqrt(sx(ix,iy)/30.0)

        enddo

        end do

       

        open(3,file='C:\lianxi\2021\practice1\ave.grd',form='binary')

          write(3)((ave(ix,iy),ix=1,nx),iy=1,ny)

         close(3)

         

         open(4,file='C:\lianxi\2021\practice1\junfangcha.grd',form='binary')

           write(4)((sx(ix,iy),ix=1,nx),iy=1,ny)

         close(4)

      

!距平场

       do ix=1,nx

           do iy=1,ny

               do it=1,nt

                      if(sst(ix,iy,it) .LE.1000) then      

                   jvping(ix,iy,it)=sst(ix,iy,it)-ave(ix,iy)

                   endif

               enddo

           enddo

       enddo

       open (2,file='C:\lianxi\2021\practice1\jvping.grd',form='binary')

         write(2) (((jvping(ix,iy,it),ix=1,nx),iy=1,ny),it=1,nt)

         close(2)

         end program

二、ctl文件与gs文件

 

 

 

  • 11
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
中国科学院大气所李建平的 线性相关 Linear Correlation mscorrelation_2(n,x,y,r)   Correlations between two anomaly series of 12 calendar months, 4 seasons (DJF, MAM, JJA and SON), monthly, seasonal and annual data from monthly anomaly series x(i,12) and y(i,12) (i=1,...,n) 求逐月异常序列x(n,12)和y(n,12)(n是年)的相关系数r(24),其中j=1~12是1~12个月的情形,13~22是冬、春、夏、秋、冬季逐月、春季逐月、夏季逐月、秋季逐月、逐月、年、冬半年逐月(NDJFMA)、夏半年逐月(MJJASO)的序列的情形。 llcorrelation(n,x,y,nt,rt)   Calculating lagged and leading correlation coefficients rt(-nt:nt) between two anomaly series x(i) and y(i). 求(逐日、逐月、逐季、年际)异常序列x(n)和y(n)之间的滞后超前的相关系数rt(-nt:nt),其中nt最大的滞后或超前时间(单位:日、月、季、年等)。 llyear(ny,nm,x,y,ly,rt)   ly-year lagged and leading correlation coefficients rt(-ly:ly,nm) between two anomaly series x(ny,nm) and y(ny,nm). 求逐月异常序列x(n,12)和y(n,12)(n是年)相同月份之间的滞后超前nt年的相关系数rt(-nt:nt,12),其中nt最大的滞后或超前时间(单位:年)。 mllcorrelation(n,nt,x,y,rt)   nt-month (or nt-season, or others) lagged and leading correlation coefficients rt(-nt:nt,nm) between two anomaly series x(ny,nm) and y(ny,nm). 求逐月、逐季或其他异常序列x(n,nm)和y(n,nm)(n是年)不同月份之间的滞后超前nt月的相关系数rt(-nt:nt,nm),其中nt最大的滞后或超前时间(单位:月、季或其他)。 correlationmiss(n,x,y,undef,r,nr)   Correlation coefficient r between two series with missing data 求有缺省资料的两个序列x(n)和y(n)的相关系数r。   谱分析 Spectrum Analysis   一维离散功率谱分析 Discrete Fourier spectrum of one-dimensional series fourier(n,x,a,b,c,s,cta)   The discrete Fourier spectrum of one-dimensional series x(n). 求一维序列x(n)的离散Fourier谱分析,s(0:m)离散功率谱,c(0:m)振幅谱,cta(0:m)位相谱,其中m=[n/2.]。 dspectrum(n,lw,x,tl,sl,st95)   Subroutine for discrete spectrum analysis of an one-dimensional series x(i) (i=1,...,n). 具有噪音检验的一维序列x(n)的离散功率谱分析,ol(lw)频率,tl(lw)周期,sl(lw)离散功率谱,st95(lw)红噪音或白噪音谱的95%置信上限,其中lw=[n/2.]。注意:很多同学在使用这个程序时都问及在计算滞后相关的模块中,求滞后相关为什么用n而不用n-i,其实这是由实际资料的特性和统计学的基本原理决定的(很多统计学书中也谈到这一点)。一是序列的平稳性假设就要求序列的均值和方差保持不变,二是通常资料太短,导致用较短的资料得到的相关结果具有不稳定性,掩盖了事物的真相,因此,用n要好于n-i。一些同学也做了试验证实了这一点(有时n-i还得到错误的结论,需要各自使用者注意的地方)。谢谢大家提出的问题。 一维连续功率谱分析 Continuous spectrum analysis of an one-dimensional series cspectrum(n,m,x,ol,tl,sl,st95,strw)   Subroutine for continuous spectrum analysis of an one-dimensional series x(i) (i=1,...,n). 一维序列x(n)的连续功率谱分析,ol(0:m)频率,tl(0:m)周期,sl(0:m)连续功率谱,st95(0:m)红噪音或白噪音谱的95%置信上限,strw(0:m) 红噪音或白噪音的谱密度,其中m=[n/2.]。 交叉谱分析 Continuous cross spectrum analysis of two one-dimensional series ccrossspectrum(n,m,x,y,ol,tl,px,py,px95,py95,rxy,cxy,lxy,rxy951,rxy952)   Subroutine for continuous cross spectrum analysis of two one-dimensional series x(i) and y(i) (i=1,...,n). 两序列x(n)和y(n)的交叉谱分析,ol(0:m)频率,tl(0:m)周期,px(0:m)是x(n)的连续功率谱,py(0:m)是y(n)的连续功率谱,pxy(0:m)协谱,qxy(0:m)余谱,rxy(0:m)凝聚谱,cxy(0:m)位相差谱,lxy(0:m)滞后时间长度谱,rxy951(0:m)凝聚谱F-检验的95%置信上限,rxy952(0:m)凝聚谱Goodman-检验的95%置信上限,其中m=[n/2.]。   合成分析 Composite Analysis   标量的合成分析 Composite analysis for scalar quantity differencehl1(n,x,f,coefh,coefl,fh,fl,dh,dl,dhl,tn)   求f(n)在指数x(n)为高指数年(x(n)>coefh的年)的平均值fh、低指数年(x(n)coefh的年)的平均值fh(2)、低指数年(x(n)<coefh的年)的平均值fl(2)、高指数年与气候平均的合成差dh(2)、低指数年与气候平均的合成差dl(2)、以及高低指数年的合成差dhl(2)和差的显著性tn(5,3)。 differhl2V(n,x,f,nc,fh,fl,dh,dl,dhl,tn)   求矢量f(n,2)在指数x(n)为nc个最强的指数年的平均值fh(2)、nc个最弱的指数年的平均值fl(2)、nc个最强的指数年与气候平均的合成差dh(2)、nc个最弱的指数年与气候平均的合成差dl(2)、以及强弱指数年的合成差dhl(2)和差的显著性tn(5,3)。   主分量分析 Principal Component Analysis (PCA)   经验正交函数分解 Empirical Orthogonal Functions (EOF's) eof(m,n,mnl,f,ks,er,egvt,ecof)   求时空场f(m,n)的特征向量egvt(m,mnl),时间系数ecof(mnl,n),特征值er(mnl,1),累积特征值er(mnl,2),解释方差er(mnl,3),累积解释方差er(mnl,4) 旋转经验正交函数分解 Rotated Empirical Orthogonal Functions (REOF's) reof(m,n,mnl,np,f,ks,er,egvt,ecof,rer,regvt,recof)   求时空场f(m,n)的特征向量egvt(m,mnl),时间系数ecof(mnl,n),旋转特征向量regvt(m,mnl),时间系数recof(mnl,n)   插值 Interpolation   样条内插 Spline Interpolation splinev(n,x,y,m,t,yp1,ypn,sy)   已知节点x(n)和函数值y(n),用三次样条求节点t(m)上的内插值sy(m)。   滤波分析 Filter   二阶Butterworth带通滤波器 Second Order Butterworth Band-Pass Filter Bfilter2(n,x,y,a,b1,b2)   求序列x(n)(n是资料长度)的二阶Butterworth带通滤波序列y(n) 高斯低通滤波器 M-term Guassian-Type Filter guassfilter_2(n,m,x,y)   求序列x(n)(n是资料长度)的m项高斯低通滤波序列y(n)   插值 Interpolation   样条内插 Spline Interpolation splinev(n,x,y,m,t,yp1,ypn,sy)   已知节点x(n)和函数值y(n),用三次样条求节点t(m)上的内插值sy(m)。   微分方程数值积分 Numerical Integration of Differential Equations   一到六阶定步长显式Runge-Kutta方法 Fixed Stepsize Explicit Runge-Kutta Method of Orders from 1 to 6 Runge-Kutta.f   subroutine eu1(n,yn,h) : the Euler's method subroutine rk2(n,yn,h) : the improved Euler's method subroutine rk3(n,yn,h) : a Runge-Kutta method of order 3 subroutine rk4(n,yn,h) : a Runge-Kutta method of order 4 subroutine rk5(n,yn,h) : a Runge-Kutta method of order 5 subroutine rk6(n,yn,h) : a Runge-Kutta method of order 6 subroutine rkm2(n,yn,h): another Runge-Kutta method of order 2 subroutine rkh3(n,yn,h): another Runge-Kutta method of order 3      
Matlab是一款强大的数值计算和可视化工具,特别适用于科学计算和工程应用,包括气象数据分析和预测。在气象学中,滑动平均是一种常用的信号处理技术,用于平滑时间序列数据,减少随机噪声影响,从而更好地理解气候趋势或天气模式。 滑动平均在气象统计分析中的应用: 1. **数据清洗**:通过滑动窗口对天气数据进行平均,可以消除短时极端值的影响,使得数据更接近实际的气候状况。 2. **趋势分析**:长期的滑动平均可以帮助识别气候变化的长期趋势,比如温度、降水量的变化趋势。 3. **异常检测**:通过设定特定的滑动窗口长度,如果某段时间内的平均值显著偏离整体趋势,可能表明出现了异常天气事件。 4. **预报模型**:在建立短期天气预报模型时,滑动平均可以帮助融合历史数据,作为预测未来天气状态的输入。 在Matlab中进行气象数据滑动平均的方法: - 使用`movmean`函数:这是Matlab内置的函数,可以直接计算给定数据集的滑动平均。 - 自定义循环:如果数据量大或者需要特定的窗口大小,可以使用for循环和数组操作来实现。 - 时间序列分析库:如`timeseries`或`ts`函数,它们提供更高级的功能,如季节性调整和自回归滑动平均模型(ARIMA)。 相关问题: 1. 在Matlab中如何设置滑动窗口大小进行平均? 2. 如何在timeseries对象上应用滑动平均? 3. 在气象数据中,滑动平均是否总是选择固定窗口大小?如果需要动态变化,怎么做? 4. movmean函数返回的结果如何解读和进一步处理?
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值