查看原文
其他

【城事数说】时空圈—大城市之间的比较

数读菌 数读城事 2021-09-19


读研的时候写的

基于导航数据

「新一线城市」公交优先度研究

 的一篇水文的草稿

本来想水一水发一发

最后也就作罢了

内容还是以前的==

可能现在已经不这样了

随便看看吧~



什么是导航数据

  


一言以蔽之,就是大家平常用的地图导航软件中的导航功能。

大家平时用的时候,是不是要先设置一个起点和一个终点,然后导航会告诉你走哪条路线以及花费的时间以及行驶的路程?

对,今天用的就是这个数据。大概的思路就是设置一个起点,然后按照一定的距离把市域划分成很多个终点,计算起点到每一个终点的距离时间。

具体的百度API接口参数如下图所示。

首先要在ArcGIS里构建渔网,获取中心点的经纬度作为起点(或终点),然后参考以下代码:

import xlwtimport requestsimport urllibimport mathimport reimport json #通过request获取返回时间def get_time(coordinate,mode): api_addr="http://api.map.baidu.com/direction/v1?mode="+mode+"&origin="+coordinate+"&destination=39.905556,116.424722&origin_region=%E5%8C%97%E4%BA%AC&destination_region=%E5%8C%97%E4%BA%AC&output=json&coord_type=wgs84&ak=你的密匙" req=requests.get(api_addr) content=req.content sjson=json.loads(content) if sjson.has_key("result"): #print sjson["status"] if sjson["status"]==0: if mode=="transit": if sjson["result"].has_key("routes"): if sjson["result"]["routes"][0].has_key("scheme"): time=sjson["result"]["routes"][0]["scheme"][0]["duration"] else: time=sjson["result"]["routes"][0]["duration"] else: time=0 else: if sjson["result"].has_key("routes"): if sjson["result"]["routes"]==None: time=0 else: time=sjson["result"]["routes"][0]["duration"] else: time=0 else: time=0 else: time=0 print coordinate,time return time def run(): #mode是模式driving(驾车)、walking(步行)、transit(公交)、riding(骑行) mode="driving" #data 是输入的表格 data=xlrd.open_workbook('data0428.xlsx') rtable=data.sheets()[0] nrows=rtable.nrows values=rtable.col_values(0) workbook=xlwt.Workbook() #新建输出表格 wtable=workbook.add_sheet('driving_zxd_p',cell_overwrite_ok=True) row=0 for i in range(nrows): s1=str(rtable.row_values(i)[2])+","+str(rtable.row_values(i)[1]) time=get_time(s1,mode) wtable.write(row,0,rtable.row_values(i)[0]) wtable.write(row,1,rtable.row_values(i)[1]) wtable.write(row,2,rtable.row_values(i)[2]) wtable.write(row,3,time) row=row+1 #保存输出表格 workbook.save('driving_zxd_p.xls') if __name__=='__main__': run()

有关代码的问题不要问我,我的水平大概就是,只会用复制代码改一改参数直接用。(很多时候是在失败后直接放弃==)

请参考博客文章:利用百度地图API制作城中心交通时空圈

https://blog.csdn.net/taijiedi13/article/details/51279959

 

选取城市

    
选取的是2016年4月25日,『第一财经周刊』发布了新的中国城市分级排名榜单中15个新一线城市,依次是:成都、杭州、武汉、天津、南京、重庆、西安、长沙、青岛、沈阳、大连、厦门、苏州、宁波、无锡。
如果问,为什么要选这十五个,就是因为【我开心】

数据获取与可视化制图

    
获取数据前其实最重要的事是城市中心的选择,在这里我就有点偷懒,选取的是每个城市公认的(百度的)中心而没有做考据。
其实通过城市POI数据寻找设施点密度中心是一个很好的办法。
此外,大城市不只是单中心的,往往有多中心的情况,这也为研究增加了难度,这里先不考虑。
数据获取方式就和上文说的那样,然后获得数据后通过GIS的插值工具很容易制图,然后根据时间重分类,获得每个城市自驾与公交1小时交通的时空圈。

指标选取

    
因为当初想着是要水论文,就不能仅仅是可视化,要选取几个指标。
在指标的选取上,上海市城市规划设计研究院的大神刘淼给了我很多有益的帮助,这里先感谢~他提出用1小时交通圈的面积作为测算标准,即时空圈面积指标。
论文的主题是公交优先度,因此,主要核心指标是公交1小时时空圈面积与自驾1小时时空圈面积的比值
公交能从城市中心开始往外运行达到的面积越大,特别是占自驾能到达面积的比重越大,说明这个城市公交程度越高。

下面来看一下最后可视化的结果(没错,只有小图)


结论

    

这一部分只有数据,还没啥结论哈哈哈哈哈==

说一下这次重读这篇旧文的一些想法:

1.城市形态不同,不管是1小时自驾等时圈还是1小时公交等时圈都不能直接比较。平原城市(类圆形)肯定会比沿海沿江沿山城市(类条带形)范围大,毕竟没有地理阻隔,当然或许也可以换一个论证主题说不同形态城市的之间的等时圈比较。

2.多中心和单中心的影响差异很大,不仔细考虑是不科学的。

3.结合上述两点,1小时公交等时圈与1小时自驾等时圈的比值(即我所谓的公交优先度)物理意义应该是比较清晰便于理解的,直到现在我都觉得这个指标有价值。

4.比起这些宏观的比较,使用等时圈的方法测度城市中某类设施的分布会是更好的研究方向。

谨以此文,纪念我当初那些只有idea却没有发表在水刊上的文章。


那今天就到这里结束啦,顺便说一句,文中的图片未经许可不要随便“引用”


如果可以的话,希望能够转发分享,点个在看,给个赞赏~~也欢迎规范转载~


END>


如需全文转载文章、投稿或者合作

可添加微信

(回复超慢!!!)

(不要添加我问各种问题,我大概率不会的==)

(添加后会在晚上非工作时间通过,请稍安勿躁)


使用关键词搜索历史文章请点击【阅读原文

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存