Python处理气象NetCDF数据:读取、裁剪、统计与可视化
一、前言做气象、海洋、能源研究的同学几乎每天都要和NetCDF.nc格式打交道。这种格式虽然跨平台、自带元数据但对新手来说用Python读取、裁剪、计算区域平均、画图每一步都可能踩坑。本文基于公开的ERA5示例数据可从Copernicus Climate Data Store免费获取完整演示用xarray打开并查看数据结构按经纬度范围裁剪计算区域如某省的逐月平均绘制等值线填色图并叠加地图底图使用cartopy全程不使用任何商业平台所有代码开源可复现。二、环境准备推荐使用conda创建专用环境bashconda create -n meteo python3.10 conda activate meteo conda install xarray netcdf4 matplotlib cartopy -c conda-forge pip install rioxarray # 可选用于地理裁剪三、数据准备本文使用ERA5 2022年全球月平均地表气温2m temperature数据文件名为t2m_2022.nc大小约180MB。您可以从 CDS官网 下载或使用我提供的示例片段见文末链接。如果手头没有真实数据可用下面的代码生成模拟NetCDF用于测试但建议使用真实数据练习pythonimport xarray as xr import numpy as np # 生成伪数据仅用于测试实际请替换为真实文件 lon np.linspace(70, 140, 141) lat np.linspace(15, 55, 81) time pd.date_range(2022-01-01, 2022-12-01, freqMS) data np.random.rand(len(time), len(lat), len(lon)) * 20 280 ds xr.Dataset({t2m: ([time,lat,lon], data)}, coords{time:time,lat:lat,lon:lon}) ds.to_netcdf(test.nc)四、核心代码与讲解4.1 读取文件并查看结构pythonimport xarray as xr ds xr.open_dataset(t2m_2022.nc) print(ds)输出类似textxarray.Dataset Dimensions: (time: 12, latitude: 721, longitude: 1440) Coordinates: * time (time) datetime64[ns] 2022-01-01 ... 2022-12-01 * latitude (latitude) float32 90.0 ... -90.0 * longitude (longitude) float32 0.0 ... 359.75 Data variables: t2m (time, latitude, longitude) float32 ... Attributes: ...注意ERA5的经纬度坐标名为latitude/longitude有时为lat/lon。先确认坐标名称。4.2 选择中国区域经度70~140°E纬度15~55°Npython# 方法一使用sel结合slice推荐 ds_china ds.sel(latitudeslice(55, 15), longitudeslice(70, 140)) # 注意latitude要降序从北到南因为ERA5的纬度从90到-90 # 如果您的数据纬度是升序则使用 slice(15,55)若经纬度名为lat/lon则对应修改。4.3 计算区域平均空间平均python# 对空间维度求平均得到每个月的区域平均温度 t2m_region_mean ds_china[t2m].mean(dim[latitude, longitude]) print(t2m_region_mean.values) # 一维数组长度12扩展如果想用面积加权平均因为网格面积随纬度变化可参考pythonweights np.cos(np.deg2rad(ds_china.latitude)) t2m_weighted ds_china[t2m].weighted(weights).mean(dim[latitude,longitude])4.4 将开尔文转为摄氏度pythont2m_c ds_china[t2m] - 273.154.5 绘制某个月份的空间分布图以2022年7月为例pythonimport matplotlib.pyplot as plt import cartopy.crs as ccrs import cartopy.feature as cfeature fig plt.figure(figsize(10, 8)) ax plt.axes(projectionccrs.PlateCarree()) # 提取7月数据索引为6 data_jul t2m_c.isel(time6) # 绘制等值线填色图 im ax.contourf(ds_china.longitude, ds_china.latitude, data_jul, levels20, cmapRdBu_r, transformccrs.PlateCarree()) # 添加地理要素 ax.add_feature(cfeature.COASTLINE, linewidth0.8) ax.add_feature(cfeature.BORDERS, linestyle:, linewidth0.5) ax.add_feature(cfeature.OCEAN, colorlightblue, alpha0.3) # 添加色标 plt.colorbar(im, axax, orientationhorizontal, pad0.05, label°C) # 设置标题和范围 ax.set_extent([70, 140, 15, 55], crsccrs.PlateCarree()) ax.set_title(2022年7月中国区域2m气温分布, fontsize14) plt.show()4.6 输出时间序列折线图pythonplt.figure(figsize(9,5)) plt.plot(t2m_region_mean.time, t2m_region_mean - 273.15, markero) plt.xlabel(时间) plt.ylabel(区域平均气温 (°C)) plt.title(2022年中国区域月平均气温变化) plt.grid(alpha0.3) plt.xticks(rotation45) plt.tight_layout() plt.show()五、常见问题与避坑问题解决方法打开文件报OSError: NetCDF: Unknown file format检查文件是否完整或使用enginenetcdf4参数坐标名称不是latitude/longitude先用ds.coords查看然后用rename({lat:latitude})修改裁剪后维度顺序混乱使用transpose(time,latitude,longitude)重排地图边界缺失安装naturalearth_lowres数据conda install -c conda-forge naturalearth内存不足使用xr.open_dataset(..., chunks{})结合 Dask 分块处理六、完整脚本汇总我已将上述代码整理成一个.py文件可一次运行生成两幅图。您可以在我的Gist中获取[链接占位]七、延伸思考批量处理多年数据可使用xr.open_mfdataset(t2m_*.nc)并行读取。提取单站点时间序列使用ds.sel(latitude30, longitude120, methodnearest)。保存处理后的结果ds_china.to_netcdf(t2m_china_2022.nc)。八、结语以上是气象数据处理中最基础也最频繁的操作。对于不熟悉编程或希望直接获取处理结果的研究者也可考虑使用羲和能源气象大数据平台。

相关新闻

《我的倒霉蛋宝贝》 泰剧|在线观看|奇幻|浪漫|Unlucky Bae

《我的倒霉蛋宝贝》 泰剧|在线观看|奇幻|浪漫|Unlucky Bae

《我的倒霉蛋宝贝》 泰剧|在线观看|奇幻|浪漫|Unlucky Bae资料可在线播放《我的倒霉蛋宝贝》https://tool.nineya.com/s/1jskahdln English Practice Fantasy Romance Edition 以《我的倒霉蛋宝贝》为主题的英语练习,边追剧边学英语。Part 1 Vocabulary Choose th…

2026/7/7 6:09:43 阅读更多 →
Stable Diffusion本地部署指南:免费无限量AI绘画实战

Stable Diffusion本地部署指南:免费无限量AI绘画实战

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 最近在AI绘画领域,不少开发者都遇到了同样的问题:云端AI绘画工具要么收费昂贵,要么生成次数有限制…

2026/7/7 6:09:43 阅读更多 →
YimMenu技术架构深度解析:从游戏逆向工程到现代C++菜单设计

YimMenu技术架构深度解析:从游戏逆向工程到现代C++菜单设计

YimMenu技术架构深度解析:从游戏逆向工程到现代C菜单设计 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/Y…

2026/7/7 6:07:42 阅读更多 →

最新新闻

QQ音乐解析技术深度解析:逆向工程与API架构设计

QQ音乐解析技术深度解析:逆向工程与API架构设计

QQ音乐解析技术深度解析:逆向工程与API架构设计 【免费下载链接】MCQTSS_QQMusic QQ音乐解析 项目地址: https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic 技术挑战与行业痛点 在数字音乐版权保护日益严格的今天,音乐平台API接口的封闭性给开发…

2026/7/7 6:55:51 阅读更多 →
06 Lottery Ticket Hypothesis 详解:稀疏子网络为何能中奖?

06 Lottery Ticket Hypothesis 详解:稀疏子网络为何能中奖?

一、论文基本信息 论文名称:The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks 作者:Jonathan Frankle, Michael Carbin 会议:ICLR 2019 论文链接:https://openreview.net/forum?idrJl-b3RcF7 arXiv 链…

2026/7/7 6:53:51 阅读更多 →
腾讯云TBDS面向AI时代的多模态智算平台,助力企业AI转型

腾讯云TBDS面向AI时代的多模态智算平台,助力企业AI转型

// TBDS 多模智算平台系列 //随着多模态大模型快速演进,企业在AI基础设施层面面临异构算力管理复杂、数据处理链路冗长、训练推理资源割裂浪费等核心挑战。腾讯云TBDS基于Ray构建多模态数据智算平台,支持GPU/CPU等异构资源统一调度,把多模数…

2026/7/7 6:53:51 阅读更多 →
2026年想挑正宗农家土榨花生油?这几个TOP技巧你掌握了吗?

2026年想挑正宗农家土榨花生油?这几个TOP技巧你掌握了吗?

中秋佳节将至,给员工选份贴心福利成了企业采购的头等大事。很多企业会考虑选花生油作为福利,但是现在市场上花生油品牌众多,想挑到正宗农家土榨花生油可不容易。今天我就以马山县周鹿镇蔡家花生油厂为例,跟大家好好聊聊挑选正宗农…

2026/7/7 6:53:51 阅读更多 →
Kali与Metasploit实战:Slowloris慢速攻击原理、复现与防御

Kali与Metasploit实战:Slowloris慢速攻击原理、复现与防御

1. 项目概述:为什么选择Slowloris作为入门实战?如果你刚接触网络安全,或者对渗透测试和攻击原理充满好奇,那么“Slowloris攻击”绝对是一个绝佳的起点。它不像那些需要复杂工具链和深厚背景知识的漏洞利用,Slowloris的…

2026/7/7 6:51:51 阅读更多 →
深度解析Resources Saver:现代网页资源捕获与结构化保存的技术架构

深度解析Resources Saver:现代网页资源捕获与结构化保存的技术架构

深度解析Resources Saver:现代网页资源捕获与结构化保存的技术架构 【免费下载链接】ResourcesSaverExt Chrome Extension for one click downloading all resources files and keeping folder structures. 项目地址: https://gitcode.com/gh_mirrors/re/Resource…

2026/7/7 6:49:50 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻