Рисование изображения PSF с пользовательским радиальным профилем в GalSim
У меня есть радиальный профиль функции рассеяния точки (PSF), который я хочу нарисовать в GalSim, чтобы я мог вызвать FindAdaptiveMom для получающегося изображения. Профиль выражен в единицах нормализованной интенсивности в зависимости от углового положения в угловых секундах. Я ознакомился с инструкциями по созданию пользовательского объекта, но мне интересно, можно ли визуализировать изображение GalSim без создания объекта? Если нет, можно ли построить объект, просто прочитав его в профиле?
1 ответ
К сожалению, в настоящее время не очень легко вывести свой собственный профиль в GalSim. Инструкции, на которые вы указали, потребовали бы, чтобы выходные данные по-прежнему генерировались в терминах существующих типов galsim, поэтому не совсем то, что вы ищете.
Я думаю, у вас есть два варианта:
Если все, что вас волнует, это
FindAdaptiveMom
немного, и вы не хотите делать что-либо сложное с рендерингом, вы можете самостоятельно установить радиальный профиль. Изображение - это в основном просто обертка вокруг массива и границ (определяющих, какова координата источника массива). Таким образом, вы можете написать этот массив самостоятельно, а затем сделать изображение из этого сim = galsim.Image(array)
и позвонитьFindAdaptiveMom
на что.Если вы хотите, чтобы ваш радиальный профиль был истинным профилем яркости поверхности на небе (а не как на изображении), а затем правильно отображал его, включая интеграцию по пикселям, то это немного сложнее. Вы можете заставить GalSim сделать это, выполнив вышеупомянутый рендеринг, а затем сделать
galsim.InterpolatedImage
объект из этого, который будет рассматривать нарисованное изображение как профиль поверхностной яркости, который затем может быть нарисован обычным способом (drawImage
).