爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5330|回复: 2

[程序设计] 读取micaps第11类数据,绘制风速图不一样,请教各位大神?

[复制链接]

新浪微博达人勋

发表于 2019-4-28 21:49:25 | 显示全部楼层 |阅读模式

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

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

x
这两个图片完全不一样,请教各位了?我把绘图程序发上来。
clear
clc
filename='Y:\20190419\high\uv\850\19041908.000';
%%
%地图数据读取
ma=shaperead('D:\data\data_resouse\shp\China\bou2_4m\bou2_4l');
LON=[ma(:).X]; % 提取经度
LAT= [ma(:).Y]; % 提取纬度
%%
dia=diamond11(filename)
lat_num=dia.latgrinum;
lon_num=dia. longrinum;
latbeg=dia.latbeg;
latend=dia.latend;
lonbeg=dia.lonbeg;
lonend=dia.lonend;
latdis=dia.latdis;
londis=dia.londis;
uu    = dia.datau;
vv    =dia.datav;


Lat=[latbeg:latdis:latend];%%原始数据维度

Lon=[lonbeg:londis:lonend];%%原始数据经度
%[lon,lat] = meshgrid(lon,Lat);

[lon,lat]=meshgrid(Lon,Lat);

m_proj('lambert','lat',[10 60],'lon',[72 140]);  
m_grid('linestyle','none','tickdir','out');
hold on
m_windbarb(lon,lat,vv,uu);
%m_quiver(lon,lat,u,v)
hold on
m_plot(LON,LAT,'k-')

用到的函数为http://bbs.06climate.com/forum.p ... mp;highlight=micaps这个帖子下面的大神提供,再次感谢。
function dia=diamond11(filename)
%此函数用于读取diamond4类型数据
%filename为要读取文件的路径,由主程序按照循环生成
%*********本程序内有部分数据未使用,但是读取过程已经包含,具体对应请查看
%Micaps数据结构,如有需要可自行设置接口使用
  fid=eval(['fopen(''' filename ''')']);
  Type=fscanf(fid,'%s%s%s',3);
  Time=fscanf(fid,'%d%d%d%d%d',6);
  Pointpara=fscanf(fid,'%f%f%f%f%f%f',6);
  Linepara=fscanf(fid,'%f%f',2);
  Temp=struct('year',[],'month',[],'day',[],'hour',[],'presc',[],...
      'lev',[],'londis',[],'latdis',[],'lonbeg',[],'lonend',[],...
      'latbeg',[],'latend',[],'latgrinum',[],'longrinum',[],...
      'datau',[],'datav',[]);
  Temp.year=Time(1);
  Temp.month=Time(2);
  Temp.day=Time(3);
  Temp.hour=Time(4);
  Temp.presc=Time(5);
  Temp.lev=Time(6);
  Temp.londis=Pointpara(1);
  Temp.latdis=Pointpara(2);
  Temp.lonbeg=Pointpara(3);
  Temp.lonend=Pointpara(4);
  Temp.latbeg=Pointpara(5);
  Temp.latend=Pointpara(6);
  Temp.latgrinum=Linepara(1);
  Temp.longrinum=Linepara(2);
  n=1;
  while n<=Linepara(2)
    Temp.datau(n,:)=fscanf(fid,'%f',Linepara(1));
    Temp.datav(n,:)=fscanf(fid,'%f',Linepara(1));
    n=n+1;
  end
  dia=Temp;
end

micaps

micaps

matlab绘制

matlab绘制
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2019-4-28 21:51:42 | 显示全部楼层
不清楚到底哪里有问题,不知道哪位遇到过类似的问题
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-5-26 16:07:07 | 显示全部楼层
最后解决了吗
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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