一个用于打印和动画.gpx文件的包
walkmapper的Python项目详细描述
步行地图
一个Python包,用于绘制步行/跑步/骑自行车路线并设置动画。在
walkmapper只需要几个外部包。这些可以通过使用终端导航到计算机上安装软件包的位置,然后发出以下命令来安装:
pip install -r requirements.txt
然后可以运行示例脚本:
^{pr2}$该软件包通过分析.gpx文件来工作,gpx文件是GPS设备使用的一种常见文件格式。在这个软件包的开发中使用了Asics Runkeeper应用程序,因为它允许您在智能手机上记录GPS位置,并从浏览器中的帐户中导出。在
Open Street Map是抓取地图用作背景的好资源。只需在地图侧栏上选择“共享”,用“设置自定义尺寸”调整图像大小,然后下载。使用下面描述的方法重命名照片,允许包正确解析纬度和经度。在
类SingleRoute
包含用于分析和绘制单个路由的方法。如果您计划在internet上共享,也可能会使您的地址混淆为隐私泡沫:
fromwalkmapper.routesimportSingleRouteroute=SingleRoute("path/to/your/file.gpx",home_lat=45.0000,home_lon=-122.0000,privacy_bubble_rad=150)
从这里可以使用SingleRoute.plot
方法在地图图像上绘制.gpx文件。映射图像应具有以下格式:Description_UpperRightLat_UpperRightLon_LowerLeftLat_洛弗顿.png。如果纬度或经度为负数,则其值前面应加上**m**。例如,一个以波特兰为中心的映射,或者文件名为:Portland u 45.5372 m122.5831_45.4761_m122.7077.png。在标题中提供地图图像的右上角和左下角的坐标,可以使打印函数解析这些值,并在matplotlib图像上设置适当的边界。在
walkmapper.utils
中的函数map_file_name
使格式化图像标题更容易:
fromwalkmapper.utilsimportmap_file_name# this function automatically renames the imagemap_file_name("images/portland.png",45.5372,-122.5831,45.4761,-122.7077,"Portland")# saves over images/portland.png with images/Portland_45.5372_m122.5831_45.4761_m122.7077.png
类MultipleRoutes
包含用于分析、绘制和设置多个路由动画的方法:
fromwalkmapper.routesimportMultipleRoutes# compile all .gpx files in a folder into a listfiles=["folder/{}".format(i)foriinos.listdir("folder")ifi.endswith(".gpx")]# create instance of MultipleRoutesroutes=MultipleRoutes(files,home_lat=45.0000,home_lon=-122.0000,privacy_bubble_rad=150)
一旦创建了MultipleRoutes
实例,您可以用多种方式显示数据:
map_file="Portland_45.5372_m122.5831_45.4761_m122.7077.png"# plot all routes with map backgroundroutes.basic_plot(map_file)# plot heat maproutes.basic_plot(map_file,n_bins=100,alpha=0.5)# create .mp4 animation displaying one route after anotherroutes.basic_route_animation(map_file_path,fps=2,dpi=300)# create an .mp4 animation that draws out each route sequentiallyroutes.snake_animation(frame_distance=50,map_file_path=map_file,fps=60,dpi=300)
有关示例脚本,请参见example.py
,有关示例数据、地图和动画的目录example
。在
- 项目
标签: