手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

Matlab的网格化

时间:2024-10-14 21:09:48

1、在获取数据过程中,一般得到的数据是XYZ格式(或经纬度+属性),或者说是txt格式的,但是我们展示的时候一般是用平面图或者三维图的形式,这样看着方便。

2、给出三列数据,经纬度+属性。首先要了解数据的范围,根据数据范围制定需要作图的区域。还要根据自己需要的精度和属性数据的点位数来确定网格大小。这里也可以使用linspace命令来确定网格的多少。多数情况下,是根据自己的需求计算经纬度的网格大小。

Matlab的网格化

3、这里我们作为范例,选择了100.lon = linspace(max(xyz1(:,1)),min(xyz1(:,1)),100);lat = li荏鱿胫协nspace(max(xyz1(:,2)),min(xyz1(:,2)),100);然后将经纬度进行网格化。我使用了比较笨的方法:for j = 1:100lon(j,:) = lon(1,:);lat(:,j) = lat(:,1);end

Matlab的网格化
Matlab的网格化

4、接着就可以使用原先的XYZ数据进行网格化。z所鼙艘疯z = griddata(xyz1(:,1),xyz1(:,2),xyz1(:,3),lon,lat);这里大家看图可知,在所做的网格内,如果超出了原始数据的范畴,最终得到的属性数据就会缺失。也就是说网格内的数据为空,作图的时候也不会有显示。

Matlab的网格化

5、下面我们做一张平面图看看效果。contourf(lon,lat,zz,5);

Matlab的网格化

6、这里给出的效果不是太好,主要与我在网上下载的数据有关,大家有兴趣可以找一些质量较好的数据进行成图,观察最终的效果。另外,还可以使用geoshow命令加入shp文件。

© 手抄报圈