10米分辨率城市土地利用数据:从下载到城市扩张分析的完整实践指南 📅 发布时间:2026/9/15 10:27:40 👁 浏览次数: 最近整理城市扩张分析的数据集我最终锁定的是一份“2016年至2022年中国10米分辨率城市土地利用数据”。这份数据把中国主要城市的土地利用状况按年做成栅格产品每个像元代表地面10米×10米的实际范围从2016年到2022年连续覆盖多个年度既能看清街区、公园、水系和建设用地的整体形态又具备足够长的时间跨度做纵向对比。对城市规划师、GIS分析人员和相关专业的学生来说这是研究城市空间扩展、土地利用变化、不透水面监测时很顺手的基础数据。这次就按我实际使用中的顺序把这套数据的来龙去脉、处理方法和容易踩的坑一次讲清楚给准备上手的人一份可直接参考的经验。1. 这份数据解决什么问题10米分辨率与年度连续采样的价值1.1 10米分辨率到底能看见什么先搞清楚10米分辨率的含义。通俗地说一个像元对应地面上10米×10米的方块按遥感分辨率的常规标准要识别一个目标至少需要两个像元所以差不多能分辨出20米左右的地物。这个尺度对城市分析意味着什么一条城市主干道宽度通常在30到60米可以被清晰识别一个中等规模的社区公园、学校操场、大面积屋顶都能形成独立的图斑但对小区内部的小路、单栋建筑、或者宽度不到10米的小巷就不一定能独立分出来。所以在用这份数据时别指望它能“数清楚每一栋楼”。好在城市土地利用结构分析的关注点并不是单栋建筑而是建设用地的整体扩张、不透水面比例的变化、绿地和水系格局的演变。10米分辨率的优势在于它比250米、500米的粗分辨率产品更能反映城市内部的空间异质性又比亚米级影像数据处理成本低得多覆盖全国范围时计算量也更可控。说一个实际感受我用250米分辨率数据做某个城市的扩张分析时中心城区的几个大公园几乎被合并成建设用地换成10米分辨率之后水系、绿地、建设用地之间的边界清楚得多面积统计结果也更接近统计年鉴的数字。这就是分辨率带来的实打实差异。1.2 2016至2022的时间跨度能干什么2016年到2022年这段时间点选得有意思。2016年前后中高分辨率遥感卫星的覆盖密度明显提升公开的哨兵二号卫星也从2016年起提供稳定的10米级多光谱影像所以这几年成为高分辨率土地覆盖产品比较充足的时间窗口。从城市研究角度看这一阶段很多城市经历了新一轮国土空间规划、棚户区改造、新区建设用地结构变化显著。这份数据以年度为单位生产意味着你可以计算每年新增建设用地、识别城市扩张是圈层式蔓延还是沿轴带生长、观测建成区内部绿地和水域的消长也可以结合统计年鉴做交叉验证。如果只需要单一年份取其中一期即可如果做纵向分析从2016到2022一共有7期数据已经足够支撑很多趋势性判断比如五年间某个城市的扩张速度是加快还是放缓哪个方向扩展最明显。1.3 谁能用、用在哪想清楚了数据能回答什么问题再对照使用场景。第一种场景是城市规划编制前的基础分析比如评估城市开发边界的扩张情况第二种是学术研究做土地利用时空演变、生态效应评估的模型输入第三种是政府和企业的项目汇报用动态变化图直观展示某个区域的发展态势第四种是GIS课程教学用真实数据训练学生的分类后处理与制图能力。如果你是做资源环境承载能力评价、人口空间化、灾害风险评估的这份数据也可以作为中间变量把不透水面比例作为人口分布权重或者把建设用地变化作为城市热岛研究的影响因子。我自己在做一个项目时就曾把它与夜间灯光数据叠加用来分析建成区扩张与经济增长的匹配程度效果不错。这类组合分析往往比单纯看土地利用面积更有说服力。2. 分类体系与算法选型数据背后的专业逻辑2.1 城市土地利用到底分成几类拿到栅格数据第一件事是搞清楚分类体系。常见的一级类包括建设用地、农用地、生态用地三大类但城市土地利用数据通常把建设用地进一步细分直接按二级类展示。比较通用的分类体系如下类别编码类别名称典型地物解释1建设用地不透水面建筑屋顶、硬化广场、水泥地面城市建设引起的硬质覆盖2交通用地高快速路、主干道路面单独提取的道路网络3绿地公园、行道树、草地以植被覆盖为主4水体河流、湖泊、水库自然与人工水体5裸土待建工地、裸地无明显植被覆盖的松散地表6农用地耕地、园地、设施农用地农业生产使用的土地需要提醒一点不同数据源的分类定义可能略有差异。有的产品把交通用地并入建设用地统一编码为不透水面有的把裸土与建设用地合并还有的在城市区域根本不区分农用地。使用前一定要看数据自带的类别说明或元数据否则后期统计口径容易出错尤其在做跨区域比较时分类体系不一致会让结论完全失真。2.2 常见分类算法与处理流程这类10米分辨率数据的生产方式一般基于卫星影像通过机器学习或者深度学习模型完成自动分类。随机森林是传统方案中的主力它对训练样本的需求相对可控特征组合灵活近几年的产品越来越多采用语义分割模型比如U-Net、DeepLab系列对空间上下文信息利用更好地物边界更规整在大范围城市制图中优势明显。流程上大致是影像预处理、样本标注、模型训练、分类推理、后处理、精度验证。后处理这一步容易被忽略但很关键。原始分类结果经常有椒盐噪声即单个像元或零星像元群在不同类别之间交替出现通常用多数滤波去除对道路、水系这类线状地物还要结合形态学闭运算把断线连接起来。精度验证一般采用分层随机采样每类至少50个验证点计算总体精度和Kappa系数。实测下来规范的10米级城市数据总体精度一般在85%以上分类别看建筑和水体精度最高裸土和低矮绿地容易混淆。2.3 分辨率高并不等于“完全正确”这是我想特别强调的一点。10米影像上的阴影、车顶颜色多样性、不同时期植被状态都可能造成分类错误。比如大片停车场容易漏分到绿地因为车辆之间的缝隙里长了草正在拆迁的区域不是被分为建筑就是被分为裸土不同年份之间还会跳变。所以做年际对比时看到某一块地类连续变化先别急着下结论最好叠加同期影像或者POI数据进行人工核验。做空间统计时也要对“边界效应”有预判。栅格数据的边界是锯齿状的特别是建筑物和道路的边界天然存在像元级的定位误差。10米数据下一个像元的边界误差换算成面积是100平方米虽然对宏观统计影响不大但在精细化核算地块面积时就要注意。3. 数据获取与预处理实操从下载到能用的完整流程3.1 数据格式、坐标与读取方式实际的10米分辨率城市土地利用数据通常以GeoTIFF格式分发按省份、城市或者分幅存储。有的产品坐标系统一为WGS84经纬度有的采用Web Mercator或者2000国家大地坐标系。拿到数据第一步先读坐标信息和范围确认研究区是否完整覆盖不要等分析做到一半才发现缺了一块。用Python读取栅格最常用的库是rasterio和GDAL。读数据时不仅要看数组值还要读取仿射变换参数和坐标系这样后续计算面积、转换坐标才有依据。如果发现数据自带的坐标系与预期不符优先通过rasterio的reproject方法做投影转换而不是直接用某种软件硬转避免造成像元错位。3.2 投影统一与面积计算做面积统计时WGS84经纬度坐标的栅格不能直接算面积因为每个像元的实际地面面积随着纬度变化。标准做法是把数据投影到等积投影或者当地带的高斯-克吕格投影再统计各类像元数量。10米分辨率的栅格一个像元面积是100平方米统计某类像元个数后乘以100就是该类总面积换算成平方千米时再除以1,000,000。实际操作中统计面积前先做一次投影转换建议转成Albers等积投影或UTM对应分带避免高纬度地区纬度带变形带来的误差。如果只需要与统计年鉴做对比误差控制在5%以内通常可以接受但若做精细的规划核算投影选择就要更谨慎。投影参数需要根据研究区位置设置中央经线和标准纬线不能随便选一个默认参数就完事。3.3 裁剪、重分类与掩膜处理拿到全国或全省数据后经常只需要某个城市或某个流域的范围。裁剪可以使用矢量边界栅格化后作为掩膜再通过rasterio的窗口读取或者ArcGIS的按掩膜提取实现。要注意边界处容易产生锯齿状像元裁剪后如果还要统计面积不建议对边界像元做特殊处理按像元面积直接估算即可不必过度纠结边界的一个半个像元。如果数据分类编码与我们规划的分类体系不一致需要重分类。比如有的数据编码1表示不透水面、2表示绿地有的数据1表示水体、2表示不透水面重分类时建议输出新的栅格保留原始数据不被覆盖。这里容易出的问题是用浮点数编码直接做逻辑运算导致意外合并类别实际操作建议统一转成整数编码后再计算。下面给一个简单的Python示例演示统计各类面积import rasterio import numpy as np with rasterio.open(urban_land_2020.tif) as src: cls src.read(1).astype(np.int16) profile src.profile valid cls 0 pixel_area_m2 10 * 10 # 10米分辨率 area_by_class {} for code in np.unique(cls[valid]): count int((cls code).sum()) area_by_class[code] count * pixel_area_m2 / 1_000_000 # km² print(area_by_class)这个例子看起来简单但有两个细节容易被忽略一是有无效值读取后不要直接统计所有像元否则NoData会被当成第0类面积统计凭空多出一大块二是确定分辨率如果数据源标称10米但实际经过重投影后有像元尺寸变化面积结果就要留足误差空间。4. 核心分析城市扩张状态评估与转移矩阵的实践方法4.1 扩展强度指数一个公式算明白扩张速度要定量描述一个城市的扩张快慢最常用的是扩张强度指数。公式如下扩张强度指数 (末期建设用地面积 - 初期建设用地面积) / (区域总面积 × 时间跨度) × 100%举个例子某研究区总面积120平方千米2016年建设用地面积36平方千米2022年建设用地面积48平方千米时间跨度6年。计算过程为(48 - 36) / (120 × 6) × 100% 1.67%这个数值代表研究区平均每年有1.67%的土地新增为建设用地。横向对比不同城市时因为这个指标除以区域总面积消除了城市面积差异带来的干扰可以相对公平地比较扩张速度。对单个城市也可以逐年计算画出扩张强度变化曲线看它在哪一年出现峰值。实际操作时要注意式中的“建设用地”定义要与数据分类编码严格对应。有些数据把交通用地单列统计城市扩张到底该不含交通用地需要根据研究目的统一口径。我个人倾向于把建设用地、交通用地合并为“城市不透水面”大类与绿地、水体、裸土保持三对照关系这样结果更稳健。4.2 转移矩阵看土地利用去了哪里转移矩阵回答的是“2016年的建设用地2022年变成了什么”以及“2022年新增的建设用地是从哪里来的”。做法是把2016年和2022年两期分类栅格相乘得到一个新的组合编码代表转移类型然后统计各组合的数量。举例2016年类别为3绿地、2022年类别为1建设用地可以构造新编码为“31”如果初期类别乘以10再加上末期类别这个编码就是31。统计该编码像元数并乘以100平方米即为绿地向建设用地转变的面积。把所有组合都统计出来就能做出一个行表示初期类别、列表示末期类别的转移矩阵。做这一步时最容易犯的错误是混淆乘法的结果顺序。建议统一初期类别乘以10再加末期类别后期反查时能快速从数值中拆出前后类别。用Python实现很直接核心也就是两期数组的叠加运算处理好NoData掩膜就能跑通。转移矩阵的行列合计还能用来验证两期影像范围是否完全一致如果某一类面积总数出现明显偏差大概率是前期数据处理有问题。4.3 扩张方向与空间集聚研判面积变化只是总量空间上往哪个方向扩张同等重要。可以用年均扩张重心位移来识别城市扩张的主要方向将每年新增建设用地图斑的重心坐标求平均连接相邻年份的重心就能画出一条扩张轨迹线。重心点坐标可以用矢量面要素计算或者直接用栅格坐标加权得到。结合方位角统计还能知道城市主要沿哪个方向扩展。比如某城市5年新增用地明显集中在西南和东北两个扇区规划部门看到这类结果后就可以重点核实该方向上的配套建设是否同步跟进。这些空间分析在ArcGIS的标准工具箱或者QGIS里都能完成核心数据处理并不复杂难的是对结果的解读要与当地实际情况结合起来避免只看数据得出结论。例如某个方向扩张明显可能是因为高铁站落地也可能是因为地形限制要结合真实规划背景判断。5. 制图输出与展示让数据能被看懂5.1 配色与图例设计土地利用栅格制图看着简单实际是最考验基本功的地方。配色原则第一是区分度第二是色盲友好第三是符合行业习惯。国际上比较惯用的方案里建设用地用红色或灰色系绿地用绿色系水体用蓝色系裸土用黄褐色系农用地用浅橙色系。建议不要自己发挥创造新配色否则汇报时别人很难把颜色对应到现实地物。色盲友好方面需要注意红绿对比对红绿色盲很不友好可以给绿地加一点黄色倾向或者给建设用地加深纹理让两类颜色在灰度模式下也有差异。图例必须包含年份、分类说明和数据来源方便看的人理解数据生产日期和精度。特别提醒图例里的类别名称要与数据说明文件里的一致不要自己随意改名。5.2 动态对比图制作技巧做时间序列展示时一个特别实用的小技巧是并排布局把2016年、2019年、2022年三期数据横向排开保持同一套配色和分类范围。这样读者一眼就能看出哪些区域在变哪些区域稳定比放一张动画还直观。对比图的关键是分类范围和色带必须完全一致否则看起来像变化很大实际只是渲染范围不同。如果要导出高清图片注意栅格导出的分辨率设置。先在布局里固定图幅尺寸再按300dpi导出确保图上的细节在打印或投屏时不会糊。另外图内注明投影类型和比例尺这是很多分析报告里容易遗漏但评审专家一眼会看出来的地方。加上指北针和数据生产单位信息图的规范性会提升不少。6. 常见问题与快速排查实录6.1 分类结果总是对不上实际怎么办概率最高的三个原因一是分类体系定义不同二是投影未统一三是分析范围与研究区边界不一致。排查时先确认数据的类别说明文件再对比坐标系信息最后用最新遥感影像随机抽几个位置点对照。用影像对照时尽量选同年份的影像因为土地利用变化太快拿2024年的影像去核对2016年的分类结果当然对不上。现象可能原因解决思路绿地面积明显偏大裸土或停车场混入绿地叠加同年影像人工抽样验证必要时后处理重分类建设用地面积偏小交通用地被单列统计将交通用地合并进建设用地口径后再统计边界参差不齐裁剪边界与影像配准有偏差用高精度矢量边界重新掩膜检查坐标系统一逐年变化出现跳变分类噪声或影像时相差异对逐年结果做时态一致性修整结合上下文判断6.2 面积统计结果与官方数据出入很大官方统计口径通常按宗地和规划界线计算遥感分类按像元覆盖计算两者本来就有差异这是正常现象。如果差异超过10%重点检查用地分类映射是否不合理比如把远郊的大片裸地计入了建设用地。另一种情况是边缘像元包含大量混合像元尤其在城市边缘建设用地与农田交错分布分类时容易把一排杨树和几栋房子混在一起。如果差异集中在某个特定区域建议单独裁剪该区域做详细检查。面积误差还可能与投影选择有关同一个栅格数据在Web Mercator投影下统计的面积与实际面积可能相差不少务必转成等积投影后再统计。6.3 数据拼接时出现明显接缝大面积研究区由多个分幅拼接时接缝处常常出现类别跳变。主要原因是相邻分幅的影像时相不同、分类模型参数略有差异。处理思路是拼接后对边界做缓冲区的多数滤波或者用重叠区的类别投票规则决定边界归属。如果条件允许优先从源头选择同一季节影像的分幅数据能显著减少接缝现象。接缝问题在逐年对比时会放大如果某一年拼接出现明显的条带状差异宁可单独重做这个区域也不要强行用平滑掩盖问题。平滑处理只是让图面好看实际分类错误仍然存在会直接影响面积统计的可靠性。7. 这套数据的扩展玩法与个人体会7.1 与多源数据叠加的组合分析数据本身是一个底图真正有价值的玩法在于与其他数据的结合。夜间灯光数据可以反映经济活动强度POI数据可以反映城市功能分布人口栅格数据可以辅助分析建设用地利用效率。把它们和这套土地利用数据叠加能做出很多有意思的分析识别低效建设用地、评估公园绿地服务半径、量化城市不透水面增加对地表温度的影响。举个例子如果只统计建设用地面积增加只能说明“城市长大了”但如果同时看到新增建设用地的夜间灯光亮度并不高POI密度也偏低就可以进一步判断这片扩张属于“外延式粗放扩张”这样的结论在规划评估里更有参考价值。每类数据的坐标系和分辨率可能不同叠加前先统一到一个共同的网格上常用做法是把辅助数据重采样到10米分辨率或者把土地利用数据聚合到1公里渔网再进行统计分析。7.2 我个人的一点使用习惯最后分享我实际使用中的几个习惯拿到数据的第一个动作不是看分类结果而是读元数据和类别说明做多年份对比前先把所有期别的坐标系和分类编码统一再进入分析流程面积统计时保留原始像元统计值不轻易改变像元大小每次出图都附带来源与年份说明。还有一个小技巧把每一次修改过的栅格文件都加上处理日期和坐标后缀比如“urban_land_2020_utm50_clip.tif”避免几天后分不清哪个文件是最后的成果。这个习惯看起来不起眼但在项目周期长的时候能省下大量时间。数据准备阶段多花半小时分析阶段就能少熬好几晚。最近我正拿着这套数据继续做城市扩张与夜间灯光的联动分析后面有结果了再单独写一篇分享。