如何显示我在地图的输出数据。

25日视图(30天)
德文德拉
德文德拉 2014年6月10日
先生我想把自己的输出数据的地图。请帮助我。如何做到这一点。先生i have 8 years annual time series of rainfall frequency and sir my data size is (20x22x8)(lon,lat,time).
提前谢谢你。请先生帮我。

接受的答案

凯利卡尼
凯利卡尼 2014年6月12日
编辑:凯利卡尼 2014年6月12日
我现实不应该给你答案,因为你已经证明自己绝对没有努力创建这个阴谋。但是我在工作无聊等待一些模拟完成,所以这是你的幸运日。
首先,我假设您已经有一个shapefile控股印度边界,并且您拥有x的光栅网格(朗),y (lat), z坐标。同时,我假设你的数据网格不是已经削减到印度边境。
第一个应急的方法是简单地面具边境外的数据点:
文件=“TM_WORLD_BORDERS-0.3.shp”;
S = shaperead(文件,“usegeocoords”,真的,“选择器”,
{@ (x)比较字符串(x,“印度”),“名字”});
x = linspace (min (S.Lon), max (S.Lon), 100);
y = linspace (min (S.Lat), max (S.Lat), 100);
(x, y) = meshgrid (x, y);
z =兰德(100);
isin = inpolygon (x, y, S.Lon S.Lat);
z2 = z;
z2 (~ isin) =南;
图(“颜色”,' w ');
worldmap (“印度”);
pcolorm (y, x, z2);
plotm (S。Lat, S.Lon“k”);
你会发现事情变得有点锯齿状边缘,。你可以得到一个更清洁的地图绘制的所有数据,然后用多边形覆盖,掩盖了所有但你感兴趣的地区。(或在这种情况下,多边形,因为无论是geoshow还是patchm往往与多边形孔):
lnlim = (65 - 100);
ltlim = 40 [5];
ltlim lt = linspace (ltlim (1), (2), 3);
lnlim ln = linspace (lnlim (1), (2), 3);
2 = 1:2
ltbox {2} = lt ((1 2 2 1 1) + (ii-1));
lnbox {2} = ln ([1 1 2 2 1]”+ (ii-1));
结束
[lnmask, ltmask] =交易(细胞(2));
2 = 1:2
jj = 1:2
[lnmask {ii, jj}, ltmask {ii, jj}] = polybool (“- - -”,
ltbox lnbox {2}, {jj}, S。朗,S.Lat);
结束
结束
ltboxall = ltlim ([1 2 2 1 1]);
lnboxall = lnlim ([1 1 2 2 1]);
[lnmaskall, ltmaskall] = polybool (“- - -”,ltboxall lnboxall年代。朗,S.Lat);
图(“颜色”,' w ');
worldmap (“印度”);
pcolorm (y, x, z);
2 = 1:4
lnmask patchm (ltmask {2}, {2},' w ',“edgecolor”,“没有”);
结束
plotm (ltmaskall lnmaskall,“k”);
9日评论
Srishti白肢野牛
Srishti白肢野牛 2018年5月3日
亲爱的凯利卡尼,如何使多个插曲一样吗?我试过,但不能做的事情。谢谢你!

登录置评。

更多的答案(3)

大卫·桑切斯
大卫·桑切斯 2014年6月10日
你可以看看在Matlab演示文档。你会发现很多工作示例数据表示,像这样:
z =山峰(25);
冲浪(z);
colormap(飞机);
适应您的数据的例子。
5个评论
德文德拉
德文德拉 2014年6月10日
编辑:德文德拉 2014年6月11日
先生没有必要的高分辨率的地图,但问题是,如何做这件事的。

登录置评。


大卫·桑切斯
大卫·桑切斯 2014年6月11日
你必须展示你的数据:
XXYY] = meshgrid (X1,Y1);
z = ltm (:,: 1);
冲浪(XX, YY, z ')
包含(“XX”)
ylabel (“YY”)
视图(90 [0])
11日评论
德文德拉
德文德拉 2014年6月12日
geoshow(“地图。轴马力”、“FaceColor”, [0.9 0.9 0.9])
这段代码是情节印度地图,但我不知道下一步。我也读到contourfm但将如何使用这个函数输出数据我不知道。

登录置评。


peterhack
peterhack 2016年11月11日
我有一个问题在上面的例子中,我将利用这个线程,希望是好的。我使用了代码来掩盖边境外的数据点。到目前为止工作正常。然而,我想要使用 DisplayType表面 。因此我用geoshow绘制数据。不幸的是,它没有边界内填满整个地图作为一个缓冲区。有提示吗?
文件=“TM_WORLD_BORDERS-0.3.shp”;
S = shaperead(文件,“usegeocoords”,真的,“选择器”,
{@ (x)比较字符串(x,“印度”),“名字”});
x = linspace (min (S.Lon), max (S.Lon), 100);
y = linspace (min (S.Lat), max (S.Lat), 100);
(x, y) = meshgrid (x, y);
z =兰德(100);
isin = inpolygon (x, y, S.Lon S.Lat);
z2 = z;
z2 (~ isin) =南;
lnlim = (65 - 100);
ltlim = 40 [5];
ltlim lt = linspace (ltlim (1), (2), 3);
lnlim ln = linspace (lnlim (1), (2), 3);
2 = 1:2
ltbox {2} = lt ((1 2 2 1 1) + (ii-1));
lnbox {2} = ln ([1 1 2 2 1]”+ (ii-1));
结束
[lnmask, ltmask] =交易(细胞(2));
2 = 1:2
jj = 1:2
[lnmask {ii, jj}, ltmask {ii, jj}] = polybool (“- - -”,
ltbox lnbox {2}, {jj}, S。朗,S.Lat);
结束
结束
ltboxall = ltlim ([1 2 2 1 1]);
lnboxall = lnlim ([1 1 2 2 1]);
[lnmaskall, ltmaskall] = polybool (“- - -”,ltboxall lnboxall年代。朗,S.Lat);
图(“颜色”,' w ');
worldmap (“印度”);
geoshow (y, x, z2,“DisplayType”,“表面”)
contourcmap (“喷气机”分钟(z): 1:马克斯(z),“colorbar”,“上”,“位置”,“水平”)
2 = 1:4
lnmask patchm (ltmask {2}, {2},' w ',“edgecolor”,“没有”);
结束
plotm (ltmaskall lnmaskall,“k”);

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!