12 - matlab m_map地學繪圖工具基礎函數 - 在地圖上繪制矢量場m_vec函數和繪制風羽圖的m_windbarb函數

12 - matlab m_map地學繪圖工具基礎函數 - 在地圖上繪制矢量場函數m_vec和繪制風羽圖的函數m_windbarb

  • 0. 引言
  • 1. 關于m_vec
  • 2. 關于m_windbarb
  • 3. 總結


0. 引言

?? 本篇介紹下m_map繪制矢量場的函數(m_vec)和地圖上繪制風羽圖的函數m_windbarb

1. 關于m_vec

??m_vec 函數用于在地圖上繪制矢量場(或者稱為箭頭場)。它可以用來在地圖上可視化矢量數據,比如風場、流速場等

??m_vec函數的一般形式為:

[hp, ht] = m_vec(s, lon, lat, varargin)

??其中:s為比例因子,可以用于控制箭頭的大小; lon, lat是矢量場的經/維度坐標,可以是標量或矩陣形式;varargin為可選參數,主要包括 [u,v],經度和緯度方向上的矢量分量,分別表示矢量場的水平和垂直分量也是繪制箭頭的主要數據;此之外還有一些可選參數控制繪圖樣式,主要內容如下:

  • 'headangle',60 箭頭尖角角度
  • 'headwidth',NaN points: direct specification of width, instead of headangle
  • 'headlength',5 將頭長度,設置為0,表示忽略箭頭;
  • 'headstyle',1 箭頭類型,一共有四種 [1 2 3 4] 可選;
  • 'shaftwidth',1 箭軸寬度
  • 'centered', 'no' 控制輸入的lon、lat是否為箭頭的中心,如果為‘tail’,表示箭頭指向lon、lat位置;
  • 'key' “string”, 控制在箭頭位置添加標簽
  • 'edgeclip', 'off' 如果為‘on’,表示在軸上的箭頭可以被切;
  • 'curvature', 0 顯示彎曲的箭頭的時候,控制箭頭的曲率(彎曲程度)

m_vec函數的繪圖示例,示例數據可以從網盤獲取,提取碼:x2y7

clc;cleariday=156;   % the day to show
lat=ncread('uwnd.10m.gauss.2017.nc','lat');
lon=ncread('uwnd.10m.gauss.2017.nc','lon');
[LN,LT]=meshgrid(lon,lat);
u=ncread('uwnd.10m.gauss.2017.nc','uwnd',[1,1,iday],[192,94,1]);
v=ncread('vwnd.10m.gauss.2017.nc','vwnd',[1,1,iday],[192,94,1]);figure(2)
m_proj('miller','lon',[0 360],'lat',[-90 90]);% 繪制流線
m_vec(30,LN,LT, u', v');  %---------------------------------------------------------------------% 添加其他地圖元素(如海岸線、邊界等)
m_coast('line', 'color', 'k');
m_grid('linestyle', 'none', 'box', 'fancy');

2. 關于m_windbarb

??m_windbarb函數用于在地圖上繪制風羽圖(Wind Barb),用以表示風的方向和速度。風羽圖常用于氣象學和海洋學中,提供了一種直觀的方式來展示風的強度和方向。

??m_windbarb函數的基本語法如下:

h=m_windbarb(long,lat,u,v,varargin)

??其中,lon 和 lat 是風羽圖的位置,即風的觀測點的經度和緯度;u 和 v 是風速分量,即風的水平速度分量和垂直速度分量。通常情況下,這兩個分量應該是相對于地面的風速,分別以米/秒為單位;varargin 包含可選參數,用于指定風羽圖的樣式、顏色等信息。

示例1m_windbarb函數的簡單示例,使用模擬數據u和v繪制的風羽圖:

clc;clear;
figure
m_proj('mercator', 'lon', [69.5 105.5], 'lat', [24.5 40.5]);lon = 69.5:1:105.5;
lat = 24.5:1:40.5;
[lon_grid, lat_grid] = meshgrid(lon, lat);% 生成一些模擬的流場數據,例如風場
u = cosd(lat_grid) .* cosd(lon_grid);
v = sind(lon_grid);% 繪制風羽圖
m_windbarb(lon_grid, lat_grid, u, v,'color','r','linewi',2);m_gshhs('ic','color',[.5 .5 .5]) % 中等分辨率海岸線
m_gshhs('ir2','color','b')   % 中等分辨率河流
m_grid('box','fancy','tickdir','in','gridlines','no','fontsize',12)

示例2 : 使用真實數據繪制風羽圖,示例數據可以從網盤獲取,提取碼:x2y7

clc;clear
iday=156;   % the day to show% use ncdisp(filename) to discover file contents...lat=ncread('uwnd.10m.gauss.2017.nc','lat');
lon=ncread('uwnd.10m.gauss.2017.nc','lon');
[LN,LT]=meshgrid(lon,lat);mtime=ncread('uwnd.10m.gauss.2017.nc','time')/24+datenum(1800,1,1,0,0,0);
u=ncread('uwnd.10m.gauss.2017.nc','uwnd',[1,1,iday],[192,94,1]);
v=ncread('vwnd.10m.gauss.2017.nc','vwnd',[1,1,iday],[192,94,1]);
prate=ncread('prate.sfc.gauss.2017.nc','prate',[1,1,iday],[192,94,1]);m_proj('miller','lon',[100 260],'lat',[0 65]);
m_coast('patch',[.8 .8 .8]);
hold on 
[CS,CH]=m_contourf(LN,LT,prate'*1e3,[0.05:.05:.7],'edgecolor','none');
m_windbarb(LN,LT,u' ,v',2,'units','m/s','linewi',1,'color','r');
hold off;
m_grid('box','fancy','tickdir','out');ax=m_contfbar([.3 .7],.05,CS,CH);
set(ax,'fontsize',12)
xlabel(ax,'Mean Daily Precipitation Rate/(kg/m^2/s)');title(['North Pacific Surface Winds : ' datestr(mtime(iday))],'fontsize',16);colormap(flipud(m_colmap('Blues')))

3. 總結

?? 本篇介紹了m_map中繪制風羽圖(m_windbarb)和繪制矢量(m_vec)場的兩個函數,通過示例展示了各函數的基本用法,對于繪制常見地學圖已經夠用了,后面若發現還有其它相關函數再進行補充希望對繪圖的你有所幫助






😜
😜😜
😜😜😜😜

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

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

相關文章

【python重復元素判定】

在Python中,判定一個序列(如列表、元組等)中是否存在重復元素,可以通過多種方法實現。這里列出幾種常用的方法: 1. 使用集合(Set) 集合是一個無序的、不包含重復元素的數據結構。將序列轉換為…

QT信號量與槽

文章目錄 概述用系統生成新增一個信號量和槽代碼方式信號量和槽的宏信號量和槽都用函數地址lamda表達式函數指針 槽和信號量函數信號量槽 小結 概述 這個內容是QT獨有的,寫的挺有意義的。之前寫過一篇QT slots的函數,思來想去,覺得不是那么有…

python-22-零基礎自學python-數據分析基礎 打開文件 讀取文件信息

學習內容:《python編程:從入門到實踐》第二版 知識點: 讀取文件 、逐行讀取文件信息等 練習內容: 練習10-1:Python學習筆記 在文本編輯器中新建一個文件,寫幾句話來總結一下你至此學到的Python知識,其中…

代碼隨想錄:貪心2-4

455.分發餅干 題目 假設你是一位很棒的家長,想要給你的孩子們一些小餅干。但是,每個孩子最多只能給一塊餅干。 對每個孩子 i,都有一個胃口值 g[i],這是能讓孩子們滿足胃口的餅干的最小尺寸;并且每塊餅干 j&#xff…

考CISP,不要踩坑的幾點建議

當你立志要在信息安全領域闖出一片天,可能多少都會聽行內人說,搞本CISP。但這個認證究竟該怎么拿?需要培訓嗎?培訓又是怎么一回事?價格如何?還有,什么時候開始準備最好?這些問題可能…

C++ Lambda表達式第一篇, 閉合(Closuretype)

C Lambda表達式第一篇, 閉合Closuretype ClosureType::operator()(params)auto 模板參數類型顯式模板參數類型其他 ClosureType::operator ret(*)(params)() lambda 表達式是唯一的未命名,非聯合,非聚合類類型(稱為閉包類型&#…

【實習問題記錄】Nodeclub本地部署

問題描述 在按照官方網站給出的教程一步一步操作以后發現出現以下報錯: 問題分析 顯示連接不上mongodb,分析報錯可能是因為版本不匹配導致的,查看安裝的mongodb版本發現是7.0.4,與目標版本不匹配,同時查看mongodb官…

我們所熟知的meme梗圖也可以用AI生成了,老外都玩壞了。

meme梗圖不知道大家看到過嘛?相信你們看見下面的圖你就會大叫“臥槽”,原來是這種圖,我以前經常狂刷不止,太有趣了。 其實meme是一個網絡流行語,可譯為模因。在大眾非學術范圍內也可翻譯為我們所熟知的“梗”。其中“表…

SDK環境的安裝(測試使用)

1、安裝 將文件解壓至目錄,我的目錄為:D:\Program Files\Android 解壓后如下: 下載鏈接如下: sdk下載 提取碼見文章最后: 2、配置環境 1、在環境變量中,選擇系統變量,點擊新建。 變量名:ANDROID_HOME 變量值:“你自己的android-sdk安裝路徑” (例如我的:D:\Pro…

CF1955C Inhabitant of the Deep Sea 題解

題目 模擬 首先想到模擬。 但是看到數據范圍&#xff0c;模擬不了。 #include<bits/stdc.h> #include<cstring> #include<queue> #include<set> #include<stack> #include<vector> #include<map> #define int long long #define …

如何在 Linux 中高亮顯示日志關鍵字

在 Linux 系統中&#xff0c;實時查看日志文件通常使用 tailf 命令&#xff0c;但 tailf 本身并不支持高亮顯示關鍵字功能。通過結合 grep、sed 等工具&#xff0c;我們可以實現日志關鍵字高亮。本文將介紹幾種高效的方法來實現這一目標。 方法一&#xff1a;使用 grep --color…

人機交互中有許多不滿足緊致性條件的地方

緊致性條件通常用于描述拓撲空間的性質。一個拓撲空間被稱為緊致的&#xff0c;如果它的任意開覆蓋都有有限子覆蓋。換句話說&#xff0c;對于任何開覆蓋&#xff0c;都可以從中選取有限個開集&#xff0c;它們的并仍然覆蓋整個空間。 滿足緊致性條件的方法通常包括以下幾種&am…

7月8日 四道經典單鏈表oj題

大家好呀&#xff0c;本博客目的在于記錄暑假學習打卡&#xff0c;后續會整理成一個專欄&#xff0c;主要打算在暑假學習完數據結構&#xff0c;因此會發一些相關的數據結構實現的博客和一些刷的題&#xff0c;個人學習使用&#xff0c;也希望大家多多支持&#xff0c;有不足之…

CSS--表格自適應寬度并設置最小寬度

原文網址&#xff1a;CSS--表格自適應寬度并設置最小寬度_IT利刃出鞘的博客、-CSDN博客 簡介 本文介紹怎樣讓HTML的表格自適應寬度。 Java技術星球&#xff1a;way2j.com 問題描述 默認樣式下&#xff0c;表格會出現某一列很窄的情況&#xff1a; 代碼&#xff1a; <h…

Redission 解鎖異常:attempt to unlock lock, not locked by current thread by node id

標題&#xff1a;解鎖異常&#xff1a;Redission中的"attempt to unlock lock, not locked by current thread by node id"問題分析與解決方案 在分布式系統中&#xff0c;鎖是常用的同步機制&#xff0c;用于保護共享資源&#xff0c;避免并發沖突。Redission是一個…

java-多線程 2

### 7. 線程池 線程池是管理和復用線程的機制&#xff0c;可以避免頻繁創建和銷毀線程的開銷。Java 提供了 Executor 框架來管理線程池。 #### 7.1 使用 Executors 工廠類 Executors 工廠類提供了一些靜態方法&#xff0c;用于創建常見類型的線程池。 java import java.uti…

[240708] 中國 AI 企業在世界人工智能大會上展現韌性與創新

目錄 中國 AI 企業在世界人工智能大會上展現韌性與創新 中國 AI 企業在世界人工智能大會上展現韌性與創新 中國科技公司在本周上海舉行的世界人工智能大會上展現出強大的韌性和創新能力。超過150 種 AI 相關產品和解決方案在大會上展出&#xff0c;包括商湯科技、華為、科大訊…

電機工廠MES系統-提升生產效率與質量的關鍵

本文將詳細介紹萬界星空科技電機行業MES系統的特隨著電機行業的快速發展&#xff0c;生產管理的復雜性和精細度日益提高。為了應對這一挑戰&#xff0c;萬界星空科技MES&#xff08;制造執行系統&#xff09;解決方案&#xff0c;為電機行業帶來了前所未有的生產管理變革。點、…

Elasticsearch 分析器(Analyzer)的作用和配置

在Elasticsearch中&#xff0c;分析器&#xff08;Analyzer&#xff09;是文本處理的核心組件&#xff0c;它負責將輸入的文本轉換為可用于搜索和索引的詞項&#xff08;tokens&#xff09;。這一過程涉及多個步驟&#xff0c;包括字符過濾、分詞和標記過濾&#xff0c;共同決定…

js替換對象內部的對象名稱或屬性名稱-(第二篇)遞歸

1.代碼示例&#xff1a; function replaceKey(obj, oldKey, newKey) {// 如果不是對象或者oldKey不存在&#xff0c;直接返回原對象if (typeof obj ! object || !obj || !(oldKey in obj)) return obj;// 如果是數組&#xff0c;遍歷數組每個元素if (Array.isArray(obj)) {obj…