【问题标题】:Plotting data gridded by latitude and longitude绘制按纬度和经度网格化的数据
【发布时间】:2019-05-30 04:20:35
【问题描述】:

我目前正在尝试绘制网格化的 lat、lon 和 no2 数据。附件是我遇到的问题的可重现和简化版本。当我使用我附加的代码时,我收到了错误:

  Warning: Matrix dimensions must agree, not rendering mesh 

我尝试过使用:

 [X Y] = meshgrid(y,yy)

产生了错误:

 Error using checkGeolocatedDataGrid>checkMatrixSizes (line 54)
 LAT and LON dimensions do not agree with Z.

我还尝试使用 y、yy 和 yyy 对网格进行网格划分,然后使用挤压从每个变量中删除一个维度。

 clc
 clear all
 close all

 a=.5;
 b=28;
 y = a.*randn(10,1)+b;

 aa = .5;
 bb = -95;
 yy = aa.*randn(10,1)+bb;

 aaa = .3;
 bbb = .6;
 yyy = aaa.*randn(10,1)+bbb;

 figure
 lonlim = [min(yy) max(yy)]
 latlim = [min(y) max(y)]
 usamap(latlim,lonlim)
 geoshow(y,yy,yyy,'DisplayType','Surface')

我希望能够绘制这些数据,以便生成一个显示变量 3“yyy”值的图形,因为它对应于“y”和“yy”,它们是我的“纬度和经度”变量。

谢谢!

【问题讨论】:

  • 当前您的变量yyyyyy 是列向量。根据geoshow documentation,它们应该是 M x N 数组。如果我对它们执行meshgrid(),并为yyy 生成一个 10 x 10 虚拟数组,它可以正常工作。
  • 谢谢!这最终解决了我的例子!虽然这个例子并没有完全解决我的代码问题(这不是你的错!)我感谢你帮助我了解这个函数的来龙去脉!

标签: matlab plot datagrid


【解决方案1】:

最终不得不对 y 和 yy 的网格进行网格划分,然后更改 yyy 的尺寸!

clc
clear all
close all

a=.5;
b=28;
y = a.*randn(10,1)+b; % 10x10 class double

aa = .5;
bb = -95;
yy = aa.*randn(10,1)+bb; % 10x10 class double

aaa = .3;
bbb = .6;
yyy = aaa.*randn(10,10)+bbb; % 10x10 class double

[y, yy] = meshgrid(y,yy)

figure
lonlim = [min(yy) max(yy)]
latlim = [min(y) max(y)]
%usamap(latlim,lonlim)
geoshow(y,yy,yyy,'DisplayType','texturemap');
shading interp


 contourcbar

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 2012-04-19
    相关资源
    最近更新 更多