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(‘高分辨率服务适合’)