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

如何从逐日降水NetCDF文件提取指定经纬度范围月均值并输出新文件

处理方案

方法1:CDO命令行实现(无代码,效率最高)

直接在终端执行单条命令即可完成所有需求:
cdo monmean -sellonlatbox,-118.25,-84.75,13.25,33.25 input_precip.nc output_monthly_precip.nc
参数说明:

  • -sellonlatbox为区域裁剪算子,四个参数按顺序对应西经度边界、东经度边界、南纬度边界、北纬度边界,完全匹配你需要的提取范围
  • monmean为月平均计算算子,会自动识别时间维度的自然月份分组,逐网格计算月平均值,输出文件默认保留(lon,lat,time)的维度顺序,符合要求
    如果原始文件时间维度无法被正确识别,可在命令最前面增加-setcalendar,standard参数校准时间配置。

方法2:Python xarray实现(灵活度高,适合后续自定义处理)

依赖安装

执行命令安装所需库:
pip install xarray netcdf4

处理代码

import xarray as xr

# 读取原始逐日降水NetCDF文件
ds = xr.open_dataset("your_daily_precip.nc")

# 提取指定经纬度范围的子区域
# 若你的数据纬度为降序存储,将slice参数改为(33.25,13.25)即可
ds_region = ds.sel(
    lon=slice(-118.25, -84.75),
    lat=slice(13.25, 33.25)
)

# 按自然月重采样计算月平均,输出保留(lon,lat,time)维度
ds_monthly = ds_region.resample(time="1ME").mean()

# 导出结果为NetCDF文件
ds_monthly.to_netcdf("monthly_precip_output.nc")

逻辑说明

  • sel方法直接按照经纬度坐标值切片,不需要手动找索引位置
  • resample(time="1ME")自动按日历月分组处理,不会混淆不同年份的相同月份,输出的time维度对应每个月的月末时间戳,维度结构和原始数据保持一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:48:01