| Python Arcpy与Numpy在土地集约利用中的应用——以江苏省为例 |
2. 泗洪县陈圩乡人民政府,江苏 宿迁,223933
2. People's Government of Chenwei Township, Sihong, Suqian 223933, China
在对地学现象的研究中,地理处理[1]方法和软件是必不可少的内容和工具。利用Python语言实现数据与空间处理的整合在地学研究和应用上将提供更为高效的方法,大大节约了研究步骤和时间,也为实现更多空间分析功能提供了可能。
城镇土地利用的集约程度[2, 3]是衡量城镇土地利用合理性的决定性因素。在明确了研究范围和目标的前提下,城市土地集约利用的含义就是强调土地利用的“效率”最大化[4]。基于主成分分析方法[5-7]的集约度评价是使用较为广泛的土地评价方法,本文依据主成分分析的原理,使用Python脚本语言中Numpy模块和基于ArcGIS平台的Arcpy模块进行二次编程,读取并处理文本文件内容、矢量数据和栅格数据。本文使用Numpy中的多元统计分析模块和Arcpy模块主要用于访问ArcGIS平台地理处理工具和函数的工具包,进行各类空间数据处理与分析[8-10]。
1 基于Python Numpy模块的统计数据处理方法评价指标体系的建立应遵循以下原则:主导性原则、整体性原则、层次性原则、易于操作性原则、易于分析原则[11]。根据评价指标体系的建立原则,查找《江苏省统计年鉴2017》[12],确定了13个指标:包括3个土地投入的指标(地均固定资产投入C1、单位面积职工数C2、地均财政支出C3)、4个土地产出的指标(地均GDP C4、地均工业产值C5、地均财政收入C6、城镇居民人均可支配收入C7)、4个利用强度的指标(人均道路面积C8、城镇化率C9、人口密度C10、城镇居民人均住房建筑面积C11)、2个反映生态效益的指标(绿地率C12、人均公园绿地面积C13)[13]。
1.1 使用Numpy进行数据标准化标准化处理可以解决指标数据之间因为单位不同而不能进行比较的问题,采用均值——标准差(Z-Score)[14]方法对数据进行无量纲化处理,数据标准化表达式为:
| $ {P_{i, j}} = \frac{{{X_{ij}} - {{\bar X}_j}}}{{{\sigma _j}}} $ | (1) |
式中,Pij为标准化的数值; Xij为第i个城镇第j个指标值; Xj为第j个指标的平均值; σj为第j个指标的标准差。Z-Score标准化方法处理结果符合标准正态分布,即结果数据均值为0,标准差为1。Pij值为正,表示该城镇的第j个指标高于平均水平; 反之,则表示该城镇第j个指标低于平均水平。
根据Z-Score标准化方法的思想,利用Numpy模块在Python中构建标准化程序,对比程序与Z-Score方法的数据分析结果,结果一致,说明程序计算结果准确可靠。选取部分指标数据对比如表 1所示,表中Z_C1、Z_C2、Z_C3代表Z-Score标准化的指标。
| 表 1 标准化结果对比表(部分数据) Tab.1 Standardized Result Comparison Table (Part of Data) |
![]() |
1.2 Numpy提取主成分
将标准化数据作为矩阵传入Numpy模块中,运用数组和矩阵规则变换处理,按照特征值大于1的原则提取特征值及其对应特征向量,原理是对标准化数据的协方差矩阵进行求解特征值a和特征向量b,提取结果见表 2。
| 表 2 提取特征值 Tab.2 Extraction of Eigenvalues |
![]() |
其中,方差贡献率N1由式(2)计算(第i个主成分的贡献率); 累积方差贡献率N2由式(3)计算(前k个成分的方差贡献率之和)。
| $ {N_1} = \frac{{{\lambda _i}}}{{\sum\nolimits_1^p {{\lambda _1}} }}, \lambda 为特征值 $ | (2) |
| $ {N_2} = \frac{{\sum\nolimits_1^k {{\lambda _i}} }}{{\sum\nolimits_1^p {{\lambda _i}} }}, \lambda 为特征值 $ | (3) |
依据程序中特征值大于1的原则,选择前3个特征值及对应特征向量作为提取的主成分。
整理后得到的结果如表 3,载荷矩阵表中正负号仅表示与平衡位置的方向,不代表实际大小; 绝对值的大小表示主成分反映的指标信息量大小。因此,成分1表示城镇经济与建设程度,包括7个指标:C2、C4、C6、C7、C8、C9、C10; 成分2表示城镇土地投入与产出水平,包括4个指标:C1、C3、C5、C11; 成分3表示生态效益,包括两个指标:C12、C13。
| 表 3 载荷矩阵与特征向量 Tab.3 Component Matrix and Eigenvector |
![]() |
假设主成分得分值为F的矩阵,利用表 3中的特征向量矩阵A的列向量值作为主成分得分系数,Z_C为标准化数据矩阵,则主成分得分计算公式为:
| $ \mathit{\boldsymbol{F}} = {{\rm{Z}}_ - }{\rm{C}} \times \mathit{\boldsymbol{A}} $ | (4) |
统计指标数据为离散数据,不能反映空间位置上分布状况,为了更好地进行可视化分析,将标准化数据进行空间化处理。假定城镇核心缩放为一个点,江苏省13个城镇代表 13个核心点,各核心点之间影响程度随着距离的增加不断减弱,接近核心点的区域为峰值区域,核心点之间为过渡区域。因此,本文采用反距离权重插值(IDW)[15],像元大小为500 m,运用Arcpy模块对标准化指标数据进行空间化处理。
插值处理结果如图 1所示,可以看出13个指标在消除量纲影响后在空间位置上的差异。以图中idwZ_C2为例,该名称代表对指标为C2的标准化数据进行IDW插值,城镇单位面积职工数峰值区域出现在苏州、无锡,江苏西北部则表现出相对低的水平,表明江苏省内的劳动力分布不均,造成这种不均衡现象的主要原因是劳动力为寻求就业增加收入进行的省内迁移。
![]() |
| 图 1 IDW插值图 Fig.1 The IDW Interpolation Maps |
2.2 Arcpy模块计算主成分得分
根据式(4),将图 1空间栅格数据输入,即可得出3个主成分得分栅格数据,利用Arcpy模块进行栅格运算,处理结果如图 2所示。
![]() |
| 图 2 主成分得分栅格 Fig.2 Principal Component Score Maps |
从图 2中可看出,成分1城镇经济建设程度表现为西南部高东北部低,从东部沿海向西逐渐降低,反映出城镇建设程度不均衡。成分2城镇土地投入与产出在南京市出现峰值区域,在苏州无锡附近产生次高峰区域,说明大型城镇的土地投入和产出水平较其他地域高。成分3生态效益在省域范围内有多个峰值区域,苏州无锡发展程度较高,经济达到较高水平且保持稳定,因而转入城镇生态文明建设; 其他峰值区域由于其发展历程倡导经济建设与生态建设并进,也表现出较高的生态水平。
3 结果分析研究以3个主成分特征值的方差贡献率为权重来计算江苏省城镇土地集约度综合得分。用y表示城镇土地集约度综合得分,ki表示第i个主成分特征值的方差贡献率,计算公式为:
| $ y = \sum\nolimits_{i = 1}^3 {{k_i}} \times {y_i} $ | (5) |
由式(5)编写脚本代码计算,最终综合得分结果如图 3所示。
![]() |
| 图 3 综合得分分区图 Fig.3 Comprehensive Score Partition Map |
图 3由原始拉伸数据进行重分类得到,方法采用自然间断法分类[16],使各类数据之间的差异最大化,有利于各类别区分。集约度值的正负仅代表偏离平均位置的方向,其绝对值的大小代表偏离平均位置的程度。由图 3可以看出,江苏省城镇土地集约利用水平可分为5个区:Ⅰ区(-1.22~-0.80):低集约区包括宿迁大部分、连云港和淮安西北部; Ⅱ区(-0.79~0.30):中低集约区包括徐州、盐城、南通、泰州、镇江大部分以及扬州、淮安东部和南部; Ⅲ区(0.31~0.90):中集约区包括南京北部、南部以及泰州、镇江、南通南部、常州大部、无锡西部和苏州北部; Ⅳ区(0.91~1.50):中高集约区包括南京中部、无锡东部、苏州北部和南部; Ⅴ区(1.51~2.31):高集约区包括南京中心区和苏州中部。
此外,从地理区位上看,长江以南地区城镇土地为中-高集约利用水平,而长江以北为中-低集约利用水平,这与以长江为界的南北方经济发展差异有着较高的相似性。总体上,江苏省城镇土地集约利用水平呈现出东南部高集约,西北部低集约,中部中集约的规律。
4 结束语本文以江苏省13个市城镇数据为例进行城镇土地利用的集约程度分析,所建立的指标体系和脚本程序均具有可移植性,对于小区域或大区域尺度的研究均具有适用性,尤其是大数据分析中,脚本语言构建的分析方法更加简洁、高效。在研究过程中,Python模块的使用,代码的编写可能在逻辑关系和简洁度上有所欠缺,因此可能影响程序与程序之间的运行效率在后续研究中将进行进一步探究城镇和乡村之间过渡区域。
| [1] |
汤国安, 杨昕. ArcGIS地理信息系统空间分析实验教程(第二版)[M]. 北京: 科学出版社, 2012.
|
| [2] |
黎一畅, 周寅康, 吴林, 等. 城市土地集约利用的空间差异研究——以江苏省为例[J]. 南京大学学报(自然科学版), 2006, 42(3): 309-315. DOI:10.3321/j.issn:0469-5097.2006.03.008 |
| [3] |
王伟华. 基于主成分分析法的城市土地利用集约度研究[J]. 内蒙古农业大学学报(社会科学版), 2005, 7(4): 448-450. DOI:10.3969/j.issn.1009-4458.2005.04.155 |
| [4] |
谢语秋, 唐旭, 胡石元, 等. 边境城市的建设用地集约利用评价——以凭祥市为例[J]. 测绘地理信息, 2018, 43(2): 48-52. |
| [5] |
宋传峰, 秘金钟, 党亚民. 主成分分析在GPS水准数据处理中的应用[J]. 测绘科学, 2014, 39(6): 90-93. |
| [6] |
Abdi H, Williams L J. Principal Component Analysis[J]. Wiley Interdisciplinary Reviews: Computational Statistics, 2010(2): 433-459. |
| [7] |
徐秋艳, 毛军, 朱辉. SPSS统计分析方法及应用实验教程[M]. 北京: 中国水利水电出版社, 2011.
|
| [8] |
McKinney W. Python for Data Analysis[M]. California: O'Reilly Media, 2012: 79-82.
|
| [9] |
Sweigart A. Python编程快速上手——让繁琐工作自动化[M].王海鹏, 译.北京: 人民邮电出版社, 2016
|
| [10] |
Pimpler E.基于ArcGIS的Python编程秘笈(第2版)[M].牟乃夏, 译.北京: 人民邮电出版社, 2017
|
| [11] |
丛明珠, 欧向军, 赵清, 等. 基于主成分分析法的江苏省土地利用综合分区研究[J]. 地理研究, 2008, 27(3): 574-582. DOI:10.3321/j.issn:1000-0585.2008.03.011 |
| [12] |
江苏省统计局.江苏省统计年鉴2017[DB/OL]. [2018-08-28]. http://www.jssb.gov.cn/2017nj/indexc.htm
|
| [13] |
任家强, 汪景宽, 孔凡文. 基于空间自相关与主成分分析的城镇土地集约利用空间差异研究——以辽宁省为例[J]. 沈阳农业大学学报, 2012, 43(1): 39-43. DOI:10.3969/j.issn.1000-1700.2012.01.008 |
| [14] |
Spicer C. C. Algorithm AS 52: Calculation of Power Sums of Deviations About the Mean[J]. Journal of the Royal Statistical Society, 1972, 21(2): 226-227. |
| [15] |
李杰, 翟亮, 桑会勇, 等. PM2.5浓度插值中不同空间插值方法对比[J]. 测绘科学, 2016, 41(4): 50-54. |
| [16] |
de Smith M J, Goodchild M F, Longley P A.地理空间分析——原理、技术与软件工具(第二版)[M].杜培军, 译.北京: 电子工业出版社, 2009
|
2020, Vol. 45







