免费|中国1km分辨率逐月降水量数据集(1976-2025,50年600期):附Python/Matlab读取代码

免费|中国1km分辨率逐月降水量数据集(1976-2025,50年600期):附Python/Matlab读取代码

摘要:基于CRU全球0.5°气候数据集与WorldClim高分辨率气候数据集,通过Delta空间降尺度方案生成的中国区域1km分辨率逐月降水量数据。时间跨度1976-2025年共50年600期,NetCDF格式,已用496个独立气象站点验证。本文介绍数据背景、技术规格、使用方法与完整获取方式(50年逐年关键词)。

关键词:中国降水量、1km分辨率、逐月降水、Delta降尺度、NetCDF、彭守璋、CRU、WorldClim、气候数据

标签GIS 遥感 气候数据 NetCDF 空间数据库 降水


一、数据获取

两种方式任选其一:

方式一:公众号关键词(推荐)

关注 YouGIS顽石 ,发送关键词:

复制代码
逐月降雨量-年份 → 该年全年12期降水量nc数据

示例:

复制代码
逐月降雨量-2000   → pre_2000.rar(2000年1-12月,1个nc文件)
逐月降雨量-1998   → pre_1998.rar(1998年1-12月,1个nc文件)
逐月降雨量-2025   → pre_2025.rar(2025年1-12月,1个nc文件)

获取下载链接。

方式二:YouGIS 数据助手

平台 入口
微信小程序 搜索「YouGIS数据助手」
PC 端 https://yougis.com.cn/res/home

支持在线查看数据元信息(分辨率、坐标系、覆盖范围),适合批量检索多个数据集。

50年关键词完整清单(1976-2025)

年份 关键词 年份 关键词 年份 关键词
1976 逐月降雨量-1976 1993 逐月降雨量-1993 2010 逐月降雨量-2010
1977 逐月降雨量-1977 1994 逐月降雨量-1994 2011 逐月降雨量-2011
1978 逐月降雨量-1978 1995 逐月降雨量-1995 2012 逐月降雨量-2012
1979 逐月降雨量-1979 1996 逐月降雨量-1996 2013 逐月降雨量-2013
1980 逐月降雨量-1980 1997 逐月降雨量-1997 2014 逐月降雨量-2014
1981 逐月降雨量-1981 1998 逐月降雨量-1998 2015 逐月降雨量-2015
1982 逐月降雨量-1982 1999 逐月降雨量-1999 2016 逐月降雨量-2016
1983 逐月降雨量-1983 2000 逐月降雨量-2000 2017 逐月降雨量-2017
1984 逐月降雨量-1984 2001 逐月降雨量-2001 2018 逐月降雨量-2018
1985 逐月降雨量-1985 2002 逐月降雨量-2002 2019 逐月降雨量-2019
1986 逐月降雨量-1986 2003 逐月降雨量-2003 2020 逐月降雨量-2020
1987 逐月降雨量-1987 2004 逐月降雨量-2004 2021 逐月降雨量-2021
1988 逐月降雨量-1988 2005 逐月降雨量-2005 2022 逐月降雨量-2022
1989 逐月降雨量-1989 2006 逐月降雨量-2006 2023 逐月降雨量-2023
1990 逐月降雨量-1990 2007 逐月降雨量-2007 2024 逐月降雨量-2024
1991 逐月降雨量-1991 2008 逐月降雨量-2008 2025 逐月降雨量-2025
1992 逐月降雨量-1992 2009 逐月降雨量-2009

每个关键词对应一个压缩包(约160MB),内含1个nc文件(该年12个月数据)。


二、数据背景

参数 说明
数据源 CRU 全球0.5°气候数据集 + WorldClim 高分辨率气候数据集
降尺度方法 Delta 空间降尺度方案
数据作者 彭守璋 研究员(西北农林科技大学水土保持研究所)
验证方法 496个独立气象观测站点验证
发表期刊 Earth System Science Data(ESSD),2019
数据来源 国家地球系统科学数据中心-黄土高原分中心
整理分享 微信公众号 YouGIS顽石

2.1 数据怎么来的

该数据集并非直接观测数据,而是通过以下流程生成:

复制代码
CRU全球0.5°逐月气候数据(1901-至今)
         +
WorldClim全球高分辨率气候数据(~1km)
         ↓
   Delta 空间降尺度方案
         ↓
 中国区域 1km 逐月降水/气温栅格数据

Delta降尺度的核心思路:利用WorldClim提供的空间高分辨率气候常态(climatology)作为空间细节"模板",将CRU的低分辨率逐月时间变化(距平)降尺度到1km网格上。这种方法保留了CRU的时序变化特征和WorldClim的空间细节,生成既有时间连续性又有空间精度的数据产品。

2.2 数据质量

使用 496个独立气象观测站点 的实测数据对降尺度结果进行了验证,验证结果表明数据可信。该数据集发表于国际顶级数据期刊 Earth System Science Data(影响因子>11),是目前中国区域最权威的高分辨率长时序气候栅格数据之一。

2.3 原始数据出处


三、数据技术规格

参数 说明
数据格式 NetCDF(.nc)
空间分辨率 0.0083333°(约1km)
时间范围 1976年1月 ~ 2025年12月
时间分辨率 逐月(每月一期)
总期数 600期(50年 × 12个月)
数据类型 int16(16位有符号整型)
降水量单位 0.1mm(实际降水量 = 存储值 × 0.1)
空间范围 中国主要陆地(含港澳台),不含南海岛礁
坐标系 WGS84
每年数据量 约160MB(1个nc文件,含12个月)

四、数据使用方法

4.1 ArcMap 制图

ArcMap 可直接打开 NetCDF 文件制图:

  1. 菜单 → 多维工具 → 创建 NetCDF 栅格图层(Make NetCDF Raster Layer)
  2. 选择 .nc 文件,变量选 pre
  3. 加载后可通过时间维度切换不同月份

4.2 Python 读取与处理

python 复制代码
import xarray as xr
import numpy as np
import matplotlib.pyplot as plt

# 读取nc文件
ds = xr.open_dataset('pre_2000.nc')

# 查看数据结构
print(ds)  # 打印变量、维度、属性

# 降水量 = 存储值 × 0.1(单位mm)
precip = ds['pre'] * 0.1

# 查看时间维度
print(f"时间范围: {ds.time.values[0]} ~ {ds.time.values[-1]}")

# 提取某月数据(如2000年7月)
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")

# 快速可视化
fig, axes = plt.subplots(1, 2, figsize=(16, 6))

# 7月降水量
july.plot(ax=axes[0], cmap='YlGnBu', cbar_kwargs={'label': 'mm'})
axes[0].set_title('2000年7月降水量')

# 年降水总量
annual_total.plot(ax=axes[1], cmap='YlGnBu', cbar_kwargs={'label': 'mm'})
axes[1].set_title('2000年降水总量')

plt.tight_layout()
plt.savefig('precipitation_2000.png', dpi=200, bbox_inches='tight')
plt.show()

ds.close()

4.3 批量读取多年数据

python 复制代码
import xarray as xr
import glob

# 合并多年nc文件
files = sorted(glob.glob('pre_*.nc'))
ds_all = xr.open_mfdataset(files, combine='by_coords')

# 计算某区域(经纬度范围)的年均降水量时间序列
# 以北京周边为例(115.5-117.5°E, 39.5-41.5°N)
bj_precip = ds_all['pre'].sel(
    lon=slice(115.5, 117.5),
    lat=slice(41.5, 39.5)  # 注意纬度可能降序
) * 0.1

# 年降水总量时间序列
annual = bj_precip.resample(time='YS').sum().mean(dim=['lon', 'lat'])
print(f"北京周边年均降水量趋势:")
for t, v in zip(annual.time.values, annual.values):
    print(f"  {str(t)[:4]}年: {v:.0f} mm")

ds_all.close()

4.4 Matlab 读取

Matlab 提供了 ncread 函数读取 nc 文件:

matlab 复制代码
% 读取nc数据(变量名:pre)
data = ncread('pre_2000.nc', 'pre');

% 实际降水量(mm) = 存储值 × 0.1
precip = double(data) * 0.1;

% 提取特定月份(nc中第三个维度为时间)
january = precip(:, :, 1);  % 第1期(1月)

% 绘制空间分布
imagesc(january);
colorbar;
title('2000年1月降水量 (mm)');

4.5 导出为 GeoTIFF(供QGIS/其他软件使用)

python 复制代码
import xarray as xr
import rioxarray  # 需安装:pip install rioxarray

# 读取并导出为GeoTIFF
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("已导出为 GeoTIFF: precip_2000_07.tif")
ds.close()

五、使用注意事项

1. 单位换算(重要)

NetCDF 文件中降水量的存储单位为 0.1mm,实际降水量需要乘以 0.1:

python 复制代码
# 错误:直接使用存储值
precip_raw = ds['pre']           # 单位 0.1mm

# 正确:乘以 0.1 转换为 mm
precip_mm = ds['pre'] * 0.1     # 单位 mm

2. 数据类型

数据以 int16(16位有符号整型)存储,范围 -32768~32767。乘以 0.1 后最大可表示约 3276.7mm/月,足以覆盖中国所有区域的月降水极值。

3. 空间范围

数据覆盖中国主要陆地部分(含港澳台地区),不含南海岛礁等区域。边界外为 NoData。

4. 引用要求

使用数据产生的成果需引用以下文献:

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)

5. 适用尺度

1km 分辨率适合省/流域/全国尺度的气候分析、水文模拟、生态评估。对于站点尺度的极端降水事件,建议结合站点实测数据使用。


六、常见问题

Q1: 数据是实测的还是模拟的?

数据基于 CRU 和 WorldClim 两个权威数据集通过 Delta 降尺度方法生成,属于再分析/降尺度产品,非直接观测数据。但已用496个独立气象站点验证,结果可信。

Q2: 为什么是1976-2025年?原始数据覆盖1901年至今。

完整数据集时间范围为1901年至今。本文分享的1976-2025年段覆盖了近50年,满足绝大多数气候变化和水文研究的需求。如需更早数据可从原始数据源获取。

Q3: nc文件怎么打开?

ArcMap(Make NetCDF Raster Layer)、QGIS、Python(xarray/netCDF4)、Matlab(ncread)、Panoply 等均可打开。

Q4: 能用Python按区域裁切吗?

可以。用 xarray 的 .sel(lon=slice(...), lat=slice(...)) 即可按经纬度裁切,也可用 rioxarray 的 .rio.clip() 按矢量边界裁切。

Q5: 降尺度方法和ERA5有什么区别?

ERA5是再分析数据(数据同化),本数据是降尺度产品(统计降尺度)。本数据的空间分辨率更高(1km vs ERA5的~31km),但时间精度为月尺度(ERA5为小时尺度)。两者各有适用场景。

Q6: 商业使用是否合规?

数据原始来源标注仅限非商业目的的科学研究与学术交流。商用建议联系原始数据提供方确认许可。


参考文献

  1. 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
  2. CRU TS 高分辨率网格气候数据集:https://crudata.uea.ac.uk/cru/data/hrg/
  3. WorldClim 全球气候数据:http://www.worldclim.org/
  4. 国家地球系统科学数据中心-黄土高原分中心:http://loess.geodata.cn
  5. YouGIS 数据助手:https://yougis.com.cn/res/home

觉得有用就点赞收藏。有问题评论区交流,看到都会回 👊

相关推荐
GISBox19 小时前
告别逐点手动改属性:矢量组件批量编辑全流程
gis·矢量数据·属性表·服务发布·shp·gisbox·批量编辑
新中地GIS开发老师20 小时前
地信职业百科④:GIS开发工程师
前端·数据库·gis·webgis·三维gis开发
两点王爷2 天前
一个快速加载面和多面数据的html测试页面(可以导出geojson数据文件)
前端·html·gis
YouGIS顽石工坊2 天前
Python GDAL实战:ASTER GDEM V003全国DEM高程数据处理(1123幅分幅合并→34省裁切,30m精度)
gis·遥感·dem·数据处理·空间数据库·数字高程模型·aster gdem
jinshw3 天前
自己实现GIS配图软件(一)
rust·开源·gis
zhz52146 天前
GIS项目中空间参考转换与MBTiles偏移:问题成因、解法与避坑
python·vue·gis
xiao5kou4chang6kai47 天前
GIS数据制备,空间分析与高级建模
arcgis·gis·空间数据
三维地图技术社区7 天前
GPS/北斗多设备实时定位接入系统架构设计与实践:人员+无人机+RID雷达+AIS船舶一图统览
gis·无人机·三维地图·北斗定位·实时定位
WebGIS开发8 天前
WebGIS开发进阶教程①:WebGL坐标系
gis·webgl·gis开发