Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
I
ils-common-video
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
提交
议题看板
打开侧边栏
OpsTeam
ils-common-video
Commits
ec5cbb70
提交
ec5cbb70
authored
7月 01, 2021
作者:
zw.wang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: [pre_event] 过滤无效时间的事件点
上级
4bc5f699
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
16 行增加
和
19 行删除
+16
-19
pre_event.py
isc_video_record/utils/pre_event.py
+16
-19
没有找到文件。
isc_video_record/utils/pre_event.py
浏览文件 @
ec5cbb70
...
@@ -13,6 +13,7 @@ class PreEvent(object):
...
@@ -13,6 +13,7 @@ class PreEvent(object):
influxdb
.
reconnect
()
influxdb
.
reconnect
()
self
.
start_time
=
start_time
self
.
start_time
=
start_time
self
.
end_time
=
end_time
self
.
end_time
=
end_time
self
.
invalid_hour
=
[
0
,
1
,
2
,
3
,
4
,
5
,
6
,
23
]
self
.
tz_start_time
=
dt_parse
(
self
.
start_time
.
replace
(
' '
,
'T'
)
+
'.001000Z'
)
.
astimezone
(
tz
)
self
.
tz_start_time
=
dt_parse
(
self
.
start_time
.
replace
(
' '
,
'T'
)
+
'.001000Z'
)
.
astimezone
(
tz
)
self
.
tz_end_time
=
dt_parse
(
self
.
end_time
.
replace
(
' '
,
'T'
)
+
'.001000Z'
)
.
astimezone
(
tz
)
self
.
tz_end_time
=
dt_parse
(
self
.
end_time
.
replace
(
' '
,
'T'
)
+
'.001000Z'
)
.
astimezone
(
tz
)
...
@@ -21,9 +22,9 @@ class PreEvent(object):
...
@@ -21,9 +22,9 @@ class PreEvent(object):
select *
select *
from "one_week"."event_vss"
from "one_week"."event_vss"
where
where
time >= $start_time
$start_time <= time and time < $end_time
and time < $end_time
and camera_index = $camera_index
and camera_index = $camera_index
order by time
'''
'''
res
=
influxdb
.
query
(
sql
,
bind_params
=
{
res
=
influxdb
.
query
(
sql
,
bind_params
=
{
'start_time'
:
self
.
start_time
,
'start_time'
:
self
.
start_time
,
...
@@ -36,14 +37,16 @@ class PreEvent(object):
...
@@ -36,14 +37,16 @@ class PreEvent(object):
return
points
return
points
def
merge_alarm_to_event
(
self
,
alarm_list
):
def
_alarm_point_to_event
(
self
,
alarm_list
):
pre_events
=
[]
pre_events
=
[]
pre_status
=
-
1
pre_status
=
-
1
# 告警消息转换成事件
# 告警消息转换成事件
for
alarm_point
in
alarm_list
:
for
alarm_point
in
alarm_list
:
# 报警时间转换成上海时区
# 报警时间转换成上海时区
alarm_time
=
dt_parse
(
alarm_point
[
'time'
])
.
astimezone
(
tz
)
alarm_time
=
dt_parse
(
alarm_point
[
'time'
])
.
astimezone
(
tz
)
if
alarm_time
.
hour
in
self
.
invalid_hour
:
# 过滤无效时间
continue
if
alarm_point
[
'status'
]
==
1
:
if
alarm_point
[
'status'
]
==
1
:
if
pre_status
==
1
:
if
pre_status
==
1
:
...
@@ -69,28 +72,22 @@ class PreEvent(object):
...
@@ -69,28 +72,22 @@ class PreEvent(object):
if
pre_status
==
1
:
if
pre_status
==
1
:
pre_events
[
-
1
][
'end_time'
]
=
self
.
tz_end_time
pre_events
[
-
1
][
'end_time'
]
=
self
.
tz_end_time
return
pre_events
def
merge_alarm_to_event
(
self
,
alarm_list
):
pre_events
=
self
.
_alarm_point_to_event
(
alarm_list
)
# 合并时间间隔较短的事件或切分时间过长的事件
# 合并时间间隔较短的事件或切分时间过长的事件
events
=
[]
events
=
[]
for
pre_event
in
pre_events
:
for
pre_event
_item
in
pre_events
:
if
len
(
events
)
>
0
\
if
len
(
events
)
>
0
\
and
pre_event
[
'start_time'
]
-
events
[
-
1
][
'end_time'
]
<=
timedelta
(
seconds
=
30
)
\
and
pre_event
_item
[
'start_time'
]
-
events
[
-
1
][
'end_time'
]
<=
timedelta
(
seconds
=
30
)
\
and
events
[
-
1
][
'end_time'
]
-
events
[
-
1
][
'start_time'
]
<=
timedelta
(
hours
=
0.5
):
and
events
[
-
1
][
'end_time'
]
-
events
[
-
1
][
'start_time'
]
<=
timedelta
(
hours
=
0.5
):
events
[
-
1
][
'end_time'
]
=
pre_event
[
'end_time'
]
events
[
-
1
][
'end_time'
]
=
pre_event
_item
[
'end_time'
]
else
:
else
:
events
.
append
({
events
.
append
({
'start_time'
:
pre_event
[
'start_time'
],
'start_time'
:
pre_event
_item
[
'start_time'
],
'end_time'
:
pre_event
[
'end_time'
],
'end_time'
:
pre_event
_item
[
'end_time'
],
})
})
return
events
return
events
if
__name__
==
'__main__'
:
from
isc_video_record.recorder
import
recorder
pre_event
=
PreEvent
(
'2021-04-26 00:00:00'
,
'2021-04-26 16:00:00'
)
alarm_points
=
pre_event
.
get_alarm_list
(
'f8a3c4d9b8ae42118b4db9fcf7895031'
)
for
event
in
pre_event
.
merge_alarm_to_event
(
alarm_points
):
recorder
(
'f8a3c4d9b8ae42118b4db9fcf7895031'
,
event
[
'start_time'
],
event
[
'end_time'
])
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论