空间数据怎样表达地理问题
从对象、场、关系和尺度出发选择空间数据表达,避免把数据格式误当作现实本身。
空间数据怎样表达地理问题
现实世界没有天然的图层、要素表和像元。河流是连续水体,也可以在航运图上表示为中心线;一座城市既可以是行政区多边形,也可以是人口密度表面。空间数据模型是在特定问题下对现实进行取舍,选择保留哪些对象、属性、关系、尺度和时间信息。
因此,数据模型不能只按手头文件格式决定。Shapefile、GeoPackage、GeoJSON 和 GeoTIFF 是编码或存储方式,点、线、面、栅格、网络和不规则网格才是对空间现象的表达。先明确要回答的问题,再决定表示方式,能够避免数据看起来完整却无法支持分析。
对象与场是两种基本视角
对象视角把世界看成可以识别的实体。建筑、道路、宗地、监测站和行政区通常有身份、几何和属性。矢量模型适合这种表达:点表示位置,线表示延伸或连接,面表示范围。几何可以精确描述边界和拓扑关系,也便于把业务属性连接到单个对象。
场视角描述一个量在空间中怎样变化。高程、温度、降水和污染浓度在研究范围内都可被看作连续或分段连续的场。栅格用规则像元采样这种变化,像元值表示覆盖区域内某种测量或估计。遥感影像也是栅格,但像元值首先是传感器观测,不自动等于地物类别。
对象和场不是互斥分类。河流可以作为水面场的一部分,也可以作为有名称和等级的线状对象;人口既可以按行政区统计,也可以转成密度栅格。转换会引入假设:面统计量分配到格网时,需要决定区内是否均匀;从栅格提取边界时,阈值和像元大小会改变形状。
几何没有业务语义
一个合法多边形只说明坐标构成了允许的几何结构,不说明它是地块、湖泊还是服务区。相同几何类型可以承载完全不同的业务规则。宗地边界不应重叠,洪水范围却可以在不同时间重叠;道路中心线在地图上相交,也不一定代表车辆可以转向。
OGC Standards 提供地理信息模型、编码与服务规范的入口。简单要素模型为常见几何类型及空间关系建立了共享基础,但应用仍需定义标识、属性、时间、允许的几何和约束。把这些规则只留在人员经验里,后续编辑、交换和分析就很难保持一致。
关系也需要明确。相交、包含、接触和邻接属于几何关系;连通、流向、上下游、通行限制属于网络或业务关系。仅凭线段端点重合建立道路网络,会漏掉立交、方向和转向规则。空间接近也不代表因果相关,邻近对象之间可能被行政、地形或权限边界隔开。
PostGIS 的官方手册区分几何类型、地理类型、空间关系、测量和索引等能力。数据库函数可以执行关系判断,但输入数据的语义、精度和适用坐标参考仍由数据生产者和使用者负责。
尺度会改变你看到的对象
数据尺度影响可见细节和合理用途。用于全国制图的道路中心线不能直接承担车道级导航,十米像元也无法可靠刻画几米宽的目标。比例尺、空间分辨率、位置精度和最小制图单元相互有关,却不是同一个概念。
缩小显示时,几何通常需要简化、聚合或选择。简化过度会改变拓扑,聚合会隐藏局部差异,分类方法则会改变读者看到的模式。多尺度数据不是把同一份几何不断缩放,而是针对不同观察范围保留适当结构。
边界也不是绝对真实的线。海岸线受潮位和观测分辨率影响,植被类型之间常有过渡带,行政边界则来自法律定义。将模糊过渡表示为一条高精度折线,容易制造并不存在的确定性。元数据应说明边界来源、采集时间、精度和解释规则。
时间不能只做成一个备注字段
空间对象会出现、变化、移动或消失。只保留“更新时间”无法回答某条道路何时有效、某块土地在何时属于哪种用途。根据问题不同,需要区分现实发生时间、数据库记录时间、观测时间和产品生成时间。
快照适合描述某个时点的整体状态,事件模型适合记录变化,轨迹适合移动对象,时空栅格适合连续观测序列。版本表虽然保留历史,也要定义标识是否跨版本稳定,以及边界变化后属性怎样继承。时间设计不清楚,变化检测和历史查询都会产生歧义。
从问题反推模型
建模前可以逐项核对:研究的是离散对象还是连续现象;需要哪些空间关系;最小可辨认尺度是什么;坐标和属性误差会怎样传播;对象是否随时间变化;输出要支持展示、统计、模拟还是导航。一个模型可以服务多个用途,但很少能在所有用途上同样合适。
交换数据时还应检查坐标参考、空值、NoData、字段类型、编码、几何有效性和精度。GDAL 稳定版文档说明了栅格与矢量数据模型以及众多驱动的行为。格式转换成功只代表文件被读写,不代表语义、约束和数值精度完整保留。
空间数据模型的好坏,最终由它能否支持清晰的问题和可检验的分析决定。表示越精细,存储、维护和质量控制成本越高;表示过于粗略,又会让结果超出数据能力。明确这项取舍,比追求最复杂的几何更重要。
资料依据
- OGC Standards,用于空间信息模型、编码和接口规范的权威入口。
- PostGIS Official Manual,用于几何、地理类型、空间关系和数据库实现。
- GDAL Documentation,用于栅格、矢量数据模型与格式转换边界。