【城乡建设】住宅与房地产2019年7月基于Python的ArcGIS空间数据处理
——以太行山沿线传统村落数据库建设为例
张  慧,赵谷橙,蔡银坤
(河北工业大学,天津 300400)
摘要:ArcGIS提供了丰富的地理信息数据管理和分析的工具,但在处理批量地理信息数据,或工具不足以满足分析需要时,使用程序语言来对数据进行自动化处理是最直接的解决办法。文章以太行山沿线传统村落的数据库建设为例,展示在ArcGIS中使用python的方法。
关键词:Python;GIS;数据库;空间分析;传统村落
中图分类号:P208 文献标志码:A 文章编号:1006-6012(2019)07-0228-02
在GIS建模或GIS数据管理中,经常需要处理一系列步骤才可以完成工作,可以选择用脚本程序模型来完成一些重复的决策。对于比较重要的GIS工作来说,脚本以及其他形式的程序是必需的。
1  Python语言的特点
Python是一种面向对象、直译式的计算机程序设计语言,也是一种功能强大而完善的通用型语言。以下介绍Python所需要的简单语法和规则,包括数学运算符、字符串的操作、模块的使用、DEF构建函数的使用、流程控制结构和简单输入与输出。
1.1  数学运算符
Python提供了多样化的通用数学运算符,以及许多通过import的modules提供的符号,这在大部分的编程语言中都有所体现。常用的有+、-、*、/、**、%。运算的数据分为整型数据(integer)和浮点型数据(Float)。当参与运算的数据为浮点型时,结果为浮点型;当数据全部为整型时,结果才为整型。
1.2  字符串操作
字符串是Python中最常用的数据类型,可以使用引号来创建字符串。在创建字符串时只需要为变量分配一个值,如:var1=“Hello World!”
var2=“Python Runoob”
用户可以通过不同的语言命令来操作字符串以获得需要的结果。
1.3  模块的使用
Python中提供了一系列内置的方法用于编程,即内置模块。Python在安装时就自带了大量的Modules,其中最常用的模块有math、sys、random、array 和os.path。
在使用Module时,通常会将一行import<Module名称>放在程序的前面,比如:import arcgisscripting。当要引用多个模块的时候,中间需要用逗号分隔,比如:import arcgisscripting、sys、string、os、math。
1.4  使用DEF构建函数
使用DEF构建函数类似于Module的方法,但是操作起来更加方便,函数是一个自己定义功能,用在之后的代码中,并且可以提供给用户任何想要使用的参数。这个函数从此可以像变量一样在程序中使用。gis字符串是什么
1.5  流程控制结构:if条件语句、while
循环语句、for循环语句
Python提供了各种流程控制结构,
允许更复杂的执行路径。其中循环语
句允许用户执行一个语句或语句组多
次,有while循环(在给定的判断条件
为True时执行循环体,否则退出循环
体)和for循环(重复执行语句);而
Python条件语句是通过一条或者多条语
句的执行结果(True或者Fales)来决
定执行的代码块,如图1所示。
2  Python在ArcGIS中的应用
经过多代的软件更新,现在Python
已经与ArcGIS深度集成,并且成为
ArcGIS推荐使用的脚本语言。
2.1  Python在ArcGIS中的使用方法
Python在ArcGIS中主要有三种使
用方式,首先是通过Arcpy站点包进
行空间数据处理和分析,其次是使用
ArcGIS API for Python进行自动化任
务管理等工作,最后是通过python开发
Python Addin插件。随着软件迭代更新,
Python在ArcGIS中的用法也越来越多。
Python在ArcGIS中进行空间数据
处理与分析的核心,是使用ArcPy站点
包来进行各种空间数据处理和分析。
2.2  通过Python使用工具箱中的工具
ArcGIS中地理处理工具已有数百种
之多。在一般情况下,当面临具体问题
时,通过直接选用适宜的地理处理工具
解决具体问题。在脚本中使用工具时,
必须正确设置工具的参数值,用于正确
运行脚本工具。每个工具的文档都明确
地定义了其参数和属性,提供一组有效
的参数值后,工具即准备好执行。
2.3  通过Python使用函数
在Python中可以使用def function
(parameter)语句定义函数,将处理
复杂程序的流程封装,提高程序编写的
效率,在ArcGIS下函数适用于执行某项
特定任务并能够纳入更多程序的已定义
功能。
在ArcPy中,所有地理信息数据的
处理工具都是以函数的形式呈现的,除
工具之外,ArcPy还提供了多个函数来
支持使用Python的地理处理工作流。
2.4  通过Python使用类
在Python中可以使用class的方
式定义类,类似于人类认知世界的分类
系统,强调人们对于事物认知分类的要
求,使class定义一个类之后,将其具
有的属性和方法落实到个体对象上即为
类的实例(对象)。ArcPy站点包中包
含多个类。包括S-patialReference、
ValueTable和Point等。类实例化之后,
其属性和方法便可使用。类包括一个或
多个方法,成为构造函数。构造函数用
于初始化类的新实例。
3  传统村落数据库建设研究
3.1  研究现状
太行山是中国东部地区的重要山脉
和地理分界线,绵延经过北京市、河北
省、山西省、河南省的部分地区。由于
其复杂的地形地貌特征和相对封闭的环
境使许多传统村落得以保留至今。截至
2014年,太行山区历史文化名村的数量
共计99个,其中国家级42个,省级57
个,传统文化遗产资源异常丰富。这些
传统村落历史悠久,其始建年代有的可
以追溯至宋朝末年或更早,大部分村落
保持了明清或民国时期的建筑风貌,一
些石头古村落更为国内所独有,具有重
要研究价值。
3.2  研究意义
(1)打破信息资源封闭式管理模
式,实现调研测绘成果共享。通过GIS
空间数据库,可以将调研测绘成果与其
他相关信息整合在一起,实现对这些数
据信息的规范化记录、组织、存贮等,
并通过信息管理系统激活这些资源,实
现高校、研究单位、规划管理部门、公
众等对数据信息资源的共享和高效利用。
(2)提高传统村落保护规划水平,
实现动态化管理。在传统村落的规划、
保护和管理中引入GIS技术,利用信息
管理系统强大的空间分(下转第252页)图1 If条件语句、循环语句算法示意图
228
【创新与发展】住宅与房地产2019年7月
城”总结旅程,记录写作游记,分享心得攻略。从中也有相应的获得收益渠道。设置一些分享至外部其他产品的入口,让产品得以宣传。用户可在平时随时查看自己的旅程图与“足迹”,与朋友分享游记。
3.4  信息架构设计
信息架构的概念源自软件信息系统设计领域,由美国建筑师沃尔曼·理查德提出,其借鉴了建筑领域功能分区与布局的方法。“有方空间”的涵盖内容为世界范围内优秀建筑,是将建筑在内针对建筑类型、建筑师进行梳理;“马蜂窝”内容侧重提供旅游攻略,美食、游乐园以及各种网红分享。“趣城”APP 的第一版
设计规划涵盖长沙152处建筑景观景点多方面的数据信息,时间与空间跨度广泛,庞大的数据量要求旅游地图路线便利性与建筑信息深入性两方面的统一协作,以便将城市建筑的信息进行全面的呈现。
3.5  数据归纳整理
城市地图数据收集和建筑信息数据是本产品应用的基础。其城市与建筑信息,能够被用户在拜访城市建筑与寻攻略时使用户。首先按照长沙城区主要景点分布划将152处城市归纳于5个区划中。从而为条理性地认识长沙城市建筑景点和趣味街区的定向查提供便利。基于用户访谈调研搜集的数据,从用户旅行的旅程时间点出发。3.6  页面布局与交互
“趣城”的第一层级信息为登录注
册、目的城市定位、热门资讯、发现、
我的。底部导航栏(tab)包含城市、咨
询、社区、我的四大板块。城市内包含
热门建筑景点、旅行攻略、趣味推荐;
咨询包括热门城市、编辑推荐、发现、
旅行费用;社区包含我的社区、兴趣交
流;我的包含个人账号信息、旅程足迹、
喜欢与收藏。
3.7  界面设计
“趣城”的界面视觉设计与品牌设
计包括用户界面、宣传海报、banner等。
主视觉采用明亮的橙黄,吸引年轻的
旅行用户体,辨识度高。提取建筑墙
体元素作为APP的LOGO设计和界面图标
设计概念:城市的城字与具象的城墙元
素提取,采用正负形、叠加设计手法,
代表这是一款城市旅游APP。在“城”
的字体设计中融入现代建筑标志性片墙
与空间叠合围合元素,体现建筑旅行设
计专业性。H5的界面布局为卡片式,倒
圆弧角,圆形很好的包容心理,友好体验。
4  APP用户体验设计提升策略
优秀的软件产品研发在规划开始即
考虑用户体验可行性,从战略层、范围
层即定义产品的发展方向与用户体。
而在框架层与表现层,针对本产品选择
合适的交互方式、视觉彩尤为重要。
良好的用户体验是从战略层到表现层一
贯而终,遵循一致性与可用性原则。对
于“趣城”这样一款建筑旅行APP,其
用户体为专业设计用户为主:(1)板
块合并,明确重点;(2)整合用户需求;
(3)表现层视觉效果优化,注重体验趣
味性;(4)完善内容服务,提供优质的
攻略内容。
参考文献:
[1]清华大学建筑节能研究中心.中国建筑节能
年度发展研究报告[M].北京:中国建筑工业出
版社,2010.
[2]维克托·迈尔-舍恩伯格,肯尼思·库克耶.大
数据时代:生活、工作与思维的大变革[M].周
涛,译.杭州:浙江人民出版社,2013.
[3][美]威廉米切尔·伊托邦.数字时代的城市
生活[M].吴启迪,译.上海:上海科技教育出版
社,2005.
[4]刘程程,张凌浩.移动互联网时代手机服务
型APP产品设计研究[J].包装工程,2011,32(12):
68-71.
[5]张明真,基于用户体验的智能手机应用程序
界面设计研究[D].无锡:江南大学,2011
[6]罗仕鉴,朱上上.用户体验与产品创新设计
[M].北京:机械工业出版社,2010.
[7]郑建启.李翔设计方法学[M].北京:清华
大学出版社,2010.
[8]尹定邦.设计学概论[M].长沙:湖南科学
技术出版社,2005.
(上接第228页)析功能,可以实现多源数据在当前语境下的共时性分析和历史语境下的历时性分析,辅助决策传统村落文化资源的保护、规划及社会经济发展,提高传统村落保护规划、管理的科学性与高效性。同时为传统村落的日常保护和管理控制提供技术支撑平台,实现对传统村落动态、现时的管理和控制。
(3)从太行山区的宏观视角,进行传统村落的实证化研究。通过传统村落信息管理系统,对太行山区
典型村落进行实证化研究,不但使理论与实践相互验证,而且从整个太行山区的宏观视角,对村落组的集聚式发展进行科学的分析、论证和决策。
4  结束语
通过对太行山区传统村落空间数据库和传统村落地理信息模型的实践应用,基本了解传统村落地理信息数据的复杂性和重复性。
由于传统村落较复杂,因此收集并整理一套完整的村落数据存在一定的难度。通过GIS的应用拓展,相关部门可
以发布针对传统村落特点的独立GIS软
件,为相关开发需求相匹配,建设传统
村落空间数据库。Python作为一种处理
传统村落空间数据库的工具,需要用户
更深入的学习和使用,从而获得更强的
空间处理能力。
参考文献:
[1]庄亚飞,李素敏.基于Python的ArcGIS数
据属性值顺序码处理研究[J].软件,2018,39(7):
68-71.
[2]屈鹏.基于python的地理空间数据批量处
理方法研究[J].矿山测量,2018,46(1):86-88.
[3]魏朋.基于Python语言的空间数据处理
[A].云南省测绘地理信息局、云南省测绘地理
信息学会.云南省测绘地理信息学会2016年学
术年会论文集[C].云南省测绘地理信息局、
云南省测绘地理信息学会:云南省科学技术协
会,2016:6.
[4]余咏胜,傅晓俊,李琼,等.ArcGIS字段计
算工具在空间数据属性处理中的应用[J].测绘
与空间地理信息,2015,38(1):70-72+76.
[5]彭海波,向洪普.基于Python的空间数据
批量处理方法[J].测绘与空间地理信息,2011,
34(4):81-82.
[6]石晶,郭子珍,李小勇.ARCGIS中应用
Python脚本进行空间数据批量处理的研究与实
现[J].河南科技,2012(21):60-61.
[7]宋智丽,王尊旗.借助ArcGIS进行水利普
查空间数据的采集与处理[J].测绘与空间地理
信息,2013,36(1):126-127+130.
[8]焦洋,邓鑫,李胜才.基于Python的ArcGIS
空间数据格式批处理转换工具开发[J].现代测
绘,2012,35(3):54-55.
[9]丁华祥,唐力明.空间处理建模技术的概念
和应用——利用ArcGIS Model Builder工具实
现空间数据的转换[J].测绘通报,2009(1):64-
67.
作者简介:张慧(1972—),女,河北深州人,
博士,副教授,研究方向:历史文化村镇保护
与可持续发展;赵古橙(1998—),男,河北
枣强人,本科在读,研究方向:城乡规划;蔡
银坤(1997—),女,河北保定人,本科在读,
研究方向:城乡规划。
252

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。