2

我想在 python 代码中运行 IDL 脚本,因为我需要稍后在 python 脚本中分析 IDL 代码的结果,但我不知道它是如何工作的。例如,我想在 python 代码中调用这个 IDL 脚本:

pro plotgaussian, center, sigma, X=x, Y=y
x = findgen(1000) / 999; numbers running 0 to 1 in steps of 0.001
x = x * 6 * sigma - 3 * sigma; widen x to range over 6 sigma
x = x + center; center the x range on the bell curve center
arg = ((x – center)/sigma)^2
y = exp(-arg)
plot, x, y
end

我怎么能做到?

4

3 回答 3

3

最新版本的 IDL (8.5) 原生支持这一点,它们提供了自己的双向桥接器,用于从 IDL 调用 Python,以及从 Python 调用 IDL。他们的文档在这里: http ://www.exelisvis.com/docs/pythontoidl.html

他们文档中的一些示例代码:

>>> from idlpy import IDL
>>> arr = IDL.findgen(100)/50*3.14159
>>> x = 50*IDL.sin(arr)
>>> y = 50*IDL.cos(arr)
>>> m = IDL.map(test=1)
% Compiled module: MAP.
>>> p = IDL.plot(x - 90, y, 'r-o2', overplot=1)
% Compiled module: PLOT.
>>> p = IDL.plot(x + 90, y, 'b-o2', overplot=1)
>>> m.save('map.png', resolution=96, border=0, transparent=1)
于 2015-11-05T16:04:15.863 回答
0

尝试pyIDL。谷歌,我不确定最新版本在哪里。它似乎相当老了,你可能需要做一些工作才能从 numarray 转换为 NumPy。

于 2013-08-22T05:08:30.270 回答
0

最近维护的比pyIDL看起来要多pIDLy。我没有尝试过(我不是 IDL 用户)。

于 2015-11-04T20:15:21.633 回答