跳转到主要内容

ITT's IDL的Python绑定

项目描述

pyIDL
# 基于Andrew McMurry的python-IDL的IDL的Python绑定
# 需要ITT的IDL和numarray
# 下载pyIDL源tarfile
# 安装

解压并解包gzip的tar存档
$ tar -xvzf pyIDL-0.6.tgz

设置环境变量
(路径将取决于IDL安装和平台)
$ export IDL_VERSION = '6.4'
$ export IDL_INCDIR = '/itt/idl/external/include'
$ export IDL_BINDIR = '/itt/idl/bin/bin.linux.x86'
$ export X11_LIBDIR = '/usr/lib/' (仅限linux)

安装包
$ python setup.py build
$ python setup.py install

(另附Makefile)

# 文档

导入idl类
>>> from pyIDL import idl

实例化idl类
>>> ri = idl()

获取帮助
>>> print ri.doc()
Python-IDL绑定
eval(command)
执行IDL命令
get(name,[array,allowNone])
从IDL获取变量
put(name,value,[array,type,allowNone])
将变量推送到IDL
who([name,local,stdout])
打印/返回IDL/本地变量
help([name])
打印IDL帮助信息(对于变量)
delete(name)
销毁选定的IDL变量
map([name])
获取IDL数据类型映射
prompt()
交互式IDL会话
_print(value)
使用IDL打印命令打印

将Python变量推送到IDL并与IDL脚本语言交互
>>> from numarray import *
>>> x = []
>>> for i in range(21): x.append(i*pi/10)
...
>>> ri.put('x',x)
>>> ri.eval('y = sin(x)')
>>> ri.eval('plot, x,y')

使用交互式提示
>>> ri.prompt()
IDL接口
% At $MAIN$
X DOUBLE = Array[21]
Y DOUBLE = Array[21]
编译过程
$MAIN$

编译函数

IDL> IF x[0] LT 1 $
IDL> THEN print, x
0.0000000 0.31415927 0.62831853 0.94247780 1.2566371
1.5707963 1.8849556 2.1991149 2.5132741 2.8274334
3.1415927 3.4557519 3.7699112 4.0840704 4.3982297
4.7123890 5.0265482 5.3407075 5.6548668 5.9690260
6.2831853
IDL> exit

检查IDL会话中的变量
>>> ri.who().keys()
['Y', 'X']
>>> ri.who('y')
[0.0, 0.3090169943749474, 0.58778525229247314, 0.80901699437494745,
0.95105651629515353, 1.0, 0.95105651629515364, 0.80901699437494745,
0.58778525229247325, 0.30901699437494751, 1.2246063538223773e-16,
-0.3090169943749469, -0.58778525229247303, -0.80901699437494734,
-0.95105651629515353, -1.0, -0.95105651629515364, -0.80901699437494756,
-0.58778525229247336, -0.30901699437494762, -2.4492127076447545e-16]

从IDL将变量返回到Python
>>> sinx = ri.get('y')

使用put、eval和get的快捷方式
>>> ri.z = 0.5
>>> ri('print, z')
0.50000000
>>> ri.z + 1
1.5

从IDL中删除变量
>>> ri.delete('x')
>>> ri.delete('y')

直接从Python使用IDL函数/过程
>>> ri.sin(x)
[0.0, 0.3090169943749474, 0.58778525229247314, 0.80901699437494745,
0.95105651629515353, 1.0, 0.95105651629515364, 0.80901699437494745,
0.58778525229247325, 0.30901699437494751, 1.2246063538223773e-16,
-0.3090169943749469, -0.58778525229247303, -0.80901699437494734,
-0.95105651629515353, -1.0, -0.95105651629515364, -0.80901699437494756,
-0.58778525229247336, -0.30901699437494762, -2.4492127076447545e-16]

# 版本

0.6: 07/18/07
增加了对idl_6.4的支持
修复了直接IDL函数/过程调用中的布尔值支持
0.5: 04/18/07
修复了对python2.5的支持
0.4.1: 12/01/06
修复了对mac os的支持
0.4: 10/06/06
增加了对idl_6.3的支持
改进了对NumPy的支持
移除了对Numeric的依赖
0.3: 06/09/06
改进了对Numeric的支持
增加了_print
扩展示例
0.2: 05/19/06
支持64位平台
put、get、eval的快捷方式
从Python访问IDL函数/过程
增加了示例目录
0.1: 06/21/05
RSI的IDL的Python绑定初始版
交互式IDL提示符

项目详情


下载文件

下载适合您平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

pyIDL-0.6.tgz (34.6 kB 查看哈希值)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面