Как установить случайное начальное число в 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.)

Другие вопросы по тегам