python - 如何将多达 25k 个位置发送到 OSRM 矩阵表函数
问题描述
我正在尝试使用osrm
包 (table function)在 Python 中计算时间和距离矩阵。我正在使用自己的服务器(在 Docker 中运行)。Docker 映像基于此示例。默认情况下,我只能发送 1000 (lat,lng)。但是,通过--max-table-size
在初始化 Docker 容器时使用该参数,我可以增加该限制。
docker run -t -i -p 5000:5000 -v "${PWD}:/data" osrm/osrm-backend osrm-routed --algorithm mld --max-table-size desired_amount /data/brazil-latest.osrm
由于我想计算一个包含超过 20k 个数据点(lat、lng)的矩阵,所以上面的代码行应该是这样的:
docker run -t -i -p 5000:5000 -v "${PWD}:/data" osrm/osrm-backend osrm-routed --algorithm mld --max-table-size 25000 /data/brazil-latest.osrm
这是我使用 python 发送这些点的代码:
time_matrix = osrm.table(list_coord, annotations = "duration,distance", output = 'raw')
看起来像这样的坐标列表在哪里list_coord
(并且有超过 20k 个坐标):
[(-46.6954, -23.6702),
(-46.744095, -23.657433),
(-46.591366, -23.7729),
(-46.5698, -23.7074),
(-46.64778, -23.59573)]
初始化容器时效果很好,但是当发送超过 20k 数据点的请求时,我收到此错误:
RemoteDisconnected: Remote end closed connection without response
有什么方法可以发送超过 20k 个数据点而不会收到错误?或者我应该如何处理这个问题?如果有人有任何想法,我将非常感谢您的帮助。
解决方案
推荐阅读
- covariance - 与 r 中的协变量配对的 Wilcoxon 检验
- azure - 我正在尝试将天蓝色地图渲染到我的应用程序中,但瓷砖似乎在重复。如何限制图块,使每个部分只渲染一次?
- android - React Native Image 需要在角落显示图像
- reactjs - 故事书:相同的文件,但用 npm 或 yarn 呈现不同,为什么?
- python - 我们如何让用户等待一秒钟,请在 Django 中等待消息,就像我们在 PHP 中显示的带有刷新标签一样?
- web-scraping - 使用美丽的汤刮位置
- python - 如何在 python 中以树结构打印 Trie?
- javascript - React JS - 在开发和构建之前获取并将道具传递给应用程序
- rust - 引用 Rust 中相同结构内的字段
- swiftui - 如何获得 SwiftUI 手势的视图?