2

スクリプトを実行してアニメーションを保存すると、次のエラーが表示され続けます。

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に入りました

そして私は以下を変更しました

maximum_fft_size(16384) から maximum_fft_size(4096)

または 2^12 から 2^14。

以前と同じエラーが引き続き発生します。マシンなどを再起動する必要がありますか?

4

1 に答える 1

2

これは maximum_fft_size パラメータを変更する場所ではありません。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')
于 2014-07-26T16:19:39.383 に答える