爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 12070|回复: 7

[程序设计] matlab绘制亮温图出现错误

[复制链接]

新浪微博达人勋

发表于 2019-11-20 22:31:36 | 显示全部楼层 |阅读模式

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

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

x
这里面出现了覆盖图像,如何去掉呢?程序:

clc
clear
%%  p
dir_obs=dir('G:\A201911200010165690');    %将数据存储所在的文件夹内
filename_obs=cell(length(dir_obs),1);

for i=1:length(dir_obs)
    filename_obs(i,1)={dir_obs(i).name};
end
filename='G:\A201911200010165690\';


for i=3:length(dir_obs)
    filename_obs{i,1}=strcat(filename,filename_obs{i,1});
end

for i=9:9
    %  9.10.11数据异常
    % 读取数据HDF FY_3D MWTS传感器

    filename=filename_obs{i,1};
    fileInfo = h5info(filename);% 查看数据里面有哪种类型的数据
    latitude=double(hdf5read(filename,'./Geolocation/Latitude'));     %纬度数据
    longitude=double(hdf5read(filename,'./Geolocation/Longitude'));   %经度数据
    T_earth=double(hdf5read(filename,'./Data/Earth_Obs_BT'));
    T_earth=T_earth/100;
    T_earth1=T_earth(:,:,1);     % 亮温

    %m_proj('lambert','lat',[-90,90],'long',[-180,180]);
    m_proj('miller','lat',[-90,90]);  



       m_pcolor(longitude,latitude,T_earth1);

    %m_scatter(lon1,lat1,T_eart1);
    %m_contourf(longitude,latitude,T_earth1);
    shading interp ;
    colormap('jet');
    hold on
    m_coast();
    m_grid('linestyle',':','tickdir','out','fontsize',11);

    colorbar('location','southoutside');

end

一个时刻的亮温图

一个时刻的亮温图
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-11-21 12:31:38 | 显示全部楼层
为啥 pcolor用for循环画图。中间hold on了,肯定叠加了图层。清楚图像用 clf
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-11-21 19:24:20 | 显示全部楼层
学习渣渣 发表于 2019-11-21 12:31
为啥 pcolor用for循环画图。中间hold on了,肯定叠加了图层。清楚图像用 clf

不过我画图的时候,将数据单独拎出来画图,就会出现横线遮盖,for循环是我用了读取多个文件,不断的画图的
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-11-21 21:55:15 | 显示全部楼层
nuii哈哈哈 发表于 2019-11-21 19:24
不过我画图的时候,将数据单独拎出来画图,就会出现横线遮盖,for循环是我用了读取多个文件,不断的画图 ...

具体问题不清楚,我觉得也有可能是数据处理的时候的问题。因为 matlab 这个是从 -180 到 180 的,如果默认数据是 0-360 的,有可能处理的时候直接填色了一个长条形格子。你看图上一层一层的都是同一个颜色值。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-2-25 15:04:49 | 显示全部楼层
请问下T_earth=T_earth/100;这里为什么除以100啊
    T_earth1=T_earth(:,:,1);     这里为什么取第一通道的亮温啊,1-15的分别取和用吗
如果要显示某经纬度范围内的亮温,怎么弄呢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-2-26 15:26:32 | 显示全部楼层
cx-maggie 发表于 2021-2-25 15:04
请问下T_earth=T_earth/100;这里为什么除以100啊
    T_earth1=T_earth(:,:,1);     这里为什么取第一通道 ...

除以100,是因为本身数据存储的时候回放大100倍,正常温度都是几百K,所以要观察一下数据。这里我只是随便取一个通道画图。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-3-1 09:04:23 | 显示全部楼层
nuii哈哈哈 发表于 2021-2-26 15:26
除以100,是因为本身数据存储的时候回放大100倍,正常温度都是几百K,所以要观察一下数据。这里我只是随 ...

请问下这个温度画出来是对的吗?为什么在同纬度上的大部分地区温度都没变,海陆温度没有差异?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-3-2 20:01:23 | 显示全部楼层
cx-maggie 发表于 2021-3-1 09:04
请问下这个温度画出来是对的吗?为什么在同纬度上的大部分地区温度都没变,海陆温度没有差异?

看你看的是那一层数据吧,如果是地表肯定会变,但如果是高层的,其实温度差异就比较小了。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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