[讨论] 画等高线问题

楼主: iamclaudiaa (claudia)   2014-07-01 13:47:21
各位好
又来问问题了..
我想画出这种图http://ppt.cc/vDSG
目前有经度、纬度、CO2浓度的资料
在地图上画出CO2的等高线图
已经画出台湾地图了
但等高线的部分一直试不出来..
我的资料如下
LAT LON CO2
24.1 120.1 400
24.2 120.2 405
24.3 120.3 410
.
.
.
.
.
共有十几万笔
我目前用的语法是
[LatGrid, LonGrid] = meshgrid(linspace(min(LAT), max(LAT)), linspace(min(LON),
CO2Grid = griddata(LAT, LONG, CO2, LatGrid, LonGrid);
contourm(LatGrid, LonGrid, CO2Grid);
但是画出来的图有点奇怪
可能是因为用linspace之后使得我的数据点不够
(用griddata出来后有一大部分的资料是NAN)
所以画出来的等高线图只有一小部分
但把间距改小一点的话电脑又跑不太动....
请问有没有人知道这种图需要如何画
谢谢各位~^^
作者: prolog (波卡)   2014-07-02 13:25:00
imagesc?
作者: sin55688 (单手挑藏獒)   2014-07-02 13:53:00
没实际作,我能帮的也不多,给你些建议1. 有关NAN的部分,或许不能出现。没记错他的算法是用内插法,NaN会导致内插不出值,画出来也不准。建议把NaN部分,自行用简单内插法补满。2. Contour 可以调你要画的等高值,你可以缩你要画的数量例如你只想显示0,0.1,0.3,不要用默认的,越多越慢
楼主: iamclaudiaa (claudia)   2014-07-02 20:13:00
感谢~~~我再试试看把nan用掉的结果好了!^^
作者: sin55688 (单手挑藏獒)   2014-07-03 00:15:00
如果想画范例的图的话,势必要有每个格点的CO2值。但如果只想要局部的等高图的话,当然不用。但Matlab有没能避开NaN的参数(countour的)就不知道了。

Links booklink

Contact Us: admin [ a t ] ucptt.com