Python 运行Galsim时发生FFT运行时错误
在运行脚本保存动画时,我不断收到以下错误:Python 运行Galsim时发生FFT运行时错误,python,galsim,Python,Galsim,在运行脚本保存动画时,我不断收到以下错误: RuntimeError: SB Error: fourierDraw() requires an FFT that is too large, 6144 If you can handle the large FFT, you may update gsparams.maximum_fft_size. 所以我进入了/Galsim/include/Galsim/GSparams.h 我改变了以下内容 从最大fft大小(4096)到最大fft大小(16
RuntimeError: SB Error: fourierDraw() requires an FFT that is too large, 6144
If you can handle the large FFT, you may update gsparams.maximum_fft_size.
所以我进入了/Galsim/include/Galsim/GSparams.h
我改变了以下内容
从最大fft大小(4096)到最大fft大小(16384)
或2^12中的2^14
我仍然得到和以前一样的错误。我应该重新启动我的机器还是什么?这不是更改最大fft大小参数的地方。有关如何使用GSParams对象和更新参数的示例,请参见demo7。GSObject的文档字符串中还有一个示例:
>>> gal = galsim.Sersic(n=4, half_light_radius=4.3)
>>> psf = galsim.Moffat(beta=3, fwhm=2.85)
>>> conv = galsim.Convolve([gal,psf])
>>> im = galsim.Image(1000,1000, scale=0.05) # Note the very small pixel scale!
>>> im = conv.drawImage(image=im) # This uses the default GSParams.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "galsim/base.py", line 1236, in drawImage
image.added_flux = prof.SBProfile.draw(imview.image, gain, wmult)
RuntimeError: SB Error: fourierDraw() requires an FFT that is too large, 6144
If you can handle the large FFT, you may update gsparams.maximum_fft_size.
>>> big_fft_params = galsim.GSParams(maximum_fft_size=10240)
>>> conv = galsim.Convolve([gal,psf],gsparams=big_fft_params)
>>> im = conv.drawImage(image=im) # Now it works (but is slow!)
>>> im.write('high_res_sersic.fits')
gal=galsim.Sersic(n=4,半光半径=4.3)
>>>psf=galsim.Moffat(β=3,半高宽=2.85)
>>>conv=galsim.Convolve([gal,psf])
>>>im=galsim.Image(10001000,比例=0.05)#注意非常小的像素比例!
>>>im=conv.drawImage(image=im)#使用默认的GSParams。
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
drawImage中第1236行的文件“galsim/base.py”
image.added_flux=prof.SBProfile.draw(imview.image,增益,wmult)
RuntimeError:SB Error:fourierDraw()需要太大的FFT,6144
如果可以处理较大的FFT,则可以更新gsparams.maximum_FFT_size。
>>>大fft参数=galsim.GSParams(最大fft参数=10240)
>>>conv=galsim.convalve([gal,psf],gsparams=big\u fft\u params)
>>>im=conv.drawImage(image=im)#现在它可以工作了(但速度很慢!)
>>>im.write(‘高分辨率服务适合’)