当前位置: 首页 > news >正文

【Pm4py第七讲】关于visualization

本节用于介绍pm4py中的可视化函数,包括可视化bpmn、petri、性能图谱、变迁系统等。

1.函数概述

 本次主要介绍Pm4py中一些常见的可视化函数,总览如下表:

函数名说明
view_alignments(log, aligned_traces[, format])可视化对齐方法

view_bpmn(bpmn_graph[, format, bgcolor, rankdir])

查看BPMN图
view_case_duration_graph(log[, format, ...])可视化案例持续时间图
view_dfg(dfg, start_activities, end_activities)查看(复合)DFG
view_dotted_chart(log[, format, attributes, ...])显示虚线图表
view_events_distribution_graph(log[, ...])显示指定维度中事件的分布
view_events_per_time_graph(log[, format, ...])可视化每个时间的事件图
view_footprints(footprints[, format])可视化足迹矩阵
view_heuristics_net(heu_net[, format, bgcolor])查看启发式网络
view_network_analysis(network_analysis[, ...])可视化网络分析
view_object_graph(ocel, graph[, format, ...])在屏幕上可视化对象图形
view_ocdfg(ocdfg[, annotation, act_metric, ...])使用所提供的配置查看OC-DFG(以对象为中心的直接跟随图)。
view_ocpn(ocpn[, format, bgcolor, rankdir])在屏幕上可视化以对象为中心的Petri网
view_performance_dfg(dfg, start_activities, ...)查看性能DFG
view_performance_spectrum(log, activities[, ...])显示性能频谱
view_petri_net(petri_net[, initial_marking, ...])查看(复合) Petri网
view_prefix_tree(trie[, format, bgcolor])查看前缀树
view_process_tree(tree[, format, bgcolor, ...])查看流程树
view_sna(sna_metric[, variant_str])表示SNA度量(html)
view_transition_system(transition_system[, ...])查看变迁系统

       此外,还有保存可视化图形的方法,这里只需要将view_XXX()改为save_vis_XXX()方法即可,例如,可视化方法view_bpmn()改为可保存的可视化方法为save_vis_bpmn().

2.函数方法介绍

2.1 可视化Petri网

pm4py.vis.view_petri_net(petri_net: PetriNet, initial_marking: Marking | None = None, final_marking: Marking | None = None, format: str = 'png', bgcolor: str = 'white', decorations: Dict[Any, Any] | None = None, debug: bool = False, rankdir: str = 'LR')
说明:可视化Petri网

输入参数:

      petri_net(PetriNet)–petri网
      initial_marking–初始标记
      final_marking–最终标记
      format(str)–输出图片的格式(如果提供了html,则使用GraphvizJS在html页面中呈 现可视化效果)
      bgcolor(str)–可视化的背景色(默认值:白色)
装饰–与Petri网元素相关的装饰(颜色、标签)
     debug(bool)–启用/禁用调试模式的布尔值(显示位置和转换的名称)
     rankdir(str)–设置图形的方向(“LR”表示从左到右;“TB”表示从上到下)

示例代码:

import pm4pynet, im, fm = pm4py.discover_petri_net_inductive(dataframe, activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')
pm4py.view_petri_net(net, im, fm, format='svg')

2.2 可视化性能DFG

pm4py.vis.view_performance_dfg(dfg: dict, start_activities: dict, end_activities: dict, format: str = 'png', aggregation_measure='mean', bgcolor: str = 'white', rankdir: str = 'TB')
说明:可视化性能DFG

输入参数

      dfg(dict)–dfg对象
      start_activities(dict)–启动活动
      end_activities(dict)–结束活动
      format(str)–输出图片的格式(如果提供了html,则使用GraphvizJS在html页面中呈现可视化效果)
      aggregation_measure(str)–聚合度量值(默认值:均值):均值、中值、最小值、最大值、总和、标准差
      bgcolor(str)–可视化的背景色(默认值:白色)
      rankdir(str)–设置图形的方向(“LR”表示从左到右;“TB”表示从上到下)

示例代码:

import pm4pyperformance_dfg, start_activities, end_activities = pm4py.discover_performance_dfg(dataframe, case_id_key='case:concept:name', activity_key='concept:name', timestamp_key='time:timestamp')
pm4py.view_performance_dfg(performance_dfg, start_activities, end_activities, format='svg')

2.3 可视化DFG

pm4py.vis.view_dfg(dfg: dict, start_activities: dict, end_activities: dict, format: str = 'png', bgcolor: str = 'white', max_num_edges: int = 9223372036854775807, rankdir: str = 'TB')
说明:可视化DFG

输入参数
    dfg(dict)–dfg对象
    start_activities(dict)–启动活动
    end_activities(dict)–结束活动
    format(str)–输出图片的格式(如果提供了html,则使用GraphvizJS在html页面中呈现可视化效果)
    bgcolor(str)–可视化的背景色(默认值:白色)
    max_num_edges(int)–要在图中表示的最大边数
    rankdir(str)–设置图形的方向(“LR”表示从左到右;“TB”表示从上到下)

示例代码:

import pm4pydfg, start_activities, end_activities = pm4py.discover_dfg(dataframe, case_id_key='case:concept:name', activity_key='concept:name', timestamp_key='time:timestamp')
pm4py.view_dfg(dfg, start_activities, end_activities, format='svg')

2.4 可视化流程树

pm4py.vis.view_process_tree(tree: ProcessTree, format: str = 'png', bgcolor: str = 'white', rankdir: str = 'TB')
说明:可视化流程树

输入参数

      tree(ProcessTree)–流程树
      format(str)–可视化的格式(如果提供了html,则使用GraphvizJS在html页面中呈现可视化)
      bgcolor(str)–可视化的背景色(默认值:白色)
      rankdir(str)–设置图形的方向(“LR”表示从左到右;“TB”表示从上到下)

示例代码:

import pm4pyprocess_tree = pm4py.discover_process_tree_inductive(dataframe, activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')
pm4py.view_process_tree(process_tree, format='svg')

2.5 可视化BPMN

pm4py.vis.view_bpmn(bpmn_graph: BPMN, format: str = 'png', bgcolor: str = 'white', rankdir: str = 'LR')
说明:可视化BPMN

输入参数

    bpmn_graph(bpmn)–bpmn图
    format(str)–可视化的格式(如果提供了html,则使用GraphvizJS在html页面中呈现可视化)
    bgcolor(str)–可视化的背景色(默认值:白色)
    rankdir(str)–设置图形的方向(“LR”表示从左到右;“TB”表示从上到下)

示例代码:

import pm4pybpmn_graph = pm4py.discover_bpmn_inductive(dataframe, activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')
pm4py.view_bpmn(bpmn_graph)

2.6 可视化启发式网

pm4py.vis.view_heuristics_net(heu_net: HeuristicsNet, format: str = 'png', bgcolor: str = 'white')
说明:可视化启发式网

输入参数

      heu_net(启发式网络)–启发式网络
      format(str)–可视化的格式
      bgcolor(str)–可视化的背景色(默认值:白色)

 示例代码:

import pm4pyheu_net = pm4py.discover_heuristics_net(dataframe, activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')
pm4py.view_heuristics_net(heu_net, format='svg')

2.7 可视化点图

pm4py.vis.view_dotted_chart(log: EventLog | DataFrame, format: str = 'png', attributes=None, bgcolor: str = 'white', show_legend: bool = True)

说明:可视化点图。虚线是事件日志中不同维度的事件的经典可视化。事件日志中的每个事件都对应于一个点。尺寸投影在具有:-X轴的图形上:第一个尺寸的值在那里表示Y轴:第二个维度的值在那里表示。-颜色:对于虚线图的点,第三维度的值表示为不同的颜色。
这些值可以是字符串、数字或日期值,并由虚线进行相应的管理。虚线图表可以建立在不同的属性上。点图的一个方便选择是可视化案例和事件在一段时间内的分布,有以下选择:-XX:事件的时间戳。-Y轴:事件日志中事例的索引。-颜色:事件的活动。
上述选择允许识别视觉模式,例如:-批次。-箱子到达率的变化。-案例完成率的变化。

输入参数:

      log–事件日志
     format(str)–图像格式
     attributes–应该用于构造点图的属性。如果“无”,将显示默认的虚线图:x轴:时间y轴:事例(按事件日志中的发生顺序)颜色:活动。对于自定义属性,使用形式为[x轴属性、y轴属性、颜色属性]的属性列表,例如[“concept:name”、“org:resource”、“concept:name”])
     bgcolor(str)–虚线图中使用的背景色
     show_legend(bool)–boolean(启用/禁用显示图例)

 示例代码:

import pm4pypm4py.view_dotted_chart(dataframe, format='svg')
pm4py.view_dotted_chart(dataframe, attributes=['time:timestamp', 'concept:name', 'org:resource'])

2.8 表示SNA度量

pm4py.vis.view_sna(sna_metric: SNA, variant_str: str | None = None)

说明:表示SNA度量(.html)

输入参数:

    sna_metric(sna)–度量值
    variant_str–要使用的变量(默认值:pyvis)
​​​​​​​

示例代码:

import pm4pymetric = pm4py.discover_subcontracting_network(dataframe, resource_key='org:resource', timestamp_key='time:timestamp', case_id_key='case:concept:name')
pm4py.view_sna(metric)

 2.9 可视化案例持续时间图

pm4py.vis.view_case_duration_graph(log: EventLog | DataFrame, format: str = 'png', activity_key='concept:name', timestamp_key='time:timestamp', case_id_key='case:concept:name')

说明:可视化案例持续时间图

输入参数:

   log–log对象
   format(str)–可视化的格式(png、svg…)
   activity_key(str)–要用作活动的属性
   case_id_key(str)–要用作案例标识符的属性
   timestamp_key(str)–要用作时间戳的属性

示例代码:

import pm4pypm4py.view_case_duration_graph(dataframe, format='svg', activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')

2.10 可视化每个时间的事件图

pm4py.vis.view_events_per_time_graph(log: EventLog | DataFrame, format: str = 'png', activity_key='concept:name', timestamp_key='time:timestamp', case_id_key='case:concept:name')

说明:可视化每个时间的事件图。

输入参数:    

      log–log对象
      format(str)–可视化的格式(png、svg…)
      activity_key(str)–要用作活动的属性
      case_id_key(str)–要用作案例标识符的属性
     timestamp_key(str)–要用作时间戳的属性

示例代码

import pm4pypm4py.view_events_per_time_graph(dataframe, format='svg', activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')

2.11 性能图谱

pm4py.vis.view_performance_spectrum(log: EventLog | DataFrame, activities: List[str], format: str = 'png', activity_key: str = 'concept:name', timestamp_key: str = 'time:timestamp', case_id_key: str = 'case:concept:name', bgcolor: str = 'white')

说明:显示性能谱。性能谱是流程执行中不同活动之间经过的时间的流程性能的一种新颖可视化。性能谱最初描述于:

Denisov, Vadim, et al. “The Performance Spectrum Miner: Visual Analytics for Fine-Grained Performance Analysis of Processes.” BPM (Dissertation/Demos/Industry). 2018.

输入参数:    

      perf_spectrum–性能谱
      format(str)–可视化的格式(png、svg…)
      activity_key(str)–要用于活动的属性
      timestamp_key(str)–用于时间戳的属性
      case_id_key(str)–要用作案例标识符的属性
      activity_key–要用作活动的属性
      case_id_key–要用作案例标识符的属性
      timestamp_key–要用作时间戳的属性
      bgcolor(str)–可视化的背景色(默认值:白色)

示例代码:

import pm4pypm4py.view_performance_spectrum(dataframe, ['Act. A', 'Act. C', 'Act. D'], format='svg', activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')

2.12  显示指定维度中事件的分布

pm4py.vis.view_events_distribution_graph(log: EventLog | DataFrame, distr_type: str = 'days_week', format='png', activity_key='concept:name', timestamp_key='time:timestamp', case_id_key='case:concept:name')

说明:显示指定维度中事件的分布
观察事件随时间的分布,可以推断出有关工作班次、工作日和一年中或多或少繁忙的时期的有用信息

输入参数:    

      log–事件日志
      district_type(str)–分布类型(默认值:days_week):-days_month=>获取事件在一个月的天数(从1到31)中的分布-mounts=>获取事件的月份(从1个月到12个月)中的分配-mounts>>获取事件在事件日志的年份中的分布-hunts=>获得事件在一天的小时中的分布(从0到23)-days_week=>获取事件在一周中的天数(从周一到周日)-weeks=>获取事件在全年中的周中的分布(从0至52)
      format(str)–可视化的格式(默认值:png)
      activity_key(str)–要用作活动的属性
      case_id_key(str)–要用作案例标识符的属性
      timestamp_key(str)–要用作时间戳的属性

示例代码:

import pm4pypm4py.view_events_distribution_graph(dataframe, format='svg', distr_type='days_week', activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')

2.13 查看OC-DFG

pm4py.vis.view_ocdfg(ocdfg: Dict[str, Any], annotation: str = 'frequency', act_metric: str = 'events', edge_metric='event_couples', act_threshold: int = 0, edge_threshold: int = 0, performance_aggregation: str = 'mean', format: str = 'png', bgcolor: str = 'white', rankdir: str = 'LR')[source]

说明:使用提供的配置查看OC-DFG(以对象为中心的直接跟随图形)。
以对象为中心的直接跟随多重图是单个对象类型的直接跟随图的组合,考虑到以对象为核心的事件日志的实体(即事件、唯一对象、总对象),可以用不同的度量对其进行注释。

输入参数:    

      ocdfg–以对象为中心的直接跟随图
      annotation(str)–用于可视化的注释。值:-“频率”:频率注释-“性能”:性能注释
      act_metric(str)–用于活动的度量。可用值:-“events”=>事件数(默认值)-“unique_objects”=>唯一对象数-“total_objects“=>总对象数
edge_metric(str)–用于边的度量。可用值:-“event_couples”=>事件对数(默认)-“unique_objects”=>唯一对象数-“total_objects“=>总对象数
      act_threshold(int)–应用于活动频率的阈值(默认值:0)。只有频率>=的活动才会保留在图中。
      edge_threshold(int)–要应用于边缘频率的阈值(默认为0)。只有频率>=的边才会保留在图形中。
      performance_aggregation(str)–用于性能的聚合度量:平均值、中值、最小值、最大值、总和
      format(str)–输出可视化的格式(如果提供了html,则GraphvizJS用于在html页面中呈现可视化)
      bgcolor(str)–可视化的背景色(默认值:白色)
      rankdir(str)–设置图形的方向(“LR”表示从左到右;“TB”表示从上到下)

示例代码:

import pm4pyocdfg = pm4py.discover_ocdfg(ocel)
pm4py.view_ocdfg(ocdfg, annotation='frequency', format='svg')

2.14 可视化以对象为中心的petri网

pm4py.vis.view_ocpn(ocpn: Dict[str, Any]format: str = 'png'bgcolor: str = 'white'rankdir: str = 'LR')

说明:可视化以对象为中心的petri网。

输入参数:    

      ocpn–以对象为中心的Petri网
     format(str)–可视化的格式(如果提供了html,则使用GraphvizJS在html页面中呈现可视化)
     bgcolor(str)–可视化的背景色(默认值:白色)
      rankdir(str)–设置图形的方向(“LR”表示从左到右;“TB”表示从上到下)

示例代码:

import pm4pyocpn = pm4py.discover_oc_petri_net(ocel)
pm4py.view_ocpn(ocpn, format='svg')

2.15 查看OC-DFG

pm4py.vis.view_object_graph(ocel: OCEL, graph: Set[Tuple[str, str]], format: str = 'png', bgcolor: str = 'white', rankdir: str = 'LR')

说明:可视化对象图。

输入参数:    

      ocel(ocel)–以对象为中心的事件日志
      graph–对象图
      format(str)–可视化的格式(如果提供了html,则使用GraphvizJS在html页面中呈现可视化)
       bgcolor(str)–可视化的背景色(默认值:白色)
      rankdir(str)–设置图形的方向(“LR”表示从左到右;“TB”表示从上到下)

示例代码:

import pm4pyocel = pm4py.read_ocel('trial.ocel')
obj_graph = pm4py.ocel_discover_objects_graph(ocel, graph_type='object_interaction')
pm4py.view_object_graph(ocel, obj_graph, format='svg')

2.16 可视化网络分析

pm4py.vis.view_network_analysis(network_analysis: Dict[Tuple[str, str], Dict[str, Any]], variant: str = 'frequency', format: str = 'png', activity_threshold: int = 1, edge_threshold: int = 1, bgcolor: str = 'white')

说明:可视化网络分析

输入参数:    

      network_analysis–网络分析
      variant(str)–可视化的变体:-频率(如果发现的网络分析包含交互的频率)-性能(如果找到的网络分析包括交互的性能)
      format(str)–可视化的格式(如果提供了html,则使用GraphvizJS在html页面中呈现可视化)
      activity_threshold(int)–要包含的活动的最小出现次数(默认值:1)
      edge_threshold(int)–要包含的边的最小出现次数(默认值:1)
      bgcolor(str)–可视化的背景色(默认值:白色)

示例代码:

import pm4pynet_ana = pm4py.discover_network_analysis(dataframe, out_column='case:concept:name', in_column='case:concept:name', node_column_source='org:resource', node_column_target='org:resource', edge_column='concept:name')
pm4py.view_network_analysis(net_ana, format='svg')

2.17 可视化变迁系统

pm4py.vis.view_transition_system(transition_system: TransitionSystem, format: str = 'png', bgcolor: str = 'white')

说明:可视化变迁系统

输入参数:    

       transition_system(TransitionSystem)–过渡系统
      format(str)–可视化的格式(如果提供了html,则使用GraphvizJS在html页面中呈现可视化)
      bgcolor(str)–可视化的背景色(默认值:白色)

示例代码:

import pm4pytransition_system = pm4py.discover_transition_system(dataframe, activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')
pm4py.view_transition_system(transition_system, format='svg')

 2.18 可视化前缀树

pm4py.vis.view_prefix_tree(trie: Trieformat: str = 'png'bgcolor: str = 'white')

说明:可视化前缀树

输入参数:    

      prefix_tree–前缀树
     format(str)–可视化的格式(如果提供了html,则使用GraphvizJS在html页面中呈现可视化)
      bgcolor(str)–可视化的背景色(默认值:白色)

示例代码:

import pm4pyprefix_tree = pm4py.discover_prefix_tree(dataframe, activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')
pm4py.view_prefix_tree(prefix_tree, format='svg')

 2.19 可视化对齐

pm4py.vis.view_alignments(log: EventLog | DataFrame, aligned_traces: List[Dict[str, Any]], format: str = 'png')

说明:可视化对齐

输入参数:    

    log–事件日志
     aligned_traces–对齐的结果
format(str)–可视化的格式(默认值:png)

示例代码:

import pm4pylog = pm4py.read_xes('tests/input_data/running-example.xes')
net, im, fm = pm4py.discover_petri_net_inductive(log)
aligned_traces = pm4py.conformance_diagnostics_alignments(log, net, im, fm)
pm4py.view_alignments(log, aligned_traces, format='svg')

 2.20 可视化足迹矩阵

pm4py.vis.view_footprints(footprints: Tuple[Dict[str, Any], Dict[str, Any]] | Dict[str, Any], format: str = 'png')

说明:可视化足迹矩阵

输入参数:    

     footprints–footprints
     format(str)–
  可视化的格式(默认值:png)

示例代码:

import pm4pylog = pm4py.read_xes('tests/input_data/running-example.xes')
fp_log = pm4py.discover_footprints(log)
pm4py.view_footprints(fp_log, format='svg')

如需了解更多,欢迎加入流程挖掘交流群QQ:671290481.

相关文章:

【Pm4py第七讲】关于visualization

本节用于介绍pm4py中的可视化函数,包括可视化bpmn、petri、性能图谱、变迁系统等。 1.函数概述 本次主要介绍Pm4py中一些常见的可视化函数,总览如下表: 函数名说明view_alignments(log, aligned_traces[, format])可视化对齐方法 view_bpmn(…...

通过 BigQuery 中的 11 个新链增强 Google Cloud 的区块链数据服务

2018 年初,Google Cloud 与社区合作,通过BigQuery 公共数据集实现区块链数据民主化;2019 年,又扩展了六个数据集;今天,我们在 BigQuery 公共数据集中添加了 11 个最受欢迎的区块链预览版。我们也在对该程序…...

C++笔记之文档术语——将可调用对象作为函数参数

C笔记之文档术语——将可调用对象作为函数参数 相关博文:C笔记之函数对象functors与可调用对象 文章目录 C笔记之文档术语——将可调用对象作为函数参数1.在函数参数中传递可调用对象2.‘在参数中传入可调用对象’和‘将可调用对象作为函数参数’哪个描述更加专业…...

【Android知识笔记】FrameWork中的设计模式

一、FrameWork中有哪些设计巧妙之处 例如: Binder调用,模糊进程边界: 屏蔽跨进程IPC通信的细节,让开发者把精力放在业务上面,无需关心进程之间的通信。Bitmap大图传输,高性能: 只传递Binder句柄,到目标进程后做内存映射,不用做大量数据拷贝,速度非常快。Zygote创建进…...

机器学习西瓜书+南瓜书吃瓜教程第三章学习笔记

本次学习为周老师的机器学习西瓜书谢老师南瓜书Datawhale视频 视频地址 下面为本人的学习笔记,最近很忙还没学多少,之后补!!! u1s1,边看视频边自己手推一遍真的清楚很多,强烈推荐自己手推虽然花…...

JUnit5单元测试提示“Not tests were found”错误

JUnit5单元测试提示“Not tests were found”错误,如下图所示: 或者 问题解析: 1)使用Test注解时,不能有返回值; 2)使用Test注解时,不能使用private关键字; 存在以上情…...

C++ -- IO流

目录 C语言的输入与输出 CIO流 C标准IO流 C文件IO流 文件常见的打开方式如下 以二进制的形式操作文件 以文本的形式操作文件 读写结构体 stringstream的简单介绍 C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输…...

uniapp:如何修改组件默认样式

日历组件默认样式如下图,但是我不想要右上角的红点,并且日期下面的数字要加红色背景,变成圆形,还是先用元素检查找到元素的类名,然后通过/deep/来覆盖样式,需要注意的是,lang要scss或者less&…...

Lombok @Accessors(chain = true) 导致 FastJson parsObject()对父类属性失效

我们在项目中经常会用到lombok工具对POJO类进行简化,但不可避免的存在父类和子类的设计,并且会对父类和子类进行序列化和反序列化,今天遇到了一个问题,序列化的json字符串转化为子类对象时无法获取到父类属性值,对象中所有父类属性均为空值或默认值,很是奇怪,代码如下: 父类:P…...

Aztec交易架构解析

1. 引言 前序博客有: Aztec的隐私抽象:在尊重EVM合约开发习惯的情况下实现智能合约隐私完全保密的以太坊交易:Aztec网络的隐私架构Aztec.nr:Aztec的隐私智能合约框架——用Noir扩展智能合约功能Account Abstraction账号抽象——…...

商品秒杀系统整理

1、使用redis缓存商品信息 2、互斥锁解决缓存击穿问题,用缓存空值解决缓存穿透问题。 3、CAS乐观锁解决秒杀超卖的问题 4、使用redission实现一人一单。(分布式锁lua)脚本。 5、使用lua脚本进行秒杀资格判断(将库存和用户下单…...

C语言实现八种功能的通讯录(添加、删除、查找、修改、显示、排序、退出、清空)

通讯录功能概要及前提说明 此通讯录利用C语言完成,可以实现八种功能的通讯录(添加、删除、查找、修改、显示、排序、退出、清空) 代码由三部分组成,为什么要写成三部分而不写成一部分可以参考我以前的博客,如下&…...

视频监控/视频汇聚/安防视频监控平台EasyCVR配置集群后有一台显示离线是什么原因?

开源EasyDarwin视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多…...

【RabbitMQ实战】02 生产者和消费者示例

在上一节中,我们使用docker部署了RabbitMQ,这一节我们将写一段生产者和消费者的代码。将用到rabbitmq的原生API来进行生产和发送消息。 一、准备工作 开始前,我们先在RabbitMQ控制台建相好关的数据 本机的RabbitMQ部署机器是192.168.56.201…...

Linux下ThinkPHP5实现定时器任务 - 结合crontab

实例一&#xff1a; 1.在/application/command创建要配置的PHP类文件&#xff0c;需要继承Command类&#xff0c;并重写configure和execute两个方法&#xff0c;例如: <?php namespace app\command; use think\console\Command; use think\console\Input; use think\cons…...

3dsmax模型烘焙光照贴图并导入unity流程详解

目录 前言 软件环境 前置知识储备 一、模型场景搭建 二、模型材质处理 三、vray渲染准备 四、烘焙至贴图 五、unity场景准备 六、贴图与材质 前言 该流程针对某些固定场景&#xff08;模型发布、无法使用实时渲染引擎等&#xff09;情况下的展示&#xff0c;本文记录烘…...

安卓生成公钥和md5签名

安卓公钥和md5证书签名 大家好&#xff0c;最近需要备案app&#xff0c;用到了公钥和md5&#xff0c;MD5签名我倒是知道&#xff0c;然而对于公钥却一下子不知道了&#xff0c; 现在我讲一下我的流程。 首先是md5证书签名的查看&#xff0c; 生成了apk和签名.jks后&…...

pwndbg安装(gdb插件)

pwndbg安装&#xff08;gdb插件&#xff09; 源地址&#xff1a;https://github.com/pwndbg/pwndbg 手动安装 git clone https://github.com/pwndbg/pwndbg cd pwndbg ./setup.sh 没啥问题运行gdb的话就可以看到明显的不同了 如果安装成功了&#xff0c;但没有生效 如果有问…...

SpringBoot 学习(二)配置

2. SpringBoot 配置 2.1 配置文件类型 配置文件用于修改 SpringBoot 的默认配置。 2.1.1 properties 文件 **properties ** 是属性文件后缀。 文件名&#xff1a;application.properties 只能保存键值对。 基础语法&#xff1a;keyvalue namewhy注入配置类 Component //…...

西门子828d授权密钥破解经验分享 I7I54833762

操作数组的方法 Array.prototype.toSorted(compareFn) //返回一个新数组&#xff0c;其中元素按升序排序&#xff0c;而不改变原始数组。 Array.prototype.toReversed() //返回一个新数组&#xff0c;该数组的元素顺序被反转&#xff0c;但不改变原始数组。 Array.prototype.to…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...