IDL

IDL中使用Python的方法

0
分享 2016-06-17
IDL经常被拿来与Python、Matlab等语言进行对比,其实每种语言都有自己的优势和劣势,需要根据自己的需要、兴趣、习惯等方面选择开发语言。而且,IDL与常用开发语言都有调用接口,不必太纠结于只认定一种开发语言。
今天就来介绍一些IDL中使用Python的资源。都是来自国外研究成果,这里仅作整理、翻译、演示和介绍。可以把我们理解为传播者。o(∩_∩)o ~~~
首先来介绍Slither,大家可以去下面的网址了解情况,在About US下面有“What We Do”和“Who We Are”。


图:Slither霸气的Logo

Slither下载地址:http://research.jacquette.com/slithertm-product-information/
打开上面的地址,在页面左侧,可以看到Slither 3.0 has been released and is avail be for free. Click here to download。既然大家关注IDL和Python,英语肯定没问题,点击here下载即可。在下载的zip压缩包内有如下文件,可以看到对于Python2.6、2.7、3.3均有对应版本,并且在pythonXX文件夹内均有Linux、Mac OS和Windows系统需要用到的文件。大家可以查看SlitherUserManual.pdf文档获取详细的帮助信息。


图:Slither安装包内容

安装方法
下面以Windows系统下的Python27和IDL8.3为例介绍使用方法(其他系统参考pdf文档)。
(1) 安装Python,已经安装过了可以飘过此步骤。
Python下载地址:http://www.python.org/download/。建议大家使用2.7版本,有很多资源还没有兼容3.3版本。
(2) 安装Slither,其实就是复制文件。
以Windows为例,将…\python27\windows_x86_32路径下的dll和dlm拷贝到IDL安装路径(…\Exelis\IDL83\bin\bin.x86),将\python27\windows_x86_64下的dll和dlm拷贝到IDL安装路径(…\Exelis\IDL83\bin\bin.x86_64)。
(3) 启动IDL即可使用Slither。
 
举例演示
Slither的一个核心功能就是pyimport,可以把Python Module加载进IDL中。返回值为IDL对象,可以调用Python Module中的方法。
下面以random为例,因为要用到Python NumPy,所以可以去下面地址下载安装(http://sourceforge.net/projects/numpy/files/NumPy/),这次测试用到的为1.8.0版本。下载完成后一路安装即可。因为安装的是32位的NumPy,下面也要启动32位的IDL8.3,路径为开始菜单 > IDL 8.3 > 32-bit > IDL(32-bit)。
测试代码如下:
IDL> random = pyimport("random")
IDL> help, random

Random variable generators.
IDL> print, random.randint(0,50)
36
IDL> print, random->randint(0,500)
122
上述代码首先将random Module导入IDL,然后调用了randint方法。这只是一个非常简单的示例,在用户手册pdf文档中详细介绍了Slither的特点和功能。比如可以自动进行错误处理,并转换为IDL的错误提示,如下所示。
IDL> gzip = pyimport("gzip")
IDL> gf = gzip.gzipfile("any.txt")
% PYTHONOBJECT::GZIPFILE: IOError: [Errno 2] No such file or directory: 'any.txt'
% Error occurred at: $MAIN$
% Execution halted at: $MAIN$
除了Slither外,还有另外一个学习资源,国外大牛Ronn Kling的成果《Using Python From IDL》,可以去下面的网页查看相关信息(http://www.rlkling.com/using-python-from-idl.htm),除此之外,大家还能看到很多其他IDL的学习资源,当然有些是要付出汗水和心血(¥)。


图:Ronn Kling 《Using Python From IDL》 从上图可以看出Ronn Kling是从霍格沃茨学校毕业的,魔法棒甩两下就学会了Using Python from IDL。时间和精力关系,这次就为大家转播到这里,谢谢。

文章来源:http://blog.sina.com.cn/s/blog_764b1e9d0101dgkv.html

0 个评论

要回复文章请先登录注册