TimeDeltaQuantityString#

class astropy.time.TimeDeltaQuantityString(val1, val2, scale, precision, in_subfmt, out_subfmt, from_jd=False)[源代码]#

基类:TimeDeltaFormat, TimeUnique

具有一个或多个数量分量的字符串形式的时间增量。

该格式提供了时间增量的人类可读的多尺度字符串表示。它对于配置文件或命令行选项等应用程序非常方便。

格式指定如下:

  • 字符串是一个或多个组件的序列。

  • 每个分量都是一个数字,后跟一个占星状的时间单位。

  • 对于输入,字符串中的空格是允许的,但可选。

  • 对于输出,组件之间只有一个空格。

  • 下面列出了允许的组件。

  • 顺序(yr、d、hr、min、S)是固定的,但单个组件是可选的。

允许的输入组件单位如下所示:

  • “YR”:年份(365.25天)

  • “d”:天数(24小时)

  • “hr”:小时(60分钟)

  • “min”:分钟(60秒)

  • 《S》:秒

备注

这些定义对应于物理时间单位,而不是日历日期间隔。因此,在“2000-01-01 00:00:00”中加上“1年”将得到“2000-12-31 06:00:00”,而不是“2001-01-01 00:00:00”。

这个 out_subfmt 属性指定要包括在字符串输出中的组件。缺省值为 "multi" 它将时间增量表示为 "<days>d <hours>hr <minutes>min <seconds>s" ,其中仅包括非零组件。

  • “多”:多分量,如“2d 3hr 15min 5.6s”

  • “YR”:年份

  • “d”:天数

  • “hr”:小时

  • “min”:分钟

  • 《S》:秒

实例

>>> from astropy.time import Time, TimeDelta
>>> import astropy.units as u
>>> print(TimeDelta("1yr"))
365d 6hr
>>> print(Time("2000-01-01") + TimeDelta("1yr"))
2000-12-31 06:00:00.000
>>> print(TimeDelta("+3.6d"))
3d 14hr 24min
>>> print(TimeDelta("-3.6d"))
-3d 14hr 24min
>>> print(TimeDelta("1yr 3.6d", out_subfmt="d"))
368.85d
>>> td = TimeDelta(40 * u.hr)
>>> print(td.to_value(format="quantity_str"))
1d 16hr
>>> print(td.to_value(format="quantity_str", subfmt="d"))
1.667d
>>> td.precision = 9
>>> print(td.to_value(format="quantity_str", subfmt="d"))
1.666666667d

属性摘要

in_subfmt 

jd1 

jd2 

name 

out_subfmt 

precision 

re_float 

re_ydhms 

scale 

时间尺度。

subfmts 

value 

方法总结

fill_value \(Subfmt)

以此格式返回与J2000(2000-01-01 12:00:00)对应的值。

fix_comp_vals_overflow(comp_vals)

get_multi_comps(jd1, jd2)

parse_string \(时间字符串)

从单个字符串读取时间

set_jds(val1, val2)

解析val1中包含的时间字符串,得到jd1、jd2。

to_value([parent, out_subfmt])

从指定的内部jd1和jd2返回时间表示 out_subfmt .

属性文档

in_subfmt#
jd1#
jd2#
name = 'quantity_str'#
out_subfmt#
precision#
re_float = '(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?'#
re_ydhms = re.compile('^ \\s*\n        (?P<sign>[-+])? \\s*  # Optional sign\n        (?=[^-+\\s])  # At least one character which is not a sign or whitespace\n        ((?P<yr>(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?) \\s*, re.VERBOSE)#
scale#

时间尺度。

subfmts = (('multi', None, None), ('yr', None, None), ('d', None, None), ('hr', None, None), ('min', None, None), ('s', None, None))#
value#

方法文件

classmethod fill_value(subfmt)#

以此格式返回与J2000(2000-01-01 12:00:00)对应的值。

它用作掩码数组的填充值,以确保掩码数组上的任何ERFA操作不会因掩码值而失败。

static fix_comp_vals_overflow(comp_vals)[源代码]#
get_multi_comps(jd1, jd2)[源代码]#
parse_string(timestr)[源代码]#

从单个字符串读取时间

set_jds(val1, val2)[源代码]#

解析val1中包含的时间字符串,得到jd1、jd2。

to_value(parent=None, out_subfmt=None)[源代码]#

从指定的内部jd1和jd2返回时间表示 out_subfmt .

这是忽略的基本方法 parent 并使用 value 属性来计算输出。通过此设置临时完成 self.out_subfmt 呼唤 self.value . 在astropy 4.0之前实现新的astropy值应该是旧代码所必需的 to_value() 然后把 value 属性是对 self.to_value() .

参数:
parent : object对象

起源 Time 与此关联的对象 TimeFormat 对象

out_subfmt : strNonePYTHON:字符串或PYTHON:无

输出子窗体(使用现有自我保护如果 None

返回:
value : numpy.arraynumpy.ma.array数字阵列, numpy.ma.数组

格式化时间表示值的数组或掩码数组