15 - matlab m_map地學繪圖工具基礎函數 - 一些數據轉換函數(二)
- 0. 引言
- 1. 關于m_geodesic
- 2. 關于mygrid_sand2
- 3. 結語

0. 引言
?? 通過前面篇節已經將m_map繪圖工具中大多繪圖有關的函數進行過介紹,已經能夠滿足基本的繪圖需求,本節介紹下m_map中關于提取數據的兩個函數,在特定應用場景下也是極為重要的。首先介紹下面幾種數據轉換函數:。
1. 關于m_geodesic
?? m_geodesic
函數用于計算大圓航線或大圓弧的坐標點。大圓航線是地球表面上兩點之間的最短路徑,而大圓弧是大圓航線在地球表面上的投影。
m_geodesic函數
的基本用法:
[lat, lon] = m_geodesic(lat1, lon1, lat2, lon2, npts)
其中:
lat1 和 lon1
是起始點的緯度和經度。
-lat2 和 lon2
是終點的緯度和經度。npts
是用于近似大圓弧的點的數量。
?? 這個函數返回一個列向量 lat 和一個列向量 lon,它們包含了大圓航線或大圓弧上的坐標點的緯度和經度。
?? 例如,假設你想要在地圖上繪制從紐約(40.7128° N,74.0060° W)到洛杉磯(34.0522° N,118.2437° W)的大圓弧,你可以使用 m_geodesic 函數來計算坐標點,然后使用 plot 函數將其繪制出來。
clc;clear;
lat1 = 40.7128; lon1 = -74.0060; % 紐約
lat2 = 34.0522; lon2 = -118.2437; % 洛杉磯
npts = 100; % 用于近似的點的數量% 計算大圓弧上的坐標點
[lat, lon] = m_geodesic(lon1,lat1, lon2,lat2, npts);% 繪制大圓弧
plot(lon, lat, 'r', 'LineWidth', 2);

?? 這段代碼計算了從紐約到洛杉磯的大圓弧上的坐標點,并使用 plot 函數將其繪制為一條紅色的曲線。
2. 關于mygrid_sand2
?? mygrid_sand2函數
用于提取經緯度范圍內的水深數據。
[image_data,vlat,vlon] = mygrid_sand2(region,ssfname)
% MYGRID_SAND2 Read bathymetry data from Sandwell Database
% [Z,LAT,LON] = MYGRID_SAND2(REGION) extracts data from
% the Sandwell and Smith bathymetry, which is now at 1-minute
% resolution.
%
%
% WARNING: change ssfname and ssversion to the correct one for
% your machine
%
% Catherine de Groot-Hedlin
% modified Rich Pawlowicz
%
% latitudes must be between -80.738 and 80.738;
% input:
% REGION =[west east south north];
% output:
% Z - matrix of sandwell bathymetry/topography
% LAT - vector of latitudes associated with image_data
% LON - vector of longitudes
?? 其中,region
為研究區四至;ssfname
數據源路徑,需要注意數據的是否匹配。
mygrid_sand2
函數使用示例:
Ulo1 = [-90,-68]; % 經緯度范圍大致是美國東海岸的地形水深范圍
Ula1 = [30,42];
m_proj('mercator','long',Ulo1,'lat',Ula1); % 繪圖前需指定投影方式與范圍[Sele,Sla,Slo] = mygrid_sand2([-90 -68 30 42]);
figure()
%m_contour(Slo-360,Sla,Sele); % 西半球270轉化為-90度,以此類推
m_contourf(Slo-360,Sla,Sele); % 西半球270轉化為-90度,以此類推{contourf效果更好}
m_grid('box','fancy','tickdir','in','gridlines','no','fontsize',12)colorbar

3. 結語
?? 本篇介紹了讀取Sandwell
和Smith
測深文件的函數(mygrid_sand2
)和獲取橢球測地線的點的函數(m_geodesic),通過示例展示了各函數的基本用法,對于繪制常見地學圖已經夠用了,后面若發現還有其它相關函數再進行補充。希望對繪圖的你有所幫助
😜
😜😜
😜😜😜😜