气氛和。大气屏幕然后相位屏幕列表
Atmosphere vs. AtmosphericScreen then PhaseScreenList
我正在尝试使用 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 构造函数中传递对象列表之间存在细微差别?提前致谢!
我认为这是 Atmosphere()
函数中的一个错误,将在分支 #824 合并到 master 时修复。如果您现在可以在该分支机构工作,那么您可能会没事。如果你只想修补大师,那么我认为用以下内容替换 Atmosphere()
的最后一行应该可行:
return galsim.PhaseScreenList(
[AtmosphericScreen(**kw)
for kw in galsim.utilities.lod_to_dol(kwargs, nmax)])
我正在尝试使用 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 构造函数中传递对象列表之间存在细微差别?提前致谢!
我认为这是 Atmosphere()
函数中的一个错误,将在分支 #824 合并到 master 时修复。如果您现在可以在该分支机构工作,那么您可能会没事。如果你只想修补大师,那么我认为用以下内容替换 Atmosphere()
的最后一行应该可行:
return galsim.PhaseScreenList(
[AtmosphericScreen(**kw)
for kw in galsim.utilities.lod_to_dol(kwargs, nmax)])