当前位置: 首页 > backend >正文

python绘制全球ERA5再分析数据10m风速产品

python绘制全球ERA5再分析数据10m风速产品

水平风速的计算

# 计算风速
wind_speed = np.sqrt(u**2 + v**2)
# u和v分别是经向风和维向风矢量
需要提供的数据是10米的U和V数据,
可以在官网下载的时候下载到同一个nc/grib文件。

数据样例

数据本身具备格点数据性质即可,目前采用的ERA5数据,
但是包括EC、GFS、MESO、WSP等多种数值模式预报、
或者实况格网、智能预报产品都可以绘制风速和风向,
根据实际情况采取对应的策略。

数据使用如下
在这里插入图片描述

绘制代码

ds = xr.open_dataset(filePath, engine='cfgrib')
def draw_wd10m(ds, element, base_out_path):time = ds['time'].valueslon = ds['longitude'].valueslat = ds['latitude'].valuesdata_u = ds['u10']data_v = ds['v10']# 获取颜色和等级配置colors = color_ERA5[element]['colors']levels = color_ERA5[element]['levels']# 加载全球国界线的 Shapefile 数据world_borders = gpd.read_file(r'world\World_countries.shp')# 遍历每个时间步for idx, t in enumerate(time):# 提取当前时刻的数据切片datau = data_u.isel(time=idx).values  # 使用索引选择,或 data.sel(time=t) 根据实际时间值选择datav = data_v.isel(time=idx).valueswindspeed = np.sqrt(datau**2 + datav**2)output_dir, time_str = create_path(t, base_out_path, element)cmap = ListedColormap(colors)# cmap.set_under('none')  norm = BoundaryNorm(levels, cmap.N)lon_grid, lat_grid = np.meshgrid(lon, lat)# 创建图形plt.figure(figsize=(16, 8), facecolor='none')# 绘制数据plt.contourf(lon_grid, lat_grid, windspeed, levels=levels, cmap=cmap, norm=norm, extend='both')# 叠加全球国界线world_borders.plot(ax=plt.gca(), facecolor='none', edgecolor='black', linewidth=0.5)# 设置地图范围plt.xlim([np.min(lon), np.max(lon)])plt.ylim([np.min(lat), np.max(lat)])plt.axis('off')# 保存图像output_path = os.path.join(output_dir, f"{time_str}.png")plt.savefig(output_path, dpi=600, bbox_inches='tight', pad_inches=0, transparent=True)plt.close()

10米风速产品绘制样例【单位m/s】

在这里插入图片描述
备注:叠加到地球范围经度【-180~180】维度范围【-90 ~ 90】

http://www.xdnf.cn/news/3435.html

相关文章:

  • Python 装饰器基础知识科普
  • 置换密码程序设计
  • GitHub 趋势日报 (2025年04月30日)
  • 算法-二分查找
  • archlinux wine 运行windows程序
  • css中盒模型有哪些
  • 前端八股 7
  • 如何让Steam下载速度解除封印?!
  • 渗透测试中的那些“水洞”:分析与防御
  • 【Game】Powerful——Abandoned Ruins(9)
  • node.js模块化步骤(各标准区别)CommonJS规范、AMD规范、UMD规范、ES Modules (ESM)
  • qemu(4) -- qemu-system-arm使用
  • 三生原理的离散生成逻辑如何与复分析结合?
  • 2025大模型微调视频课程全套(附下载)
  • WPF之Image控件详解
  • Sentry 异常捕获
  • 第 2.3 节: 基于 Python 的关节空间与任务空间控制
  • AUTOSAR图解==>AUTOSAR_RS_TimingExtensions
  • Rerank详解
  • C++初阶-string类3
  • 补题 (Multiples of 5)
  • PostgreSQL运算符
  • 【JSON vs Python字典】核心区别与互操作指南
  • RPG_5.角色动画
  • C语言-函数的递归和迭代
  • Spring Boot 使用 WebMagic 爬虫框架入门
  • 腾讯云BI VS quickbi 企业选型(从企业实际功能使用和费用对比)
  • 在项目中如何对Map List等对象序列化及反序列化
  • 雅马哈SMT贴片机高效精密制造解析
  • 【数据结构】线性表--顺序表