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

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9230|回复: 4

[程序设计] 国外双偏振雷达产品数据处理

[复制链接]

新浪微博达人勋

发表于 2017-7-10 10:18:07 | 显示全部楼层 |阅读模式

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

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

x
*C程序转换为MATLAB程序,主要是C不熟啊,备注中是C的相关信息,感兴趣的可以下载附件看看

cart_version=fread(fid,16,'uint8=>char'); %正确    char       char        %s
proc_version=fread(fid,32,'uint8=>char');%正确     char       char        %s
zphi_version=fread(fid,16,'uint8=>char');%正确     char       char        %s
headerSize=fread(fid,1,'uint16')/256;%正确 (128) u_int16_t   int        %d
DataType=fread(fid,1,'uint16')/256; %正确(17)    u_int16_t   int        %d
ProjType=fread(fid,1,'uint16')/256;%正确( 2 )      u_int16_t   int        %d
pad_0=fread(fid,2,'uint8');
UTCDateTime=datestr(fread(fid,1,'uint32')); %      u_int32_t  time_t      
%time_t这个是C语言读取时间的命令,MATLAB大概和datestr对应吧 总之是读错了
%C中输出结果 以及定义格式
%tim = (time_t) hr.UTCDateTimeEnd;
%strftime(datetime, 128, "%d/%m/%Y %H:%M:%S", gmtime(&tim));
%fprintf(stdout, "UTCDateTimeEnd  = %s\n", datetime);
%datestr;datenum;

nX=fread(fid,1,'uint16')/256;           % u_int16_t       int       %d   明明和上面的一样headerSize 一样,但是读出来的数据却是错的
dX=0.001*fread(fid,1,'uint16')/256; % u_int16_t       float     %f
Xoffset=0.001*fread(fid,1,'int32');   % int32_t         float     %f
nY=fread(fid,1,'uint16')/256;          % u_int16_t       int       %d   同nX一样,是错的
dY=0.001*fread(fid,1,'uint16')/256; % u_int16_t       float     %f
Yoffset=0.001*fread(fid,1,'int32');   % int32_t         float     %f
radarLat=0.001*fread(fid,1,'int32'); % int32_t         float     %f
radarLon=0.001*fread(fid,1,'int32'); % int32_t         float     %f
radarXPos=0.001*fread(fid,1,'int32');% int32_t        float     %f
radarYPos=0.001*fread(fid,1,'int32');% int32_t        float     %f
blockSize=fread(fid,1,'int8');            % int8_t         char      %f      2 正确
pad_1=fread(fid,3,'uint8');   
UTCDateTimeEnd=fread(fid,1,'uint32');  % u_int32_t  time_t
realAccTime=fread(fid,1,'uint32');         % u_int32_t  int  %d
timeForecast=fread(fid,1,'uint32');        % u_int32_t  int  %d
nb_parent_files=fread(fid,1,'uint16')/256; % u_int16_t  int  %d     2正确
pad_2=fread(fid,2,'uint8');
fseek(fid, 128, -1);%数据块部分
ftell(fid);
%n=nX*nY;
n=361*361;
us_tab=fread(fid,n,'uint16');%%根本没有361*361这么多的数据,是什么问题?
A=find(us_tab(:)>=65533);
us_tab(A)=nan;
us_tab=double(us_tab-1)/250.;
us_tab=reshape(us_tab,361,361);
%%源程序是C的,但是不会用C批处理啊,如果能搞定批处理输出数也是极好的

问题.rar

1.26 MB, 下载次数: 13, 下载积分: 金钱 -5

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

新浪微博达人勋

 楼主| 发表于 2017-7-10 10:20:01 | 显示全部楼层
读到的数据都是错的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-12-27 20:16:09 | 显示全部楼层
你好,我想问一下,我手里的也是双偏振雷达,里面有两个参数分别是  本层扫描线水平方向的点数、本层扫描线垂直方向的点数,我读取到的分别是16008和2000,请问您知道这两个数值和径向数据块的基数据格式有关系吗?刚接触雷达,有点懵,求指教!!!感谢!!!!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-12-31 19:56:39 | 显示全部楼层
姐妹,能加个联系方式交流一下吗,我的问题和你一模一样,现在真的对双偏振雷达手足无措,求请教!我的qq:2081361726
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-1-26 09:19:02 | 显示全部楼层
张张要努力学习 发表于 2020-12-27 20:16
你好,我想问一下,我手里的也是双偏振雷达,里面有两个参数分别是  本层扫描线水平方向的点数、本层扫描线 ...

请问问题解决了吗求教
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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