1

我正在尝试使用 phase_screens.py 中提供的代码,该代码可以重现 Jee & Tyson (2011) 的情节。当我尝试运行该线路时

    psf = atm.makePSF(lam = 700., exptime = 15., diam = 8.4, obscuration = .6)

我得到一个 AttributeError 说,'generator' 对象没有属性 'stepK'。

但是 atm 的类型是 PhaseScreenList。为什么我不能调用 atm.makePSF 或 atm.wavefront?在制作多屏幕氛围时,(1)在 Atmosphere 构造函数中将列表作为参数传递和(2)定义 AtmosphericScreen 对象然后在 PhaseScreenList 构造函数中传递对象列表之间存在细微差别?先感谢您!

4

1 回答 1

1

我认为这是Atmosphere()功能中的一个错误,当分支#824 合并到 master 时将被修复。如果你现在可以在那个分支工作,那么你可能会没事的。如果您只想修补 master,那么我认为用Atmosphere()以下内容替换最后一行应该可以:

    return galsim.PhaseScreenList(
        [AtmosphericScreen(**kw) 
         for kw in galsim.utilities.lod_to_dol(kwargs, nmax)])
于 2017-02-07T19:43:15.093 回答