首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在galsim库中,applyShear是做什么的?

在galsim库中,applyShear是做什么的?
EN

Stack Overflow用户
提问于 2014-12-15 08:47:42
回答 3查看 114关注 0票数 1

它做的图像失真与applyTransformation相同吗?还有这个函数applyTransformation吗?

关于applyShear函数,它只适用于剪切,没有其他透镜效应,即没有放大率,或者没有其他高阶效应,对吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-12-16 02:22:33

在1.1版中,不推荐使用applyShearapplyTransformation方法。现在使用的首选方法是sheartransform

shear方法通常用作sheared_obj = obj.shear(g1=g1, g2=g2),其中g1g2是要应用的简化剪切的组成部分。你也可以给出e1e2 (变形而不是剪切),或者gbetaebeta (给出大小和位置角度),等等。有关在班级中指定剪切的方法的更多信息,请参见GalSim的文档。

无论你如何指定剪切,shear方法将剪切给定的表面亮度轮廓,以保持总通量的方式。

transform方法更通用,因为您可以通过任意2x2坐标转换矩阵进行转换。具体来说,您指定了任意Jacobian:dudxdudydvdxdvdy,其中(x,y)是原始坐标,(u,v)是转换的坐标。使用此方法,您可以应用等效于剪切的转换,但需要在Jacobian中手动计算正确的术语。

另一个不同之处是,transform不一定保留通量。只有当雅可比有单位行列式时,通量才能保持。因此,根据您的用例,您可能希望在完成时通过行列式重新确定流量。

我的猜测是,您通常希望使用shear而不是transform。下面是一个示例用例(取自demo5.py中的GalSim示例目录):

代码语言:javascript
复制
gal = galsim.Exponential(flux=1., half_light_radius=gal_re)

[...] 

for [...]:
    # Now in a loop to draw many versions of this galaxy with different shears, etc.

    # Make a new copy of the galaxy with an applied e1/e2-type distortion 
    # by specifying the ellipticity and a real-space position angle
    this_gal = gal.shear(e=ellip, beta=beta)

    # Apply the gravitational reduced shear by specifying g1/g2
    this_gal = this_gal.shear(g1=gal_g1, g2=gal_g2)

    [...]

希望这能有所帮助。

注:上述链接截至2014年12月为最新链接。如果它们过时了,尝试从DO2文档的最高层导航,希望它仍能工作。

票数 1
EN

Stack Overflow用户

发布于 2014-12-15 11:03:44

所有编写的文档、示例和源代码都可以在GitHub上找到,位置如下。https://github.com/GalSim-developers/GalSim

我建议先查看一下,如果没有任何文档直接回答您的问题,您可以始终研究您所描述的applyShear功能的源代码。

祝好运

票数 2
EN

Stack Overflow用户

发布于 2014-12-15 13:31:34

我只想补充一下ne1410s上面的回复(我没有名誉点来评论他或她的帖子)。

除了这些优秀的信息之外,大多数标准功能都有完整的docstring,您可以使用python帮助()例程来检查这些字符串,即

代码语言:javascript
复制
import galsim
help(galsim.GSObject.applyShear)

在applyShear()的情况下,这个例程在最新版本的GalSim中被废弃,但是docstring仍然存在,并将用户指向新的功能。对于旧版本的GalSim,有一个完整的docstring来解释applyShear()是如何工作的。

总之,进入GalSim存储库,您可以通过以下方式获得帮助:

  1. 查看示例中的演示/(它们得到了广泛的评论)。
  2. 阅读doc/中的快速参考指南。
  3. 转到完整的文档,包括所有的文档字符串,在http://galsim-developers.github.io/GalSim/

然后是各个例程的docstring,它们可以通过help()访问。一般来说,不需要阅读源代码来了解例程是如何工作的。

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

https://stackoverflow.com/questions/27480230

复制
相关文章

相似问题

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