2014-03-01 9 views
0

IDL to Python : 스플라인 보간법 섹션을 제외하고는 모두 괜찮습니다. 여기서 IDL이하는 일을 잘 모릅니다. 다음은 변환 할 비트가있는 섹션입니다.IDL 스플라인 보간법을 파이썬으로 변환

; slice of IDL code 
x=[6.0 5.0 4.0 3.0 2.0] 
x1 = [1.0] 
xi1 = x1[0] 
x2 = [1.15,1.81984,2.1,2.27015,2.7] 
x3 = [3.5,3.9,4.0,4.1,4.2] 
xi3 = X3[N_ELEMENTS(X3)-1] 
a1v = 0.574 *x1^1.61 
a1d = 0.574*1.61*xi1^0.61 
a2v = 1 + 0.17699*(x2-1.82) - 0.50447*(x2-1.82)^2 $ 
- 0.02427*(x2-1.82)^3 + 0.72085*(x2-1.82)^4 $ 
+ 0.01979*(x2-1.82)^5 - 0.77530*(x2-1.82)^6 $ 
+ 0.32999*(x2-1.82)^7 + [0.0,0.0,-0.011,0.0, 0.0] 
a3v = 1.752 - 0.316*x3 - 0.104/ ((x3-4.67)*(x3-4.67) $ 
+ 0.341) + [0.442,0.341,0.130,0.020,0.000] 
a3d = -0.316 + 0.104*2*(xi3-4.67)/((xi3-4.67)*(xi3-4.67) + 0.341)^2 
; these are the two lines I need to convert to python 
as = SPL_INIT([x1,x2,x3], [a1v,a2v,a3v], YP0=a1d, YPN_1=a3d) 
av = REVERSE(SPL_INTERP([x1,x2,x3], [a1v,a2v,a3v], as, REVERSE(x))) 

TIA.

답변

0

저는 (Exelis)가 소스 코드를 제공한다고 생각하지 않기 때문에 SPL_INTERP()에 대해 확실하지 않습니다.

IDL> .edit spline 

당신이 구현 볼 수 있는지 확인하기 : 그러나, 그들은 당신이 그렇게 같은에서 좀 걸릴 수 있습니다 .PRO 코드로 제공 단순히 스플라인 (라는 또 다른 큐빅 스플라인 루틴)을 제공 할 당신에게 필요한 결과를 줄 것입니다. 이 도움이
http://docs.scipy.org/doc/scipy-0.14.0/reference/tutorial/interpolate.html#spline-interpolation

희망 : 말했다

, 당신은이 기능이 SciPy를 시도 할 수 있습니다.