OnLineMapMatch
实时路径(地图)匹配类OnLineMapMatch - 初始化:
- 轨迹数据实时匹配类, 提供了单核匹配方法
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
net
|
Net
|
路网Net对象 |
required |
flag_name
|
str
|
标记字符名称, 会用于标记输出的可视化文件 |
'test'
|
use_sub_net
|
bool
|
是否在子网络上进行计算 |
False
|
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
|
beta
|
float
|
[3]概率参数 - 该值越大, 状态转移概率对于距离越不敏感 |
6.0
|
gps_sigma
|
float
|
[3]概率参数 - 该值越大, 发射概率对距离越不敏感 |
30.0
|
dis_para
|
float
|
[3]概率参数 - 距离的折减系数,不建议修改该参数 |
0.1
|
use_heading_inf
|
bool
|
[4]概率修正参数 - 是否利用GPS的差分方向向量修正发射概率, 适用于: 低定位误差 GPS数据 或者低频定位数据(配合加密参数) |
False
|
heading_para_array
|
ndarray
|
[4]概率修正参数 - 差分方向修正参数数组 |
None
|
omitted_l
|
float
|
[4]概率修正参数 - 当某GPS点与前后GPS点的平均距离小于omitted_l(m)时, 该GPS点的方向限制作用被取消 |
6.0
|
del_dwell
|
bool
|
[5]停留点处理 - 是否进行停留点识别并且删除停留点 |
True
|
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 等分增密 |
100.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]输出设置 - 保存匹配结果的文件目录 |
None
|
instant_output
|
bool
|
[11]输出设置 - 是否每匹配完一条轨迹就存储csv匹配结果 |
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
|
Source code in src/gotrackit/MapMatch.py
388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 | |
OnLineMapMatch类方法 - execute:
- 对输入的gps数据执行实时路径匹配并且输出匹配结果
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
gps_df
|
DataFrame | GeoDataFrame
|
gps数据表对象, 必需参数 |
required |
gps_already_plain
|
bool
|
传入的GPS数据是否是平面投影坐标系 |
False
|
time_gap_threshold
|
float
|
时间阈值,如果某agent的当前批GPS数据的最早定位时间,和上批次GPS数据的最晚定位时间的差值超过该值,则不参考历史概率链进行匹配计算 |
1800.0
|
dis_gap_threshold
|
float
|
距离阈值,如果某agent的当前批GPS数据的最早定位点,和上批次GPS数据的最晚定位点的距离超过该值,则不参考历史概率链进行匹配计算 |
600.0
|
overlapping_window
|
int
|
重叠窗口长度,和历史GPS数据的重叠窗口 |
3
|
Returns:
| Type | Description |
|---|---|
tuple[DataFrame, dict, list]
|
匹配结果表(pd.DataFrame), 警告信息(dict), 错误信息(list) |
Source code in src/gotrackit/MapMatch.py
469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 | |