3. 原始数据获取:把真实世界“装”进电脑
好,咱们进入第三章。上一章聊了空间图谱的底层逻辑,这回该上手了——数据从哪来?
说实话,数据获取是整个项目中最“脏”最累的活,但也是地基。地基不稳,后面建模、分析、可视化全是空中楼阁。我个人习惯,在开始任何空间图谱项目前,先用一周时间专门做数据源调研。为什么?因为不同类型的原始数据,获取方式、精度、更新频率、法律合规要求,完全不一样。
3.1 矢量数据:点、线、面里的世界
矢量数据,说白了就是用点、线、面来描述地物。一个路灯是点,一条马路是线,一个小区是面。这类数据来源主要有两个:OpenStreetMap(OSM)和政府部门。
3.1.1 OpenStreetMap:众包的力量与坑
OSM是个宝藏。全球免费、开放、每天都在更新。我做过一个城市应急响应的项目,用的就是OSM的路网数据。但有个问题——质量参差不齐。在欧洲主要城市,OSM的精度甚至比官方数据还高;但在某些偏远地区,可能连条像样的路都没有。
获取OSM数据,最常用的方式是Overpass API。举个例子,我想获取北京五环内所有的医院点位:
[out:json];
area["name"="北京"]->.a;
(
node["amenity"="hospital"](area.a);
way["amenity"="hospital"](area.a);
);
out body;
out skel qt;
除了Overpass API,还可以用Geofabrik的离线下载。他们提供按国家/地区的每日更新数据包,格式是.pbf或.osm。我个人的工作流是:先用Geofabrik拉取全量数据,再用osmium或osmosis做空间裁剪。
# 下载北京市的OSM数据(从Geofabrik中国区域包中裁剪)
osmium extract --bbox 116.0,39.4,117.0,40.2 china-latest.osm.pbf -o beijing.osm.pbf
3.1.2 政府部门数据:权威但麻烦
政府的矢量数据,比如国土部门的地籍图、规划局的控规图、统计局的行政区划边界,这些才是你在正式报告里敢引用的“铁证”。但获取难度嘛……嗯,你懂的。
国内主流的官方数据平台包括:
- 自然资源部标准地图服务:提供省、市、县级行政边界,审图号合规。
- 国家基础地理信息中心:1:100万、1:25万等比例尺的DLG(数字线划图)。
- 各地政务数据开放平台:比如上海、深圳、贵阳,会开放POI、路网、公交站点等数据。
我曾经为了拿一个城市的规划路网数据,跑了三次规划局。第一次去,人家说流程不对;第二次去,要填三个表;第三次去,终于拿到了……一个带水印的PDF。所以我的建议是:能走线上申请就走线上,留好回执;线下拜访时,带齐单位介绍信和项目说明。
3.2 栅格数据:影像与高程的世界
栅格数据,就是像素矩阵。每个像素代表一个数值——可能是地表反射率、高程值、或者分类标签。主要两大类:遥感影像和DEM(数字高程模型)。
3.2.1 遥感影像:看得见的“底图”
遥感影像的获取途径,取决于你要什么分辨率。
| 分辨率级别 | 典型数据源 | 空间分辨率 | 成本 |
|---|---|---|---|
| 中低分辨率 | Landsat 8/9 (USGS) | 30m (多光谱) | 免费 |
| 中分辨率 | Sentinel-2 (ESA) | 10m (可见光/近红外) | 免费 |
| 高分辨率 | 高分系列 (中国)、WorldView (商用) | 0.5m ~ 2m | 昂贵 |
我个人最喜欢用Sentinel-2做项目初期分析。10米分辨率,10天重访周期,关键是完全免费。获取方式可以用ESA的Copernicus Open Access Hub,或者用Python的sentinelhub库:
# 使用SentinelHub获取指定区域和时间范围的影像
from sentinelhub import WmsRequest, BBox, CRS
bbox = BBox([116.2, 39.8, 116.6, 40.1], crs=CRS.WGS84)
request = WmsRequest(
layer='TRUE-COLOR-S2L2A',
bbox=bbox,
time='2024-09-01',
width=512, height=512
)
images = request.get_data()
3.2.2 DEM:地形的骨架
DEM就是数字高程模型。你要是做洪水淹没分析、视线分析、坡度坡向分析,这玩意儿是必备。
主流的免费DEM数据源:
- SRTM:航天飞机雷达数据,30m分辨率,全球覆盖。虽然采集于2000年,但地形变化慢,至今仍是主力。
- ASTER GDEM:30m分辨率,覆盖北纬83°到南纬83°。比SRTM多了高纬度地区。
- ALOS World 3D:日本JAXA产品,30m和5m两个版本。5m版本是目前可免费获取的最高精度全球DEM。
获取方式,SRTM和ASTER GDEM可以从USGS EarthExplorer下载。ALOS数据要从JAXA的网站申请。下载下来的通常是GeoTIFF格式,直接可以用GDAL处理:
# 查看DEM基本信息
gdalinfo srtm_39_03.tif
# 重投影到EPSG:3857(Web墨卡托)
gdalwarp -t_srs EPSG:3857 srtm_39_03.tif srtm_39_03_3857.tif
# 计算坡度
gdaldem slope srtm_39_03.tif slope_39_03.tif
3.3 本章核心:数据获取的完整图谱
说到这儿,我把矢量数据和栅格数据的来源、用途、获取方式梳理成一张图。你一看就明白整个数据获取的脉络:
数据获取是第一步,也是最容易“翻车”的一步。我的经验是:先花一天列出所有可能的数据源,评估它们的精度、时效性、获取成本和合规风险,再做选择。别等代码写完了才发现数据不能用——那时候改起来,成本是当初的十倍。好,这章就到这,拿数据去吧。