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。


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值