爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 16812|回复: 29

[netcdf] ECMWF的NetCDF风速数据处理问题

[复制链接]

新浪微博达人勋

发表于 2015-8-30 15:46:29 | 显示全部楼层 |阅读模式

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

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

x
我下载了ECMWF数据,希望获取各个高度层的风速,读取信息,发现u和v的Attribute里面有scale_factor和offset,请问大家这是需要进行线性拟合的意思么?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-30 16:17:50 | 显示全部楼层
ncread读取时已经进行了转换。不需要担心这个问题。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-30 17:19:37 | 显示全部楼层
short to fit
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-8-31 09:50:30 | 显示全部楼层
kongfeng0824 发表于 2015-8-30 16:17
ncread读取时已经进行了转换。不需要担心这个问题。

不太确定,感觉直接读取的数据有偏置。你看我这样读取,该采取哪种处理方式。

D:\Desktop\qingkai.wei\Desktop\2015-08-31_094555.jpg
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-8-31 09:51:24 | 显示全部楼层
kongfeng0824 发表于 2015-8-30 16:17
ncread读取时已经进行了转换。不需要担心这个问题。

不太确定,感觉直接读取的数据有偏置。你看我这样读取,该采取哪种处理方式。
  1.     ncinfo(datafilename);
  2.     ncdisp(datafilename);
  3.     ncid = netcdf.open(datafilename,'NC_NOWRITE');
  4.     [numdims, numvars, numglobalatts, unlimdimID] = netcdf.inq(ncid);
  5.     for i=0:numvars-1
  6.         [varname{i+1}, xtype, varDimIDs, varAtts] = netcdf.inqVar(ncid,i);
  7.         varid(i+1)  = netcdf.inqVarID(ncid,varname{i+1});
  8.         data        = netcdf.getVar(ncid,varid(i+1));
  9.         name        = ['data_',varname{i+1}];
  10.         eval([name '=data;']);
  11.         if strcmp(varname{i+1},'u')
  12.             attname1 = netcdf.inqAttName(ncid,i,0);                         % u scale_factor
  13.             u_factor = netcdf.getAtt(ncid,i,attname1);
  14.             attname2 = netcdf.inqAttName(ncid,i,1);                         % u add_offset
  15.             u_offset = netcdf.getAtt(ncid,i,attname2);
  16.             data_uu   = double(data_u) * u_factor + u_offset;
  17.         end
  18.         if strcmp(varname{i+1},'v')
  19.             attname1 = netcdf.inqAttName(ncid,i,0);                         % v scale_factor
  20.             v_factor = netcdf.getAtt(ncid,i,attname1);
  21.             attname2 = netcdf.inqAttName(ncid,i,1);                         % v add_offset
  22.             v_offset = netcdf.getAtt(ncid,i,attname2);
  23.             data_vv   = double(data_v) * v_factor + v_offset;
  24.         end
  25.     end
复制代码
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-8-31 09:51:49 | 显示全部楼层

请问这是什么意思
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-31 11:50:39 | 显示全部楼层
SailorWEI 发表于 2015-8-31 09:51
请问这是什么意思

EC需要转换的,转成浮点型
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-31 20:54:09 | 显示全部楼层
我在欧洲气象中心下载的数据,为什么我取180E-180W,90N-90S,0.75*O.75得到的数据点却是480*241,不应该是480*240吗?真的不懂啦,求大神介绍啊,我才接触这个
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-8-31 22:27:12 | 显示全部楼层
andrewsoong 发表于 2015-8-31 11:50
EC需要转换的,转成浮点型

这个我注意到了 是int16.
我的问题是是否需要利用scale_factor和add_offset进行修正呢?

D:\Desktop\qingkai.wei\Desktop\aa.bmp
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-8-31 22:27:54 | 显示全部楼层
SailorWEI 发表于 2015-8-31 22:27
这个我注意到了 是int16.
我的问题是是否需要利用scale_factor和add_offset进行修正呢?

file:///D:/Desktop/qingkai.wei/Desktop/aa.bmp
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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