我试图从外部的ascii文件中导入星系值(Sersic索引、半光半径等)到GalSim中。我在读取位置角值'beta‘有困难,并想知道这是否可能使用YAML格式。
当我尝试时,我得到了错误消息:
galsim.errors.GalSimConfigValueError: Invalid value_type specified for parameter beta with type=Catalog. Value <class 'coord.angle.Angle'> not in (<class 'float'>, <class 'int'>, <class 'bool'>, <class 'str'>)
我意识到我收到了这个错误消息,因为我无法在输入后追加字符串'deg‘来指定输入的单位是度。
我尝试将'deg‘直接添加到输入目录中(在“语音标记”中),但没有成功。我还试着在目录读取代码中的语句后添加“deg”,也没有成功。
下面是一个最低限度的工作示例。这依赖于同一个目录中一个名为“input.dat”的文件,其中只有一个数字(例如,45)。然后,将下面的代码保存为“test.yaml”,并以$ galsim test.yaml的形式在命令行上运行
gal :
type : Sersic
n : 1
half_light_radius : 1
flux : 1
ellip :
type : QBeta
q : 0.5
beta : { type : Catalog , col : 0 }
input :
catalog :
file_name : input.dat我希望能够从输入的ascii目录中读取β位置角参数,并将它们复制到输出星系轮廓中。上面的MWE应该在45度的位置角(或放置在“input.dat”内的任何数字)产生一个中等椭圆星系的小邮资邮票图像。
预先感谢您在这方面的任何帮助或建议。
发布于 2019-01-28 19:18:42
试试这个:
gal :
type : Sersic
n : 1
half_light_radius : 1
flux : 1
ellip :
type : QBeta
q : 0.5
beta :
type: Radians
theta: { type : Catalog , col : 0 }
input :
catalog :
file_name : input.dat如果目录列以度为单位列出角度,则还有一个Degrees类型的工作方式相同。
https://stackoverflow.com/questions/54338131
复制相似问题