ケィオスの時系列解析メモランダム

時系列解析,生体情報学,数学・物理などの解説です.

【Rで加速度解析】ATR-Promotionsの小型無線多機能センサ TSND151データの読み込み

今回はATR-Promotionsが販売している小型無線多機能センサTSND151
小型無線多機能センサ「TSND121/151」 |ATR-Promotions
のデータファイルを,Rで読み込むときのお話です.ポイントは,計測時刻をどうやってRの時刻変数に変更するかということです.

TSND151のデータ形式

 TSND151で計測されたデータをcsvファイルに書き出すと,

 センサ名-年月日-時分秒ミリ秒.csv

のルールでファイル名が付けられます.このファイルの中身は,

ags,51745030,-9269,-13,3381,108,12,-27
ags,51745040,-9269,45,3403,93,24,-3
ags,51745050,-9306,60,3456,105,3,9
ags,51745060,-9284,23,3361,81,-1,49
ags,51745070,-9291,-1,3312,56,-7,58
ags,51745080,-9321,28,3429,53,12,86
 ... 

のようになってます.各列は以下の変数を表しています.

データ種別 時刻 加速度 X 加速度 Y 加速度 Z 角速度 X 角速度 Y 角速度 Z
ags 51745030 -9269 -13 3381 108 12 -27
ags 51745040 -9269 45 3403 93 24 -3
... ... ... ... ... ... ... ...

 ここで,時刻は2列目ですが,この値を見ただけでは,何時か分かりません.以下では,Rを使って,この値を日時に変換する方法を説明します.

TSND151の計測日時

 TSND151の計測結果のcsvファイルにある「時刻」は,計測日の 00:00:00から経過時間を表しています.単位は,ミリ秒です.

 ファイルの中には「計測日」は書かれていないです.「計測日」はファイル名に書かれています.

 例えば,2022年10月14日14:30:00から計測を開始したのであれば,ファイル名は,

 subject-20221014-143000000.csv

となります.ですので,「20221014」の部分を読めば計測日が20221014
だということが分かります.

 ということで,ファイル名から計測日を読み取り,ファイル中の2列目の値 (ミリ秒単位になってます)を,計測日の00:00:00から足してやれば,計測日時が特定できます.

Rスクリプトの例

 RでTSND151の計測日時を知りたければ,以下のスクリプトを実行してください.timeという列が追加され,それが計測日時になってます.

# TSND151データのファイル名
FN.ATR <- "subject-20221014-143000000.csv"
# ファイル名を分割し,日付を抽出
tmp <- strsplit(FN.ATR,"-")
tmp.Date <- paste(substr(tmp[[1]][2],1,4),"-",substr(tmp[[1]][2],5,6),"-",substr(tmp[[1]][2],7,8),sep="")
# 計測日の00:00:00を設定
TIME0 <- as.POSIXct(tmp.Date,tz="Japan")
# TSND151データの読み込み
TMP <- read.csv(FN.ATR,header=FALSE)
# 日時をtimeとして追加
TMP$time <- TIME0+TMP$V2/1000