胡 红,赖鑫生
(上饶师范学院 数学与计算机科学学院,江西 上饶 334001)
基于ArcGIS和Python集成开发可达性分析工具的研究
胡红,赖鑫生
(上饶师范学院 数学与计算机科学学院,江西 上饶 334001)
为降低可达性度量的实现难度,弥补现有GIS软件没有集成可达性分析模型或方法的不足,在详尽分析有关模型或方法与GIS集成研究现状的基础上,提出以改进潜能模型作度量模型,按GIS内部集成方式,使用面向ArcGIS 10的Python脚本编程技术集成开发可达性分析工具的设想,对可达性潜能模型分析原理、工具开发环境配置、使用数据的预处理要求、工具的具体设计流程和实现方法等作了详细叙述。最后以评价某市小学教育资源空间布局合理性为例,阐述工具在实际应用中应采取的使用方法和流程,实例评价结果验证工具开发的有效性。
ArcGIS;Python;集成开发;可达性分析工具;潜能模型
可达性(accessibility)一词现已广泛应用于城市公共设施服务评价、城市规划合理性分析以及同城化研究与比较[1]等多个方面,其被广泛采用的定义为:可达性是人们以某种方式克服空间阻力到达目标地的能力值、难易值,或是人们在一定空间范围内可获得的资源数量[2-4]。而用于可达性度量的模型和方法的主要分类有:基于GIS空间统计与分析的统计指标法(如比例法[5])、出行成本法(如最小邻近距离法、费用加权距离法[6]、网络分析法等)、机会累积法(如等值线法[7]、移动或两步移动搜寻法[8-9]等)、空间相互作用法(如潜能或改进潜能模型法[10]、胡弗模型法[11]、核心密度法[4]等)、时间地理学法[12]以及基于矩阵或空间句法的拓扑法[13]等。刘长富,彭菁,宋正娜等对这些模型和方法的优缺点作了充分的比较和分析,认为实际应用中选用何种模型或方法取决于设施种类、研究区域或单元的大小,不能简单认为模型或方法的表达式、计算式越复杂越好[2,4,5]。
许多学者近年来偏向使用GIS技术进行可达性研究。然而,由于可达性相关研究所涉及的地理空间及一般属性数据量普遍较大、处理流程复杂,且现有GIS软件没有集成可达性度量的相关模型和方法,因此,现实工作中可达性度量的实现难度较大。学者往往需要把多种工具组合在一起,人工干预每一项操作、人工管理繁杂的原始资料和过渡性数据。
模型或方法与GIS集成既可以发挥GIS在空间数据管理与分析方面的优势,也可以发挥模型或方法在各专业领域应用分析的优势[14],降低模型或方法的实际应用难度。但迄今为止,除纪亚洲[15]等人利用ArcGIS ModelBuilder建模方法集成应用自定义城市绿地空间可达性评价分析模型外,有关这一方面的直接研究并不多见。由此,本文拟以GIS集成开发思想为指导,利用面向ArcGIS的Python脚本编程技术[16]集成开发基于ArcGIS和潜能模型的可达性分析工具,并在实际事例中应用和验证这一工具的有效性,以期能降低可达性度量的实现难度,弥补现有GIS软件没有集成可达性分析模型或方法的不足,进一步推动可达性在相关领域的应用。
不少学者已对常见应用评价、模拟或预测模型与GIS的集成和应用作了大量研究,如:张瑜等借助GIS与数学模型集成技术,研究分析了区域耕地的有效磷富集状况及生态风险空间分异特征[17];位佳等借助 GIS 与烤烟产值最佳估测模型集成技术,开展了福建烟区烤烟产值分区的研究[18];张建新等利用ArcGIS ModelBuilder设计了自动处理影像数据的方法和模型,使用模型与GIS集成的方法扩展了ArcGIS 软件在影像数据处理方面的功能[19];戴慧等利用ArcEngine组件开发技术集成14 个国土生态安全定量评价模型,研发了一个通用性强的国土生态安全评价系统[20];向诗剑等以一种松耦合的、基于矢量的集成方式探索了一种集成ABM与GIS分析新能源汽车扩散的实现方法[21];黄国如等实现了城市雨洪模型SWMM与ArcGIS的集成[22];张攀攀等实现了大气环境模型与GIS的紧密集成[23];黄宏胜以完全集成方式实现了资源环境模型和GIS的集成应用[24]。
上述研究显示,学者对模型或方法与GIS集成的研究主要聚焦在模型或方法与GIS软件或组件的集成应用(如文献[17-18])和集成开发(如文献[15,19-24])的技术与方法的研究,集成形式主要有3种:①GIS系统与模型或方法应用系统间的松散集成(如文献[17-18,21-22]);②GIS组件与模型或方法应用系统间的紧密集成(如文献[20,23]);③模型以拓展模块形式在GIS环境中无缝友好的完全集成(如文献[15,19,24])。
比较而言,上述①、②两种集成形式由于能获得统一的用户界面及操作,且在实现方式上有GIS组件或系统本身提供的有力支持(如简洁而完备的脚本语言、自带建模工具以及组件对象本身属性和方法的应用),因而更能降低模型或方法在各专业领域应用的具体实现难度,所以与此相关的设计与实现技术,如GIS组件集成开发技术、Model Builder空间分析建模技术、面向ArcGIS的Python脚本编程技术等即成为当前模型或方法与GIS集成应用研究的主要方向。
鉴于上述分析,本文简要介绍按GIS内部集成方式、使用面向ArcGIS的Python脚本编程技术集成开发可达性潜能模型分析工具的理论依据、技术方法和实现流程,以促进学者将其它相关模型或方法与GIS集成,提高可达性及GIS在各专业领域的应用程度。
2.1 可达性潜能模型分析原理
潜能模型作为可达性度量模型是区域经济学、地理学借鉴物理万有引力定律研究社会、 经济空间相互作用的成果。潜能模型提出至今,得到了国内外学者积极应用和改进。本文以Guagliardo[25]、郑朝洪[26]、宋正娜[5]等人提及的改进潜能模型为工具度量可达性的方法,其计算表达式表示如下:
(1)
2.2工具开发环境的配置
Python是Guido van Rossum于1991年推出的一种功能强大的面向对象的开源编程语言,具有简单易学、不受局限、跨平台使用等诸多优点,因此,从ArcGIS 10开始,Python被ESRI进一步整合到ArcGIS 10的用户界面,成为用户进行地理处理工作流的首选脚本语言。而Arcpy是ESRI在ArcGIS 10中推出Python站点包,其中包含有91个函数、37个类、5个模块。利用Python和Arcpy用户能访问ArcGIS中所有获得许可的函数和功能模块,编写出完备的应用程序(不仅仅是脚本语言角色),将不同组件或对象“粘合”在一起,开发出和ArcGIS中其他常规工具一样使用的用户自定义工具、拓展ArcGIS在各专业领域中的应用,使用户能高效而快捷地实现地理处理任务的自动化。
虽然工具功能代码文件可以利用常用文本编辑器及ArcGIS 10自带的Python集成开发环境IDLE(又称Python Shell)创建和编辑,但是PythonWin是一个比IDLE更便于开发、更适于在Windows平台上稳定使用的优秀编辑器,它具有代码折叠、代码提示、语法着色、监视、交互式调试、错误提示等能让程序员尽可能清晰、快捷地浏览、高效地输入和修改代码的功能和优点。因此,本文选用Win7+ArcGIS 10.2+PythonWin 2.7.3作为可达性潜能模型分析工具开发的环境配置,并在ArcGIS Geoprocessing Options中将PythonWin设为默认的脚本工具编辑器和调试程序以方便代码编辑和运行调试。
2.3工具使用数据及预处理要求
使用数据按要求进行预处理是工具正常运行的重要保障。本工具正常运行需用户先行在需求点、设施点图层的属性数据表中分别设置有指代需求点可达性影响因素(与式(1)中Pk对应)和设施点本身吸引力(与式(1)中Mj对应)的字段,而后再利用ArcGIS OD成本矩阵(Origin-Destination cost matrix,源点—目的地成本矩阵)分析功能生成各需求点(源点)到所有设施点(目的地)的OD成本矩阵分析图层(以下简称“OD分析层”)。图1展示了需求点、设施点两图层属性数据表结构具体设计要求,其中”Pop”、”MJ”两字段分别与式(1)中的Pk和Mj对应,OD分析层的”Total_长度”字段则与式(1)中的D对应。
图1 需求点、设施点、OD分析层的属性数据表结构
2.4基于ArcGIS和Python实现工具分析功能的方法
工具详细设计流程为:①利用PythonWin编写实现工具功能的Python程序代码,并将它保存成后缀为.py的文件;②在ArcGIS系列软件ArcMap的Catalog中找到“我的工具箱”结点,右键单击新建一工具箱,用于存放即将创建的新工具;③右键单击新建工具箱,通过脚本添加向导在依次弹出的3个对话框中分别完成以下a、b、c 3项工作:
a.设置脚本工具的名称、标签、描述和样式表。
b.指定工具的功能代码文件,即上述①中的.py文件。
c.设置脚本工具参数(包括参数显示名称、数据类型、默认值及方向等)。
本设计将工具样式表文本框设置为空,这样工具就获得了和ArcToolBox中所有工具一样的界面样式,具体可见图2。
图2 工具运行界面
表1是本工具各参数的详细设计信息。用户通过图2所示界面提交的参数主要通过Arcpy的GetParameter、GetParameterAsText函数传递给程序变量。
表1 工具参数设计信息
工具主要功能是在用户给定的出行摩擦系数下通过Python语言和Arcpy站点包按改进潜能模型计算式(如式(1)所示)快速计算出所有设施点的可达性值,具体实现方法如下:
1)导入arcpy、sys、os模块,接收用户输入参数,利用python语言的isdigit函数判断用户输入的出行摩擦系数B是否为整数,如是整数则取VBFld值为“V”+B ,否则为“V”+B.replace(“.”,“_”),而后利用python调用arcpy的AddField_management函数为OD分析层添加名为VBFld值的字段。
2)运用同样方法为设施点图层、需求点图层、OD分析层的属性数据表添加名为VjBFld、AiBFld、ABFld值的字段。
3)使用Python自定义函数ConShp(ODAnaLyr,joinField1,ConShp,joinField2,joinName,exp,calFld)连接OD分析层和需求点层,计算每个需求点服务需求给相应设施点可达性造成影响的影响分量,分量值写入OD分析层属性数据表的VBFld字段。
4)使用Python自定义函数js_aivj(fc,fld,r1,r2)计算每个设施点受所有需求点影响的总和,和值写入设施点图层属性数据表的VjBFld字段。
5)使用Python自定义函数ConShp(ODAnaLyr,joinField1,ConShp,joinField2,joinName,exp,calFld)连接OD分析层和设施点层,计算每个需求点至相应设施点的可达性分量,分量值写入OD分析层属性数据表的ABFld字段。
6)使用Python自定义函数js_aivj(fc,fld,r1,r2)计算每个需求点至相应设施点的可达性和,和值写入设施点图层属性数据表的AiBFld字段。
7)利用arcpy.TableToExcel_conversion()将设施点图层、需求点图层、OD分析层的属性数据表分别导出生成Excel数据表格文件。
实现以上功能的关键在于如何使用Python语言和Arcpy站点包编制ConShp()、js_aivj()两个函数。以下是这两个函数的关键代码:
def ConShp(ODAnaLyr,joinField1,ConShp,joinField2, joinName,exp,calFld):
……
arcpy.MakeFeatureLayer_management (ODAnaLyr,templayer) #根据输入要素类创建临时图层
arcpy.AddJoin_management(templayer,joinField1,ConShp,joinField2) #图层连接
arcpy.CalculateField_management (templayer,calFld,exp,“PYTHON”) #为图层计算字段值,exp为计算表达式
…… #移除连接等等
def js_aivj(fc,fld,r1,r2):
count = int(arcpy.GetCount_management(fc).get
Output(0)) # 返回要素类中包含的要素数
…… #初始化avitems列表,元素个数count+1
with arcpy.da.SearchCursor(ODAnaLyr,[r1,r2]) as cursor:#遍历行对象提取字段值,累加r2字段值至相应列表元素
for row in cursor:
avitems[row[0]]=avitems[row[0]]+row[1]
#创建一个用于更新要素类属性行的游标
cursor=arcpy.UpdateCursor(fc,″″,″″,″″,″Id″)
row=cursor.next()
i=1
while row:
row.setValue(fld,avitems[i]) #行对象赋字段值
cursor.updateRow(row) #更新、保持行对象
row=cursor.next()
i=i+1
为验证工具的有效性,特将上述开发的可达性潜能模型分析工具应用于江西上饶中心城区小学教育资源空间布局合理性评价实例。以下简要说明这一实例应用的背景、过程、方法和结果。
3.1应用背景
上饶市位于江西省东北部,东联浙江,北接安徽,南挺福建,其中心城区计划到2020年规划建设用地规模达75.3 km2(约占城区总面积的50%),道路主干网将发展成为“六横九纵”的结构,水南、三江、站前、带湖、老城、新城等6个片区间至少有两条主干道相连。伴随这种空前发展的态势,近10年来城区范围内新建楼盘达49座之多。不容置疑,倍受关注的城区小学教育资源可达性及其受人口规模影响的情况会随着城区居住人口数量与空间分布结构的变化发生较大改变。由此,本文利用上述自制的可达性潜能模型分析工具对该区现有小学教育资源的相关指标作了如下分析和预测,以向相关规划和管理部门提供决策参考。
3.2应用数据准备
基于2.3提及的工具使用数据预处理要求,本应用在数据准备阶段所做的主要工作如下:
1)收集城区用地规划电子地图(2007-2020)、城区旅游电子地图(2013-09),利用ArcMap 10.2、ArcCatalog 10.2从收集到的电子地图中提取生成表示城区17所小学、114个居民点、城区道路网络、行政区划等的矢量空间图层。
2)为降低评价工作复杂度,本文以学校师资数量的多少确定学校服务吸引力的大小(具体见表2),并在上述矢量图层的属性数据表中录入各地理对象的一般属性信息数据,如:学校名称、师资数量、服务吸引力、片区归属、居民点名称、人口数量及道路名称等。
表2 学校服务吸引力大小
3)根据《中小学校设计规范GB50099-2011》提及的“城镇完全小学的服务半径宜为500 m”及“小学生上学时间控制在步行10 min左右”建议要求及实际情况考虑,本文假定小学生上学的最大行程分别为750 m,创建道路网络数据集,然后分别以居民点为源点、学校为目标点,利用ArcGIS网络分析模块中的OD成本分析功能求解各居民点到限定范围内(即750 m,下同)所有学校的最小成本(以距离衡量)矩阵,生成相应的OD成本矩阵分析层。
3.3应用方法及结果数据的分析和结论
3.3.1应用方法及结果数据的获取
在图2所示的工具对话框中依次输入假定的出行摩擦系数β和OD分析层、居民点图层、学校分布点层及分析结果的存放路径,点击“确定”按钮,即可由工具自动运行指定的Python脚本程序在10~20 s内快速求解出各居民点至限定范围内所有学校的可达性值。
为使计算结果符合客观实际,本研究分别假定出行摩擦系数值β为1,1.5,2,依次利用本工具求解假定出行摩擦系数下各学校受周边人口规模影响的程度和各居民点居民就学的可达性值,而后通过计算方差及与实际调研相对比的方法分析已取得的3个值组,最终认定β取1.5时其相应值组最符合当初的实地考察情况。表3为β取1.5时中心城区各小学受周边人口规模影响的程度值,其分级符号渲染效果如图3所示。
表3 各小学受周边人口规模影响的程度值
图3 各小学受周边人口规模影响的分级符号渲染
表4是β取1.5时各居民点居民就读小学的可达性值表。
3.3.2结果数据分析与结论
统计表4数据可以发现,城区114个居民点中仅36个居民点至限定范围内所有小学的可达性高于平均水平,占整体的31.6%;不在任何小学服务范围的居民点数多达51个,占整体的44.7%。
为进一步了解城区小学服务状况,本文根据已采样的114个居民点可达性对全区各地可达性进行析取克里格(Disjunctive Kriging)插值预测和分级渲染,得到如图4所示的效果图。
表4 各居民点居民就读小学的可达性
注:限于篇幅,可达性为0的居民点并未列出,在此以…表示
将图4所示的析取克里格插值预测图层与城市分区图层叠加相交,统计分区内各层次可达性的占地面积可以发现:站前片区绝大部分区域就读可达性较低,新城区次之;相反,水南片区、老城区就读可达性普遍较高,而三江片区就读可达性一般。具体详情可见表5。
综而言之,上饶中心城区居民就读小学的可达性水平较低,空间布局合理性差,主要表现为:①近半数居民点不在任何小学的服务范围内,这些居民不能与其他居民公平享用城区小学教育资源。②城北、城西南、城东南就读可达性最低。③城市中部虽集中有大部分小学,但有的学校受人口影响过重(如表2所示的十三小、十二小、实验小学),有的学校服务吸引力过低(如表2所示的八小、九小、七小),其就读可达性一般。该研究结论与实际调研所掌握的情况基本一致,符合可达性潜能模型分析原理,表明了某设施可达性受供需双方空间距离及自身引力等因素影响的实质。
图4 全区各地可达性析取克里格插值预测图
表5 分区内各层次可达性的占地面积及比例
本文对有关应用评价、模拟或预测模型与方法和GIS集成的研究现状作充分的比较、分析和总结,并以Win7+ArcGIS 10.2+PythonWin 2.7.3为开发环境,利用面向ArcGIS的Python脚本编程技术集成开发了可达性潜能模型分析工具,对工具开发的理论依据、技术方法和实现过程等作了详细的介绍,使用该工具对相应服务设施可达性及相关指标数据的求解仅需15 s左右,解决了因现有GIS软件没有集成相关度量模型或方法而造成的可达性度量难的问题,大大提高了对服务设施可达性进行量算与评价的效率,实例应用结果表明了工具开发的有效性、正确性。
与其他开发方式相比,基于ArcGIS和Python语言集成开发可达性分析工具的方法具有基于GIS组件和可视化语言独立开发系统或功能模块无法比拟的效率和成本优势,需要的ArcGIS功能可以通过Python语言和Arcpy直接调用,避免了数据在不同软件间的临时存储和中间操作,撇弃了ModelBuilder人机交互差、无法迭代嵌套对每个要素类中所有元素分别操作[19]的弱点。该研究有利于促进有关模型与GIS在各专业领域的进一步集成应用,能为广大学者解决其它模型应用难的问题提供新的思路。
应用实例中,设施点自身吸引力评价因素单一,未能考虑多种因素对设施服务自身吸引力的影响;又由于地图、人口等影响可达性评价的基础数据缺乏、实际勘查难度大等原因,需求点至设施点的通行路径、设施出入口等的采集并不完整。使用者在实际应用本工具时如能消除这些不足,可提高评价结果的满意度。
[1]曾月娥,伍世代,李永实,等.基于潜能模型的城市同城化透视——以厦门漳州两市为例[J].重庆师范大学学报(自然科学版), 2012,29(5):78-82.
[2]刘常富,李小马,韩东.城市公园可达性研究——方法与关键问题[J].生态学报,2010,30(19):5381-5390.
[3]韩彪,聂伟,王卫平,等.基于公交车站的可达性度量模型[J].深圳大学学报(理工版),2013,30(1):98-102.
[4]彭菁,罗静,熊娟,等.国内外基本公共服务可达性研究进展[J].地域研究与开发,2012,31(2):20-25.
[5]宋正娜, 陈雯, 张桂香,等.公共服务设施空间可达性及其度量方法[J].地理科学进展,2010,29(10):1217-1224.
[6]陈永生, 黄庆丰, 章裕超,等. 基于GIS的合肥市中心城区绿地可达性分析评价[J].中国农业大学学报,2015,20(2):229-236.
[7]陈洁,陆锋,程昌秀.可达性度量方法及应用研究进展评述[J]. 地理科学进展,2007,26(5): 100-110.
[8]邓丽,邵景安,郭跃,等.基于改进的两步移动搜索法的山区医疗服务空间可达性: 以重庆市石柱县为例[J].地理科学进展,2015,34(6): 716-725.
[9]MCGRAIL M R, HUMPHREYS J S. Measuring spatial accessibility to primary care in rural areas: Improving the effectiveness of the two-step floating catchment area method[J].Applied Geo-graphy,2009,29(4): 533-541.
[10] 陈少沛,丘健妮,庄大昌. 基于潜力模型的广东城市可达性度量及经济联系分析[J].地理与地理信息科学,2014,30(6):64-69.
[11] 鄢进军, 秦华, 鄢毅. 基于Huff模型的忠县城市公园绿地可达性分析[J].西南师范大学学报(自然科学版), 2012,37(6):130-135.
[12] 陈洁,陆锋,翟瀚,等.面向活动地点推荐的个人时空可达性方法[J].地理学报,2015,70(6):931-940.
[13] 刘洋, 宋瑞, 李志杰. 基于空间句法的轨道交通可达性评价[J]. 都市快轨交通,2014,27 (6):70-74.
[14] 闾国年,张书亮,龚敏霞,等.地理信息系统集成原理与方法[M].北京:科学出版社,2003.
[15] 纪亚洲,李保杰.基于Geoprocessing 的徐州市绿地可达性研究[J].江苏农业科学,2012,40(10):341-343.
[16] Paul A.Zandbergen.面向ArcGIS的Python脚本编程[M].李明巨,刘昱君,陶旸,等,译.北京:人民邮电出版社,2014.
[17] 张瑜, 张黎明, 周碧青,等.基于GIS技术的耕地有效磷富集与生态风险评价——以福建省泰宁县为例[J].农业环境科学学报,2015,34(2):326-336.
[18] 位佳,杨光荣,张黎明,等.福建烟区烤烟产值估测模型与分区[J].福建农林大学学报(自然科学版),2014, 43(6):561-567.
[19] 张建新,纪凯.ArcGIS ModelBuilder模型设计方法在影像解译中的应用[J].测绘工程,2015,21(8):62-67.
[20] 戴慧, 赵元, 陈飞香,等.基于GIS和模型集成的国土生态安全评价系统[J]. 广东农业科学,2014(5): 223-226.
[21] 向诗剑,马铁驹.ABM与GIS集成及在分析新能源汽车扩散中的应用[J].管理科学学报,2014,17(1):1-10.
[22] 黄国如,黄晶,喻海军,等.基于GIS的城市雨洪模型SWMM二次开发研究[J].水电能源科学,2011,29(4): 43-45.
[23] 张攀攀,王义祥,邬群勇,等.GIS与大气环境模型的集成及其应用[J].环境科学研究,2010,23(5): 575-580.
[24] 黄宏胜.资源环境模型与GIS完全集成[J].计算机应用, 2009,29 (S1): 362-365.
[25] GUAGLIARDO M F. Spatial accessibility of primary care: concepts, methods and challenges.[J]. International Journal of Health Geographics, 2004,3(12):20.
[26] 郑朝洪.基于GIS的县级市医疗机构空间可达性分析——以福建省石狮市为例[J].热带地理,2011,31(6): 598-603.
[责任编辑:刘文霞]
Research on integrated development of an accessibility analysis tool based on ArcGIS and Python
HU Hong, LAI Xinsheng
(College of Mathematics and Computer Science, Shangrao Normal University, Shangrao 334001, China)
In order to reduce the difficulty of accessibility measurement and make up for the shortcomings of existing GIS software not integrated with accessibility analysis model or method, based on a detailed analysis on the present research situation of models or methods and GIS integration, this paper proposes to develop an accessibility potential model analysis tool by using the python scripting for ArcGIS 10 and the GIS internal integration method. And then, it gives an detailed account of the development environment configuration, requirements of data preprocessing, design process and implementation method of this tool. Finally, the practical application method of this tool is described by an example of a spatial layout rationality evaluation on urban primary education resources, and the evaluation results demonstrate the effectiveness of tool development.
ArcGIS; Python; integrated development; accessibility analysis tool; potential model
10.19349/j.cnki.issn1006-7949.2016.11.009
2016-01-21
国家自然科学基金资助项目(61562071);江西省自然科学基金项目(20151BAB207020);上饶师范学院科研基金资助项目(2011001)
胡红(1980-),女,讲师,硕士.
TP319; P208
A
1006-7949(2016)11-0043-07