(The documentation of function humanTime2sacIndex)
Last Update: 2023/6/12
◆機能・用途(Purpose)
struct humanTime型構造体で表された絶対日時を
SAC時系列データ内でのサンプル番号
(struct sac_timeseq型構造体のメンバdata.valueの配列要素番号)
に変換する。
Convert an absolute date and time,
expressed by a struct humanTime-type structure,
to a sample index in a SAC time series data
(i.e., an index of array of member data.value
of a struct sac_timeseq-type structure).
◆形式(Format)
#include <sac/convert.h>
inline int humanTime2sacIndex
(union sacheader header,struct humanTime time_specified)
◆引数(Arguments)
header
SACヘッダ。
A SAC header.
time_specified
変換したい時刻。
The time to convert.
◆戻り値(Return value)
引数headerで指定されたヘッダを持つSACデータの
先頭時刻を\(t_0\)、サンプリング間隔を\(\Delta t\)、
引数time_specifiedが表す時刻を\(t\)として、
\(t=t_0+k\Delta t\)を満たす整数\(k\)。
この式を満たす\(k\)が整数でない場合はプログラムをエラー終了する。
The integer \(k\) that satisfies \(t=t_0+k\Delta t\),
where \(t_0\) and \(\Delta t\) are
the beginning time and sampling interval, respectively,
of the SAC data that has the headers
specified by argument header,
and \(t\) is the time specified by argument time_specified.
If the value of \(k\) that satisfies this relation is not an integer,
the program finishes as an error.
◆使用例(Example)
struct sac_timeseq sacdata
=read_sac_timeseq("20140102_0345_1min_100Hz.sac");
struct humanTime timevalue={2014,1,2,3,45,6.78};
int index=humanTime2sacIndex(sacdata.header,timevalue);
この例において、20140102_0345_1min_100Hz.sacは
2014/01/02 03:45:00からの1分間のSAC時系列データ(100 Hzサンプリング)
であるものとする。
この場合、上の例ではindex=678となる。
Suppose that 20140102_0345_1min_100Hz.sac in this example
is a SAC time series data of 100 Hz sampling
that begins at 03:45:00 on January 2, 2014.
Then this example gives index=678.