
1. 数据集讲了什么为什么值得关注做城市规划、土地利用、环境评估这类工作的人手里没一份靠谱的建成区分布数据很多分析根本没法落地。这几年我接触过不少全球尺度的土地利用产品全球30米分辨率的地表覆盖数据、城市不透水面数据、夜间灯光反演城市范围等等各有各的优势也各有各的坑。但1975-2030年全球1km分辨率建成区空间分布栅格数据这个数据集是我在实际项目里用了之后觉得最省心的一套——它的时间跨度够长空间覆盖够全栅格数据格式又非常规整直接解决了跨年代、跨区域比对时最头疼的口径不一致问题。简单说这套数据把从1975年到2030年之间全球所有陆地表面的建成区空间分布按照1km分辨率切成了规则网格每个格网单元记录一个数值用来表达这个位置是不是建成区以及建成区的大致覆盖程度。这个空间分布不是一张静态的图而是大概每隔5年或者10年一期的连续时间序列拿到手里就能直接看到某个城市、某条流域、某个国家在几十年里城市扩张的完整过程。这套数据解决的痛点很实际以前做长时序的城市扩张分析往往要在不同来源、不同分辨率、不同坐标系统的数据之间来回切换光是统一口径就耗掉大半时间。这套数据把时间、空间、格式全部统一好下载下来直接扔进ArcGIS或者QGIS就能用适合做跨区域横向对比、长时间序列的纵向追踪也适合做模型输入的底图数据。对做城市规划、国土空间规划、生态环境评估、灾害风险评估的人来说都是非常顺手的工具。顺便说一句1km这个分辨率虽然不如30米、10米的数据精细但要明确一个判断标准分辨率高低不是越细越好而是要看分析尺度。做全球或者全国尺度的宏观趋势分析1km完全够用而且能有效避开高分辨率影像里大量噪声和局部误差。这套数据之所以能在行业里被广泛引用靠的正是它稳定、统一、可复现的特性。2. 数据背后的核心设计逻辑2.1 栅格数据到底怎么组织为什么选1km格网栅格数据这种组织形式简单理解就是用一个规则的网格覆盖整个空间每个格子存一个值。有点像把一张照片放大后看到的一个个像素但这里的每个像素代表的是地面上1km乘1km的真实范围。数据本身不记录边界线只记录格网位置和值所以文件结构简单、读取速度快、叠加分析方便。这套数据集选1km背后的计算逻辑不复杂全球陆表面积大约1.49亿平方公里如果切成1km格网差不多是1.5亿个格网单元单期数据用整数型的栅格存储体积也就一百多兆十几期数据加起来也就两个G左右处理起来压力不大。如果换成30米全球格网数量会暴增上千倍单期数据就是几十个G别说普通电脑跑不动就是服务器也要好好掂量。这也是为什么全球尺度的长时序产品普遍选择1km或者500m这种宏观分辨率。拿到数据第一件事不是急着做分析而是先搞清楚它的底层组织方式。一般这套数据会有两种常见的存储形态一种是每个年份一个独立的GeoTIFF文件文件名里带年份标记另一种是打包成一个NetCDF或者多波段GeoTIFF把所有年份压在一个文件里。前者操作灵活后者方便做时间序列剖面分析两个各有适用场景。我用ArcGIS比较多习惯把每期单独导出成TIFF后面做变化检测和转移矩阵的时候分图层操作比多波段操作顺手得多。还有一个容易被忽略的点栅格数据的空间分布是靠行列号和地理坐标之间的映射关系来定位的。打开图层属性看象元大小如果Cell Size是0.0083333333这种小数那说明坐标系是WGS84经纬度坐标系1km是在赤道附近的近似换算如果Cell Size直接是1000说明数据已经被投影到了米制坐标系。这两种情况对面积统计和距离测量影响很大后面我会专门讲怎么处理投影问题。2.2 建成区的定义方式决定了你该怎么用使用这类数据之前一个必须先想清楚的问题产品里说的建成区到底是指什么这个词在不同数据集里含义差别很大有的指城市行政边界内的所有区域有的指实际建设用地有的只指建筑物覆盖区域还有的连交通设施、工业厂区、商业地块都算进去了。这套1km数据集采用的通常是人类居住区域的概念即只要有相当比例的地表被人工建造物覆盖建筑物、道路、硬化地面等该格网就会被识别为建成区。值的设计上一般有两种常见方案。一种是二值分类0表示非建成区1表示建成区用起来最简单直接拿来做掩膜、做面积统计都方便。另一种是连续值比如0到100之间的数值代表该格网内建成区覆盖的百分比这种更适合做城市扩张强度、密度梯度分析。我实际用的时候发现很多版本同时保留了这两种表达——原始数据可能是连续值同时提供阈值化之后的二值产品或者反过来。下载后先打开属性表看看直方图确认数值定义再动手这一步能省掉后面很多返工。这里有个非常关键的实操经验如果你要算某个区域的建成区总面积二值数据的算法是格网数量乘以单格面积连续值数据的算法是所有格网值乘以单格面积再除以100。两种算法结果可能差很多尤其是城市边缘地带二值化之后的面积误差往往非常明显。我在做珠三角城市群扩张分析的时候做过对比同一片区域二值化之后算出的面积比连续值算出的少了差不多15%就是因为边缘地带大量半建成格网被直接归零了。所以具体用哪个值一定要跟你自己的研究目标匹配不要闭着眼睛直接拿去统计。2.3 时间跨度的设计逻辑1975到2030怎么来的选1975年作为起点、2030年作为终点这个区间不是随便定的。1975年前后是陆地卫星Landsat系列开始稳定提供中等分辨率卫星影像的时期也是全球大面积城市人口快速增长的起点从那一年开始人类活动对地表的影响逐渐加速可用的遥感观测数据也开始成体系积累。2030年则对应联合国2030年可持续发展议程的时间节点做政策评估和规划预测常常需要这个时间切面。这个时间跨度对分析工作来说是真正有价值的地方。1975年、1980年的数据可以用来反推很多地区城市化的初始状态1990年到2000年这十年是中国沿海城市大量扩张的阶段也是很多发展中国家城市人口翻倍的时期2010年之后的数据基本能反映当下的城市格局。如果你手头正好有近期的城市边界、人口分布数据还可以拿这套数据的后期结果跟2030年的模拟情景做对比直接用于趋势外推验证。各期数据之间相隔5年或者10年但分辨率、坐标系、分类体系完全一致这让变化检测变得非常干净。做两张图叠加直接看哪些格网从0变成了1就知道城市往哪扩张了反过来从1变成0的格网在现实中几乎不会出现要是出现了就得检查是不是数据质量问题。我在做长时序分析时就靠这个逻辑快速定位了几处原始数据的异常跳变省了不少排查时间。3. 拿到数据之后怎么落地操作3.1 数据预览与前处理检查清单数据下载解压之后别急着分析先按下面这个清单过一遍能避免大量后面才暴露的暗坑确认文件格式和投影信息。右键图层属性查看源选项卡数据是WGS84还是Web Mercator是经纬度还是米制心里要有数。检查数值范围和直方图。如果直方图显示值集中在0和1附近就是二值产品如果有大量连续值就是覆盖度产品。看懂了再决定后面用什么统计口径。切几个已知位置看一眼。比如北京、上海这样的城市中心格网应该显示为建成区塔克拉玛干沙漠、青藏高原腹地格网应该全是非建成区。如果不匹配多半是坐标系加载出了问题。检查数据范围是否覆盖完整。全球产品偶尔会出现局部条带缺失用全球底图叠加对比一下仔细看赤道和两极区域。我第一次用这套数据的时候就没注意坐标系问题直接把WGS84经纬度的数据当成米制坐标加载到和路网数据一起做叠加结果所有城市边界整体偏移了近百公里排查了大半天才发现问题出在数据的动态投影上。自那以后凡是拿到新数据一律先看属性里的坐标系和栅格范围这个习惯能省掉无数麻烦。3.2 区域裁剪从全球到研究区绝大多数项目不需要全球范围只要研究区那一小块。裁剪操作不算难但有两个细节直接影响后续统计。第一个细节裁剪时用按掩膜提取而不是栅格裁剪。按掩膜提取能用矢量边界精确裁剪同时可以设置裁剪后是否保留原值栅格裁剪更粗糙有时候边缘会出现一条黑边或者0值带。我自己的习惯是先按研究区的矢量边界做掩膜提取再把提取结果另存为新TIFF这样数据干净后面统计不会混入边界之外的0值。第二个细节注意裁剪后格网的对齐问题。1km格网在WGS84坐标系下并不是标准的1km边长高纬度地区的格子明显被拉长。所以在做面积统计之前尤其在高纬度地区做分析最好把数据投影到适合该地区的等积投影下比如阿尔伯斯等积圆锥投影然后再做面积计算。否则同一个格网在赤道附近代表1平方公里到了北纬60度可能代表不到0.5平方公里统计结果偏差会很大。实操流程基本是打开ArcToolbox提取分析工具集里的按掩膜提取输入全球建成区栅格输入研究区边界矢量输出路径设置好点确定就完事。QGIS里对应的是裁剪栅格按掩膜图层工具参数也差不多。跑完之后加个山体阴影底图做对比肉眼看看裁剪结果和真实城市的吻合度基本能判断这步操作有没有问题。3.3 重分类和专题制图把数据变成能看的图拿到裁剪后的数据直接渲染出来看默认的灰度色带往往很难区分建成区和非建成区。这时候就要做重分类。如果是二值数据用重分类工具把0设为一种颜色、1设为另一种颜色就行。如果是连续值数据可以按阈值分成几类比如0为非建成区、1-25为低密度建设区、26-50为中密度、51-75为较高密度、76-100为高密度分完类之后用渐变色渲染城市扩张的空间结构一眼就能看出来。我个人的习惯是建成区用红色系非建成区用浅色背景这样和大多数土地利用图、夜间灯光图的配色习惯保持一致放在报告里也好跟其他图件对比。ArcGIS里可以在符号系统选项卡里选分类然后手动调整阈值和颜色QGIS里则在图层属性的符号选项卡里做类似设置。调完之后别忘了检查每个类别的格网数量如果某个中间类别数量极少可能说明阈值设置不合理需要重新划分。这里还有个小技巧做多期时序对比图的时候不同年份的图最好用同一套色带和阈值。比如1980、1990、2000、2010、2020五期图红色都代表同一类覆盖度区间这样读者才能直观看出密度变化而不是被不同的配色误导。我在做成都市扩张专题图时就特意把五期图导出到一个统一的图例框架下出来的效果比各自的默认配色协调多了。3.4 栅格统计数据导出到Excel的完整流程项目里经常要把栅格统计结果弄到Excel里做进一步分析或者做汇报表。很多新手在栅格数据怎么导出成Excel这一步被卡住其实原理很简单先用工具把栅格值转成带坐标的点或者表格再导出为DBF或者CSV最后从Excel打开即可。ArcMap里的标准流程是先打开ArcToolbox里的栅格转点工具输入栅格得到一个点要素。然后在点要素的属性表里添加两个字段一个是X坐标一个是Y坐标用计算几何功能把每个点的经纬度或者投影坐标算出来。再打开表转Excel工具把这个点要素属性表直接转成Excel文件。这样得到的表格每一行就是一个1km格网中心点列包含坐标、栅格原始值、重分类值后面做散点图、折线图、透视表都方便。只做汇总统计的话更简单的办法是用分区统计工具输入研究区矢量边界作为分区统计每个区划内的栅格平均值、总和、最大值、最小值、像元数量输出结果是一个带属性表的矢量文件再把这个属性表用表转Excel工具导出去。比如按省级行政区做分区统计就能直接得到每个省历年的建成区总面积、覆盖比例配合年份字段做透视图城市扩张趋势一目了然。QGIS里的对应操作也很快打开处理工具箱里的栅格像素采样或者栅格统计工具配合导出为CSV就能完成同样的功能。如果嫌界面操作麻烦还可以用Python的rasterio配合geopandas几行代码就能把整个栅格的所有格网值和坐标导出成CSV。我自己在批量处理几十个年份数据时基本都是写脚本跑效率比手动操作高一个数量级。4. 多期数据的时间序列分析怎么做4.1 从单期图到动态变化图这套数据最大的价值在于多期时间序列但这恰恰也是最考验操作功底的地方。拿1980年和2020年两期数据叠加到一起如果只是上下切换看眼睛是能看出变化但拿不出定量的结论。所以正确做法是做一个差值分析在ArcGIS里用栅格计算器输入1980年数据减去2020年数据得到一个新的差值栅格。这个差值栅格的数值含义很直观-1表示该格网在1980年不是建成区、2020年变成了建成区也就是新增城市扩张1表示反过来0表示两期状态相同。这只是一个简单减法就能直观看出过去40年城市扩张的空间范围。连续值数据的话差值代表覆盖度的变化量正值表示覆盖度增加负值表示减少。我用这个方式做过长三角地区的案例分析把1990到2020年的差值栅格用红蓝渐变色渲染红色系区域全都在原来的城市核心区周围蓝色系区域基本都是零星的自然波动一眼就能看出城市扩张从核心圈层向外蔓延的路径。4.2 转移矩阵定量算清楚变化的构成只看差值还不够项目汇报的时候经常需要说清楚有多少面积的城市扩张占用了农田、多少占用了林地、多少占用了未利用地这就得做转移矩阵分析。基础流程是先把建成年份的栅格数据和土地利用数据都重分类到同一套格网上然后用栅格重叠或者制表工具统计两个栅格之间不同类别的组合数量。ArcGIS里的工具是制表Tabulate Area输入两个栅格和分区矢量输出结果直接就是每种组合的面积。Excel里用数据透视表整理一下就是个标准的转移矩阵表。我做过一次全国尺度的转移矩阵分析结果显示了很有意思的规律2000年前的建成区扩张占用耕地占了接近六成2010年之后占用耕地的比例下降转而占用林地和草地的比例上升这和产业转移、城市群外扩的大趋势是吻合的。这种分析用这套1km数据做宏观判断非常合适但如果要做某个县级的精细分析1km就略粗了需要配合高分辨率数据二次验证。4.3 驱动因素叠加数据分析的下一步建成区扩张从来不只是空间变化背后是人口增长、GDP提升、交通设施完善、地形限制等一系列因素共同作用的结果。做深度研究时把建成区数据和这些驱动因素叠加分析才能解释为什么在这个地方扩张。实操方法可以是将研究区切成格网为每个格网提取建成区变化值、人口密度变化值、道路密度、地形坡度、到最近城市的距离等因子导出成CSV后用统计软件或者Python做相关性分析、回归分析找出哪几个因子对扩张的解释力最强。1km分辨率在这个场景其实挺合适因为社会经济统计数据大多只能细化到乡镇再细的尺度反而对不上。这套数据自带统一格网把多源数据按格网对齐就容易了。用ArcGIS的多值提取到点或者QGIS的点采样工具可以一次把多个图层值提取到同一个点层上后续建模分析的数据底表直接就有了。我第一次做长三角城市扩张驱动分析时因为这套数据已经和人口、GDP格网数据对齐好了只花了半天就完成了建模准备省下的时间全花在分析逻辑上了。5. 常见问题与排查技巧实录5.1 数据加载后全黑或者显示异常全黑图基本就两类原因。一类是数据本身值域过大默认渲染拉伸方式显示异常这种在图层属性里改一下拉伸类型比如改成最值拉伸或者标准差拉伸就能解决。另一类是坐标系加载错误数据跑到了显示范围之外右键缩放至图层范围看看位置对不对不对就先在属性里重新指定坐标系再不行就问数据源的坐标参考说明。还有一种常见情况是会看到满屏都是0值但是统计直方图里明明有非0值。这多半是因为裁剪操作没设好NoData值0和NoData混在一起了。处理办法是在环境设置里把NoData值明确标出来或者在栅格计算器里用条件判断把NoData替换成合理的背景值。5.2 数值范围跟文档对不上如果下载的是连续值数据打开后发现值域是0到255而不是0到100别慌。很多栅格产品为了压缩存储空间会把浮点数或者大整数转成8位无符号整型原始值按比例缩放后会和文档描述不一致。这时要回去看数据自带的元数据说明找到缩放系数Scale Factor和偏移量Offset在栅格计算器里做一次乘加运算把数值还原。比如原值乘以0.4再加上某个常数恢复成真实的覆盖度值再做分析。这点很重要因为如果你不还原数值就直接做统计算出来的一切结果都是错的。我在做某版全球不透水面数据时看过一张网上流传的成品图数值范围是0到100但直方图明显不对劲结果发现数据源本身经过了非线性变换原作者没做逆变换就直接出图了。这也是为什么拿到任何栅格数据都先看直方图的原因。5.3 面积统计结果前后对不上面积计算结果跟预期差很多最可能的原因是坐标系选择问题。上面提过WGS84经纬度坐标系下格网面积在高纬度会被严重高估判断如果你在ArcGIS里直接用WGS84坐标系下的栅格算面积统计结果会比真实面积大很多。处理办法是先投影。在投影栅格工具里选一个适合研究区的等积投影中国范围一般用阿尔伯斯等积圆锥投影全球范围用正弦曲线投影或者摩尔维德投影。投影后再跑面积统计结果才可信。另一个检查点是看NoData有没有混入统计分区统计工具默认忽略NoData但如果你手动处理的表格里把NoData算成了0数值就偏了。5.4 不同期数据重叠后位置对不齐做多期叠加分析时如果几期数据边界总是错开几个格网的位置一般不是数据自身问题而是坐标系基准或者格网原点设置不一样。解决办法是统一所有数据的坐标系和格网原点在环境设置里固定输出坐标系同时把栅格分析的像元大小和捕捉栅格设为同一个基准图层。用捕捉栅格功能可以让所有输出栅格严格对齐到相同的格网这样后面做差值、叠加时就不会出现半个格网偏差的问题。6. 这份数据还能用在哪些场景6.1 城市规划与国土空间规划里的用途在做城市开发边界划定、城镇空间结构分析这类项目时这套数据的价值在于能给出过去几十年城市到底怎么长出来的的完整时间线。叠加人口密度、交通干线、地形地势能比较清楚地识别城市扩张的方向和潜力区。尤其是做多规合一和国土空间规划评估的时候经常需要用统一口径回顾历年的建设用地变化情况。1km分辨率对省级以上尺度的趋势性判断完全够用而且各年份口径一致不会出现2010年用A源、2020年用B源导致的变化量失真。县市级尺度做参考背景、辅助宏观判断也是很好的底图。6.2 生态环境评估和碳循环研究的底图城市扩张对生态系统的影响比如栖息地破碎化、生态系统服务价值下降、碳排放增加都需要先知道建设用地的时空分布。这套数据可以作为各类生态模型的输入参数也可以直接用于抵抗评估中的暴露性分析。举个例子我们做过一次洪涝灾害风险暴露性评估把1975到2030年的建成区数据叠加到洪水淹没范围图上可以算出来如果不加控制未来建成区暴露在洪水风险下的面积会增加多少。这种评估需要的就是统一格网、统一比例尺的数据这套产品直接满足。6.3 数据插补和模型验证的辅助资料有些区域缺少历史高分辨率影像或者统计资料利用这套数据做空间插补或者结果验证很实用。比如重建某地区的历史城市范围时先用这套1km数据定出大致边界再借助高分辨率影像在边界内精细化可以大大节省人力和时间。做模型模拟时这套数据的多期结果也可以作为校准数据。比如城市扩展元胞自动机模型的初始状态和验证目标都可以直接取用对应年份的建成区分布和模型输出结果做逐格网的对比评估。因为这个数据源是全球产品在缺少统一本地数据的国家和地区往往是唯一可用的城市扩展时序数据。7. 实操心得和扩展建议用这套数据的时间不算短了几个总结性的体会分享给后来人。第一千万别迷信分辨率越高越好。在宏观尺度分析里1km的分辨率不是妥协而是理性选择。它能让你快速看清长时序的空间格局避开高分辨率数据里大量局部噪声的干扰。真正需要精细分析的时候完全可以基于这套数据的识别结果圈定重点区域再去专门找高分辨率影像做局部深入。第二花时间把数据前处理做扎实比急着跑结果划算得多。坐标系统一、NoData处理、数值还原、格网对齐这四步做好了后面所有统计分析的计算都顺畅。数据前处理偷的懒后面全都要以排查时间加倍还回来。第三这套数据最值得发挥的场景是长时序大范围的宏观分析。做单个城市的精细分析时它的作用有限但放到城市群、流域、全国乃至全球尺度它能提供的高速产出会比很多精细数据更有价值。最后分享一个小扩展思路把1975到2030年的逐年格网值按时间维度看成一个三维的数据立方体然后在GIS软件里按时间滑块逐帧播放一个区域几十年的城市扩张动画就出来了。我在做省级汇报材料时用过这个方式效果比单张静态图直观得多领导看完基本不用再多解释什么。数据本身会说话但前提是你花时间去理解它的设计逻辑并且把前处理做扎实。希望这篇整理能让你少走几段弯路尽快把精力放到真正有意义的分析上。