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

网站备案个人备案公司网站网页制作平台有

网站备案个人备案公司网站,网页制作平台有,wordpress主题添加中文,优设导航python赤道上空的大气环流剖面图(纬向-高度剖面) python赤道上空的大气环流剖面图(纬向-高度剖面) 图片 该图展示的是: 去趋势后的垂直速度异常(单位为 Pa/s,负号表示上升)&…

python赤道上空的大气环流剖面图(纬向-高度剖面)

python赤道上空的大气环流剖面图(纬向-高度剖面)

图片在这里插入图片描述

该图展示的是:

去趋势后的垂直速度异常(单位为 Pa/s,负号表示上升);

时间平均范围:2023年6月到12月;

区域:赤道带(Equatorial)的印度洋和大西洋合并区;

横轴:经度 lon,范围 0°–360°;

纵轴:深度 lev,范围 0–500 m(注意使用 invert_yaxis() 使深度向下);

颜色:表示垂直速度 ω,配色方案为绿色–白–紫色渐变(GreenMagenta16 + 白色插入);

白色等值线用于强调垂直速度的细节变化。

图像解读要点

垂直速度 ω 异常用于反映海洋上升/下沉运动,是动力过程(如 ENSO)反馈的重要指标。

绿色表示下沉(正值),紫色表示上升(负值);

图中区域若呈紫色且数值为负,说明存在上升流;

ω < -0.01 Pa/s 通常可以认为是显著的上升运动。

图展示了赤道上空大气环流在经度-高度剖面上的异常结构,是热带环流变化研究中的重要诊断图之一。

import sys

sys.path.append(r’C:\Program Files\python’)

print(sys.path)

import matplotlib as mpl
import h5py
import numpy as np
import xarray as xr
import matplotlib as mpl
from scipy import signal
from scipy.signal import convolve2d
from scipy import stats
from scipy.interpolate import interp2d
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeat
import cartopy.mpl.ticker as cticker
from creat_map import *
import cmaps
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
from matplotlib.colors import LinearSegmentedColormap
import matplotlib.colors as colors
from matplotlib.colors import ListedColormap
import scipy.io as scio
from cartopy.util import add_cyclic_point

mat_contents = scio.loadmat(r’Fig3.mat’)
for var_name, var_value in mat_contents.items():
exec(f’{var_name} = var_value’)

vnorm = colors.Normalize(vmin=19.0, vmax=26.0)
timemm = np.arange(1, 12.1, 1)
xx1, yy1 = np.meshgrid(loninterp, timemm)
xx2, yy2 = np.meshgrid(lon, lev[0:11])

cmapcolorwithwhite = cmaps.GrayWhiteGray
newcolorwithwhite = cmapcolorwithwhite(np.linspace(0, 1, 40))
cmapcolor = cmaps.GMT_polar
newcoloraa = cmapcolor(np.linspace(0, 1, 100))
new = np.vstack((newcoloraa[1:35:1, :], newcolorwithwhite[18:23, :], newcoloraa[60:95:1, :]))
newcolor1 = ListedColormap(new)

cmapcolor = cmaps.GreenMagenta16
newcoloraa = cmapcolor(np.linspace(0, 1, 100))
new = np.vstack((newcoloraa[20:40:1, :], newcolorwithwhite[19:23, :], newcoloraa[60:80:1, :]))
newcolor2 = ListedColormap(new)

levels1 = np.arange(-0.036, 0.0361, 0.003)
norm1 = colors.Normalize(vmin=-0.036, vmax=0.036)

levels2 = np.arange(-0.02, 0.021, 0.002)
norm2 = colors.Normalize(vmin=-0.02, vmax=0.02)

fig = plt.figure(figsize=(14.5, 12.8))
fig.subplots_adjust(wspace=0.15, hspace=0.20)
ax1 = fig.add_subplot(111)
mmm = np.arange(6, 13)
omegaen2023anomEQplot = np.transpose(np.nanmean(omegaen2023anomEQ[:, :, mmm - 1], axis=2))
omegaen2023anomEQplot0 = omegaen2023anomEQplot
uen2023anomEQplot = np.transpose(np.nanmean(uen2023anomEQ[:, :, mmm - 1], axis=2))
speed = np.sqrt(uen2023anomEQplot ** 2 + (200 * omegaen2023anomEQplot) ** 2)
uen2023anomEQplot[speed < 0.1] = np.nan
omegaen2023anomEQplot[speed < 0.1] = np.nan

omegaenPACdetrend2023anomEQplot = np.transpose(np.nanmean(omegaenPACdetrend2023anomEQ[:, :, mmm - 1], axis=2))
omegaenPACdetrend2023anomEQplot0 = omegaenPACdetrend2023anomEQplot
uenPACdetrend2023anomEQplot = np.transpose(np.nanmean(uenPACdetrend2023anomEQ[:, :, mmm - 1], axis=2))
speed = np.sqrt(uenPACdetrend2023anomEQplot ** 2 + (200 * omegaenPACdetrend2023anomEQplot ** 2))
uenPACdetrend2023anomEQplot[speed < 0.1] = np.nan
omegaenPACdetrend2023anomEQplot[speed < 0.1] = np.nan

omegaenINDATLdetrend2023anomEQplot = np.transpose(np.nanmean(omegaenINDATLdetrend2023anomEQ[:, :, mmm - 1], axis=2))
omegaenINDATLdetrend2023anomEQplot0 = omegaenINDATLdetrend2023anomEQplot
uenINDATLdetrend2023anomEQplot = np.transpose(np.nanmean(uenINDATLdetrend2023anomEQ[:, :, mmm - 1], axis=2))
speed = np.sqrt(uenINDATLdetrend2023anomEQplot ** 2 + (200 * omegaenINDATLdetrend2023anomEQplot ** 2))
uenINDATLdetrend2023anomEQplot[speed < 0.1] = np.nan
omegaenINDATLdetrend2023anomEQplot[speed < 0.1] = np.nan

omegaentrend2023anomEQplot = np.transpose(np.nanmean(omegaentrend2023anomEQ[:, :, mmm - 1], axis=2))
omegaentrend2023anomEQplot0 = omegaentrend2023anomEQplot
uentrend2023anomEQplot = np.transpose(np.nanmean(uentrend2023anomEQ[:, :, mmm - 1], axis=2))
speed = np.sqrt(uentrend2023anomEQplot ** 2 + (200 * omegaentrend2023anomEQplot ** 2))
uentrend2023anomEQplot[speed < 0.1] = np.nan
omegaentrend2023anomEQplot[speed < 0.1] = np.nan

ymajorLocator = MultipleLocator(100)
ymajorFormatter = FormatStrFormatter(‘%1.0f’)
yminorLocator = MultipleLocator(50)
xmajorLocator = MultipleLocator(20)
xmajorFormatter = FormatStrFormatter(‘%1.0f’)
xminorLocator = MultipleLocator(10)

ctrf = ax1.contourf(xx2, yy2, -omegaenINDATLdetrend2023anomEQplot0, levels=levels2, extend=‘both’, norm=norm2,
cmap=newcolor2)
ax1.contour(xx2, yy2, -omegaenINDATLdetrend2023anomEQplot0, levels=np.arange(-0.06, 0.061, 0.003),
colors=‘white’, linestyles=‘solid’, linewidths=0.3)
ax1.set_title(‘e. Omega & Circulation (aIndAtl)’, loc=‘left’, fontsize=16)
ax1.set_title(‘’, loc=‘right’, fontsize=16)
gapnum1 = 1
gapnum2 = 10
m = ax1.quiver(xx2[::gapnum1, ::gapnum2], yy2[::gapnum1, ::gapnum2],
uenINDATLdetrend2023anomEQplot[::gapnum1, ::gapnum2],
-200 * omegaenINDATLdetrend2023anomEQplot[::gapnum1, ::gapnum2],
zorder=2,
pivot=‘middle’,
scale=50, width=0.004, headwidth=3, color=‘black’)
qk = ax1.quiverkey(m, 0.95, 1.05, 2, ‘2’, labelpos=‘E’, color=‘black’, labelcolor=‘black’, fontproperties={‘size’: 15})
ax1.grid(False)
ax1.tick_params(length=5, width=2, labelsize=16)
ax1.yaxis.set_major_locator(ymajorLocator)
ax1.yaxis.set_major_formatter(ymajorFormatter)
ax1.yaxis.set_minor_locator(yminorLocator)
ax1.xaxis.set_major_locator(xmajorLocator)
ax1.xaxis.set_major_formatter(xmajorFormatter)
ax1.xaxis.set_minor_locator(xminorLocator)
ax1.set_xticks(np.arange(0, 360.1, 60))
ax1.set_xticklabels([“0”, “60E”, “120E”, “180”, “120W”, “60W”, “0”])
ax1.set_yticks(np.arange(200, 1000.1, 200))
ax1.set(xlim=(0, 360), ylim=(1050, 50));

ax1.yaxis.set_major_formatter(plt.NullFormatter())
position = fig.add_axes([0.915, 0.15, 0.01, 0.7])
cb = fig.colorbar(ctrf, cax=position, orientation=‘vertical’,
ticks=np.arange(-0.02, 0.021, 0.02), fraction=.5, extend=‘both’)
cb.ax.tick_params(labelsize=14)
cb.set_label(f’Omega (Pa/s)‘, fontsize=16)
fig.savefig(r’Fig31.png’, dpi=500, bbox_inches=‘tight’, pad_inches=0.03)
plt.show()
参考文献:

Tao Lian, Jie Wang, Dake Chen, Ting Liu, Dazhi Wang.

A Strong 2023/24 El Niño is Staged by Tropical Pacific Ocean Heat Content Buildup. Ocean-Land-Atmos Res. 2023;2:0011.DOI:10.34133/olar.0011

python 赤道温度距平剖面图==赤道海温剖面揭秘 2023/24 厄尔尼诺的强烈信号

python厄尔尼诺期间温度海表面高度的时间演变分布图

python 历年Nino3区海温异常与中太平洋风速的关系 ===散点线性图

python 2023–2024年厄尔尼诺期间的平均海平面气压(MSLP)和风场(wind)

python 画2023-24 年厄尔尼诺的海温与海表高度异常分布图

【PYTHON海洋专题】历史汇总

http://www.dtcms.com/wzjs/548837.html

相关文章:

  • 自助网站建设汕头cms模板建站
  • title 门户网站建设招标书如何做网站栏目规划
  • 网站建设服务器有哪些广告文案的100案例
  • 智能魔方网站电脑网页游戏平台
  • 绍兴网站建设技术外包客户关系管理系统软件有哪些
  • 沧州企业网站专业定制如何做好电子商务网站开发
  • 营销网络世界地图网站优化公司方案
  • 韩城网站建设网站公司建设网站价格
  • 加快信用网站建设网站建设 有聊天工具的吗
  • 如何做一个商城类型的网站百度推广的渠道有哪些
  • 网站的建设与管理自考wordpress win8 主题下载
  • 腾讯云网站备案不能用阿里云青岛网站开发学校
  • 交换机做网站郑州网站制作培训学校
  • 建网站有哪些文件夹如何创造一个小程序
  • 网站搜索引擎优化主要方法wordpress图片并排
  • 手机网站设计教育类模板原创wordpress模板
  • 深圳网站制作培训一物一码二维码生成系统
  • 怎么把网站源码wordpress采集处理样式
  • 网站源码下载安全吗唐山万唯网络科技有限公司
  • 网站开发多少人济南全网推广
  • 电商网站商品详情页福州百诚互联
  • 百度对网站建设公司新闻静态网站模板下载
  • 便利的聊城网站建设用vs做网站表格向上居中
  • 连云港网站优化方案微信 公司网站 怎么做
  • 做一个网站建设浙江网站建设有哪些
  • 一个网站主页开发费用建设网站远达
  • 外国电商设计网站有哪些简单的app开发案例
  • 网站工程师平均工资移动互联网开发实验报告
  • 网站怎么制作商城北京装修公司排名十强
  • 周口网站建设73data公司名称注册规则