我正在尝试绘制u和v风速分量的流线图,以及使用geoshow覆盖在美国地图轮廓上的纬度和经度2-d数组(因此美国outlat和outlon lat / lon坐标)。我的数据看起来像4个变量:outlat,outlon,u和v都是5 X 5阵列,以方便使用。尽管我在网上看过的所有例子我都不明白outlat和outlon值与startx或X和starty或Y起点有什么关系。我的4个可变数据如下所示:
outlat =
17.4154 17.4862 17.5570 17.6278 17.6986
17.4406 17.5114 17.5822 17.6530 17.7239
17.4657 17.5365 17.6074 17.6783 17.7492
17.4908 17.5616 17.6325 17.7034 17.7744
17.5157 17.5866 17.6576 17.7285 17.7995
outlon =
-126.6557 -126.6822 -126.7086 -126.7352 -126.7617
-126.5816 -126.6079 -126.6344 -126.6608 -126.6874
-126.5074 -126.5337 -126.5600 -126.5865 -126.6129
-126.4331 -126.4594 -126.4857 -126.5120 -126.5384
-126.3588 -126.3850 -126.4113 -126.4375 -126.4639
u =
4.3284 4.2194 4.1311 4.1058 4.1257
4.2915 4.1725 4.1192 4.0914 4.1078
4.2893 4.1729 4.0948 3.9822 3.9411
4.3015 4.1781 4.0060 3.5111 3.2246
4.3201 4.1979 3.9442 2.6250 2.0477
v =
7.6193 7.5646 7.5514 7.5293 7.4777
7.5880 7.5226 7.4864 7.4412 7.3617
7.5464 7.5055 7.4640 7.3788 7.1708
7.4983 7.4718 7.4614 7.4554 6.9534
7.4479 7.4317 7.4620 7.8292 7.6354
在尝试了很多不同的尝试之后,我现在尝试了这个并继续使用美国状态地图获得一个BLANK图,并且没有使用这个MATLAB代码使用meshgrid进行简化,如下所示:
figure
ax = usamap('conus');
set(ax, 'Visible','off'); setm(ax,'mapprojection','lambert');
states = shaperead('usastatelo','UseGeoCoords', true, 'BoundingBox',... [dlonlim', dlatlim']);
geoshow(states, 'FaceColor', [1 1 1],'facealpha',0);
hold on;
x = linspace(0,10,5); y = linspace(0,10,5);
[X,Y] = meshgrid(x,y);
streamline(outlat,outlon,u,v,X,Y);
我是否需要使用stream2来帮助计算流线?我试过颤抖并得到了结果,但我需要一个简化的情节。提前谢谢!