2013-08-21 50 views
2

我想在Python代碼中運行IDL腳本,因爲我需要稍後在python腳本中分析IDL代碼的結果,但我不知道它是如何工作的。 我想打電話給例如該IDL腳本在Python代碼:在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 

我怎麼能這樣做呢?

+2

請提供你嘗試過什麼已經有一些例子。 – BartoszKP

回答

0

嘗試pyIDL。谷歌爲它,我不知道最新版本的生活。這似乎是相當古老的,你可能需要做一些工作,從numarray轉換爲NumPy。

0

最近保存的比pyIDL好像是pIDLy。我沒有嘗試過(我不是IDL用戶)。

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)