操作栅格数据

有一些操作如属性的逻辑操作、表面特性的计算等使用栅格数据更合适。下面介绍矢量数据和栅格数据的转换。[大谦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列。