Python读取NC格式数据绘制风场和涡度图


在这里插入图片描述

一、知识点

读取NC格式在分析资料里面需要的数据,画填色图风羽图

小知识点:
1.数据的读取
2.数据的清洗
3.风羽图的设置

二、代码拆分

导入包

#处理数据的包
import xarray as xr
import numpy as np
#画图的包
import matplotlib.pyplot as plt
#地图的包
import cartopy.crs as ccrs
import my_class   #一个自己写的画地图的py文件

读取数据

#打开nc文件
ds = xr.open_dataset('download_201305.nc')
# print(ds)
#获取经度,纬度,时间,时间的作用下面讲
lat = ds.latitude#读取维度
lon = ds.longitude#读取经度
u = ds['u']#风场U分量
v = ds['v']#风场V分量
vo = ds['vo']#涡度

注意:这里读取的数据是全部的格点数据,但是我们画图用不了这么多,所以对数据做分割。只需要一部分

数据分割

#设置经纬度范围,我们并不需要画出多余的数据
lat_range = lat[(lat>=22) & (lat<=40)]
lon_range = lon[(lon>=102) & (lon<=126)]
#根据时间,经纬度得到数据,U,V,涡度
u_region = u.sel(longitude=lon_range, latitude=lat_range,time = '2013-06-27T00:00:00.000000000')
v_region = v.sel(longitude=lon_range, latitude=lat_range,time = '2013-06-27T00:00:00.000000000')
vo_region = vo.sel(longitude=lon_range, latitude=lat_range,time = '2013-06-27T00:00:00.000000000')
#涡度乘以100000,因为是10的负5次方,方便呈现效果
vo_region = vo_region*100000

这里涡度乘以了100000,是为了方便观察,让数据绘制出来的效果更好。

数据处理

#下面是数据的简单清洗,本来没有这个,直接填色,发现有很多负值,画图太难看了
#设置条件,找到涡度大于等于2的位置
e = (vo_region >= 2)
#利用np包,把所有不满足条件的位置改写成0
vo_region = np.where(e,vo_region,0)

把涡度小于2的全部置零,这样在填色的时候小于2的地方就白了。

画图设置

#设置画布15*7
fig = plt.figure(figsize=(15,
要使用Python读取nc文件并进行画,你可以使用xarray库来处理数据,matplotlib库来进行绘,以及cartopy库来绘制。首先,你需要导入这些库: ```python import xarray as xr import matplotlib.pyplot as plt import cartopy.crs as ccrs ``` 然后,你可以使用xarray的open_dataset函数打开nc文件,并获取需要的变量: ```python ds = xr.open_dataset('your_nc_file.nc') lat = ds.latitude lon = ds.longitude u = ds\['u'\] v = ds\['v'\] ``` 接下来,你可以使用matplotlib库来绘制风场。你可以使用quiver函数来绘制矢量,其中uv分别表示风场的U分量V分量: ```python plt.quiver(lon, lat, u, v) plt.show() ``` 如果你还需要绘制,你可以使用cartopy库来设置地投影边界: ```python fig = plt.figure(figsize=(10, 6)) ax = plt.axes(projection=ccrs.PlateCarree()) ax.coastlines() ax.quiver(lon, lat, u, v, transform=ccrs.PlateCarree()) plt.show() ``` 这样,你就可以使用Python读取nc文件并进行画了。希望对你有帮助! #### 引用[.reference_title] - *1* *3* [保姆级教程:python读取绘制nc数据](https://blog.csdn.net/A18040554844/article/details/127654490)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Python读取NC格式数据绘制风场](https://blog.csdn.net/weixin_42372313/article/details/125527281)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野生的气象小流星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值