为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

Matlab在大气科学中的应用

2012-01-23 13页 pdf 1MB 126阅读

用户头像

is_716240

暂无简介

举报
Matlab在大气科学中的应用 MATLAB 在大气科学中的应用 闵 敏 中国科学院大气物理研究所 中层大气与全球环境探测重点实验室 E-mail:mm1218x1x1x1@163.com 1 序 言 尽管我的专业是大气物理学与大气环境,但是我对 MATLAB 这个应用软件 充满着浓厚的兴趣。这个软件的学习过程中我遇到了很多困难,不过我也通过研 究和向外寻求帮助逐一击破了这些困难。现在市面上 MATLAB 教程非常的多, 但是至今还没有一本完全针对于大气科学专业研究的教程。我不是什么...
Matlab在大气科学中的应用
MATLAB 在大气科学中的应用 闵 敏 中国科学院大气物理研究所 中层大气与全球环境探测重点实验室 E-mail:mm1218x1x1x1@163.com 1 序 言 尽管我的专业是大气物理学与大气环境,但是我对 MATLAB 这个应用软件 充满着浓厚的兴趣。这个软件的学习过程中我遇到了很多困难,不过我也通过研 究和向外寻求帮助逐一击破了这些困难。现在市面上 MATLAB 教程非常的多, 但是至今还没有一本完全针对于大气科学专业研究的教程。我不是什么编程高 手,更加不是 Matlab 开发人员,只是希望后来者(主要是从事大气科学相关研 究的人)不要向我一样花费大量的时间来学习和研究这个软件。希望这本能够 给大家带来帮助,让大家能把更多的时间投入到自己本专业的研究上去。因为这 份教程主要针对从事大气科学研究的专业人士,所以希望参看这份教程的人预先 能有一定的 MATLAB 基础,或是买一本相关基础教程作为辅助。不过我还是会 尽我最大的努力将这本教程写的通俗易懂点。 这是平生第一次写书,我的水平很有限,难免会出错,希望大家原谅。我一 个人的知识面不够宽,非常期望大家提出一些建议。最好能提供一些很有用的资 料共大家分享。因为时间有限,我也即将毕业,所以只能像美剧一样一章一章的 编写和刊登。最主要的是我想通过动力论坛这个平台和大家相互交流,让这份教 程更加满足大气科学研究者的需求。 最后,由衷的感谢论坛上各位的宝贵的意见和 Matlab-Center 网站上提供的 各种有用的函数。 作者:闵 敏 中国科学院大气物理研究所 2010 年 3 月 9 日 2 目 录 序言 第一章 MATLAB 介绍 第二章 NetCDF 和 Grib 工具箱的安装 2.1 安装 NetCDF 工具箱 2.2 安装 Grib 工具箱 2.3 Linux 系统下的相关工具箱 第三章 卫星数据(hdf 格式)的读取与应用 3.1 卫星数据的读取 3.2 数据处理的简单技巧和应用 3 第一章 MATLAB 介绍 首先我还是不厌其烦的介绍下MATLAB。尽管这章只简单的介绍了下 MATLAB,但是里面会有很多有用的信息,希望大家还是要仔细看。MATLAB 是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数 学软件,用于算法开发、数据可视化、数据以及数值计算的高级技术计算语 言和交互式环境,主要包括MATLAB和Simulink两大部分。 在大气科学中,我们主要利用它强大的计算和函数库来进行数据处理和图形 绘制。下面我就介绍几个很有用网站供大家参考: 1. http://www.mathworks.com MATLAB官方网站 2. http://www.mathworks.com/matlabcentral/fileexchange MATLAB国际论坛(很 实用,有很多非常好的函数可供下载) 3. http://www.labfans.com/bbs MATLAB中国论坛 4. http://woodshole.er.usgs.gov/operations/sea-mat MATLAB的海洋科学研究工 具箱 5. http://www.eos.ubc.ca/~rich/map.html M-MAP(MATLAB地图绘制压缩包) 6. http://www.mathtools.net/MATLAB/index.html MATLAB工具箱下载网站 7. http://www.matlabfan.com 中国MATLAB爱好者论坛(可以注册下,上面提 供免费的最新版的MATLAB安装程序下载链接)。 8. http://mexcdf.sourceforge.net NetCDF工具箱下载(这个对从事大气科学研究 的人非常重要,建议下载时看清工具箱适用的Matlab版本) 4 第二章 NetCDF 和 Grib 工具箱的安装 2.1 安装 NetCDF 工具箱 (1) 首先在第一章所列出的第八个网站上下载适合你 Matlab 版本的 NC 工具箱 (在这里我下载的是适用于 R2007b 的 NC 工具箱。这点很重要,不然有些 NC 工具箱的某些功能就会丧失)。 (2) 然后将解压后的 NC 工具箱放在 Matlab 安装根目录下(推荐这样放置),并 将工具箱添加到 Matlab 的 Path 路径中。 第一步:首先是点击左下角的“Start”→“Desktop Tools” →“Path”,如 图 2.1。(或从 File 工具下拉菜单里面直接进)。 图 2.1 第二步:进入“Path”后点击“Add Folder…”,然后再寻找 NetCDF 的解压 包安放的位置,如图 2.2。(注意:为了保证这个工具箱的正常运转,还要同 样的将 netcdf 文件夹下的两个子目录“netcdf”和“snctools”添加到 Add with Subfolders 中去。添加的方法和前面的步骤一样)。 5 图 2.2 (3) 感谢论坛上 9 楼的意见。因为我主要采用的是 R2007b 版本,所以没有发现 新版 Matlab 发现里面已经自带了 NC 工具。如果大家的机器条件允许的话(最 好配置要高点,Matlab 很耗内存)可以安装 R2009 及其以后的版本。最新的 Matlab 已经添加了 Netcdf 工具箱,主要的命令有 netcdf.open (读取 NC 格式文件)、 netcdf.getConstant (获取变量名)、netcdf.close (关闭 netcdf 文件)等等。 2.2 安装 Grib 工具箱 (1) 网上提供的 Grib 工具箱下载链接目前不能使用,所以我把以前下载 read_grib1.40 上传供大家分享。 (2) 解压后和 NC 工具箱一样要添加路径。但是 Grib 是一个用 C 和 Matlab 混编 的工具箱,所以使用之前要对里面的 C 语言程序进行编译。 第一步:将 Matlab 最上面的当前路径“current directory”选择到 read_grib 文件夹下。 第二步:在命令框中输入“mex BDS_unpack_mex5.c”进行相关 C 语言程序 的编译。直到屏幕上出现“Select a compiler:…..”时,再进行编译器的选 择(我输入 1 进行选择)。编译成功后就会出现 2.3 所显示的图像。 6 图 2.3 注意: 安装前,自己电脑 C 盘下的 Documents and Settings\Administrator\Application Data….目录路径名中不要有中文字符。因为 Matlab 对中文字符的识别能力不是 太好,可能会导致安装的失败。 (3) 安装好后就可以利用 read_grib 命令读取 grib 资料。 2.3 Linux 系统下的工具箱 以上的这些工具箱都是针对 windows 操作系统开发的。而大部分气候和气 象学研究者都会使用 Linux 操作系统来进行相关的研究。尽管用 NCL 软件处理 NC 和 Grib 格式文件已经很方便了,但是如果有对 Matlab 感兴趣的人可以下载 matlab-cdi(read NC/Grib 联合工具箱)工具箱来读取 Linux 系统下的 NC 和 Grib 格式文件。 下载地址:http://www.mathworks.com/matlabcentral/fileexchange/21579 7 第三章 卫星数据(hdf 格式)的读取与应用 3.1 卫星数据的读取 (1) 很多从事大气遥感、云物理和云气候学研究的人都会使用到 hdf 格式的卫星 数据。读取 hdf 格式文件主要采用的 Matlab 自带的 hdf 工具箱。读取命令的详细 信息可以查看 help。下面将展示一种简便的读取 hdf 格式文件的方法。这里采用 的实验数据是常用的 MODIS 气溶胶数据。 第一步:点击菜单栏中的 file,并选择 Import Data 项,如图 3.1。 图 3.1 图 3.2 8 第二步:根据引导直接选择我们所要读取的 MODIS 气溶胶数据,如图 3.2。 第三步:选择后就出现图 3.3 的图像。展开各个选项并选择 MODIS 的气溶 胶产品(“Optical_Depth_Land_And_Ocean”)。双击后就会获取该数据。 图 3.3 图 3.4 9 (2) 以上的方法非常的简单,但是如果要把读取的命令写到 M 文件或命令框中方 便数据处理,就需要将右下角的一行命令复制,如图 3.4 中的红框。 具体的内容是: Optical_Depth_Land_And_Ocean =hdfread('Your Path\MYD04_L2.A2008122.0255.005.2008123075013.hdf', '/mod04/Data Fields/Optical_Depth_Land_And_Ocean', 'Index', {[1 1],[1 1],[203 135]}); 3.2 数据处理的简单技巧和应用 (1) 从事大气遥感和气候学研究的人来说,批量处理卫星数据是非常重要的。简 单的方法就是将所处理的 hdf 格式卫星数据放置在一个目录下。然后在命令框中 输入“data=dir(’Your Path\*.hdf’)”命令就可将所有的数据导入。最后通过循环 控制来读取和处理 hdf 格式数据。 下面给一个批量读取卫星数据的例子 Example 3.1: >>data=dir(’Your Path\*.hdf’) >>X=size(data,1) 测数据的数量 >> for i=1:X (文件个数) (文件名,以这样的形式调用) >>data=hdfread([‘Your Path \’,data(i,1).name], '/mod04/Data Fields/Optical_Depth_Land_And_Ocean', 'Index', {[1 1],[1 1],[203 135]}) >>….. >>end (2) 如果我们需要大批量处理的卫星数据中的某个变量的维度不统一怎么办? 简单的运用前面所讲的方法是不行的。这时首先要用 hdfinfo 命令读取 hdf 某个 变量的维度,然后再读取该数据中我们所需要的变量。具体的步骤如下(和上面 一样以 MODIS 气溶胶产品的光学厚度变量为例子): 第一步:首先导入要读取的数据。然后再读它的信息。 info=hdfinfo('Your Path\MYD04_L2.A2008122.0255.005.2008123075013.hdf') 第二步:在 Matlab 左边的 Workspace 中双击 info 变量,然后就可以看见图 10 3.5 所显示的图像。在这里我们所需要的变量是 Vgroup,所以双击它(这是 一个结构体变量<意思就是多层数据>)。然后进入图 3.6 所显示的界面。 图 3.5 图 3.6 第三步:依次类推,一层一层的往下找,直至找到我们所需的光学厚度变量。 在这时,我们可以看见如图 3.7 的结果。其中下面一个红框所找到的变量名 非常重要,因为这是自动控制实现的基础。而上面的那个红框中的变量名 Dims 就是我们所要找的 Optical_Depth_Land_And_Ocean 指数额结构信息变 量(行列)。我们所需要的就是这个行列信息。 Example 3.2: >>info=hdfinfo('Your Path\MYD04_L2.A2008122.0255.005.2008123075013.hdf') ; >>hang=info.Vgroup.Vgroup(1,2).SDS(1,8).Dims(1,1).Size ; >>lie=info.Vgroup.Vgroup(1,2).SDS(1,8).Dims(1,2).Size 11 图 3.7 −150 −100 −50 0 50 100 150 −80 −60 −40 −20 0 20 40 60 80 图 3.8 显示 >>hang = 203 >>lie = 12 135 第四步:这样就可以获取 Optical_Depth_Land_And_Ocean 准确的行列。然 后将 Example 3.1 中的第二条命令改为 >>data=hdfread([‘Your Path \’,data(i,1).name], '/mod04/Data Fields/Optical_Depth_Land_And_Ocean', 'Index', {[1 1],[1 1],[hang lie]}) (3) 根据上面所讲的方法给大家做个画图的例子。画的是 MODIS 月平均的全球 气溶胶光学厚度(1×1°分辨率)。 详细的例子看 Example_3_1_AOD.m,如图 3.8 13
/
本文档为【Matlab在大气科学中的应用】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索