面向对象的移动代理建模框架。
road-agent的Python项目详细描述
用于建模移动代理的python框架。
创建移动代理的模拟,在真实地图上运行。喜欢 文档中描述的标签游戏,其中一些框架如下所示。
- Road Agent框架分布有两个路由器备选方案:
- nxrouter,wich使用networkx库计算的最短路径。
- brouter wich使用brouter服务器查询路由。
nxrouter更简单,但更易于运行。布鲁特很强壮,但是 需要安装和运行Brouter服务器 Java程序可能下载时间很长,但路由比较现实。
简短示例模拟
这是一个V字形的短存根,只是为了显示代理的主要功能 类,用于导航地图,在本例中使用计算的路由 使用NetworkX的最短路径。
要创建模拟,必须使用下面的行为扩展代理类 学习。这个例子只做了一个空的扩展。
这个Jupyter Notebook中包含了一个更有趣的模拟。
也许这个活页夹可以工作:
from LatLon import LatLon from road_agent import Agent from road_agent.router import NXRouter import osmnx as ox G = ox.graph_from_point((19.3838,-99.1758), distance=1000) router = NXRouter(G) r = router.get_route(points=points, speed=3) # extend Agent class to code behaviours specific to your mobile agent class Bike(Agent): pass point = LatLon(19.3881769, -99.1794493) dest = LatLon(19.3858363, -99.1767216) # create bike instance b = Bike(point=point, dest=dest) # create route using NetworkX b.update_route() # traverse agent's route, step by step for t in range(len(b.route)): b.step()
安装
使用pip安装库:
$ pip install road-agent
安装可选依赖项:brouter
代理可以使用BRouter进行路由,它可以使用多个不同的配置文件 路线,是特别好的路线创造骑自行车。它是一个Java 程序,在Web服务器上运行。下面是如何安装本地服务器。
brouters的路由算法需要数据文件。将data files(rd5)下载到segments4目录。您可以将这些步骤复制粘贴到 全部下载,但请注意:大约是5.2千兆字节:
mkdir -p ~/opt/brouter/segments4 cd ~/opt/brouter/segments4 wget https://gitlab.com/rgarcia-herrera/road-agent/raw/master/get_segments.sh wget https://gitlab.com/rgarcia-herrera/road-agent/raw/master/segments.txt chmod +x get_segments.sh ./get_segments.sh
下载并解压缩brouter(将~/opt/替换为首选安装 dir和1_4_11(最新版本):
cd ~/opt/brouter wget http://brouter.de/brouter_bin/brouter_1_4_11.zip unzip brouter_1_4_11.zip chmod +x ./standalone/server.sh
运行server.sh启动brouter服务器。