【python海洋專題四十七】風速的風羽圖

【python海洋專題四十七】風速的風羽圖

在這里插入圖片描述
圖片

往期推薦

圖片
【python海洋專題一】查看數據nc文件的屬性并輸出屬性到txt文件

【python海洋專題二】讀取水深nc文件并水深地形圖
【python海洋專題三】圖像修飾之畫布和坐標軸

【Python海洋專題四】之水深地圖圖像修飾

【Python海洋專題五】之水深地形圖海岸填充

【Python海洋專題六】之Cartopy畫地形水深圖

【python海洋專題】測試數據

【Python海洋專題七】Cartopy畫地形水深圖的陸地填充

【python海洋專題八】Cartopy畫地形水深圖的contourf填充間隔數調整

【python海洋專題九】Cartopy畫地形等深線圖

【python海洋專題十】Cartopy畫特定區域的地形等深線圖

【python海洋專題十一】colormap調色

【python海洋專題十二】年平均的南海海表面溫度圖

【python海洋專題十三】讀取多個nc文件畫溫度季節變化圖

【python海洋專題十四】讀取多個鹽度nc數據畫鹽度季節變化圖

【python海洋專題十五】給colorbar加單位

【python海洋專題十六】對大陸周邊的數據進行臨近插值

【python海洋專題十七】讀取幾十年的OHC數據,畫四季圖

【python海洋專題十八】讀取Soda數據,畫subplot的海表面高度四季變化圖

【python海洋專題十九】找范圍的語句進階版本

【python海洋專題二十】subplots_adjust布局調整

【python海洋專題二十一】subplots共用一個colorbar

【python海洋專題二十二】在海圖上text

【python海洋專題二十三】共用坐標軸

【python海洋專題二十四】南海年平均海流圖

【python海洋專題二十五】給南海年平均海流+scale

【python海洋專題二十六】南海海流流速圖

【python海洋專題二十七】南海四季海流圖

【python海洋專題二十八】南海四季海流流速圖

【python海洋專題二十九】讀取CTD文件數據并畫溫度點剖面圖

【python海洋專題三十】畫南海115°E的溫度剖面圖

【python海洋專題三十一】畫南海115°E的地形溫度剖面圖

【python海洋專題三十二】畫南海115°E的地形溫度流速剖面圖

【python海洋專題三十三】畫海洋表面的風場分布

【python海洋專題三十四】調用自己的colormore

【python海洋專題三十五】加密數據–二維插值

【python海洋專題三十六】兩個一維數組的相關系數–為海洋指數作準備

【python海洋專題三十七】海洋指數畫法–折線圖樣式一

【python海洋專題三十八】海洋指數畫法–折線圖樣式二

【python海洋專題三十九】海洋指數畫法–折線圖樣式三–不同顏色的線條

【python海洋專題四十】海洋指數畫法–單色填充圖

【python海洋專題四十一】海洋指數畫法–漸變填色圖

【python海洋專題四十二】海洋指數畫法–雙色柱狀圖

【python海洋專題四十三】海洋指數畫法–單色漸變柱狀圖

【python海洋專題四十四】海洋指數畫法–多色漸變柱狀圖

【python海洋專題四十五】海洋研究區域示意圖

【python海洋專題四十六】研究區域示意放大圖

【python海洋專題海洋指數畫法】大氣與海洋指數畫法匯總

【MATLAB海洋專題】歷史匯總

【matlab程序】(1-5)五坐標軸的精細修飾

【matlab程序】圖片平面制作||文末點贊分享||海報制作等

大佬推薦一下物理海洋教材吧?

【matlab海洋專題】高級玫瑰圖–風速風向頻率玫瑰圖–此圖細節較多

【上千種顏色包|全平臺可用】收集自Matlab、python、R、NCL等顏色包

R語言_RColorBrewer包–全平臺可用

海洋專用cmocean顏色包_共22種–全平臺可用

【matlab教程】matlab不規則區域的外圍填充

【海洋科普】沉積物分為粘性沉積物和非粘性沉積物

【海洋科普】黃渤海地理介紹

【科普知識】海洋尺度圖和解釋

【海洋科普】海洋環流與等高線巖特征聯系
代碼分享:


# -*- coding: utf-8 -*-
# ---導入數據讀取和處理的模塊-------
from netCDF4 import Dataset
from pathlib import Path
import xarray as xr
import numpy as np
# ------導入畫圖相關函數--------
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
import matplotlib.ticker as ticker
from cartopy import mpl
import cartopy.crs as ccrs
import cartopy.feature as feature
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter
from pylab import *
# -----導入顏色包---------
import seaborn as sns
from matplotlib import cm
import palettable
from palettable.cmocean.diverging import Delta_4
from palettable.colorbrewer.sequential import GnBu_9
from palettable.colorbrewer.sequential import Blues_9
from palettable.scientific.diverging import Roma_20
from palettable.cmocean.diverging import Delta_20
from palettable.scientific.diverging import Roma_20
from palettable.cmocean.diverging import Balance_20
from matplotlib.colors import ListedColormap
#     -------導入插值模塊-----
from scipy.interpolate import interp1d  # 引入scipy中的一維插值庫
from scipy.interpolate import griddata  # 引入scipy中的二維插值庫
from scipy.interpolate import interp2d# ----define reverse_colourmap定義顏色的反向函數----
def reverse_colourmap(cmap, name='my_cmap_r'):reverse = []k = []for key in cmap._segmentdata:k.append(key)channel = cmap._segmentdata[key]data = []for t in channel:data.append((1 - t[0], t[2], t[1]))reverse.append(sorted(data))LinearL = dict(zip(k, reverse))my_cmap_r = mpl.colors.LinearSegmentedColormap(name, LinearL)return my_cmap_r# ---colormap的讀取和反向----
cmap01 = Balance_20.mpl_colormap
cmap0 = Blues_9.mpl_colormap
cmap_r = reverse_colourmap(cmap0)
cmap1 = GnBu_9.mpl_colormap
cmap_r1 = reverse_colourmap(cmap1)
cmap2 = Roma_20.mpl_colormap
cmap_r2 = reverse_colourmap(cmap2)
# ---read_data---
fu = xr.open_dataset(r'D:\pycharm_work\data\uwnd.mon.mean.nc')
fv = xr.open_dataset(r'D:\pycharm_work\data\vwnd.mon.mean.nc')
print(fu)
print(fu.variables['uwnd'])
lat = fu['lat'].data
lon = fu['lon'].data
u = fu['uwnd'].data
v = fv['vwnd'].data
# # # 畫圖網格
ln1 = np.where(lon >= 30)[0][0]
ln2 = np.where(lon >= 105)[0][0]
la1 = np.where(lat <= 0)[0][0]
la2 = np.where(lat <= 30)[0][0]
# time_all=[(time>=1058760) & (time<=1059096)]   #13-27 Oct
# # # 畫圖網格
lon1 = lon[ln1:ln2]
lat1 = lat[la2:la1]
X, Y = np.meshgrid(lon1, lat1)
u_aim = u[:, la2:la1, ln1:ln2]
v_aim = v[:, la2:la1, ln1:ln2]
u_end = np.mean(u_aim, axis=0)
v_end = np.mean(v_aim, axis=0)
# ----plot--------------
scale = '50m'
plt.rcParams['font.sans-serif'] = ['Times New Roman']  # 設置整體的字體為Times New Roman
# 設置顯示中文字體
mpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["mathtext.fontset"] = 'cm'  # 數學文字字體
mpl.rcParams["font.size"] = 12  # 字體大小
mpl.rcParams["axes.linewidth"] = 1  # 軸線邊框粗細(默認的太粗了)
fig = plt.figure(dpi=300, figsize=(3, 2), facecolor='w', edgecolor='blue')  # 設置一個畫板,將其返還給fig
ax = fig.add_axes([0.05, 0.08, 0.92, 0.8], projection=ccrs.PlateCarree(central_longitude=180))
ax.set_extent([30, 105, 0, 30], crs=ccrs.PlateCarree())  # 設置顯示范圍
ax.add_feature(feature.OCEAN)
ax.stock_img()  # 添加地球背景
# land = feature.NaturalEarthFeature('physical', 'land', scale, edgecolor='face',
#                                    facecolor=feature.COLORS['land'])
# ax.add_feature(land, facecolor='0.8', alpha=0.2)
ax.add_feature(feature.COASTLINE.with_scale('10m'), lw=0.5, color='k')  # 添加海岸線:關鍵字lw設置線寬; lifestyle設置線型
# cs = ax.quiver(X, Y, u_end, v_end, color='b',
#                scale=70, zorder=3, width=0.002, headwidth=4, headlength=5.5, transform=ccrs.PlateCarree())
# ---barb_increments={'half':2,'full':4,'flag':20}這一句,修改了風矢桿長短桿線和三角分別代表的風速大小。
ax.barbs(X, Y, u_end, v_end, barb_increments={'half': 0.5, 'full': 1, 'flag': 3}, zorder=5,length=3.5, linewidth=0.4, transform=ccrs.PlateCarree())
# --------------添加標題----------------
ax.set_title('印度洋海表面風速(風羽圖)', loc="center", fontsize=6, pad=1)
# ------------------利用Formatter格式化刻度標簽-----------------
ax.set_xticks(np.arange(30, 106, 10), crs=ccrs.PlateCarree())  # 添加經緯度
ax.set_xticklabels(np.arange(30, 106, 10), fontsize=4)
ax.set_yticks(np.arange(0, 31, 5), crs=ccrs.PlateCarree())
ax.set_yticklabels(np.arange(0, 31, 5), fontsize=4)
ax.xaxis.set_major_formatter(LongitudeFormatter())
ax.yaxis.set_major_formatter(LatitudeFormatter())
ax.tick_params(axis='x', top=True, which='major', direction='in', length=3, width=0.8, labelsize=5, pad=0.8,color='k')  # 刻度樣式  pad代表標題離軸的遠近
ax.tick_params(axis='y', right=True, which='major', direction='in', length=3, width=0.8, labelsize=5, pad=0.8,color='k')  # 更改刻度指向為朝內,顏色設置為藍色
gl = ax.gridlines(crs=ccrs.PlateCarree(), draw_labels=False, xlocs=np.arange(30, 106, 10), ylocs=np.arange(0, 31, 5),linewidth=0.25, linestyle='--', color='k', alpha=0.8)  # 添加網格線
gl.top_labels, gl.bottom_labels, gl.right_labels, gl.left_labels = False, False, False, False
plt.savefig('wind_feather_indian_ocean_1.jpg', dpi=600, bbox_inches='tight', pad_inches=0.1)  # 輸出地圖,并設置邊框空白緊密
plt.show()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/167531.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/167531.shtml
英文地址,請注明出處:http://en.pswp.cn/news/167531.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

記一次linux操作系統實驗

前言 最近完成了一個需要修改和編譯linux內核源碼的操作系統實驗&#xff0c;個人感覺這個實驗還是比較有意思的。這次實驗總共耗時4天&#xff0c;從對linux實現零基礎&#xff0c;通過查閱資料和不斷嘗試&#xff0c;直到完成實驗目標&#xff0c;在這過程中確實也收獲頗豐&…

pytorch模型優化簡介,未完結版

如有幫助&#xff0c;點贊收藏關注&#xff01; 如需轉載&#xff0c;請注明出處&#xff01; 今天來介紹torch模型中的優化器 優化是指在每個訓練步驟中調整模型參數以減少模型誤差的過程。 優化算法定義如何執行這個過程 所有優化邏輯都封裝在優化器對象中。在這里&#xf…

【黑馬甄選離線數倉day04_維度域開發】

1. 維度主題表數據導出 1.1 PostgreSQL介紹 PostgreSQL 是一個功能強大的開源對象關系數據庫系統&#xff0c;它使用和擴展了 SQL 語言&#xff0c;并結合了許多安全存儲和擴展最復雜數據工作負載的功能。 官方網址&#xff1a;PostgreSQL: The worlds most advanced open s…

音視頻項目——RTSP服務器解析(1)

介紹 利用線程池&#xff0c;實現 RTSP 服務器的高并發請求處理。 RTSP 是音視頻的控制視頻的協議&#xff0c;如果您還不了解&#xff0c;可以看看之前我解析 RTSP 協議的文章。音視頻協議解析(RTP/RTCP/RTSP/RTMP)——RTSP解析-CSDN博客 解析 我們先來看 RTP 的實現。RTP 是音…

Django框架之auth模塊

目錄 一、Auth模塊引入 二、創建超級用戶(管理員) 三、依賴于auth_user表完成登錄注冊功能 【1】基礎登陸 【2】保存用戶狀態 【3】登錄后跳轉 (1) 登錄后才能訪問頁面 -- 局部配置 (2) 登錄后才能訪問頁面 -- 全局配置 (3) 小結 三、修改密碼 四、注銷 五、注冊…

Springboot將多個圖片導出成zip壓縮包

Springboot將多個圖片導出成zip壓縮包 將多個圖片導出成zip壓縮包 /*** 判斷時間差是否超過6小時* param startTime 開始時間* param endTime 結束時間* return*/public static boolean isWithin6Hours(String startTime, String endTime) {// 定義日期時間格式DateTimeFormatt…

【數據結構】—搜索二叉樹(C++實現,超詳細!)

&#x1f3ac;慕斯主頁&#xff1a;修仙—別有洞天 ??今日夜電波&#xff1a;消えてしまいそうです—真夜中 1:15━━━━━━?&#x1f49f;──────── 4:18 &#x1f504; ?? ? ??…

函數計算的新征程:使用 Laf 構建 AI 知識庫

Laf 已成功上架 Sealos 模板市場&#xff0c;可通過 Laf 應用模板來一鍵部署&#xff01; 這意味著 Laf 在私有化部署上的擴展性得到了極大的提升。 Sealos 作為一個功能強大的云操作系統&#xff0c;能夠秒級創建多種高可用數據庫&#xff0c;如 MySQL、PostgreSQL、MongoDB …

js實現獲取原生form表單的數據序列化表單以及將數組轉化為一個對象obj,將數組中的內容作為對象的key轉化為對象,對應的值轉換為對象對應的值

1.需求場景 哈嘍 大家好啊&#xff0c;今天遇到一個場景&#xff0c; js實現獲取原生form表單的數據序列化表單以及將數組轉化為一個對象obj&#xff0c;將數組中的內容作為對象的key轉化為對象&#xff0c;對應的值轉換為對象對應的值 數組對象中某個屬性的值&#xff0c;轉…

元宇宙現已開放!

在 2023 年 11 月 3 日 The Sandbox 首個全球創作者日上&#xff0c;The Sandbox 聯合創始人 Arthur Madrid 和 Sebastien Borget 宣布元宇宙已開放&#xff0c;已創作完整體驗的 LAND 持有者可以自行將體驗發布至 The Sandbox 地圖上。 精選速覽 LAND 持有者&#xff1a;如果…

在JVM中 判定哪些對象是垃圾?

目錄 垃圾的條件 1、引用計數法 2、可達性分析 3、強引用 4、軟引用 5、弱引用 6、虛引用 判斷垃圾的條件 在Java虛擬機&#xff08;JVM&#xff09;中&#xff0c;垃圾收集器負責管理內存&#xff0c;其中的垃圾收集算法用于確定哪些對象是垃圾&#xff0c;可以被回收…

VBA即用型代碼手冊之工作薄的關閉保存及創建

我給VBA下的定義&#xff1a;VBA是個人小型自動化處理的有效工具。可以大大提高自己的勞動效率&#xff0c;而且可以提高數據的準確性。我這里專注VBA,將我多年的經驗匯集在VBA系列九套教程中。 作為我的學員要利用我的積木編程思想&#xff0c;積木編程最重要的是積木如何搭建…

[Latex] Riemann 問題中的激波,接觸間斷,膨脹波的 Tikz 繪圖

Latex 代碼 \begin{figure}\begin{subfigure}[b]{0.32\textwidth}\centering\resizebox{\linewidth}{!}{\begin{tikzpicture}\coordinate (o) at (0,0);\coordinate (Si) at (2.5,2.5);\coordinate (x) at (1,0);\draw[->] (0,0) -- (3,0) node[right] {$x$};\draw[->] …

ArkTS-自定義組件學習

文章目錄 創建自定義組件頁面和自定義組件生命周期自定義組件和頁面的區別頁面生命周期(即被Entry修飾的組件)組件生命周期(即被Component修飾的組件) Builder裝飾器&#xff1a;自定義構建函數按引用傳遞參數按值傳遞參數 BuilderParam裝飾器&#xff1a;引用Builder函數 這個…

Python 將列表拼接為一個字符串,Python join

目錄 join方法的源碼&#xff1a; 列表數據為字符串 列表數據為數字 三引號也可以使用join join方法的源碼&#xff1a; def join(self, abNone, pqNone, rsNone): # real signature unknown; restored from __doc__"""Concatenate any number of strings.T…

harmonyos應用開發者高級認證考試部分答案

1只要使用端云一體化的云端資源就需要支付費用&#xff08;錯&#xff09; 2所有使用Component修飾的自定義組件都支持onPageShow&#xff0c;onBackPress和onPageHide生命周期函數。&#xff08;錯&#xff09; 3 HarmonyOS應用可以兼容OpenHarmony生態&#xff08;對&#…

一文讀懂如何安全地存儲密碼

目錄 引言 明文存儲 基本哈希存儲 加鹽哈希存儲 適應性哈希算法 密碼加密存儲 小結 引言 密碼是最常用的身份驗證手段&#xff0c;既簡單又高效。密碼安全是網絡安全的基石&#xff0c;對保護個人和組織信息的安全具有根本性的作用。然而有關密碼泄漏的安全問題一再發生…

生物動力葡萄酒和有機葡萄酒一樣嗎?

農業維持了數十萬年的文明&#xff0c;但當人類以錯誤的方式過多干預&#xff0c;過于專注于制造和操縱產品時&#xff0c;農業往往會失敗。如果我們的目標是獲得最高質量的收成&#xff0c;并長期堅持我們的做法&#xff0c;我們就必須與土地打交道。 當我們開始尋找生物動力…

應用內測分發平臺如何上傳應用包體?

●您可免費將您的應用&#xff08;支持蘋果.ios安卓.apk文件&#xff09;上傳至咕嚕分發平臺&#xff0c;我們將免費為應用生成下載信息&#xff0c;但咕嚕分發將會對應用的下載次數進行收費&#xff08;每個賬號都享有免費贈送的下載點數以及參加活動的贈送點數&#xff09;&a…

UVA1025 城市里的間諜 A Spy in the Metro

UVA1025 城市里的間諜 A Spy in the Metro 題面翻譯 題目大意 某城市地鐵是一條直線&#xff0c;有 n n n&#xff08; 2 ≤ n ≤ 50 2\leq n\leq 50 2≤n≤50&#xff09;個車站&#xff0c;從左到右編號 1 … n 1\ldots n 1…n。有 M 1 M_1 M1? 輛列車從第 1 1 1 站開…