spatial_similarity.py
一、处理流程
if __name__ == '__main__':
1. 获取顶点、边、边权重,以及他们转换后对应的字典类型数据,还有一个由边权重数据构建的有向图
nx_vertice, nx_edge, vertice_dict, edge_dict, edge_dist, edge_dist_dict, roadnetwork = network_data()
2. 批量处理节点间距离,构建节点间最短路径数组---batch_Point_distance() ,批量大小为1000
启动多进程pool = Pool(processes=20)
并行计算指定节点到数据集中所有节点的最短路径长度,并将结果保存到文件中---parallel_point_com(),/ground_truth/{}/Point_dis_matrix_{}.npy
3. 合并批量处理节点间距离,构建所有节点间最短路径数组---merge_Point_distance(),最终存储到/ground_truth/{}/Point_dis_matrix.npy
生成完整的真实地面距离数组需要21GiB的内存
4. 加载完整的真实地面距离数组
5. 生成节点和边的交互信息(idx: [起点,终点] )
6. 生成批量的相似度地面真值(空间相似性距离度量)---batch_similarity_ground_truth()
获取洗牌后的顶点列表
判定为验证集valid or 测试集test
若为valid,则截取顶点列表[10000:14000]数据;若为test,则截取顶点列表[14000:30000]数据
随后再取截取顶点列表中的前5000个数据,作为样本顶点列表
并行计算样本顶点列表与截取顶点列表间相似度取值,选择不同的距离度量方法(TP、DITA、discret_frechet没比较、LCRS、NetERP)。
将结果存储到指定路径文件./ground_truth/{}/{}/{}_batch/{}_spatial_distance_{}.npy
7. 合并批量处理相似度地面真值,构建所有样本点间相似度地面真值---merge_similarity_ground_truth(),最终存储到./ground_truth/{}/{}/{}_spatial_distance.npy
二、重点函数解读
1. roadnetwork = nx.DiGraph()
需要导入了 NetworkX 库,创建了一个有向图 roadnetwork。通过这个图,你可以方便地进行图相关的操作,比如添加节点和边、计算最短路径等。
2. batch_similarity_ground_truth()
三、知识扩展
① NetworkX 是一个用 Python 编写的用于创建、操作和研究复杂网络结构的库。它提供了丰富的功能和工具,用于创建多种类型的图、分析图的结构、计算节点和边的属性等。NetworkX 可以用于多种领域,包括网络科学、社交网络分析、生物信息学、交通规划等。
② TP(Time-Parameterized)距离是一种轨迹之间相似性度量方法,它考虑了轨迹在时间维度上的变化。其实现原理如下:
四、想法与疑惑
1. 洗牌后的顶点列表大小由什么决定? 由matching_result.csv数据文件决定,大小为29830条匹配轨迹,每行包含:轨迹编号、节点列表、经纬度坐标列表。
2. 数据集分配变化训练---论文中如何阐述?训练集0-10000这段的地面真值在哪里处理?

浙公网安备 33010602011771号