Как установить случайное начальное число в Galsim, модульном наборе инструментов для моделирования изображений галактики
Как можно было бы установить случайное начальное число для функций, подобных следующим:
image = galsim.imageD(x_lim,y_lim,scale)
image_gal = gal_obj.drawShoot(image=image)
Мне нужно детерминированное семя, но я не уверен, как его установить.
1 ответ
Решение
Используйте аргумент ключевого слова "rng" при рисовании. Так, например, вы могли бы сделать
image = galsim.ImageD(x_lim, y_lim, scale=scale)
image_gal = gal_obj.drawShoot(image=image, rng=galsim.BaseDeviate(1234567))
если вы хотите детерминированную фотонную съемку с использованием семян 1234567.
С другой стороны, использование drawShoot все еще поддерживается, но не рекомендуется с GalSim v1.1. Вместо этого мы поощряем использование унифицированного метода рисования, который позволяет как фотонную съемку, так и DFT-рендеринг. В этом случае последняя строка фрагмента кода станет
image_gal = gal_obj.drawImage(image=image, rng=galsim.BaseDeviate(1234567), method='phot')
(То есть, если у вас установлен GalSim v1.1.)