matlab繪製地理柵格數據示例

matlab繪製地理柵格數據(raster data)示例和簡單介紹.

一、使用georasterref:

Z = [1 2 3 4 5 6; 7 8 9 10 11 12; 13 14 15 16 17 18];%地理數據3*6
R = georasterref('RasterSize', size(Z), ...
   'Latlim', [-90 90], 'Lonlim', [-180 180]);%地理柵格數據參考對象(類)
figure('Color','white')
ax = axesm('MapProjection', 'eqdcylin');%設定地圖等距離圓柱投影方式
axis off%關閉本地座標軸系統
setm(ax,'GLineStyle','--', 'Grid','on','Frame','on')%指定網格線形,繪製frame框架
setm(ax,...
'MlabelLocation', 60,...%每隔60度繪製經度刻度標籤
'PlabelLocation',[-30  30],...%只在指定值處繪製緯度刻度標籤
'MeridianLabel','on',...%顯示經度刻度標籤
'ParallelLabel','on',...%顯示緯度刻度標籤
'MlineLocation',60,...%每隔60度繪製經度線
'PlineLocation',[-30  30],...%在指定值處繪製緯度線
'MLabelParallel','north' ...%將經度刻度標籤放在北方,即上部
 );
geoshow(Z, R, 'DisplayType', 'texturemap');%顯示地理數據
colormap('autumn')
colorbar
繪製的圖形如下:

對於georasterref對象,最主要的是要告訴它:

(a)柵格的大小:'RasterSize';

(b)柵格數據表示的地理範圍: 'Latlim'和'Lonlim'.

否則對於原始數據Z,無法衍射到圖形上的.

二、下面的圖使用參考向量(Reference vector).

對於參考向量,其實就是三個值,第一個值表示每個經緯度有多少個單元(cell),第2和第3個值表示數據中第一個點的經緯度座標,一般是地圖右上角的經緯度座標:

refvec = [cells-per-degree,north-lat,west-lon]

注意經度和維度的網格劃分是一樣的時候,纔可以使用參考向量!例如cells-per-degree=1,表示每隔1個經度和1個維度表示一個網格點。

clear;clc
load geoid;%地理柵格數據
load coast;%返回[lat,long],海岸線數據
figure; axesm robinson %建立地圖座標系,選擇地圖投影方式
geoshow(geoid,...
    geoidrefvec,...%使用參考向量(Reference vector.),注意有些數據庫裏面是geoidlegend
    'DisplayType','texturemap')
colorbar('southoutside')
geoshow(lat,long,'color','k')
顯示的圖像如下:

三、使用參考矩陣(Referencing Matrices):

參考矩陣是3*2的。對於二維數據Z,一般使用下面的方法生成參考矩陣:

R = makerefmat('RasterSize', size(Z),'Latlim', [-90 90], 'Lonlim', [0 360]);
指定數據Z的大小和數據的地理座標範圍即可。

或者使用下面的:

R = makerefmat(lon11, lat11, dlon, dlat)
(lon11, lat11)爲數據Z中第一個數據所代表的(在地圖中的)單元的中心座標.(dlon, dlat)表示相鄰的圖像單元中心座標之差.

根據R可以反推知道數據中第一個數據的座標爲:

[lon11, lat11] = pix2map(R,1,1)
其它數據的座標依次類推,更詳細的參考matlab help。


發佈了205 篇原創文章 · 獲贊 102 · 訪問量 198萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章