- 积分
- 3200
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-5-10
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 夏夜 于 2014-9-9 08:40 编辑
一个sst的nc数据ncdisp之后看到如下信息:
analysed_sst
Size: 4096x2048x1
Dimensions: lon,lat,time
Datatype: int16
Attributes:
long_name = 'analysed sea surface temperature'
standard_name = 'sea_surface_temperature'
type = 'foundation'
units = 'kelvin'
_FillValue = -3.28e+04
add_offset = 273
scale_factor = 0.01
valid_min = -300
valid_max = 4.5e+03
source = 'REMSS'
然后分别用ncload和ncread读取:
ncload filename.nc 读取的analysed_sst(赋给变量sst_load) 维数是2048*4096
ncread('filename.nc','analysed_sst') 读取的 analysed_sst (赋给变量sst_read) 维数是4096*2048
这是维数有区别,也没关系,转置一下。但是sst_load和sst_read的数值竟然不相同。
区别一:sst_load中的FillValue 显示为-3.28e+04,而sst_read对应的显示为NaN
区别二:非FillValue的地方数值也不相同,大概满足下面这个关系式:
sst_load==(sst_read-add_offset)./scale_factor;
(这两者之差数量级1e-06,由于matlab计算时取的精度不同,可能会有这个误差)。
然后换了一个ssh的nc数据:
Grid_0001
Size: 721x1440
Dimensions: NbLatitudes,NbLongitudes
Datatype: single
Attributes:
_FillValue = 1.84e+19
long_name = 'H'
units = 'cm'
Date_CNES_JD = 2.35e+04
date = '2014-03-27 00:00:00.000000 UTC'
这个数据没有add_offset和scale_factor,用ncload和ncread读取的数据之后只有区别一,没有区别二。
请问大家遇到这样的问题吗?
是因为数据还是因为这两个命令的本身就存在的差异?
|
|