MATLAB 2D流线和美国地图坐标

时间:2017-02-17 16:31:20

标签: matlab dictionary stream

我正在尝试绘制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来帮助计算流线?我试过颤抖并得到了结果,但我需要一个简化的情节。提前谢谢!

0 个答案:

没有答案