《气象数据matlab处理》由会员分享,可在线阅读,更多相关《气象数据matlab处理(29页珍藏版)》请在金锄头文库上搜索。
1、第二部分:数据处理与应用一、实测资料的质量控制实测资料的质量控制w* 实时观测数据的质量控制是科学研究和业务工作中一个重要的环节,因为实时观测数据的质量控制是科学研究和业务工作中一个重要的环节,因为所采取数量质量的高低直接影响到工作的成败。所采取数量质量的高低直接影响到工作的成败。w* 质量控制方法:质量控制方法:1、人工审查方法、人工审查方法w 2、(计算机编程)经验统计方法、(计算机编程)经验统计方法w (A)极值法:)极值法:资料通常都有极大值(上限)和极小值(下限),通过各种方法确定出适当的极值作为判断数据正确与否的上下限范围。当数据超出此范围,则认为该数据是可疑的,应将其剔除。但当对
2、实测地海洋气象资料不熟悉的情况下,很难确定适当的极值范围。此时,可使用“莱因达”准则进行计算确定极值。w莱因达准则:莱因达准则:根据误差理论,一般情况下,随机误差服从正态分布,以一段时间数据的平均值代表真值,对某个时刻的观测数据Xi,若满足w,其中w为资料标准差,则认为数据Xi可疑,应剔除。w w用莱因达准则的前提是要有足够大的观测数据,当n30km,则不应该有天气现象。而当能见度=低云量);气温与露点之间的关系(气温=露点温度);风速与浪高的关系等。当相关的两个要素之间发生矛盾时,至少可以断定其中一个要素是错误的,但要判断哪一个要素正确,哪一个要素错误,还有一定困难。在实际业务和科研工作中,
3、科技人员从分析图或积累的经验上,能判断出对错。但在计算机上,软件设计方面和运行成本方面可能有一定困难。简单的处理办法是将两个要素都剔除,否则,就必须附加判断条件,找到邻近测站或邻近时间点数据进行比较。二、matlab软件与语言基础wMatlab(MatrixLaboratory)是美国MathWorks公司开发的一套高性能的数值分析和计算软件,用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境,是目前最好的科学计算类软件之一。wMATLAB,即“矩阵实验室”,它是以矩阵为基本运算单元。具有强大的矩阵运算能力:Matrix Laboratory(矩阵实验室),使得矩阵运算非常简单。wMA
4、TLAB已发展成为适合众多学科,多种工作平台、功能强大的大型软件。在欧美等国家的高校,MATLAB已成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具。成为攻读学位的本科、硕士、博士生必须掌握的基本技能。在设计研究单位和工业开发部门,MATLAB被广泛的应用于研究和解决各种具体问题。在中国,MATLAB也已日益受到重视,短时间内就将盛行起来,因为无论哪个学科或工程领域都可以从MATLAB中找到合适的功能。w70年代中期,CleveMoler和他的同事开发了LINPACK和EISPACK的Fortran子程序库w70年代末期,CleveMole
5、r在新墨西哥大学给学生开线性代数,为学生编写了接口程序,这程序取名为MATLAB,即MATrixLABoratoryw1983年春天,工程师JohnLittle与Moler、SteveBangert一起开发了第二代专业版MATLABw1984年,MathWorks公司成立,MATLAB正是推向市场,之后其功能不断扩充,版本不断升级。MATLAB语言的优势w编程简单,类似于其他语言,如Cw集成度更高,扩展性更好w数学问题数值计算能力强大w由Maple内核构成的符号运算工具箱可以继承Maple所有解析解的求解能力w在数学、工程领域有各种“工具箱”w强大的系统仿真能力,Simulink建模w在控制界
6、是国际首选的计算机语言启动MATLAB命令窗口w计算机安装好MATLAB之后,双击MATLAB图标,就可以进入命令窗口,此时意味着系统处于准备接受命令的状态,可以在命令窗口中直接输入命令语句。wMATLAB语句形式变量表达式;a=8;通过等于符号将表达式的值赋予变量。当键入回车键时,该语句被执行。语句执行之后,窗口自动显示出语句执行的结果。如果希望结果不被显示,则只要在语句之后加上一个分号(;)即可。此时尽管结果没有显示,但它依然被赋值并在MATLAB工作空间中分配了内存。变量(1)变量的命名:变量的名字必须以字母开头(不能超过19个字符),之后可以是任意字母、数字或下划线;变量名称区分字母的
7、大小写;变量中不能包含有标点符号。(2)一些特殊的变量ans:用于结果的缺省变量名 i、j:虚数单位pi:圆周率eps:计算机的最小数inf:无穷大 realmin:最小正实数realmax:最大正实数 nan:不定量 not a number赋值w直接赋值语句赋值变量赋值表达式例:a=pi2a=9.8696例:表示矩阵B=1+9i,2+8i,3+7j;4+6j5+5i,6+4i;7+3i,8+2j1iB=1.0000+9.0000i2.0000+8.0000i3.0000+7.0000i4.0000+6.0000i5.0000+5.0000i6.0000+4.0000i7.0000+3.00
8、00i8.0000+2.0000i0+1.0000iw冒号表达式v=s1:s2:s3该函数生成一个行向量v,其中s1是起始值,s2是步长(若省略步长为1),s3是最大值。例:用不同的步距生成 (0,p) 间向量。 v1=0:0.2:piv2=0:-0.1:pi%步距为负,不能生成向量,得出空矩阵v3=0:piv4=pi:-1:0逆序排列构成新向量v5=0:0.4:pi,pilinspace(a,b,n)ones(m,n)w基本语句格式B=A(v1,v2)v1、v2分别表示提取行(列)号构成的向量。例:A=1,2,3,4;3,4,5,6;5,6,7,8;7,8,9,0A=123434565678
9、7890size(A)B1=A(1:2:end,:)提取全部奇数行、所有列。B1=12345678B2=A(3,2,1,2,3,4)提取3,2,1行、2,3,4列构成子矩阵。A=B2=1234678345645656782347890B3=A(:,end:-1:1)将A矩阵左右翻转,即最后一列排在最前面。B3=4321654387650987矩阵转置BA.C=A矩阵翻转左右翻转B=fliplr(A)上下翻转C=flipud(A)旋转90o(逆时针)D=rot90(A)如何旋转180o?D=rot90(rot90(A)矩阵乘方MATLAB实现:F=Axwx=13;24wy=57;68wx2=re
10、shape(x,4,1)wy2=reshape(y,4,1)wz1=x2y2wz2=x2;y2w点运算-矩阵对应元素的直接运算数学表示:MATLAB实现:C=A.*B例:A=1,2,3;4,5,6;7,8,0;B=A.AB=1427256312546656823543167772161C=A.*AC=14916253649640w逻辑变量:非0表示逻辑1w逻辑运算(相应元素间的运算)与运算A&C或运算A|C非运算A矩阵的逻辑运算w各种允许的比较关系,=,AA=123456780矩阵的比较运算i,j=find(A=5);i,j显示行标,列标ans=31223223all(A=5)某列元素全大于或
11、等于5时,相应元素为1,否则为0。ans=000any(A=5)某列元素中含有大于或等于5时,相应元素为1,否则为0。ans=111三、数据分析处理w1、求平均风速w2、求风速的方差和标准差w3、质量控制:极值法莱因达准则w3、统计最大风速及相应的风向w4、统计盛行风向(聚类)w5、插值w6、风速连续时间序列的带权重平滑四、绘图wmatlab语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。本次处理需用到的Matlab函数一个时间序列Xw平均值mean(X)w方差var(X)w标准差std(X)w最大值max(X)w风速时间序列风向:风吹来的方向风向:风吹来的方向流向:海流流去的方向流向:海流流去的方向北风:北风:00东风:东风:9090顺时针增加顺时针增加w盛行风向