当前位置:首页>python>Python对风场进行显著性检验(文末免费包邮送书)

Python对风场进行显著性检验(文末免费包邮送书)

  • 2026-09-10 20:34:39
Python对风场进行显著性检验(文末免费包邮送书)

Python对风场进行显著性检验:

import xarray as xrimport numpy as npimport datetime as dtimport cartopy.crs as ccrsimport cartopy.feature as cfeatureimport cartopy.mpl.ticker as ctickerimport matplotlib.pyplot as pltfrom scipy.stats import linregressfrom cartopy.io.shapereader import Readerfrom matplotlib import rcParamsconfig = {"font.family":'Times New Roman',"font.size": 16,"mathtext.fontset":'stix'}rcParams.update(config)f_t = xr.open_dataset('./air.mon.mean.nc')# t_nea = np.array(f_t.air.loc[f_t.time.dt.month.isin([12,1,2])].loc['1979-12-01':'2020-03-01',850,50:30,110:130].mean('lat').mean('lon')).reshape(41,3).mean((1))t = np.array(f_t.air.loc[f_t.time.dt.month.isin([12,1,2])].loc['1979-12-01':'2020-03-01',850,50:30,110:130]).mean((1,2)).reshape(41,3).mean((1))f_u = xr.open_dataset('./uwnd.mon.mean.nc')u = np.array(f_u.uwnd.loc[f_u.time.dt.month.isin([12,1,2])].loc['1979-12-01':'2020-03-01',500]).reshape(41,3,73,144).mean((1))f_v = xr.open_dataset('./vwnd.mon.mean.nc')v = np.array(f_v.vwnd.loc[f_v.time.dt.month.isin([12,1,2])].loc['1979-12-01':'2020-03-01',500]).reshape(41,3,73,144).mean((1))lat = f_u.latlon = f_u.lonprint(t.shape,u.shape)su,pu = np.zeros((73,144)),np.zeros((73,144))sv,pv = np.zeros((73,144)),np.zeros((73,144))for i in range(len(lat)):for j in range(len(lon)):        su[i,j],_,_, pu[i,j],_  = linregress(t,u[:,i,j])        sv[i,j],_,_, pv[i,j],_  = linregress(t,v[:,i,j])fig = plt.figure(1, figsize=[16,12])proj=ccrs.PlateCarree()ax = plt.subplot(1, 1, 1, projection=ccrs.PlateCarree())extent = [0,180,0,90]leftlon, rightlon, lowerlat, upperlat = (0,180,0,90)img_extent = [leftlon, rightlon, lowerlat, upperlat]ax.set_extent(extent, crs=ccrs.PlateCarree())ax.stock_img()ax.add_feature(cfeature.COASTLINE.with_scale('50m'),linewidth=0.5,zorder=2,color='k')# 添加海岸线ax.add_feature(cfeature.LAKES.with_scale('50m'))ax.add_feature(cfeature.RIVERS.with_scale('50m'))ax.add_feature(cfeature.OCEAN.with_scale('50m'))ax.add_feature(cfeature.LAND.with_scale('50m'))ax.add_geometries(Reader(r'./henan1.shp').geometries(),ccrs.PlateCarree(),facecolor='none',edgecolor='k',linewidth=1.2,zorder=1)ax.add_geometries(Reader(r'./river1.shp').geometries(),ccrs.PlateCarree(),facecolor='none',edgecolor='b',linewidth=0.2)ax.add_geometries(Reader(r'./china1.shp').geometries(),ccrs.PlateCarree(),facecolor='none',edgecolor='k',linewidth=1.2)ax.add_geometries(Reader(r'./china2.shp').geometries(),ccrs.PlateCarree(),facecolor='none',edgecolor='k',linewidth=0.8)ax.add_geometries(Reader(r'./ne_50m_lakes.shp').geometries(),ccrs.PlateCarree(),facecolor='none',edgecolor='k',linewidth=0.2)ax.add_geometries(Reader(r'./1级河流.shp').geometries(),ccrs.PlateCarree(),facecolor='none',edgecolor='RoyalBlue',linewidth=0.4)ax.add_geometries(Reader(r'./2级河流.shp').geometries(),ccrs.PlateCarree(),facecolor='none',edgecolor='DodgerBlue',linewidth=0.3)ax.add_geometries(Reader(r'./3级河流.shp').geometries(),ccrs.PlateCarree(),facecolor='none',edgecolor='DeepSkyBlue',linewidth=0.2)ax.add_geometries(Reader(r'./4级河流.shp').geometries(),ccrs.PlateCarree(),facecolor='none',edgecolor='SkyBlue',linewidth=0.15)ax.add_geometries(Reader(r'./5级河流.shp').geometries(),ccrs.PlateCarree(),facecolor='none',edgecolor='LightSkyBlue',linewidth=0.05)ax.add_geometries(Reader(r'./主要湖泊.shp').geometries(),ccrs.PlateCarree(),edgecolor='none',linewidth=0,facecolor='#BEE8FF')ax.add_geometries(Reader(r'./country1.dbf').geometries(),ccrs.PlateCarree(),facecolor='none',edgecolor='k',linewidth=1.2)ax.add_geometries(Reader(r'./bou2_4l.dbf').geometries(),ccrs.PlateCarree(),facecolor='none',edgecolor='r',linewidth=1.2)ax.set_xticks(np.arange(leftlon,rightlon+30,30), crs=ccrs.PlateCarree())ax.set_yticks(np.arange(lowerlat,upperlat+30,30), crs=ccrs.PlateCarree())lon_formatter = cticker.LongitudeFormatter()lat_formatter = cticker.LatitudeFormatter()ax.xaxis.set_major_formatter(lon_formatter)ax.yaxis.set_major_formatter(lat_formatter)ax.quiver(lon[::2],lat[::2],su[::2,::2],sv[::2,::2],transform=ccrs.PlateCarree(),scale=60,cmap=plt.cm.jet)plt.savefig('./plot295.1.png',dpi=600,bbox_inches='tight',pad_inches=0)plt.show()
su_tmp  = su.copy()sv_tmp  = sv.copy()su_tmp[pu>0.1]=np.nansu_tmp[pv>0.1]=np.nansv_tmp[pu>0.1]=np.nansv_tmp[pv>0.1]=np.nanax.quiver(lon[::2],lat[::2],su_tmp[::2,::2],sv_tmp[::2,::2],transform=ccrs.PlateCarree(),scale=60,cmap='gist_rainbow')plt.savefig('./plot295.2.png',dpi=600,bbox_inches='tight',pad_inches=0)plt.show()

*****************************************
给大家送本书:
《R语言科研绘图与学术图表绘制从入门到精通》。

内容简介:

本书专注于使用R语言进行数据分析和可视化,主要目标是帮助读者掌握R语言这一强大的数据科学工具,以在科技领域中更好地处理数据、分析数据以及呈现结果。本书面向的读者群体广泛,无论是初学者还是有经验的数据科学家,都能够从中获取丰富的知识和技能,以在科技领域取得成功。本书中包含了实用的示例和练习,可以帮助读者掌握数据分析和可视化的关键概念和实际操作。


抽奖方式及满足条件:
1.关注气象水文科研猫;
2.转发本文到朋友圈;
3.给本文点【赞】、点【在看】;
4.留言区评论点赞最多者。
同时满足上述4个条件的留言区点赞前5名的读者,
每人免费包邮一本:
《R语言科研绘图与学术图表绘制从入门到精通》。
开奖日期:2026年6月29日晚8点。

特别说明:经常出现个别朋友中奖后联系不到,影响集体发货时间,因此中奖后24小时未联系小编者,名额将顺延至下一位中奖朋友,望大家理解、配合。

***********************************
欢迎加气象水文科研猫主编微信,
免费加入微信交流群,
获取更多免费代码和科研数据。
***********************************

最新文章

随机文章