作者:暂时匿名
本文一共分成四个部分,希望通过这四个部分的阐述让大家能够理解什么是等时圈,它在分析中是如何使用的,还有更重要的是如何借助FME来绘制等时圈,最后也提出了一些注意点,比如如何选择路径规划的策略,如何确定行程终点,如何提高效率等等,希望能够引导大家去思考,思考如何去做的更好。
(一)等时圈的基本概念
等时圈(isochrone)也叫做等时线、时空圈,是指以某地作为中心(即行程的起点),在不同的出行时间、利用不同的出行方式,在一定时间内能够到达的范围。也可以理解为出行时间的等高线(contour)。
等时圈是交通耗时在地理空间上的反映,它在一定程度上反映了该地区的交通便利程度,可用于区域交通分析、城市群分析、城市交通便捷度分析、公服设施可达性分析、生活便利性评价等。
浙江省都市圈人口热力分布与交通联系分析图
1小时等时圈内不同设施分布图
居住小区15分钟生活圈分析图
游憩活动空间分析图(RAS, recreational activity space) 此图来源于网络:https://site.douban.com/129653/widget/notes/5349640/note/243389386/?cid=45011968
FME绘制等时圈的三种方式:
第一种是自己构建路网通过NetworkCostCalculator做等时圈。
具体做法可以参照以下两个文章:
Creating Time and Distance Isolines using the NetworkCostCalculator
Drivetime isochrone from multiple points of origin (Network Analysis)
这种方式对于路网数据的要求比较高,比如道路网络自建拓扑关系必须没有错误,而且还要考虑线的顺序,工作量大、主观性强。而且难以反映实际交通状况及环境的影响。
第二种是通过HTTPCALLER调用现成的接口,方式虽然更加简单方便,但是我们只能基于别人固有的算法,难以控制效果。以下为几个提供相关功能接口的网站
第三种可以基于在线地图API,直接使用地图服务商完整精确的路网数据,具有完整性高、数据成熟的特点,能够提供多种交通出行策略服务,可满足不同出行情景的分析需求。比如利用高德百度提供的路线规划能力,生成驾车、公交地铁、步行、骑行等多种交通方式的交通等时圈。
第三种方式也是目前使用最普遍,而且效果也相对较好的。也是本文将要介绍的FME绘制等时圈的方法。接下来就以基于FME的南京市中心城区公园绿地可达性和服务效率分析为例来具体展示一下如何借助FME来绘制等时圈并应用到实际分析当中的。
(二)基于FME的南京市中心城区公园绿地可达性和服务效率分析(1)
公园绿地是城市建设的重要内容之一,是城市景观、生态系统重要的组成部分。既能满足城市居民休闲的需要,提供游憩、锻炼的场所;又能满足城市居民的社交需要,提供各种节日集会、文化活动的场所。是衡量城市环境与人居环境的重要指标。公园绿地使用情况评价的传统指标有公园数量、公园面积、人均公园面积、一定距离缓冲区内公园覆盖率等。这些指标虽然能够在一定程度上描述城市公园的布局和数量,反映某一城市或地区公园绿地的建设水平和服务能力,却不能客观有效地反映公园绿地的可达性水平和服务效率。随着社会经济的快速发展和人民生活水平的提高,城市居民对公园绿地的需求与日俱增,他们关注的角度从公园绿地的数量向方便快捷地到达转变,公园绿地空间布局的合理性与可达性直接影响其对城市居民的服务水平。
本文以南京市中心城区内所有公园绿地作为研究区域,借助FME,并采用POI数据(小区点),联通人口数据,百度热力图等多种新兴数据,分析了在步行、骑行、驾车3 种交通出行方式下公园绿地不同等时圈范围内的小区数量,联通人口数量以及百度人口热力的变化情况,以此来表征公园绿地的可达性及服务效率,发现问题,并提出优化策略。
总体分析流程图
可达性分析(公园绿地不同出行方式等时圈内居住小区数量统计):
出行方式 |
出行时间/分钟 |
覆盖小区数量/个 |
覆盖比率% |
步行 |
5分钟 |
99 |
2.30% |
10分钟 |
571 |
13.28% |
|
15分钟 |
1430 |
33.26% |
|
20分钟 |
2136 |
49.67% |
|
骑行 |
5分钟 |
953 |
22.16% |
10分钟 |
2784 |
64.74% |
|
15分钟 |
3748 |
87.16% |
|
30分钟 |
4296 |
99.91% |
|
驾车 |
15分钟 |
4127 |
95.98% |
30分钟 |
4300 |
100.00% |
服务效率分析(公园绿地不同出行方式等时圈内联通人口数量以及百度人口热力变化统计):
联通人口
出行方式 |
等时圈 |
服务面积/km2 |
服务面积比 |
服务人口/人 |
服务人口比 |
步行 |
5分钟 |
15.25 |
1.93% |
235052 |
2.66% |
10分钟 |
56.98 |
7.23% |
1061505 |
12.00% |
|
15分钟 |
119.85 |
15.20% |
2325077 |
26.29% |
|
20分钟 |
191.21 |
24.25% |
3732665 |
42.21% |
|
骑行 |
5分钟 |
88.29 |
11.20% |
1743955 |
19.72% |
10分钟 |
284.78 |
36.12% |
5215321 |
58.97% |
|
15分钟 |
466.93 |
59.23% |
7227577 |
81.72% |
|
30分钟 |
728.66 |
92.43% |
8783654 |
99.32% |
|
驾车 |
15分钟 |
659.75 |
83.69% |
8318535 |
94.06% |
30分钟 |
788.34 |
100.00% |
8844012 |
100.00% |
百度人口热力
结果表明:研究区域内步行方式下只有不到1/3小区的居民能在15分钟内到达公园,且主要集中在老城区;骑行方式下87.16%小区的居民能在 15分钟内享受城市公园绿地的服务功能;驾车出行方式下几乎所有小区居民能在15分钟到达就近公园绿地。通过服务效率分析,在步行5分钟内,只有2.66%的研究区人口能够享受到城市公园绿地的服务;骑行5分钟内,有19.72%的研究区域人口能够享受到公园绿地的服务。研究成果可为南京市中心城区合理优化公园绿地的空间布局,引导公园绿地的使用策略,提高服务的公平性提供理论依据。具体结论和建议可参阅论文。
接下来将详细介绍FME绘制等时圈的操作过程。
(三)基于FME的南京市中心城区公园绿地可达性和服务效率分析(2)
FME绘制等时圈具体流程总体可分为3个步骤:
第一步构建起点终点坐标对,以每一个公园的POI点为圆心做BUFFER(具体的半径可根据具体需要构建的等时圈的可达范围来确定),接着使用2DGridAccumulator转换器把缓冲区划分成合适大小的网格点(如果是步行,网格点的间距需要小一些,如果是驾车,网格点的间距可以大一些),以每个公园绿地的坐标为起点,它相对应的BUFFER内的网格点为终点构建坐标对;
第二步调用高德路径规划API获取出行距离和时间,首先确定出行方式,再通过HttpCaller调用路径规划API,利用JsonFragment与JsonFlatter将API获取的数据进行解析,得到每一个起点到终点的出行时间和距离;
第三步绘制等时圈,通过3DForcer以获取的时间为Z值,将所有终点转化为3D点,再利用SurfaceModeller输出等时线,最后将得到的等时线进行适当的平滑处理,并去除多余的碎线。
FME等时圈绘制总体流程图
构建起始点坐标对
调用路径规划API并解析
绘制等时圈
以上为FME绘制等时圈的大致流程,接下来介绍在实际应用中应注意的地方。
(四)FME绘制等时圈时的注意点
注意点1:驾车策略的选择
在我们调用路径规划API的时候,往往都需要填写strategy参数,来表示我们的导航策略。以高德路径规划API为例,可以看到驾车的策略一共有20种,其中我最常用的是0,不考虑路况,但考虑道路的限速情况。这种方式与我们以往自己建路网,做服务区分析的结果最接近。
注意点2:修正行程的终点
大多数情况下,我们由缓冲区网格化所得到的的终点都是可达的,但是也有一些情况是不可达的。比如有的时候初始的终点是在水里,那么这种情况下,如果我们还是以初始的终点来绘制等高线就会出现错误。
可达终点示意图
不可达终点示意图
为了避免最终的等时圈出现偏差,就需要把所有的终点修正为真实行程的终点。
那么就需要我们提取整个路径里的最后一对坐标值,如果初始采用的是WGS84坐标,并且调用的是高德地图API,还需要将获取的坐标值由火星坐标坐标转换为WGS84坐标。
注意点3:获取等时圈面数据
大部分时候我们需要的等时圈为面数据,当然我们先生成线,再由线转为面,但是我更推荐直接生成面数据。首先利用SurfaceModeller生成栅格数据,由RasterExpressionEvaluator对栅格数据进行重分类,最后由RasterToPolygonCoercer将栅格转为面。
注意点4:加快计算效率方法1,减少点
为了能够加快计算效率,我们首先应该思考的是如何通过减少终点的方式减少API的调用次数,以1小时等时圈为例,我通常采用的参数如下:
在FME中主要体现在Bufferer的Buffer Amount和2DGridAccumulator的Column Width/Row Height参数中。
注意点5:加快计算效率方法2,批量请求
为了加快计算效率,除了减少调用次数,还可以采用批量接口请求的方法,一次返回多个结果。
在百度地图API中可以采用批量服务
在高德地图API中可以采用批量请求接口
注意点6:加快计算效率方法3,多起点等时圈
在以上的示例中,我们展示的是单起点的案例,很多时候我们想一次计算多个起点,在FME中可以通过分组来实现。
通过分组的方式往往简单有效,但是对于初学者来说,往往也会造成很多困惑,所以我也推荐用WorkspaceRunner。
结语:
对于等时圈的绘制,在实际分析应用中,还有很多需要灵活应用的点需要我们去留意,比如在计算公交时间较短等时圈的时候,以15分钟的公交等时圈为例,往往发现结果为空,那我们可以将15分钟公交等时圈,替换为15分钟步行或者骑行等时圈;再比如为了减少调用次数,我们可以预先把落到水里的点去掉等等。这些问题一般用FME都可以得到很好的解决,因为篇幅有限,所以希望我的这些实践更多的是可以给大家带来启发,如果想了解更多细节,我可以把模板分享给大家。