You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改ERA5-Land地形数据并导入Google Earth Engine匹配规格?

解决GEE中ERA5-Land与ECMWF位势高度数据的对齐问题

核心差异在于经度范围与像素数量:GEE中的ERA5-Land采用0°到360°(含360°)的经度范围,间隔0.1°,对应3601个经度像素;而你手上的NetCDF文件是0°到359.9°,仅3600个经度像素,缺少了360°位置的像素。以下是两种可行的对齐方案:

方案一:本地预处理NetCDF文件(推荐)

提前修正网格后再上传到GEE,能避免云端处理的性能损耗,推荐用CDO工具或Python xarray实现:

用CDO工具快速修正网格

  1. 新建一个ERA5-Land网格定义文件era5_land_grid.txt,内容如下:
gridtype  = lonlat
xsize     = 3601
ysize     = 1801
xfirst    = 0.0
xinc      = 0.1
yfirst    = 90.0
yinc      = -0.1
  1. 执行CDO命令重采样:
cdo setgrid,era5_land_grid.txt your_input_file.nc aligned_height.nc

用Python xarray手动补全像素

如果熟悉Python,也可以手动添加360°经度的像素(利用全球数据的周期性,直接复用0°的数值):

import xarray as xr
import numpy as np

# 读取原始NetCDF文件
ds = xr.open_dataset('your_potential_height.nc')
# 添加360°经度坐标
ds = ds.assign_coords(lon=np.append(ds.lon.values, 360.0))
# 复制0°位置的位势高度数据到360°
ds['z'] = xr.concat([ds['z'], ds['z'].isel(lon=0)], dim='lon')
# 保存对齐后的文件
ds.to_netcdf('aligned_potential_height.nc')

方案二:GEE代码编辑器中直接处理已上传资产

如果已经上传了原始NetCDF到GEE资产库,可以通过重投影补全缺失像素:

// 加载你上传的位势高度资产
var rawHeight = ee.Image('users/你的用户名/原始位势高度资产');

// 获取ERA5-Land的原生投影参数
var era5Proj = ee.ImageCollection("ECMWF/ERA5_LAND/HOURLY").first().projection();

// 重投影并补全缺失的360°像素,用最邻近插值保证周期性连续性
var alignedHeight = rawHeight.reproject({
  crs: era5Proj,
  scale: era5Proj.nominalScale(),
  resample: 'nearest'
});

// 可选:将位势高度转换为几何高程(位势米转几何米)
var elevation = alignedHeight.divide(9.80665).rename('elevation');

// 验证对齐结果
print('ERA5-Land投影参数:', era5Proj);
print('对齐后高程的尺寸:', elevation.getInfo().bands[0].dimensions);

关键注意事项

  • 位势高度转高程:ECMWF提供的位势高度单位是位势米,需除以9.80665转换为几何高程(真实海拔),这一步不可省略。
  • 插值方式:因为是全球周期性数据,优先选择nearest(最邻近插值),避免线性插值带来的边缘误差。

内容的提问来源于stack exchange,提问作者Shaun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 22:35:15