Davis使用初体验——aedat4格式转化

将aedat4文件转化为csv文件

结合了一下网上找的各种教程。自己又调整了一下。

读取aedat4文件主要参考:aedat4tomat.py 文件,https://github.com/bald6354/aedat4tomat

其中dv库用于处理aedat4数据,将其读取出来存储为csv文件。

存储csv文件主要参考:https://blog.csdn.net/waple_0820/article/details/70049953

处理代码如下:

#!/usr/bin/python

# """
# data = {'e_p': e_p,
#             'e_ts': e_ts,
#             'e_x': e_x,
#             'e_y': e_y,
#             'f_image': f_image,
#             'f_position': f_position,
#             'f_size': f_size,
#             'f_ts': f_ts,
#             'f_framestart': f_framestart,
#             'f_frameend': f_frameend,
#             'f_expstart': f_expstart,
#             'f_expend': f_expend,
#             'i_ax': i_ax,
#             'i_ay': i_ay,
#             'i_az': i_az,
#             'i_gx': i_gx,
#             'i_gy': i_gy,
#             'i_gz': i_gz,
#             'i_mx': i_mx,
#             'i_my': i_my,
#             'i_mz': i_mz,
#             'i_temp': i_temp,
#             'i_ts': i_ts
#            }
# """

import sys, getopt, os
from dv import AedatFile
import scipy.io as sio
import numpy as np
import pandas as pd

class Struct:
    pass

def main(argv):
    
    #aedat文件路径及转化为csv文件的路径
    filename_in = '/root/autodl-tmp/data/1/'
    #filename_out = '/root/autodl-tmp/1/'
    
    #filelist里是所有文件的名字,存为file列表
    file = []
    filelist = os.listdir(filename_in)
    for file in filelist:
        file_path = os.path.join(filename_in,file)
        #将文件名和文件类型可区分开,便于存储新类型文件
        file_name = os.path.splitext(file)[0]
        file_type = os.path.splitext(file)[1]
        print(file_path)
        print("1111111111111111111111111111")
        print(file_name)
        #file.append(i)
    #print(len(file))
    #aedat_name = "dvSave-2022_11_08_21_22_23.aedat4"
    
    # print('Input file path is :', filename_in)
    # print('Output file path is :', filename_out)
    
    #for i in len(file):
        
        #Define output struct
        out = Struct()
        out.data = Struct()
        out.data.polarity = Struct()

        #Events初始化事件信息list
        out.data.polarity.polarity = []
        out.data.polarity.timeStamp = []
        out.data.polarity.x = []
        out.data.polarity.y = []

        data = {'aedat': out}

        with AedatFile(file_path) as f:

            # loop through the "events" stream
            for e in f['events']:
                out.data.polarity.timeStamp.append(e.timestamp/10e15)
                out.data.polarity.polarity.append(int(e.polarity))
                out.data.polarity.x.append(e.x)
                out.data.polarity.y.append(e.y)

            #字典中的key值即为csv中列名
            dataevent = pd.DataFrame({'x':out.data.polarity.x,'y':out.data.polarity.y,'p':out.data.polarity.polarity,'t':out.data.polarity.timeStamp})

            #将DataFrame存储为csv,index表示是否显示行名,default=True
            path_out = '/root/autodl-tmp/1/'
            
            if not os.path.exists(path_out):#如果路径不存在
                os.makedirs(path_out)
                
            outfo = os.path.join(path_out,file_name)
            dataevent.to_csv(outfo + '.csv',index=False,sep=',')
    
if __name__ == "__main__":
    main(sys.argv[1:])
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值