時系列の作成¶
時系列を初期化する¶
ここで見る最初のタイプの時系列は TimeSeries
オブジェクトは、離散的な瞬時時間に連続変数をサンプリングする時系列のために使用することができる。初期化中です TimeSeries
オブジェクトは初期化と Table
対象(参照) Data Tables )であるが、時間に関する他のパラメータは指定されなければならない。
時系列を均一にサンプリングする.¶
構造均一サンプリングの TimeSeries
開始時間、時間間隔、サンプル数を指定します。
>>> from astropy import units as u
>>> from astropy.timeseries import TimeSeries
>>> ts1 = TimeSeries(time_start='2016-03-22T12:30:31',
... time_delta=3 * u.s,
... n_samples=5)
>>> ts1
<TimeSeries length=5>
time
object
-----------------------
2016-03-22T12:30:31.000
2016-03-22T12:30:34.000
2016-03-22T12:30:37.000
2016-03-22T12:30:40.000
2016-03-22T12:30:43.000
♪the time
キーワードパラメータは、転送可能に設定することができます Time
クラス(別参照) Time and Dates )または Time
オブジェクトを直接使用する。注意してください。 n_samples
パラメータは、初期化中に同時にデータが入力されない場合にのみ必要となります(参照 Passing Data During Initialization )。
時系列をランダムにサンプリングする¶
任意の時間のサンプルを用いてサンプリング時系列を構築するには,複数回渡すことができる. time
論拠::
>>> ts2 = TimeSeries(time=['2016-03-22T12:30:31',
... '2016-03-22T12:30:38',
... '2016-03-22T12:34:40'])
>>> ts2
<TimeSeries length=3>
time
object
-----------------------
2016-03-22T12:30:31.000
2016-03-22T12:30:38.000
2016-03-22T12:34:40.000
ベクトルを指定することもできます Time
対象をそのままにする time=
パラメータやベクトル TimeDelta
パラメータまたは数量配列を追加する time_delta=
論拠:::
>>> TimeSeries(time_start="2011-01-01T00:00:00",
... time_delta=[0.1, 0.2, 0.1, 0.3, 0.2]*u.s)
<TimeSeries length=5>
time
object
-----------------------
2011-01-01T00:00:00.000
2011-01-01T00:00:00.100
2011-01-01T00:00:00.300
2011-01-01T00:00:00.400
2011-01-01T00:00:00.700
入庫された時系列を初期化する¶
♪the BinnedTimeSeries
時系列を表すために使用することができ、各エントリは、ある時間範囲内で行われる測定、例えば、X線光子イベントをカプセル化することによって構築された光曲線に対応する。このようなサポートサイズが等しいまたは不均一なゴミ箱、および連続的および非連続的なゴミ箱。そこまでは TimeSeries
初期化 BinnedTimeSeries
初期化することで Table
対象(参照) Data Tables )しかし、時間に関する他のパラメータは、以下のように指定されるべきである。
大きさの等しい連続ゴミ箱¶
等しい大きさの連続柱の入庫時系列を作成するためには、開始時間と条柱の大きさを指定すれば十分である。
>>> from astropy.timeseries import BinnedTimeSeries
>>> ts3 = BinnedTimeSeries(time_bin_start='2016-03-22T12:30:31',
... time_bin_size=3 * u.s, n_bins=10)
>>> ts3
<BinnedTimeSeries length=10>
time_bin_start time_bin_size
s
object float64
----------------------- -------------
2016-03-22T12:30:31.000 3.0
2016-03-22T12:30:34.000 3.0
2016-03-22T12:30:37.000 3.0
2016-03-22T12:30:40.000 3.0
2016-03-22T12:30:43.000 3.0
2016-03-22T12:30:46.000 3.0
2016-03-22T12:30:49.000 3.0
2016-03-22T12:30:52.000 3.0
2016-03-22T12:30:55.000 3.0
2016-03-22T12:30:58.000 3.0
注意してください。 n_bins
パラメータは、初期化中に同時にデータが入力されない場合にのみ必要となります(参照 Passing Data During Initialization )。
不整地連続ゴミ箱¶
不均一な連続条柱を有する入庫時系列を作成する際には、複数の値を提供するためにバー柱のサイズを変更することができる(本例では、本例では n_bins
必須項ではない):
>>> ts4 = BinnedTimeSeries(time_bin_start='2016-03-22T12:30:31',
... time_bin_size=[3, 3, 2, 3] * u.s)
>>> ts4
<BinnedTimeSeries length=4>
time_bin_start time_bin_size
s
object float64
----------------------- -------------
2016-03-22T12:30:31.000 3.0
2016-03-22T12:30:34.000 3.0
2016-03-22T12:30:37.000 2.0
2016-03-22T12:30:39.000 3.0
代替的に、開始時間配列および単一の終了時間を提供することによって、同じ時系列を作成することもできる:
>>> ts5 = BinnedTimeSeries(time_bin_start=['2016-03-22T12:30:31',
... '2016-03-22T12:30:34',
... '2016-03-22T12:30:37',
... '2016-03-22T12:30:39'],
... time_bin_end='2016-03-22T12:30:42')
>>> ts5
<BinnedTimeSeries length=4>
time_bin_start time_bin_size
s
object float64
----------------------- -----------------
2016-03-22T12:30:31.000 3.0
2016-03-22T12:30:34.000 3.0
2016-03-22T12:30:37.000 2.0
2016-03-22T12:30:39.000 3.0
不均一不連続ゴミ箱¶
非連続カラムを有する入庫時系列を作成するためには、開始時間およびバー幅の配列を指定することができます。
>>> ts6 = BinnedTimeSeries(time_bin_start=['2016-03-22T12:30:31',
... '2016-03-22T12:30:38',
... '2016-03-22T12:34:40'],
... time_bin_size=[5, 100, 2]*u.s)
>>> ts6
<BinnedTimeSeries length=3>
time_bin_start time_bin_size
s
object float64
----------------------- -------------
2016-03-22T12:30:31.000 5.0
2016-03-22T12:30:38.000 100.0
2016-03-22T12:34:40.000 2.0
あるいは最も一般的な場合には何度も time_bin_start
そして time_bin_end
**
>>> ts7 = BinnedTimeSeries(time_bin_start=['2016-03-22T12:30:31',
... '2016-03-22T12:30:33',
... '2016-03-22T12:30:40'],
... time_bin_end=['2016-03-22T12:30:32',
... '2016-03-22T12:30:35',
... '2016-03-22T12:30:41'])
>>> ts7
<BinnedTimeSeries length=3>
time_bin_start time_bin_size
s
object float64
----------------------- ------------------
2016-03-22T12:30:31.000 1.0
2016-03-22T12:30:33.000 2.0
2016-03-22T12:30:40.000 1.0
時系列へのデータの追加¶
以上の例は、初期化の方法を示しています TimeSeries
オブジェクトであるが,これらのオブジェクトには時間以外のデータは含まれていない.データを追加するには様々な方法があります Table
級友たち。
初期化中にデータを転送する¶
オブジェクトの初期化期間中にデータを転送することが可能である. TimeSeries
オブジェクト、例えば Table
物体です。例えば:
>>> ts8 = BinnedTimeSeries(time_bin_start=['2016-03-22T12:30:31',
... '2016-03-22T12:30:34',
... '2016-03-22T12:30:37',
... '2016-03-22T12:30:39'],
... time_bin_end='2016-03-22T12:30:42',
... data={'flux': [1., 4., 5., 6.] * u.mJy})
>>> ts8
<BinnedTimeSeries length=4>
time_bin_start time_bin_size flux
s mJy
object float64 float64
----------------------- ----------------- -------
2016-03-22T12:30:31.000 3.0 1.0
2016-03-22T12:30:34.000 3.0 4.0
2016-03-22T12:30:37.000 2.0 5.0
2016-03-22T12:30:39.000 3.0 6.0
初期化後にデータを追加する¶
一度なると TimeSeries
オブジェクトが初期化された後、ペアのように列/フィールドを追加することができます Table
対象::
>>> from astropy import units as u
>>> ts1['flux'] = [1., 4., 5., 6., 4.] * u.mJy
>>> ts1
<TimeSeries length=5>
time flux
mJy
object float64
----------------------- -------
2016-03-22T12:30:31.000 1.0
2016-03-22T12:30:34.000 4.0
2016-03-22T12:30:37.000 5.0
2016-03-22T12:30:40.000 6.0
2016-03-22T12:30:43.000 4.0
行を追加する¶
行を追加する TimeSeries
あるいは…。 BinnedTimeSeries
使用できる add_row()
方法は、例えば Table
そして Table
それがそうです。この方法は,キーワードが列名である辞書を受け取る:
>>> ts8.add_row({'time_bin_start': '2016-03-22T12:30:44.000',
... 'time_bin_size': 2 * u.s,
... 'flux': 3 * u.mJy})
>>> ts8
<BinnedTimeSeries length=5>
time_bin_start time_bin_size flux
s mJy
object float64 float64
----------------------- ----------------- -------
2016-03-22T12:30:31.000 3.0 1.0
2016-03-22T12:30:34.000 3.0 4.0
2016-03-22T12:30:37.000 2.0 5.0
2016-03-22T12:30:39.000 3.0 6.0
2016-03-22T12:30:44.000 2.0 3.0
行を追加する際にいくつかの値をスキップすることが望ましい場合、マスクが有効にされることが保証されるべきである-参照されたい 時系列中のマスク値 もっと細かいことを知っています。