首页
学习
活动
专区
圈层
工具
发布
44 篇文章
1
机器学习需要掌握的九种工具!
2
PyAOS:大气和海洋科学Python社区
3
地球人工智能研究综述
4
优化物理和机器学习之间的协同作用
5
构建便于气象海洋应用的Anaconda环境(window版本)
6
Python结合Matlab气候数据工具箱CDT
7
用Python复现一篇Nature的研究: 1.数据下载及预处理
8
Python气象数据处理与绘图:相关性分析之散点图
9
Nature | 数据驱动的地球系统深度学习与过程理解
10
Python气象数据处理与绘图:常见的10种图像滤波方法
11
JAMES: 地球系统模式机器学习应用专刊
12
Python可视化 | xarray绘图样式配置
13
xarray系列|WRF模式前处理和后处理
14
Python可视化 | xarray一维数据绘图
15
构建适合大气与海洋应用的Anaconda环境
16
统计学中数据分析方法汇总!
17
Python可视化 | xarray 绘图时序图
18
深度学习 | 时序问题LSTM入门讲解
19
Python可视化 | xarray 二维绘图配色方案设置
20
MeteoInfoLab中如何将格点插值到站点?(附完整代码)
21
利用 pandas 和 xarray 整理气象站点数据
22
tensor与numpy数据类型转换
23
【机器学习基础】|交叉验证及Stacking
24
让数据动起来!用Python制作动画可视化效果,让数据不再枯燥!
25
数据处理 | EOF用法及可视化实例
26
数据处理 | 使用cfgrib加载GRIB文件
27
GISer如何学Python
28
数据下载 | NCEP再分析数据自动批量下载
29
关于滤波和NCL的filwgts_lanczos函数
30
数据处理 | xarray的计算距平、重采样、时间窗
31
数据处理 | xarray的NC数据基础计算(1)
32
基于Python的神经网络模型可视化绘图方法
33
python可视化 | 小波分析——​海温数据的时频域分解
34
Python精美地理可视化绘制
35
Python的常用库的数组定义及常用操作
36
Python可视化 | 温度、水深&CTRL向量空间分布图
37
python可视化 | contour、contourf、cartopy补充
38
NCL专辑 | 常用插值函数集锦
39
数值模式常用参数化方案简析及引用文献
40
数据处理与可视化 | 站点插值格点+空间区域掩膜
41
自动化工程 | 利用Python自动生成降雨量统计分析报告
42
图解NumPy:常用函数的内在机制
43
用手机运行你的Python代码
44
数据可视化 | 双Y轴可视化绘制方法(Python、R两种方法)

Python可视化 | 温度、水深&CTRL向量空间分布图

?欢迎大家关注气象水文科研猫


1 Map T_CTRL

代码语言:javascript
复制
import numpy as np
import scipy as sp
from matplotlib import pyplot as plt
import mpl_toolkits.basemap as bm
# Scipy's io module needed to load MATLAB data
from scipy import io
from matplotlib import rcParams
config={"font.family":'Times New Roman',"font.size":14,"mathtext.fontset":'stix'}
rcParams.update(config)
# Load data
data = sp.io.loadmat('F:/Rpython/lp30/data/OFAM_model_mean.mat')
lon = data['lon']
lat = data['lat']
T_CTRL = data['T_CTRL']
T_A1B = data['T_A1B']
U_CTRL = data['U_CTRL']
V_CTRL = data['V_CTRL']
llon, llat = np.meshgrid(lon, lat)
# Map T_CTRL
fig = plt.figure(figsize=(16,9))
ax = fig.add_subplot(111)
proj = bm.Basemap(projection='cyl', llcrnrlat=-50, llcrnrlon=145, urcrnrlat=-20, urcrnrlon=180, resolution='i')
proj.drawcoastlines()
proj.etopo(scale=0.2)
parallels = np.arange(-50.,-19.9,5.)
proj.drawparallels(parallels,labels=[True,False,False,False],linewidth=0.5,color='red',dashes=[1,4],size=14)
meridians = np.arange(145.,181.,5.)
proj.drawmeridians(meridians,labels=[False,False,False,True],linewidth=0.5,color='red',dashes=[1,4],size=14)
lonproj,latproj = proj(llon, llat)
c1=ax.contourf(lonproj,latproj,T_CTRL,levels=np.arange(8,30,1),cmap='gist_rainbow',extend='both')
b=plt.colorbar(c1,shrink=0.99,orientation='vertical',pad=0.02,aspect=30,extend='both')
# add solid contour lines
CS=plt.contour(lonproj,latproj,T_CTRL,levels=np.arange(8,30,1),linewidth='0.5',colors='k')
plt.savefig('F:/Rpython/lp30/plot13.1.png',dpi=600)
plt.show()

2 Map T_CTRL - added velocity vectors

代码语言:javascript
复制
fig = plt.figure(figsize=(16,9))
ax = fig.add_subplot(111)
proj = bm.Basemap(projection='cyl', llcrnrlat=-50, llcrnrlon=145, urcrnrlat=-20, urcrnrlon=180, resolution='i')
proj.drawcoastlines()
proj.etopo(scale=0.2)
parallels = np.arange(-50.,-19.9,5.)
proj.drawparallels(parallels,labels=[True,False,False,False],linewidth=0.5,color='red',dashes=[1,4],size=14)
meridians = np.arange(145.,181.,5.)
proj.drawmeridians(meridians,labels=[False,False,False,True],linewidth=0.5,color='red',dashes=[1,4],size=14)
lonproj, latproj = proj(llon, llat)
c1=ax.contourf(lonproj,latproj,T_CTRL,levels=np.arange(8,30,1),cmap='gist_rainbow',extend='both')
b=plt.colorbar(c1,shrink=0.99,orientation='vertical',pad=0.02,aspect=30,extend='both')
d = 5 # Only plot every dth point in lat and lon
plt.quiver(lonproj[0:-1:d,0:-1:d], latproj[0:-1:d,0:-1:d], U_CTRL[0:-1:d,0:-1:d], V_CTRL[0:-1:d,0:-1:d], scale=10)
# Load bathymetry data
bathy = data['bathy']
# Bathymetric contours of interest (where to draw the contours)
isobars = [0,200,500,1000,1500,2000,2500,3000,3500,4000,5000]
plt.savefig('F:/Rpython/lp30/plot13.2.png',dpi=600)
plt.show()

3 Nice bathymetry map

代码语言:javascript
复制
# Map T_CTRL
fig = plt.figure(figsize=(16,9))
ax = fig.add_subplot(111)
proj = bm.Basemap(projection='cyl', llcrnrlat=-50, llcrnrlon=145, urcrnrlat=-20, urcrnrlon=180, resolution='i')
proj.drawcoastlines()
proj.etopo(scale=0.2)
parallels = np.arange(-50.,-19.9,5.)
proj.drawparallels(parallels,labels=[True,False,False,False],linewidth=0.5,color='red',dashes=[1,4],size=14)
meridians = np.arange(145.,181.,5.)
proj.drawmeridians(meridians,labels=[False,False,False,True],linewidth=0.5,color='red',dashes=[1,4],size=14)
lonproj, latproj = proj(llon, llat)
# Load bathymetry data
bathy = data['bathy']
# Bathymetric contours of interest (where to draw the contours)
isobars = [0,200,500,1000,1500,2000,2500,3000,3500,4000,5000]
c1=ax.contourf(lonproj, latproj, bathy,levels=isobars,cmap=plt.cm.RdYlBu,extend='both')
b=plt.colorbar(c1,shrink=0.99,orientation='vertical',pad=0.02,aspect=30,extend='both')
b.set_ticks(isobars)
b.set_label('Depth [m]')
plt.savefig('F:/Rpython/lp30/plot13.3.png',dpi=600)
plt.show()

4 Temperature change and bathymetry

代码语言:javascript
复制
plt.figure(figsize=(14,5))
plt.subplot(1,2,1)
proj = bm.Basemap(projection='cyl', llcrnrlat=-50, llcrnrlon=145, urcrnrlat=-20, urcrnrlon=180, resolution='i')
proj.drawcoastlines()
proj.etopo(scale=0.2)
parallels = np.arange(-50.,-19.9,5.)
proj.drawparallels(parallels,labels=[True,False,False,False],linewidth=0.5,color='red',dashes=[1,4],size=14)
meridians = np.arange(145.,181.,5.)
proj.drawmeridians(meridians,labels=[False,False,False,True],linewidth=0.5,color='red',dashes=[1,4],size=14)
lonproj, latproj = proj(llon, llat)
c1=plt.contourf(lonproj,latproj,T_A1B-T_CTRL,levels=np.arange(-3,3+0.5,0.5),cmap=plt.cm.RdBu_r,extend='both')
cbar=plt.colorbar(c1,shrink=0.88,orientation='vertical',pad=0.03,aspect=30,extend='both')
cbar.set_label(r'SST [$^\circ$C]')
plt.subplot(1,2,2)
proj = bm.Basemap(projection='cyl', llcrnrlat=-50, llcrnrlon=145, urcrnrlat=-20, urcrnrlon=180, resolution='i')
proj.drawcoastlines()
proj.etopo(scale=0.2)
parallels = np.arange(-50.,-19.9,5.)
proj.drawparallels(parallels,labels=[True,False,False,False],linewidth=0.5,color='red',dashes=[1,4],size=14)
meridians = np.arange(145.,181.,5.)
proj.drawmeridians(meridians,labels=[False,False,False,True],linewidth=0.5,color='red',dashes=[1,4],size=14)
lonproj, latproj = proj(llon, llat)
# Load bathymetry data
bathy = data['bathy']
# Bathymetric contours of interest (where to draw the contours)
isobars = [0,200,500,1000,1500,2000,2500,3000,3500,4000,5000]
c1=plt.contourf(lonproj,latproj,bathy,levels=isobars,cmap=plt.cm.RdYlBu,extend='both')
cbar=plt.colorbar(c1,shrink=0.88,orientation='vertical',pad=0.02,aspect=30,extend='both')
cbar.set_ticks(isobars)
cbar.set_label('Depth [m]')
plt.savefig('F:/Rpython/lp30/plot13.4.png',dpi=600)
plt.show()

下一篇
举报
领券