宇宙论#
- class astropy.cosmology.Cosmology(name=None, meta=None)[源代码]#
基类:
object
所有宇宙学的基类。
- 参数:
笔记
类实例是静态的--您不能(也不应该)更改参数值。也就是说,以上所有属性(META除外)都是只读的。
有关如何创建Performant自定义子类的详细信息,请参阅 加速自定义宇宙中的积分 。
宇宙学子类自动注册在全局注册表中,并使用各种I/O方法。若要关闭或更改此注册,请重写
_register_cls
子类中的类方法。属性摘要
将对象转换为
Cosmology
。返回布尔;
True
如果宇宙学是扁平的。宇宙实例的名称。
参数的不可变映射。
读取数据并将其分析到
Cosmology
。把这个宇宙学转换成另一种形式。
以指定的格式写出此宇宙对象。
方法总结
clone
(*[, meta])按照指定返回此对象的副本以及更新后的参数。
is_equivalent
(other, /, *[, format])检查宇宙之间的等价性。
属性文档
- from_format#
将对象转换为
Cosmology
。该功能为Astropy统一I/O层提供宇宙学接口。这允许使用以下语法轻松解析受支持的数据格式::
>>> from astropy.cosmology import Cosmology >>> cosmo1 = Cosmology.from_format(cosmo_mapping, format='mapping')
当
from_format
方法,则该子类将提供关键字参数cosmology=<class>
到已注册的解析器。该方法使用这个宇宙学类,而不考虑数据中指示的类,并根据类的签名设置参数的默认值。获取有关可用读者的帮助。
help()
方法:>>> Cosmology.from_format.help() # Get help and list supported formats >>> Cosmology.from_format.help('<format>') # Get detailed help on a format >>> Cosmology.from_format.list_formats() # Print list of available formats
- meta = None#
- name#
宇宙实例的名称。
- parameters = mappingproxy({})#
参数的不可变映射。
如果从类访问,则返回参数对象本身的映射。如果从实例访问,则返回参数值的映射。
- read#
读取数据并将其分析到
Cosmology
。该功能为Astropy统一I/O层提供宇宙学接口。这允许使用语法以支持的数据格式轻松读取文件,例如::
>>> from astropy.cosmology import Cosmology >>> cosmo1 = Cosmology.read('<file name>')
当
read
方法,则该子类将提供关键字参数cosmology=<class>
添加到已注册的Read方法。该方法使用这个宇宙学类,而不考虑文件中指示的类,并根据类的签名设置参数的默认值。获取有关可用读者的帮助。
help()
方法:>>> Cosmology.read.help() # Get help reading and list supported formats >>> Cosmology.read.help(format='<format>') # Get detailed help on a format >>> Cosmology.read.list_formats() # Print list of available formats
- to_format#
把这个宇宙学转换成另一种形式。
该功能提供到AstPy统一I/O层的宇宙学接口。这允许使用以下语法轻松转换为受支持的数据格式::
>>> from astropy.cosmology import Planck18 >>> Planck18.to_format("mapping") {'cosmology': astropy.cosmology.core.FlatLambdaCDM, 'name': 'Planck18', 'H0': <Quantity 67.66 km / (Mpc s)>, 'Om0': 0.30966, ...
获取有关可用表示法的帮助
Cosmology
使用help()
方法:>>> Cosmology.to_format.help() # Get help and list supported formats >>> Cosmology.to_format.help('<format>') # Get detailed help on format >>> Cosmology.to_format.list_formats() # Print list of available formats
- 参数:
- format :
str
Python :字符串 格式说明符。
- *args
位置参数传递给数据编写器。如果提供,第一个参数是输出文件名。
- **kwargs
传递给数据编写器的关键字参数。
- format :
- write#
以指定的格式写出此宇宙对象。
该功能提供到AstPy统一I/O层的宇宙学接口。这允许使用以下语法以受支持的数据格式轻松写入文件::
>>> from astropy.cosmology import Planck18 >>> Planck18.write('<file name>')
获取有关可用的编写器的帮助
Cosmology
使用help()
方法:>>> Cosmology.write.help() # Get help writing and list supported formats >>> Cosmology.write.help(format='<format>') # Get detailed help on format >>> Cosmology.write.list_formats() # Print list of available formats
- 参数:
- *args
位置参数传递给数据编写器。如果提供,第一个参数是输出文件名。
- format :
str
(可选,仅关键字)Python:str(可选,仅关键字) 文件格式说明符。
- **kwargs
传递给数据编写器的关键字参数。
方法文件
- clone(*, meta=None, **kwargs)[源代码]#
按照指定返回此对象的副本以及更新后的参数。
这不能用来改变宇宙学的类型,所以
clone()
不能用于在平坦和非平坦的宇宙之间切换。- 参数:
- 返回:
- 新宇宙 :
Cosmology
子类实例宇宙子类实例 具有指定的更新参数的此类的新实例。如果没有给出参数,则返回对此对象的引用,而不是复制。
- 新宇宙 :
实例
要制作一份
Planck13
物质密度不同的宇宙学 (Om0
)和一个新名称:>>> from astropy.cosmology import Planck13 >>> Planck13.clone(name="Modified Planck 2013", Om0=0.35) FlatLambdaCDM(name='Modified Planck 2013', H0=<Quantity 67.77 km / (Mpc s)>, Om0=0.35, ...
如果未指定名称,则新名称将注意到修改。
>>> Planck13.clone(Om0=0.35).name 'Planck13 (modified)'
- is_equivalent(other: Any, /, *, format: _FormatType = False) bool [源代码]#
检查宇宙之间的等价性。
即使不是同一类,两个宇宙论也可能是等价的。例如,一个
LambdaCDM
可能有过 \(\Omega_0=1\) 和 \(\Omega_k=0\) 因此是平坦的,就像FlatLambdaCDM
。- 参数:
- 返回:
- bool
如果宇宙论是等价的,则为真,否则为假。
实例
两个宇宙论可能是等价的,即使它们不属于同一类。在此示例中,
LambdaCDM
有Ode0
设置为与中计算的值相同FlatLambdaCDM
。>>> import astropy.units as u >>> from astropy.cosmology import LambdaCDM, FlatLambdaCDM >>> cosmo1 = LambdaCDM(70 * (u.km/u.s/u.Mpc), 0.3, 0.7) >>> cosmo2 = FlatLambdaCDM(70 * (u.km/u.s/u.Mpc), 0.3) >>> cosmo1.is_equivalent(cosmo2) True
而在这个例子中,宇宙论是不等价的。
>>> cosmo3 = FlatLambdaCDM(70 * (u.km/u.s/u.Mpc), 0.3, Tcmb0=3 * u.K) >>> cosmo3.is_equivalent(cosmo2) False
此外,使用关键字参数,等价性的概念被扩展到任何可以转换为
Cosmology
。>>> from astropy.cosmology import Planck18 >>> tbl = Planck18.to_format("astropy.table") >>> Planck18.is_equivalent(tbl, format=True) True
有效格式的列表,例如
Table
在本例中,可以用Cosmology.from_format.list_formats()
。从格式列表中可以看到,并不是所有的格式都可以通过
Cosmology.from_format.registry
。仍然可以检查这些类型的对象的等价性,但必须使用正确的格式字符串。>>> tbl = Planck18.to_format("yaml") >>> Planck18.is_equivalent(tbl, format="yaml") True