上海市体育资源空间数据库构建方法

2022-04-20 06:47何文娜
科学技术创新 2022年10期

何文娜

(吉林体育学院基础教学部,吉林 长春 130022)

1 概述

根据国家体育总局2020 年全国体育场地统计调查数据表明[1],全国体育场地371.34 万个,比2019 年增加16.9 万个[2],其中田径场地17.95 万个、游泳池2.92 万个、球类运动场地233.54 万个(足篮排占52%)、冰雪场地1888 个、健身场地87.12 万个。体育资源增加一定程度上体现了我国各级政府对全民健身计划的重视与投入[3],更体现出人民群众对健身场地的强劲需求。因国家体育总局只对不同场地的类型、数量及占比等进行统计分析,并未提供配套的全国体育资源数据下载。一直以来因体育场地资源空间位置的缺乏,很大程度限制了各省、市、县等不同行政区域对其体育资源空间分布特征及资源配置情况的分析,不利于快速回答体育场地“在哪里”、“空间服务如何”等问题。

当前体育场地数据(特别是空间数据)难以获取,人工制作周期长、成本高,无法满足研究体育场地资源的分析需求。本文以上海市空间区域为目标研究范围,综合利用云资源[4]、大数据[5]、GIS 等技术,探索一套快速构建体育资源的数据获取、空间数据库构建的方法,为后续的数据资源利用及深度分析研究等打下基础。

2 技术框架

为了保证体育场地资源数据来源的可靠性、现势性,借鉴百度POI 数据爬取方法[6],本文采用从百度地图中抓取体育场地相关数据(限定上海区域),在百度云中获取体育场地数据的同时得到场地名称、地址、所在省、所在市、所在县、经度、纬度等多个属性。因网络数据抓取涉及网络连接、API 访问约束、数据解析等多个因素制约,故为保障体育场地数据从在线获取到空间数据库形成,基于云计算、大数据等技术设计了一套完整的技术框架(如图1),主要包括技术支持层、数据资源层、网络连接层、数据抓取层、数据存储层、应用层等层。

图1 体育资源空间数据库构建框架

2.1 技术支持层

包括云计算、大数据、人工智能等技术与方法,云计算主要读取百度地图云应用程序接口,大数据涉及结构化、非结构化数据处理技术,人工智能重点涉及自然语言处理等技术(名称判断等)。

2.2 数据资源层

国家民政局网站提供标准各级行政区域(省、市、县)数据,百度云可在线提供指定区域的体育场地POI 数据来源,通过API 交互而不必关注数据所在之处。

2.3 网络连接层

采用HTTP、HTTPS、TCP 等多种协议支持与数据资源连接,也包括GIS 桌面产品或其他应用系统通过空间数据库引擎连接到体育场地数据库,可以直连数据资源中心或依托各类服务与资源进行交互。

2.4 数据抓取层

主要包括搜索区域、关键词[7]、保存位置等设置,以及连接百度云、爬取数据、多粒度的百度云端REST 服务解析并下载体育场地数据等算法[8]。

2.5 数据存储层

涉及投影参数和坐标系设置、字符集转换、数据保存、构建属性结构、生成Shapefile、导入PostGIS 数据库等多个算法及技术方法[9],完成体育场地数据的物理存储与空间数据库建设。其中,可采用GIS 软件、编程等方法生成Shapefile 文件[10]。

2.6 应用层

用ArcGIS、uDig 等桌面GIS 软件,实现数据读取、GIS数据生成、可视化展示等,亦可用定制开发的GIS 应用程序或地图服务器访问并读取存于PostGIS 数据库的体育空间数据,以提升建设好的体育场地利用率[11]。

3 实现方法

3.1 数据抓取原理与方法(图2)

图2 体育数据云端抓取原理

体育资源数据抓取需要经过设置县级行政区、设置搜索关键词、连接百度云、抓取数据、解析数据、字符转换、保存数据等步骤。

3.1.1 设置县级行政区:从国家民政局网站中查找上海市各区县的编码和名称,构成下载所需的市县集合。

3.1.2 设置搜索关键词:设置体育馆、健身中心、极限运动等作为搜索关键词。

3.1.3 连接百度云:通过百度API 连接到百度地图云。

3.1.4 抓取数据:逐个县/区、分关键词从百度地图云中抓取上海市体育场地数据。

3.1.5 解析数据:对从百度云端抓取的流式数据进行解析,从返回结果中分别解析出体育场地的名称、地址、所属省、所属市、所属县、经度、纬度等,保存于内存变量中。

3.1.6 字符转换:将解析后的数据进行字符集转换,按要求统一转换成UTF8 等格式。

3.1.7 保存数据:将内存中体育场地的属性数据逐条保存到物理文件中,可保存成Excel 格式数据(.CSV、.xls、.xlsx)或文本文件等。

3.2 数据建库方法(图3)

图3 建立空间数据库流程与方法

数据处理和建库要经过数据处理、生成图层、建立空间数据库和使用空间数据等步骤。

3.2.1 数据处理:编写数据校对算法(辅以人工),即通过软件自动去除冗余行、补充空值、剔除某些非体育场馆的实体(如体育馆体育商店、极限运动体育用品店等)等。

3.2.2 生成图层:在ArcMap 中打开保存在Excel 中的体育场地数据,指定经度、纬度以及其他属性列,同时设置正确的坐标系、投影参数等,生成ArcGIS Shapefile 格式的体育场地的点图层。

3.2.3 建立空间数据库:使用开源空间数据库PostGIS自带的Shapefile 的导入/导出管理器,选择已生成的体育场地点图层,将其导入到空间数据库中。一次可导入或导出一个或多个Shapefile 格式数据。

3.2.4 使用空间数据:采用PostGIS 的Shapefile 导入/导出管理器工具,导出存于空间数据库中的体育场地数据,其他GIS 软件或程序(uDig 或ArcMap 等)可读取并展示此数据

3.3 技术方法

3.3.1 实现技术。开发工具采用Anaconda3 (64-bit)Spyder;以Python 语言编程实现核心爬取及数据处理算法[12];调用百度API 在线抓取上海市体育场地有关POI 数据;抓取结果及中间格式采用Excel 文件格式保存(.CSV、.xls、.xlsx);采用ArcMap 或uDig 将Excel 格式数据生成GIS 空间数据工具;以ArcGIS Shapefile 格式作为上海市体育场地空间数据的便携式保存格式;使用开源数据库PostGIS 作为保存上海市体育场地空间数据的容器。

3.3.2 实验计算机。华为MateBook X Pro 笔记本电脑,CPU 为Intel(R) Core(TM) i5-8265U @1.60GHz,内存8GB,硬盘采用三星固态500GB,显卡和彩卡是集成的Intel(R)网络适配器和显示适配器,操作系统为Windows 10 家庭中文版(64 位)。

4 构建结果

为了验证构建形成的上海市体育空间数据,使用GIS软件从空间数据库中提取并显示体育场地数据。通过百度地图在线搜索、辅以部分上海市的实地核实,证明构建的空间数据库中的体育场地位置、名称等是正确的。行政区划底图采用2021 年上海市行政区(市、区/县)的矢量格式面状要素,体育场地以点状矢量格式数据显示,最终形成了上海市体育资源空间数据库,数据内容包括体育馆(场)、健身中心、极限运动等4333 个重要的体育场地。采用ArcGIS 软件在地图上对各类要素进行颜色、图形、大小等多种渲染方法,得到上海市体育资源空间分布图,图4 中三角形为体育馆、圆点为健身中心、五角星为极限运动。

图4 上海市体育资源空间分布图

5 结论

5.1 本文提出从百度云端爬取体育场地数据,再经过解析、转换、保存、显示数据、生成GIS 数据、导入数据库的一套体育空间数据库建设方法。

5.2 设计了在线百度云中抓取上海市体育数据方法、体育资源空间数据库构建流程,并编程实现了具体算法。

5.3 构建并形成了上海市体育资源空间数据库,完成4333 个体育场馆、健身中心、极限运动等体育场地数据的获取及入库。

以本文成果作为坚实的数据基础,后续可开展体育资源空间分布特征分析、与经济等综合挖掘、WebGIS 模式的体育资源开发与应用、基于知识图谱的智能分析等研究工作。