请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5060|回复: 9

[程序设计] 对SST进行年平均后画图出现问题

[复制链接]

新浪微博达人勋

发表于 2018-12-8 21:08:49 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 zzw9701 于 2018-12-8 21:11 编辑

对日平均OISST资料进行年平均后画图程序如下:[lon,lat]=meshgrid(lon,lat);
e=[1:1:30];
[c11,h1]=m_contour(lon,lat,sst,e,'linecolor','k');
hold on;
clabel(c11,h1,'fontsize',6);
m_grid('xtick',5,'ytick',5,'tickdir','out');
hold on;
caxis([-6.0 2.0]);

画出来的图如图所示,请问这个该怎么改呢?sst的结构:82*82*1421,1421是天数,对这么多天进行平均后的二维数组。
请问我该怎么修改程序呀?

sst.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-12-8 21:57:49 | 显示全部楼层
我找到了问题,是要对SST进行翻转,用flipud对SST进行翻转。但翻转后用m_map画图出现l问题,问题如下:
错误使用 repmat
请求的 45212176x45212176 (7615018.1GB)数组超过预设的最大数组大小。创建大于此限制的数组可能需要较长时间,并且会导致 MATLAB 无响应。有关详
细信息,请参阅数组大小限制或预设项面板。

出错 meshgrid (line 58)
        xx = repmat(xrow,size(ycol));

请问我该怎么修改呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-12-9 11:27:50 | 显示全部楼层
解决了问题的我来自问自答。。。问题还是出现在之前的设置上,做平均时把INF设置为0了,INF在OISST资料中似乎是指陆地岛屿等非海洋的要素。sst的正确旋转方式sst=rot90(sst,4)。
但是遇到了另外一个问题,用m_map画图时,由于沿岸海水较冷,从而导致SST等值线在岸边会出现一团黑色,这个有什么办法解决吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-12-12 12:42:12 | 显示全部楼层
等值线的间隔可以自己调的,你可以将岸边比较密的间隔设置大一点
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-12-12 16:44:03 | 显示全部楼层
木兰公子123 发表于 2018-12-12 12:42
等值线的间隔可以自己调的,你可以将岸边比较密的间隔设置大一点

因为绘制区域的温度范围比较大,黄渤海的冷水和黑潮区域的暖水都要有所体现,但是由于海岸边缘的水温低,从而导致沿岸处等值线密集,但是沿岸水并不是研究重点,就想不画这一块比较密集的等值线,这个应该怎么实现呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-12-12 19:24:47 | 显示全部楼层
就是你可以自己定义想要显示的等值线,比如这样[c,h]=m_contourf(lon,lat,tt',[16 18 20 22:1:30]);
clabel(c,h);
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-12-12 19:32:14 | 显示全部楼层
嗷嗷,contour还可以这样用,谢谢~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-3-6 10:32:19 | 显示全部楼层
zzw9701 发表于 2018-12-8 21:57
我找到了问题,是要对SST进行翻转,用flipud对SST进行翻转。但翻转后用m_map画图出现l问题,问题如下:
错 ...

我也遇到了类似问题,但是我的sst矩阵转置之后的数据我看了看和实际是匹配的,但是contourf之后就画的颠倒了,北半球高纬度暖,低纬度冷,这是怎末一回事呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2019-3-6 20:39:27 | 显示全部楼层
ouchyydqxy 发表于 2019-3-6 10:32
我也遇到了类似问题,但是我的sst矩阵转置之后的数据我看了看和实际是匹配的,但是contourf之后就画的颠 ...

在画之前翻转一下就好了,像这样sstspr=rot90(sstspr, ),我是这样就能出图,逗号后面是1-4中的一个值,我有点忘了,你可以试一下~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-3-7 21:42:01 | 显示全部楼层
zzw9701 发表于 2019-3-6 20:39
在画之前翻转一下就好了,像这样sstspr=rot90(sstspr, ),我是这样就能出图,逗号后面是1-4中的一个值, ...

谢谢哈,我发现不同版本的matlab画出矩阵第一个点的位置是不同的,所以有的就需要flipud一下
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表