行为建模标注
按照以下步骤使用 INTELINK 功能进行行为建模标注。请确保手机蓝牙已开启,并允许 Ecotopia App 使用蓝牙。 第一步:
第二步:
第三步:
第四步:
第五步:
第六步:
编辑标注的相关步骤请参见 编辑标注结果 章节。
第七步:
可导出的数据包括:
视频
录制的视频- 安卓系统文件命名方式为 <UUID>[video]-<yyyy_mmdd_hhmm_ss_os3>.mp4
- iOS 系统文件命名方式为 <UUID>-<yyyy_mmdd_hhmm_ss_os3>[Video].mp4
标注数据
带行为标签和时间戳的数据文件- 安卓系统导出的文件命名方式为 <UUID>[behavior]-<yyyy_mmdd_hhmm_ss_os3>.csv
- iOS 系统导出的文件命名方式为 <UUID>-<yyyymmdd_hhmmss_os3>[Behavior].csv
- 数据字段说明:
- Start:行为开始的时间
- End:行为结束的时间
- Tag:标注的行为标签
原始数据
数据标注期间采集的加速度原始数据- 安卓系统导出的文件命名方式为 <UUID>[acc]-<yyyy_mmdd_hhmm_ss_os3>.csv
- iOS 系统导出的文件命名方式为 <UUID>-<yyyy_mmdd_hhmm_ss_os3>[Acc].csv
- 数据字段说明:
- Collecting time: 设备采集数据的时间,采集时间精确到毫秒
- X:三轴加速度计 X 轴的值,单位为 1/1024 g
- Y:三轴加速度计 Y 轴的值,单位为 1/1024 g
- Z:三轴加速度计 Z 轴的值,单位为 1/1024 g
注意:安卓系统导出的 Collecting time 为标注启动后的毫秒时间且为数值格式,为了方便您做数据处理,请参考末尾的代码文件将原始数据的 Collecting time 从毫秒转变为完整时间戳。
原始数据(附带行为标签)
数据标注期间采集的附带行为标签的加速度原始数据- 安卓系统导出的文件命名方式为 <UUID>[acc+behavior]-<yyyy_mmdd_hhmm_ss_os3>.csv
- iOS 系统导出的文件命名方式为 <UUID>-<yyyy_mmdd_hhmm_ss_os3>[Behavior & Acc].csv
- 数据字段说明:
- Collecting time: 设备采集数据的时间,采集时间精确到毫秒
- X:三轴加速度计 X 轴的值,单位为 1/1024 g
- Y:三轴加速度计 Y 轴的值,单位为 1/1024 g
- Z:三轴加速度计 Z 轴的值,单位为 1/1024 g
- Tag:标注的行为标签
注意:安卓系统导出的 Collecting time 为标注启动后的毫秒时间且为数值格式,为了方便您做数据处理,请参考末尾的代码文件将原始数据的 Collecting time 从毫秒转变为完整时间戳。
注意:文件名和文件内容中包含的时间均为 UTC+0 时区。
导出数据后,您可以在 App 点击 “我的” > “附加功能” > “行为标注” 查看行为标注历史记录。
请参考以下 R 语言代码将 Collecting time 从毫秒转换为完整时间戳。
R
# 原始数据或原始数据附带行为标签可以使用下面的方法处理,但这两种数据不能同时放在一起处理,需要分开各自处理
# 请确认你已经安装了stringr和dplyr包
library(stringr)
library(dplyr)
# 将你的文件放在对应的文件夹下
folder_path <- "/Users/druid/Desktop/data_tagging/tag"
file_list <- list.files(folder_path, pattern = "*.csv", full.names = TRUE)
data_list <- lapply(file_list, function(file) {
file_data <- read.csv(file)
# 提取ID和时间信息
file_name <- basename(file)
file_parts <- unlist(str_split(file_name, "[-\\.]"))
UUID <- gsub("\\[.*\\]", "", file_parts[1])
timestamp <- file_parts[2]
# 解析时间信息
year <- substr(timestamp, 1, 4)
month <- substr(timestamp, 6, 7)
day <- substr(timestamp, 8, 9)
hour <- substr(timestamp, 11, 12)
minute <- substr(timestamp, 13, 14)
second <- substr(timestamp, 16, 17)
millisecond <- substr(timestamp, 19, 21)
# 整理数据为时间格式,时区为UTC
time_str <- paste(year, month, day, hour, minute, second, sep = "-")
time1 <- as.POSIXct(time_str, format = "%Y-%m-%d-%H-%M-%OS", tz = "UTC")
# 计算时间列,包括毫秒
file_data$time <- time1 + (file_data$Collecting.time + as.numeric(millisecond)) * 1e-3
file_data$time <- format(file_data$time, format = "%Y-%m-%d %H:%M:%OS3", tz = "UTC")
# 添加ID和移除X.1列
file_data$UUID <- UUID
file_data <- file_data[, -which(names(file_data) == "X.1")]
return(file_data)
})
# 由于计算中的时间格式转换,结果会相差0.001秒
tag_data <- bind_rows(data_list)
# 导出文件,可自定义文件名
write.csv(tag_data, "tagging.csv")