宇宙论#

class astropy.cosmology.Cosmology(name=None, meta=None)[源代码]#

基类:object

所有宇宙学的基类。

参数:
*args

引入宇宙学的参数;由子类使用,而不是此基类。

name : strNone (可选,仅关键字)PYTHON:STR或PYTHON:NONE(可选,仅关键字)

宇宙学的名字。

meta : dictNone (可选,仅关键字)PYTHON:DICT或PYTHON:NONE(可选,仅关键字)

用于宇宙学的元数据,例如引用。

**kwargs

引入宇宙学的参数;由子类使用,而不是此基类。

笔记

类实例是静态的--您不能(也不应该)更改参数值。也就是说,以上所有属性(META除外)都是只读的。

有关如何创建Performant自定义子类的详细信息,请参阅 加速自定义宇宙中的积分

宇宙学子类自动注册在全局注册表中,并使用各种I/O方法。若要关闭或更改此注册,请重写 _register_cls 子类中的类方法。

属性摘要

from_format 

将对象转换为 Cosmology

is_flat 

返回布尔; True 如果宇宙学是扁平的。

meta 

name 

宇宙实例的名称。

parameters 

参数的不可变映射。

read 

读取数据并将其分析到 Cosmology

to_format 

把这个宇宙学转换成另一种形式。

write 

以指定的格式写出此宇宙对象。

方法总结

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

另请参阅:https://docs.astropy.org/en/stable/io/unified.html

参数:
obj : object对象

要根据“Format”分析的对象

*args

传递给数据解析器的位置参数。

format : strNone ,可选的仅关键字PYTHON:STR或PYTHON:NONE,仅关键字可选

对象格式说明符。为 None (默认)CosmologyFromFormat尝试识别正确的格式。

**kwargs

传递给数据解析器的关键字参数。解析器应接受以下关键字参数:

  • 宇宙学在以下情况下使用/检查的类(或其字符串名

    构建宇宙学实例。

返回:
outCosmology 子类实例宇宙子类实例

Cosmology 对应于 obj 内容。

is_flat#

返回布尔; True 如果宇宙学是扁平的。

这是抽象的,必须在子类中定义。

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

另请参阅:https://docs.astropy.org/en/stable/io/unified.html

参数:
*args

传递给数据读取器的位置参数。如果提供,第一个参数通常是输入文件名。

format : str (可选,仅关键字)Python:str(可选,仅关键字)

文件格式说明符。

**kwargs

传递给数据读取器的关键字参数。

返回:
outCosmology 子类实例宇宙子类实例

Cosmology 对应于文件内容。

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 : strPython :字符串

格式说明符。

*args

位置参数传递给数据编写器。如果提供,第一个参数是输出文件名。

**kwargs

传递给数据编写器的关键字参数。

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() 不能用于在平坦和非平坦的宇宙之间切换。

参数:
meta : mappingNone (可选,仅关键字)PYTHON:MAPPING或PYTHON:NONE(可选,仅关键字)

将更新当前元数据的元数据。

**kwargs

宇宙学参数(和名称)修改。如果更改了任何参数且未指定新名称,则该名称将设置为“ [old name] (经修改)“。

返回:
新宇宙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

参数:
otherCosmology 子类实例,仅位置宇宙子类实例,仅限于位置

要比较的对象。

format : boolNonestr ,可选的仅关键字Bool或python:无或python:str,可选,仅关键字

在检查等效性之前,是否允许将对象转换为 Cosmology 。这允许,例如 Table 相当于宇宙学。 False (默认)不允许转换。 TrueNone 将,并将使用自动识别来尝试推断正确的格式。一个 str 被假定为转换时要使用的正确格式。 format 被广播以匹配形状的 other 。请注意,宇宙学的论点并不是针对 format ,因此它无法确定输出形状。

返回:
bool

如果宇宙论是等价的,则为真,否则为假。

实例

两个宇宙论可能是等价的,即使它们不属于同一类。在此示例中, LambdaCDMOde0 设置为与中计算的值相同 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