有一些操作如属性的逻辑操作、表面特性的计算等使用栅格数据更合适。下面介绍矢量数据和栅格数据的转换。[大谦MATLAB,dqmatlab点com]
可以将纬度-经度矢量数据转换为任意精度的网格数据,然后可以使用该网格数据制作栅格图。Mapping工具箱提供了进行此类转换的图形用户界面,也可以从命令行中进行转换。矢量数据网格化的主要函数是vec2mtx。如果矢量数据由多边形组成,则网格化轮廓都是空的。可以用encodem函数离散它们。
下面的例子根据矢量数据创建数据网格。为了演示矢量数据和栅格数据的转换,从worldlo数据集中提取出瑞士的面片数据。
用extractm函数获取瑞士国界的面片数据。
code.matlab
>> close all; clear all;
>> [swlat,swlon]=extractm(worldlo('POpatch'),'Switzerland');
将网格密度设置为40单元/度,用vec2mtx函数光栅化国界,并生成它的引用矢量。
code.matlab
>> den=40;
>> [swgrid,swrv]=vec2mtx(swlat,swlon,den);
>> whos
Name Size Bytes Class
den 1x1 8 double array
swgrid 80x186 119040 double array
swlat 81x1 648 double array
swlon 81x1 648 double array
swrv 1x3 24 double array
Grand total is 15046 elements using 120368 bytes
生成的网格数据是一个double型数组,有80行,186列。