用OpenStreetMap下载地图数据
Python+OpenStreetMap实现交通数据可视化(一):用OpenStreetMap下载地图数据
做地理信息系统,交通仿真与优化的小伙伴们,很多时候需要将地理数据可视化,以更直观的展示所做的课题。也就是需要把地理数据转化成类似下面的图片,并且能够完成下面的操作:
- 对路网本身进行动态操作;
- 在路网中增加特定的信息,如统计数据,需求出现的位置信息等;
- 路网和算法、仿真等操作集成在一起,实现算法的可视化。
下面的图就是纽约市曼哈顿区某个月出租车出行数据的经纬度信息统计。
接下来我们来逐步介绍如何画出上面那样的图。
整个过程分为如下步骤:
-
下载纽约市出租车出行数据,网址纽约市出租车出行数据http://www.nyc.gov/html/tlc/html/about/trip_record_%20data.shtml
也就是这个界面
数据是csv格式的,用python读取非常简单; -
在
OpenStreetMap
上下载纽约市曼哈顿区的路网数据OpenStreetMap网址 -
用Python读取地图数据的XML文件,用Python的工具包
networkX
实现地图数据的可视化。
在OpenStreetMap上下载地图数据
常见报错操作
我们进入OpenStreetMap
的主页,是这样的
进入主页以后,我们可以搜索我们要下载的地区,然后跳转至目标地理位置,用设置上下左右经纬度
的方法来导出数据,操作如下:
然后会进入手动选取目标区域并导出
界面,当然了,这些经纬度也可以手动输入具体值。具体如下图
就这?当你搓搓手准备迎接数据的时候,你会发现出现了面的问题:
You requested too many nodes (limit is 50000). Either request a smaller area, or use planet.osm
这就尴尬了,50000个点的限制当然获得不了整个manhattan的数据了。这条路就cut掉把。找了很多帖子,终于找到了下面的帖子,