時系列の作成

時系列を初期化する

ここで見る最初のタイプの時系列は 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

行を追加する際にいくつかの値をスキップすることが望ましい場合、マスクが有効にされることが保証されるべきである-参照されたい 時系列中のマスク値 もっと細かいことを知っています。