中国1km分辨率逐月降水量数据集(1976-2025):50年600期气候栅格完整技术说明
摘要:基于CRU全球0.5°气候数据集与WorldClim高分辨率气候数据集,通过Delta空间降尺度方案生成的中国区域1km分辨率逐月降水量栅格数据。时间跨度1976-2025年共50年600期,NetCDF格式,已用496个独立气象站点验证。本文涵盖数据来源、降尺度方法、技术规格、Python/Matlab读取代码与完整获取方式。
关键词:中国降水量 · 1km分辨率 · 逐月降水 · Delta降尺度 · NetCDF · 彭守璋 · CRU · WorldClim
数据代码:
逐月降雨量-{年份}(1976-2025)系列索引:18.数字高程模型 DEM | 20.中国100万植被类型 | 21.中国1km逐月降水量(本文)
0. 数据档案
1. 免费获取方式
数据由微信公众号 YouGIS顽石 整理分享,完全免费。两种方式任选其一。
方式一:YouGIS 公众号关键词(推荐)
关注微信公众号 YouGIS顽石,发送关键词:
逐月降雨量-年份 → 该年全年12期降水量nc数据(约160MB)
示例:
系统自动回复 百度网盘 + 夸克网盘 双链接。
方式二:YouGIS 数据助手
支持在线查看数据元信息(分辨率、坐标系、覆盖范围),适合批量检索。
2. 数据背景
2.1 数据怎么来的
该数据集并非直接观测数据,而是基于两个权威气候数据源通过统计降尺度方法生成:
CRU TS 全球0.5°逐月气候数据(时间变化源)
crudata.uea.ac.uk/cru/data/hrg/
+
WorldClim 全球高分辨率气候数据(空间细节源)
worldclim.org
↓
Delta 空间降尺度方案
↓
中国区域 1km 逐月降水量栅格数据
数据源说明:
CRU TS(Climatic Research Unit Time-Series):东英吉利大学气候研究中心发布的全球陆地表面0.5°格点月度气候数据,时间覆盖1901年至今,是国际上使用最广泛的全球气候格点数据之一。
WorldClim:全球高分辨率(~1km)气候数据,提供长期气候常态(climatology),空间细节极为丰富,但不包含逐月时间序列。
2.2 Delta降尺度方法
Delta空间降尺度的核心原理:
空间模板:WorldClim 提供 1km 分辨率的气候常态(如多年平均的月降水空间分布),作为空间降尺度的"模板"
时间信号:CRU TS 提供 0.5° 分辨率的逐月距平(相对于气候常态的偏差),作为时间变化的"信号"
融合:将 CRU 的逐月距平叠加到 WorldClim 的 1km 空间模板上,得到 1km 分辨率的逐月降水数据
这种方法属于统计降尺度,相比动力降尺度(RCM区域气候模式)计算效率高得多,且能达到1km的空间分辨率。
局限性:Delta方法假设空间格局在时间上稳定,即WorldClim的空间模板在不同年代同样适用。对于地形复杂区域(如山区),这一假设可能带来一定偏差。
2.3 数据验证
使用 496个独立气象观测站点 的实测月降水数据对降尺度结果进行了验证。这些站点独立于CRU和WorldClim的数据源,验证结果支持了数据的可信度。
该数据集发表于国际顶级数据期刊 Earth System Science Data(ESSD,影响因子>11),经过严格的数据同行评审。
3. 技术规格详解
3.1 关于存储单位
数据以 0.1mm 为单位、int16 类型存储,这是为了压缩文件大小。读取后需乘以 0.1 转换为 mm:
# nc 存储值 → 实际降水量(mm)
precip_mm = nc_value * 0.1
int16 最大值 32767 × 0.1 = 3276.7mm/月,足以覆盖中国所有区域的月降水极值。
3.2 关于时间维度
每个 nc 文件包含12个时间步(对应一年的12个月)。使用 xarray 的 open_mfdataset 可将多个年份的 nc 文件合并为一个连续时间序列。
4. 数据使用方法
4.1 Python 读取
import xarray as xr
import numpy as np
# 读取单个年份
ds = xr.open_dataset('pre_2000.nc')
# 查看数据结构
print(ds)
# 应包含维度: lon, lat, time
# 变量: pre (int16)
# 单位换算: 0.1mm → mm
precip = ds['pre'] * 0.1
# 查看时间维度
print(f"时间范围: {ds.time.values[0]} ~ {ds.time.values[-1]}")
# 提取特定月份
july = precip.sel(time='2000-07')
print(f"7月降水范围: {float(july.min()):.1f} ~ {float(july.max()):.1f} mm")
# 计算年降水总量
annual_total = precip.sum(dim='time')
print(f"年降水总量: {float(annual_total.min()):.0f} ~ {float(annual_total.max()):.0f} mm")
ds.close()
4.2 批量合并多年数据
import xarray as xr
import glob
# 合并1976-2025全部nc文件
files = sorted(glob.glob('pre_*.nc'))
ds_all = xr.open_mfdataset(files, combine='by_coords')
# 50年时间序列
precip_all = ds_all['pre'] * 0.1
# 计算全国年均降水量的年际变化趋势
national_mean = precip_all.mean(dim=['lat', 'lon'])
annual_series = national_mean.resample(time='YS').sum()
print("全国年均降水量序列:")
for year, val in zip(annual_series.time.dt.year.values, annual_series.values):
print(f" {year}: {val:.0f} mm")
ds_all.close()
4.3 按区域裁切
import xarray as xr
ds = xr.open_dataset('pre_2000.nc')
precip = ds['pre'] * 0.1
# 方式一:经纬度矩形裁切(长江流域 90-122°E, 25-35°N)
yangtze = precip.sel(
lon=slice(90, 122),
lat=slice(35, 25) # 注意纬度方向(可能降序)
)
# 方式二:按矢量边界裁切(需 rioxarray + geopandas)
import rioxarray
import geopandas as gpd
precip.rio.write_crs("EPSG:4326", inplace=True)
shp = gpd.read_file('study_area.shp')
clipped = precip.rio.clip(shp.geometry, shp.crs)
ds.close()
4.4 导出为 GeoTIFF
import xarray as xr
import rioxarray
ds = xr.open_dataset('pre_2000.nc')
precip = ds['pre'].sel(time='2000-07') * 0.1
precip.rio.write_crs("EPSG:4326", inplace=True)
precip.rio.to_raster('precip_2000_07.tif')
print("导出完成: precip_2000_07.tif")
ds.close()
4.5 Matlab 读取
% 读取nc数据
data = ncread('pre_2000.nc', 'pre');
% 转为实际降水量(mm)
precip = double(data) * 0.1;
% 提取1月
january = precip(:, :, 1);
% 绘制空间分布
imagesc(january);
colorbar;
title('2000年1月降水量 (mm)');
xlabel('经度'); ylabel('纬度');
4.6 ArcMap 制图
ArcToolbox → 多维工具 → 创建 NetCDF 栅格图层(Make NetCDF Raster Layer)
输入 nc 文件,变量选择
pre行/列维度对应 lat/lon
加载后通过时间维度切换不同月份
可配色后导出为标准栅格格式
5. 横向对比:常见降水数据集选型
选型建议:
省/市/流域尺度气候分析 → 本数据集(1km分辨率优势明显)
需要小时级降水过程 → ERA5
需要日尺度极端降水 → CN05.1 或 ERA5
需要全球对比分析 → CRU TS 或 GPCP
6. 使用注意事项
6.1 引用要求
使用数据产生的成果(论文、报告等)必须引用:
Peng Shouzhang, Ding Yongxia, Liu Wenzhao, Li Zhi. 1 km monthly temperature and precipitation dataset for China from 1901 to 2017. Earth System Science Data, 2019, 11, 1931–1946. https://doi.org/10.5194/essd-11-1931-2019
数据来源标注:国家地球系统科学数据中心-黄土高原分中心 (http://loess.geodata.cn)
6.2 非商业用途
数据原始来源声明仅限用于非商业目的的科学研究与学术交流。商业使用建议联系数据提供方确认许可。
6.3 月尺度限制
本数据为月尺度降水数据,无法反映日尺度或次日尺度的极端降水过程。进行洪水模拟、暴雨灾害分析等需要高时间分辨率数据时,不能直接使用本数据集,需选择ERA5、CN05.1等日/小时级产品。
6.4 降尺度方法局限
Delta降尺度假设气候要素的空间格局在时间上稳定。对于地形复杂区域(如横断山区、青藏高原边缘),局地气候效应可能随时间变化,降尺度结果存在一定不确定性。建议结合站点实测数据交叉验证。
6.5 空间范围
数据覆盖中国主要陆地(含港澳台地区),不含南海岛礁。边界外为 NoData。
7. 常见问题
Q1: 数据是实测的还是模型生成的?
基于 CRU 和 WorldClim 两个权威数据集通过 Delta 降尺度方法生成,属于降尺度产品。已用496个独立站点验证,结果可信。
Q2: 原始数据覆盖1901年至今,为什么只分享1976-2025年?
1976-2025年覆盖了近50年,满足绝大多数气候变化和水文研究的需求。更早的数据如有需要可从原始数据源(loess.geodata.cn)获取。
Q3: nc文件用什么软件打开?
Python(xarray/netCDF4)、Matlab(ncread)、ArcMap(Make NetCDF Raster Layer)、QGIS、Panoply 等均可打开。
Q4: int16存储有什么需要注意的?
读取后乘以0.1转为mm即可。int16最大32767,乘以0.1为3276.7mm/月,对中国所有区域都足够。
Q5: 和ERA5降水数据有什么区别?
ERA5是再分析数据(数据同化),时间分辨率高(小时级)但空间分辨率低(~31km)。本数据是降尺度产品,空间分辨率高(1km)但时间精度为月尺度。做空间精细分析用本数据,做时间过程分析用ERA5。
参考文献
Peng S, Ding Y, Liu W, Li Z. 1 km monthly temperature and precipitation dataset for China from 1901 to 2017. Earth System Science Data, 2019, 11, 1931–1946. https://doi.org/10.5194/essd-11-1931-2019
Harris I, Osborn T J, Jones P, Lister D. Version 4 of the CRU TS monthly high-resolution gridded multivariate climate dataset. Scientific Data, 2020, 7, 109.
Fick S E, Hijmans R J. WorldClim 2: new 1-km spatial resolution climate surfaces for global land areas. International Journal of Climatology, 2017, 37(12), 4302-4315.
CRU TS 数据:https://crudata.uea.ac.uk/cru/data/hrg/
WorldClim 数据:http://www.worldclim.org/
国家地球系统科学数据中心-黄土高原分中心:http://loess.geodata.cn
YouGIS 数据助手:https://yougis.com.cn/res/home
数据来源:国家地球系统科学数据中心-黄土高原分中心 | 整理分享:YouGIS顽石


评论区