MapMatch
地图(路径)匹配类MapMatch - 初始化:
- 提供了单核匹配、多核匹配、预计算匹配等方法
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
net
|
Net
|
路网Net对象 |
required |
flag_name
|
str
|
标记字符名称, 会用于标记输出的可视化文件 |
'test'
|
use_sub_net
|
bool
|
是否在子网络上进行计算 |
True
|
dup_threshold
|
float
|
重复点检测阈值, 利用GPS轨迹计算sub_net时先对GPS点原始轨迹做简化 |
10.0
|
time_format
|
str
|
[1]时间列构建参数 - GPS数据中时间列的格式化字符串模板 |
'%Y-%m-%d %H:%M:%S'
|
time_unit
|
str
|
[1]时间列构建参数 - 时间单位, gotrackit会先尝试使用time_format进行时间列构建, 如果失败会再次尝试使用time_unit进行时间列构建 |
's'
|
gps_buffer
|
float
|
[2]候选规则参数 - GPS的搜索半径, 单位米, 意为只选取每个gps点附近gps_buffer米范围内的路段作为初步候选路段 |
200.0
|
top_k
|
int
|
[2]候选规则参数 - 选取每个GPS点gps_buffer范围内最近的top_k个路段作为初步候选路段 |
20
|
gps_route_buffer_gap
|
float
|
[2]候选规则参数 - 半径增量, gps_buffer + gps_route_buffer_gap 的半径范围用于计算子网络 |
15.0
|
use_node_restrict
|
bool
|
[2]候选规则参数 - 是否开启节点限制,该参数用于限定指定GPS点的候选路段 |
False
|
beta
|
float
|
[3]概率参数 - 该值越大, 状态转移概率对于距离越不敏感 |
6.0
|
gps_sigma
|
float
|
[3]概率参数 - 该值越大, 发射概率对距离越不敏感 |
30.0
|
dis_para
|
float
|
[3]概率参数 - 距离的折减系数,不建议修改该参数 |
0.1
|
use_heading_inf
|
bool
|
[4]概率修正参数 - 是否利用GPS的差分方向向量修正发射概率, 适用于: 低定位误差 GPS数据 或者低频定位数据 |
True
|
heading_para_array
|
ndarray
|
[4]概率修正参数 - 差分方向修正参数数组,默认np.array([1.0, 1.0, 1.0, 0.9, 0.8, 0.7, 0.6, 0.6, 0.5]) |
None
|
omitted_l
|
float
|
[4]概率修正参数 - 当某GPS点与前后GPS点的平均距离小于omitted_l(m)时, 该GPS点的方向限制作用被取消 |
6.0
|
del_dwell
|
bool
|
[5]停留点处理 - 是否进行停留点识别并且删除停留点 |
False
|
dwell_l_length
|
float
|
[5]停留点处理 - 停留点识别距离阈值 |
5.0
|
dwell_n
|
int
|
[5]停留点处理 - 超过连续dwell_n个相邻GPS点的距离小于dwell_l_length,那么这一组点就会被识别为停留点 |
2
|
is_lower_f
|
bool
|
[6]轨迹降频 - 是否对GPS数据进行数据降频率, 适用于: 高频-高定位误差GPS数据 |
False
|
lower_n
|
int
|
[6]轨迹降频 - 频率倍率 |
2
|
is_rolling_average
|
bool
|
[7]滑动窗口平滑 - 是否启用滑动窗口平均对GPS数据进行降噪 |
False
|
window
|
int
|
[7]滑动窗口平滑 - 滑动窗口大小 |
2
|
dense_gps
|
bool
|
[8]轨迹增密 - 是否对GPS数据进行线性增密 |
True
|
dense_interval
|
float
|
[8]轨迹增密 - 当前后GPS点的直线距离l超过dense_interval即进行增密, 进行 int(l / dense_interval) + 1 等分增密 |
120.0
|
speed_threshold
|
float
|
[9]车辆行驶速度阈值, km/h, 用于判定在cut_off之外的路径是否满足速度合理性(速度超过阈值认为不合理) |
200
|
use_st
|
bool
|
[10]st-match参数 - 是否启用行程速度限制 |
False
|
st_main_coe
|
float
|
[10]st-match参数 - 主系数 |
1.0
|
st_min_factor
|
float
|
[10]st-match参数 - 最小折减系数 |
0.1
|
out_fldr
|
str
|
[11]输出设置 - 保存匹配结果的文件目录 |
'./'
|
instant_output
|
bool
|
[11]输出设置 - 是否每匹配完一条轨迹就存储csv匹配结果(多车文件匹配场景下:指定为True可防止内存占用上升) |
False
|
user_field_list
|
list[str]
|
[11]输出设置 - gps数据中, 用户想要附带在匹配结果表中输出的额外字段列表 |
None
|
export_html
|
bool
|
[12]HTML输出设置 - 是否输出匹配结果的网页可视化html文件 |
False
|
use_gps_source
|
bool
|
[12]HTML输出设置 - 是否在可视化结果中仅仅使用GPS源数据进行展示 |
False
|
gps_radius
|
float
|
[12]HTML输出设置 - HTML可视化中GPS点的半径大小,单位米 |
6.0
|
export_all_agents
|
bool
|
[12]HTML输出设置 - 是否将所有agent的可视化存储于一个html文件中 |
False
|
visualization_cache_times
|
int
|
[12]HTML输出设置 - 每匹配完visualization_cache_times辆车再进行(html or geojson文件)结果的统一存储。该参数设置的过大可能导致内存溢出 |
5
|
export_geo_res
|
bool
|
[13]GeoJSON输出设置 - 是否输出匹配结果的矢量图层文件 |
False
|
heading_vec_len
|
float
|
[13]GeoJSON输出设置 - 匹配航向向量的显示长度(控制geojson文件中的可视化) |
15.0
|
use_para_grid
|
bool
|
[14]网格参数搜索设置 - 是否启用网格参数搜索 |
False
|
para_grid
|
ParaGrid
|
[15]网格参数搜索设置 - 网格参数对象 |
None
|
Source code in src/gotrackit/MapMatch.py
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 | |
MapMatch类方法 - execute:
- 对输入的gps数据执行路径匹配并且输出匹配结果
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
gps_df
|
DataFrame | GeoDataFrame
|
gps数据表对象, 必需参数 |
required |
Returns:
| Type | Description |
|---|---|
tuple[DataFrame, dict, list]
|
匹配结果表(pd.DataFrame), 警告信息(dict), 错误信息(list) |
Source code in src/gotrackit/MapMatch.py
155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 | |
MapMatch类方法 - multi_core_execute:
- 对输入的gps数据进行分组后,执行并行路径匹配并且输出匹配结果
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
gps_df
|
DataFrame | GeoDataFrame
|
gps数据表对象, 必需参数 |
required |
core_num
|
int
|
使用的CPU核数 |
2
|
Returns:
| Type | Description |
|---|---|
tuple[DataFrame, dict, list]
|
匹配结果表(pd.DataFrame), 警告信息(dict), 错误信息(list) |
Source code in src/gotrackit/MapMatch.py
286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 | |