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