123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
- <html><head><title>Python: module DataPreProcess</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- </head><body bgcolor="#f0f0f8">
- <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
- <tr bgcolor="#7799ee">
- <td valign=bottom> <br>
- <font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>DataPreProcess</strong></big></big></font></td
- ><td align=right valign=bottom
- ><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:d%3A%5Cplatform%5Cplatform%5Cbackend%5Cdatapreprocess.py">d:\platform\platform\backend\datapreprocess.py</a></font></td></tr></table>
- <p><tt>数据预处理类</tt></p>
- <p>
- <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
- <tr bgcolor="#aa55cc">
- <td colspan=3 valign=bottom> <br>
- <font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
- <tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
- <td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="PathSetting.html">PathSetting</a><br>
- <a href="Tools.html">Tools</a><br>
- </td><td width="25%" valign=top><a href="numpy.html">numpy</a><br>
- <a href="pandas.html">pandas</a><br>
- </td><td width="25%" valign=top><a href="pdb.html">pdb</a><br>
- <a href="sys.html">sys</a><br>
- </td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
- <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
- <tr bgcolor="#ee77aa">
- <td colspan=3 valign=bottom> <br>
- <font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
- <tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
- <td width="100%"><dl>
- <dt><font face="helvetica, arial"><a href="builtins.html#object">builtins.object</a>
- </font></dt><dd>
- <dl>
- <dt><font face="helvetica, arial"><a href="DataPreProcess.html#DataPreProcess">DataPreProcess</a>
- </font></dt></dl>
- </dd>
- </dl>
- <p>
- <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
- <tr bgcolor="#ffc8d8">
- <td colspan=3 valign=bottom> <br>
- <font color="#000000" face="helvetica, arial"><a name="DataPreProcess">class <strong>DataPreProcess</strong></a>(<a href="builtins.html#object">builtins.object</a>)</font></td></tr>
-
- <tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
- <td width="100%">Methods defined here:<br>
- <dl><dt><a name="DataPreProcess-__init__"><strong>__init__</strong></a>(self)</dt><dd><tt>Initialize self. See help(type(self)) for accurate signature.</tt></dd></dl>
- <dl><dt><a name="DataPreProcess-cal_stand_time"><strong>cal_stand_time</strong></a>(self, dfin)</dt><dd><tt># 计算静置时间<br>
- # 将每次行车或充电的前后静置时间,赋值给stand_time 列, 单位为分钟<br>
- <br>
- ----------------输入参数---------<br>
- dfin: 调用data_split_by_status()后输出的bms数据<br>
- <br>
- ----------------输出参数----------<br>
- 在输入数据后面,增加stand_time列<br>
- stand_time : 在行车段或充电段的起止两个位置处,表明开始前和结束后的静置时长,单位为分钟</tt></dd></dl>
- <dl><dt><a name="DataPreProcess-combine_drive_stand"><strong>combine_drive_stand</strong></a>(self, dfin)</dt><dd><tt>合并放电和静置段:将两次充电之间的所有数据段合并为一段, 状态分为 charge 和not charge<br>
- ---------------输入----------<br>
- dfin: 调用data_split_by_status()后输出的bms数据<br>
- <br>
- ---------------输出----------<br>
- 在输入数据后面,增加data_split_by_status_after_combine, data_status_after_combine 两列<br>
- data_split_by_status_after_combine: 将两次充电间的数据合并后的段序号<br>
- data_status_after_combine: 每段数据的状态标识</tt></dd></dl>
- <dl><dt><a name="DataPreProcess-data_gps_judge_after_combine"><strong>data_gps_judge_after_combine</strong></a>(self, df_bms, df_gps, time_diff_thre=600, odo_sum_thre=200, drive_spd_thre=80, parking_spd_thre=2)</dt><dd><tt>GPS数据可靠性判断函数2 (基于combine后的分段) 判别方式同data_gps_judge</tt></dd></dl>
- <dl><dt><a name="DataPreProcess-data_split_by_status"><strong>data_split_by_status</strong></a>(self, dfin, drive_interval_threshold=120, charge_interval_threshold=300, drive_stand_threshold=120, charge_stand_threshold=300)</dt><dd><tt># 数据预处理分段, 将原始数据段分为 charge、drive、stand、none段<br>
- # 状态判断<br>
- # 1、drive:(状态为2或3 且 存在电流>0 ) 或 (电流持续为0 且 持续时间<阈值 且 上一段数据为行车)<br>
- # 2、charge:(状态为2或3 且 不存在电流>0 ) 或 (电流持续为0 且 持续时间<阈值 且 上一段数据为充电)<br>
- # 3、stand:(电流持续为0 且 是数据段的第一段) 或 (电流持续为0 且 持续时间>阈值)<br>
- # 4、none: 其他<br>
- <br>
- --------------输入参数-------------:<br>
- drive_interval_threshold: 行车段拼接阈值,如果两段行车的间隔时间小于该值,则两段行车合并。<br>
- charge_interval_threshold: 充电段拼接阈值,如果两段充电的间隔时间小于该值,则两段充电合并。<br>
- drive_stand_threshold: 静置段合并至行车段阈值,如果静置时间小于该值,则合并到上一段的行车中。<br>
- charge_stand_threshold: 静置段合并至充电段阈值,如果静置时间小于该值,则合并到上一段的充电中。<br>
- <br>
- --------------输出-----------------:<br>
- 在原始数据后面,增加data_split_by_crnt, data_split_by_status, data_status 三列<br>
- data_split_by_crnt: 按电流分段的序号<br>
- data_split_by_status:按电流和状态分段的序号<br>
- data_status: 状态标识</tt></dd></dl>
- <dl><dt><a name="DataPreProcess-data_split_by_time"><strong>data_split_by_time</strong></a>(self, dfin, default_time_threshold=300, drive_time_threshold=300, charge_time_threshold=300, stand_time_threshold=1800)</dt><dd><tt># 该函数用来解决数据丢失问题导致的分段序号异常,<br>
- # 将经过data_split_by_status分段后的数据,每个段内两行数据的时间跳变如果超过阈值,则继续分为两段<br>
- <br>
- --------------输入参数-------------:<br>
- dfin: 调用data_split_by_status之后的函数<br>
- default_time_threshold: 默认时间阈值,如果状态内部时间跳变大于该值,则划分为两段<br>
- drive_time_threshold: 行车时间阈值,如果行车状态内部时间跳变大于该值,则划分为两段<br>
- charge_time_threshold: 充电时间阈值,如果充电状态内部时间跳变大于该值,则划分为两段<br>
- stand_time_threshold:静置时间阈值,如果静置状态内部时间跳变大于该值,则划分为两段<br>
- <br>
- --------------输出-----------------:<br>
- 在输入数据后面,增加data_split_by_status_time 一列<br>
- data_split_by_status_time: 按照状态和时间分段后的序号</tt></dd></dl>
- <dl><dt><a name="DataPreProcess-gps_data_judge"><strong>gps_data_judge</strong></a>(self, df_bms, df_gps, time_diff_thre=300, odo_sum_thre=200, drive_spd_thre=80, parking_spd_thre=2)</dt><dd><tt>GPS数据可靠性判断函数(基于combine前的分段)<br>
- <br>
- GPS数据出现以下情况时,判定为不可靠:<br>
- 1)如果该段对应的地理位置数据 少于2 个,则认为不可靠<br>
- 2)如果截取的GPS数据的起止时间,与BMS数据段的起止时间相差超过阈值,则认为不可靠<br>
- 3)如果行车段 累积里程超过阈值,车速超过阈值<br>
- 4) 如果非行车段 车速超过阈值<br>
- <br>
- --------------输入参数--------------:<br>
- time_diff_thre: 时间差阈值<br>
- odo_sum_thre: 累积里程阈值<br>
- drive_spd_thre: 行车车速阈值<br>
- parking_spd_thre: 非行车状态车速阈值<br>
- <br>
- --------------输出参数--------------:<br>
- df_bms 增加一列gps_rely, 表明对应的GPS数据是否可靠。<br>
- 1:可靠<br>
- <0: 表示不可靠的原因<br>
- df_gps 增加两列odo, speed, 分别表示前后两点间的距离和速度</tt></dd></dl>
- <dl><dt><a name="DataPreProcess-time_filter"><strong>time_filter</strong></a>(self, df_bms, df_gps)</dt><dd><tt># '''</tt></dd></dl>
- <hr>
- Data descriptors defined here:<br>
- <dl><dt><strong>__dict__</strong></dt>
- <dd><tt>dictionary for instance variables (if defined)</tt></dd>
- </dl>
- <dl><dt><strong>__weakref__</strong></dt>
- <dd><tt>list of weak references to the object (if defined)</tt></dd>
- </dl>
- </td></tr></table></td></tr></table><p>
- <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
- <tr bgcolor="#55aa55">
- <td colspan=3 valign=bottom> <br>
- <font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
- <tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
- <td width="100%"><strong>CONF_PATH</strong> = r'D:\Platform\platform\CONFIGURE\'<br>
- <strong>defpath</strong> = r'.;C:\bin'</td></tr></table><p>
- <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
- <tr bgcolor="#7799ee">
- <td colspan=3 valign=bottom> <br>
- <font color="#ffffff" face="helvetica, arial"><big><strong>Author</strong></big></font></td></tr>
-
- <tr><td bgcolor="#7799ee"><tt> </tt></td><td> </td>
- <td width="100%">wlm</td></tr></table>
- </body></html>
|