基于python的地名地址时空化改造

(整期优先)网络出版时间:2018-12-22
/ 2

基于python的地名地址时空化改造

陈寅

陈寅

嘉兴市规划设计研究院有限公司浙江嘉兴314050

摘要:地名地址数据是对地名、地址信息的结构化描述与标识。它们是公共地理框架数据的重要组成部分,也是专业或社会经济信息与地理空间信息通过地理编码或地址匹配进行挂接的媒介与桥梁。地名地址时空化改造更是对以往的地名地址数据统一到同一时空基准,完善数据的时间属性,纪录启用和停用时间。通过python技术对不同来源的地名地址数据进行整理和赋予时间属性,从而达到地名地址时空化改造的目的。

关键字:地名地址;python;时空化

1引言

地名地址信息是基础地理信息的主要内容之一,地名信息数据库建设是为“智慧嘉兴”时空信息云平台建设的一期工程,主要建设目标是建设嘉兴市时空信息基础库。

民政部门作为地名地址数据的行政主管部门,提供历年的地名和门牌数据,但是数据建立起非空间化的专题数据,与地理信息数据有较大差距。嘉兴市测绘与地理信息局根据示范应用的需要,于2009年初组织完成了嘉兴市本级精细地址的信息采集工作,并建立了相应的数据库,为确保地名地址信息的现势性、准确性每年对该数据进行更新维护,但这些数据存在覆盖范围有限,信息采集数据和行政主管部门不相符,无时间属性等问题,不能很好地满足其他行业部门的应用。因此本文立足民政部门数据的权威性和测绘主管部门数据的空间位置,从两个部门的数据标准差异化入手,通过建立数据标准的映射关系,基于python技术建立时空信息地名地址数据库。

2改造方案

2.1收集数据:包括嘉兴市测绘与地理信息局的地名地址数据(以下简称测绘数据)和嘉兴市地名委员会办公室地名整治数据(以下简称地名办数据)

2.2整理数据:按照格式整理成标准文档数据格式,包括地名的结构化描述、地名标识码、单位名称、户主名称、所属县(区)、所属乡镇街道、所属村(道路)、门牌号、数据源生产时间、原自然村、原门牌号等。

2.3利用程序填入时间属性:比较属性包括启用时间、停用时间、更新数据源、更新时间。编写python程序逐年比较测绘数据,发现没有使用后填入停用时间,地址相同的填入更新时间,最后和地名办数据进行比较,填入启用时间和更新数据源。

2.4由于道路改道、原门牌号相同等因素,利用程序选出疑似问题地址数据进行人工筛选和修正,最终形成最终数据文档。

3分析资料

建立时空化数据库需收集地名办数据和测绘数据,根据收集到的数据分析需两者之间的关联性和差异性,得到相对完整的地理信息数据库。

从得到的数据分析,地名办数据只包含单位名字、道路、号码和具体的编制时间等信息如下图1,不包含空间地理信息数据。但是从测绘主管部门得到的数据是不仅包含道路、号码和空间地理数据的坐标,而且测绘部门每年更新,可以得到相对应数据的停用时间如下图2。两者相结合的结果,分别按道路和号码进行比较地名地址的启用时间和停用时间。

图1民政部门数据

图2测绘部门数据分布

4建立关系

根据得到的资料分析可以建立起两者之间的关联关系:

4.1以2017年12月的测绘地名地址数据为基础数据和2009年之间的数据进行逐年比对,找出最早的生产时间。再和民政部门数据的编制时间作对比,填入相应的字段中。

4.2按照道路、门牌号数据相关联,对应上的数据后,填入相应的时间属性。

4.3来源为地名办数据的填入启用时间,比对中时间或者门牌有冲突按地名办数据为准。

5技术实现

利用python技术编写出相对应的软件代码,导出相应的结果集,以下为部分比对编码内容:

forper_road_addrsinpre_addres_mpcode.values():

forpre_addrinper_road_addrs:

pre_addr.ownroad_std=pre_addr.ownroad_cp

pre_addr.mpcode_std=pre_addr.mpcode_cp

pre_addr.updatetime=pre_addr.datadate

pre_addr.disabletime=PRE_DATADATE

pre_addr.status=1

pre_addr.process+=u'mpcode:%s存在,%s不存在;'%(pre_addr.datadate,PRE_DATADATE)

append_to_dict(pre_addr,addrs)

globalISFIRST

ifISFIRST==1:

status=0

else:

status=2

addrs_beadded=[]

forper_road_addrsinaddrs.values():

foraddrinper_road_addrs:

ifaddr.status==status:

ifaddr.ownroad_cp!=''andaddr.oldcode!='':

compare_oldcode(addr,pre_addres_oldcode,addrs_beadded)

ifaddr.status==1:

addr.status=0

foraddrinaddrs_beadded:

append_to_dict(addr,addrs)

6结束语

改造后的地名地址数据库即被赋予时间属性,也帮助民政部门的地名表格实现空间化,形成统一的地名地址数据库,今后可帮助公安、电力、交通、建设等部门提供最权威的地名地址库,并可以提供与大众最息息相关的地名信息,满足政府部门和社会大众对地名地址的迫切需求,为以后的智慧地理信息数据地址库打下良好基础。

参考文献:

[1]嵩天,程序设计基础[M].高等教育出版社,2014

[2]段莉.数据采集技术分析[J].互联网天地.2016(12)