跟踪眼动实验中编辑的注视点

gazel-devjeetr的Python项目详细描述


pyTrace公司

Pytrace提供了聚集注视点的固定算法,以及帮助您处理眼睛跟踪会话期间发生的编辑的工具。在

入门

安装

要求

pytrace需要python3.8.5

安装

可以使用安装pytrace

pip install pytrace

pyTrace提供了一个命令行界面和一个python库。在

要使用这两个版本,您需要三件事:

  • itrace核心文件输出
  • 凝视文件输出
  • 变更日志
  • 原始源文件

要开始:

^{pr2}$

基本功能

Tracker的主要目标是跟踪修订和跨编辑的源代码标记。一旦创建了Tracker,就可以查询它以获取快照等

快照

Tracker维护与原始文件和后续编辑相对应的快照列表。原始版本存储在索引0中,第一次编辑存储在索引1处。在

# get originaltracker.get_snapshot(0)# get first edittracker.get_snapshot(1)

每个快照由Snapshot表示。Snapshot定义为:

classSnapshot:id:intsource:Sourcetokens:Tuple[Token,...]changes:Tuple[TokenChange,...]=()time:float=0.0

Snapshot.time表示创建快照的时间。它对应于changelog中用于创建此Snapshot的时间戳。在

Snapshot.tokens表示已解析的源代码标记。 Snapshot.changes表示自上一个版本以来此{}发生的所有令牌更改。对于代表原始源的Snapshot来说,Snapshot.changes是空的。在

Snapshots.source是一个Source对象,包含源代码的原始文本,以及从文本索引到行号/列号的映射,反之亦然。定义如下:

@dataclass(frozen=True)classSource:text:strmapping:PositionMappinglanguage:str

凝视

您可以检索给定时间窗口的凝视,如下所示:

tracker.get_gazes()# all gazestracker.get_gazes(start,end)# returns a dataframe that is filtered

凝视数据帧只是一个包含原始凝视的pandas.DataFrame,还有一些附加的列:

  • syntax_node-与凝视相关联的语法节点。None如果目光没有落在一个标记上。在
  • syntax_node_id-与此注视相关联的令牌的稳定id。None如果目光没有落在一个标记上。在

syntax_node_id是一个唯一的id,它在不同的快照中分配给源代码中的每个令牌。对于给定的令牌,此id在时间和空间上是唯一的。因此,您可以使用这个id来确定

差异

tracker.diff(0,2)# gives you the diff between version 0 & version 1
tracker.diff_time(2300,2400)# gives you the diff between time unit 2300 & time unit 2400

SnapshotDiff的定义如下:

classSnapshotDiff(NamedTuple):old:Snapshotnew:Snapshottoken_changes:List[TokenChange]gaze_changes:List[GazeChange]gazes:pd.DataFrame

它会给你一个所有标记变化和注视变化的列表。在

{{cd26>标记可以是^ cd26}类型。在

注视变化可以有两种类型:deleted或{}。(deleted表示凝视映射到的令牌已从源中移除。)

默认情况下,tracker.diff(start, end)将包括从实验开始(记录第一次注视的时间)到end快照时间的所有注视。如果只想在startend快照的时间范围内包含凝视,可以传递一个可选参数:

diff=tracker.diff(0,3,window_only=True)

pytrace还提供了一个漂亮的打印机来帮助您打印用于检查数据的差异。它支持打印注视改变,令牌改变和SnapshotDiffs。在

frompytraceimportpprintdiff=tracker.diff(2,3)pprint(diff)pprint(diff.token_changes)pprint(diff.gaze_changes)

pytrace提供了一个模块transforms来帮助您操作pytrace结构,包括Snapshots和{}。在

frompytraceimporttransformsasTdiff=tracker.diff(2,5)# TODO

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java根据选择随机设置图标   java如何将Android Studio与本地服务器数据库SQL server 2008连接?   java在点击鼠标后绘制一个椭圆形   java选项窗格相对于其父项的位置   java如何在Android中的switch case中使用String[]输入?   安卓无法从“15.0.1”确定java版本   如果满足特定条件,java是否重置计时器?   java是一个实体类,可以在OOAD中返回其他实体实例吗?   bash将对jar文件| cut | awk和java程序的调用集成到一个统一进程中   Spring安全更新身份验证成功时的最后登录日期   数据库身份验证中基于Java控制台的客户端服务器登录应用程序错误   java Selenium junit测试失败,驱动程序过早获取URL   java LibGdx多点触摸事件混淆   带扫描仪的java打印空间   来自旧版应用程序的java springcloudsleuth头   java如何实现模板设计模式?   java如何比较具有多个值的键的两个映射?   读取时R中的java MemoryError。xlsx