考虑到数据读写是地理空间数据分析和应用的基础,因此将本章作为正文第一部分,以便为后续章节应用提供基础支持。本章以gma栅格/矢量数据输入输出模块(io)栅格/矢量数据的读取、创建、变换等主要操作为基础,配合gma地理数据格式模块(gft),介绍实现地理空间数据解析的整体逻辑和应用过程。
本章使用自然地球公共领域地图数据集作为示例,包括1:50m交叉混合催眠色调地球影像(GTiff格式)和主权国家/地区矢量数据(ESRI Shapefile格式,部分边界进行了修正),可从自然地球数据网站(https://www.naturalearthdata.com/)下载。
地理空间数据
本文所指的地理空间数据主要包括栅格数据和矢量数据。
(一)栅格数据(Raster data)
栅格数据是一种常见的空间数据形式,广泛应用于地理信息系统(GIS)、遥感、气象学、地球科学和环境研究等领域。它具有存储效率高、处理灵活、方便进行空间分析和模型建模等优点,可用于制作地图、监测变化、分析空间关系以及进行空间模拟和预测等工作。栅格数据以网格或像元表示空间上离散位置上的数据,每个像元都包含一个特定位置上的数值,可以是单一变量(例如温度、降雨量等)或多个变量的组合(例如遥感影像),常用于描述地表特征、环境因素和地物属性等空间分布情况。
(二)矢量数据(Vector data)
矢量数据是另一种常见的空间数据形式,与栅格数据不同,它使用点、线和面等几何要素来表示空间实体的位置和属性。矢量数据将空间实体抽象为几何要素,并使用属性表来存储每个要素的属性信息,用于表示地理要素,如地点、道路、边界、河流等。与栅格数据相比,矢量数据具有更精确的几何描述能力、更适合表示复杂的地理要素形状和拓扑关系,并且更适用于进行精确的空间分析和地理处理操作,广泛用于地图制作、空间分析、地理查询以及地理数据库管理等领域。
功能模块结构与组成
数据输入输出模块(io)
gma栅格/矢量数据输入输出模块(io)以GDAL/OGR为栅格/矢量数据支持的底层驱动,继承了GDAL/OGR操作逻辑,并适度简化、合并和优化相关功能。导入io模块:
from gma import io
io模块的功能函数组成如下图:
地理数据格式模块(gft)
gma 地理数据格式模块(gft)以GDAL/OGR为底层,重新定义了栅格/矢量驱动格式,并引入栅格/矢量高级创建参数(例如GTiff的压缩方式,矢量数据属性表字符编码等),提高栅格/矢量生成过程中参数的可配置性。导入gft模块:
from gma import gft
gft模块的功能函数组成如下图: