matlab绘制地理栅格数据示例

来源:互联网 发布:帝国cms英文语言包 编辑:程序博客网 时间:2024/05/18 14:43

matlab绘制地理栅格数据(raster data)示例和简单介绍.

一、使用georasterref:

Z = [1 2 3 4 5 6; 7 8 9 10 11 12; 13 14 15 16 17 18];%地理数据3*6R = 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;clcload 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。


原创粉丝点击