爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 35120|回复: 48

[其他] [原创]IDL, Matlab, NCL 使用心得以及其专长

  [复制链接]

新浪微博达人勋

发表于 2011-10-17 23:21:50 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 ztftom 于 2011-10-18 08:13 编辑

(转载请注明出自“气象家园”)

“之前在NCL版发贴,有一位叫HOPE的朋友问IDL和NCL的区别。正好两个软件都用过,特别是IDL,感触颇深,似乎一个简单的回复无法穷尽。就此专门开此贴,希望HOPE可以看到”

首先,是一个我曾经参与制作的IDL project。这个IDL工程是利用卫星数据来跟踪观测日珥。
http://space.ustc.edu.cn/dreams/slipcat/
在空间物理和太阳物理领域,IDL是不二选择,主要原因在于强大的SSW(SolarSoftWare)软件包。这个软件包是针对包括SOHO、STEREO在内的多个卫星开发的,在做时间空间坐标转换、卫星轨道定位方面不可或缺。

从软件(或者说语言)本身来说,我很喜欢IDL的以下几点:
1)数组运算的高效率。在进行数组运算时,IDL的速度要高于Matlab。IDL和Matlab类似,都是基于C和Fortran内核。大运算量都是通过高效率的C和Fortran进行的,特别是数组运算。这就是数组运算的速度远高于循环的原因(因为在IDL和Matlab中循环运算都要回到高层的IDL和Matlab中来控制,而数组运算可以完全在底层的C和Fortran中完成,一次返回结果)。个人的感觉是IDL的这些运算内核要比Matlab优化。
2) 超强的图像处理功能。 这点必须强调。Matlab也有很好的图像处理工具包,但还是比不上IDL。IDL的图像处理功能所涉及的函数的总数并不多,但涵盖的功能绝对不少于Matlab (即使不超过的话)。 Matlab的图像工具很让人纠结,比如说可以组织在一个函数下的两个功能,应是要分到两个分类下面,所以用起来很费劲。在图像处理领域里的主流算法,都可以轻易在IDL中找到。
3)完美的Help。IDL的Help是我见过的最方便,也最user friendly的。这点远远超过Matlab, 更别说NCL了。IDL是一个只用看Help而不用看教程就可以学会的工具,这点可以从我老师的经历里得到验证。国内中文的IDL教材也就两种,基本上都是翻译IDL的Help,再组织组织。当然,看Help要看英文的(我不知道有没有中文版的),这点有点枯燥。

Matlab的优势:
1)流行。几乎所有人都听过Matlab... 好吧,不是所有的人,但至少所有做科研的。用好Matlab的好处是你不愁找到一个装Matlab的电脑,但找到一台IDL的电脑... 不要小看了这个问题。原因有二,1. 经济原因,两个软件都不便宜。许多科研机构都会买相对便宜的网络证书,就是在这个内部网内的人可以正式合法地使用。那么,基于用户的原因,科研机构会比较偏向于Matlab。那么,会不会有人愿意花近千美元来给你专门购置一套IDL呢? 2. 多用户原因。当使用高性能计算机时,这些服务器上基本上准备的有Matlab而不会有IDL。有时候你不太可能把所有结果下载到自己个人电脑上处理。如果用惯了IDL,这时候就不得不痛苦地迁就使用Matlab.
2) 技术支持。这一条和上一条相互关联。Mathwork是一个比较成熟的公司,由于Matlab的近乎统治地位,还是可以期待这个公司的继续风光。那么,你也不用担心自己学会的Matlab技能有一天会荒废。另一方面,客户群大意味着你遇到技术问题可以很快在网上找到解决方案。
3)GUI和人机互动。这一条Matlab虽然做得好。。。但是,这绝对会培养懒惰,阻碍用户学习。。。一般来说,还是用命令行来操作更有效,又更有重复使用性。

IDL和Matlab其实使用起来很相似,很多函数只是换了个名字。所以一般一个人选择用一个使用精通就好,但用惯了的话就不好更换另一个了,所以选择之前还是要多考虑考虑的。之前的介绍中刻意回避了NCL。与NCL相比,Matlab和IDL其实大同小异,这两者可以归为一个,共同和NCL比较。

与IDL和Matlab的高大全相比,NCL显得比较简陋。基本上,NCL是针对气象应用设计的。NCL的劣势在此,优势也在此。我个人认为,对于用WRF的人来说,NCL使用起来方便快速,画图结果好看专业,是一个不错的选择,请参考( 为什么用NCL——小谈NCL特点)。NCL的学习曲线短,而且有很多预设的资源(resources)很方便画图使用。相对于IDL和Matlab的关键字制度,NCL的attributes设定比较难捉摸一些。但resource和attrbute配合,可以方便IO,更可以创造出强大的数据结构,这对于数据千变万化的气象研究有时是很有帮助的 (有时也会制造额外的麻烦)。NCL最大的缺点是不够成熟,但就我的感觉,已经足够大部分的气象研究。

好了,总结一下:
Matlab: 功能齐全,流行
IDL: 功能齐全,图像处理能力,效率高
NCL:专业,小巧

以上都只是我个人的一点粗浅经验,仅供参考。最好的还是实战里出经验,大家拿不定主意,可以都尝试一下,相互参照,也有益于学习。

评分

参与人数 3金钱 +23 贡献 +10 收起 理由
wyc1994 + 1 赞一个!
mofangbao + 10 + 5 赞一个!楼主功力不浅,造福大家啦
artmunich + 12 + 5 楼主很有实力,继续加油!

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-10-18 01:30:31 | 显示全部楼层
楼主的帖子都很有主见呀
一点要说的:好像那个project的链接打不开。。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-10-18 08:05:42 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2011-10-18 08:08:02 | 显示全部楼层
昨晚在手机读完了楼主的帖子,不过貌似里面的那个链接我这里是无法访问的呢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-10-18 08:11:04 | 显示全部楼层
mofangbao 发表于 2011-10-18 08:08
昨晚在手机读完了楼主的帖子,不过貌似里面的那个链接我这里是无法访问的呢

我也发现了这个问题,应该是服务器在维护。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-10-18 08:14:14 | 显示全部楼层
artmunich 发表于 2011-10-18 01:30
楼主的帖子都很有主见呀
一点要说的:好像那个project的链接打不开。。。。

好了,链接修复了,应该可以了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-10-18 08:14:46 | 显示全部楼层
mofangbao 发表于 2011-10-18 08:08
昨晚在手机读完了楼主的帖子,不过貌似里面的那个链接我这里是无法访问的呢

链接已经修复了,应该可以了,不行告诉我。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-10-18 08:16:25 | 显示全部楼层
mofangbao 发表于 2011-10-18 08:08
昨晚在手机读完了楼主的帖子,不过貌似里面的那个链接我这里是无法访问的呢

似乎数据服务器还没有好,再等等吧~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2011-10-18 08:17:41 | 显示全部楼层
ztftom 发表于 2011-10-18 08:16
似乎数据服务器还没有好,再等等吧~

恩  看了一下  你升级中雨了哦  哈哈
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-10-18 08:18:38 | 显示全部楼层
mofangbao 发表于 2011-10-18 08:17
恩  看了一下  你升级中雨了哦  哈哈

:-),听起来不错。去吃早饭做事了哈,以后有空多聊~
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表