首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GALSIM:使用插值图像类而不指定通量规范化

GALSIM:使用插值图像类而不指定通量规范化
EN

Stack Overflow用户
提问于 2015-06-17 17:44:26
回答 1查看 82关注 0票数 2

对于我正在进行的项目,我将需要计算给定的表面亮度轮廓的导数,该导数与像素响应函数(以及PSF等)相转换。

出于各种原因,但主要是为了一致性,我希望使用GALSIM代码的核心来实现这一点。然而,由于在这种情况下,定义为非参数模型之和的“通量”在图像本身方面不再具有物理意义(在这种情况下,它总是被认为是无噪音的),在某些情况下,我希望能够在不进行通量归一化的情况下定义插值图像。

代码似乎并不关心“通量”是否为负值,但我遇到了某些情况,即“通量”在机器精度为零的范围内,因此断言dabs(通量-通量_tot) <= dabs(Flux_tot)‘失败。

因此,我的问题是:在不指定通量正常化值的情况下,可以指定一个非参数模型进行插值吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-18 16:47:30

目前无法使用galsim.InterpolatedImage()类进行此操作;您可以在GalSim存储库中打开一个问题,在GitHub上发出此特性请求。

有一种方法可以使用GalSim的内核来实现这一点;如果您愿意挖掘源代码(lensing_ps.py --只需搜索SBInterpolatedImage以找到相关的代码位),则在透镜功率谱功能中说明了一个例子。基本思想是,您不用使用galsim.InterpolatedImage(),而是使用相关的C++类galsim._galsim.SBInterpolatedImage(),它在python中是可访问的。可以在实空间和傅里叶空间中使用图像和插值选择来初始化SBInterpolatedImage,如lensing_ps.py中的示例所示,然后使用xValue()方法进行查询,得到插值到某个位置的值。

这个技巧在lensing_ps.py中是必要的,因为我们在插值剪切场,它的平均值是零,所以我们遇到了同样的问题。SBInterpolatedImage类的使用通常不推荐给GalSim用户(我们建议只使用python类),但目前它肯定是解决问题的一种方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30898716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档