【addfile读入nc文件的数据后:真实数据=读入数据*scale_factor+add_offset】
做毕设的时候,需要对西北太平洋画海表温度数据(sst)图,但是NCL的addfile读入数据后画出来的数值特别大特别奇怪,但是用ncview或panoply看的数据又是正常的。所以不是nc数据问题,后来发现NCL读入数据不会像python一样自动处理。
sst数据来源:data.remss.com - /SST/daily/mw_ir/v05.1/netcdf/2023/
ncl命令读入数据:
filepath = "C:/data/"
filename2 = "20231001120000-REMSS-L4_GHRSST-SSTfnd-MW_IR_OI-GLOB-v02.0-fv05.1.nc"
sstfile= addfile(filepath+filename2,"r")
print(sstfile) ;7varible:lat,lon,time,analysed_sst,analysis_error,sea_ice_fraction,mask
sst =sstfile->analysed_sst ;用sst接收analysed_sst变量的信息,就是我们需要的sst
用print(sstfile)的原因就是打印看看:1、有哪些变量,需要的变量具体的名字是什么;2、变量的具体数据信息
重点看数据的add_offset和scale_factor
接下来对读入的数据进行处理:
sst=sstdata*0.000839259+295.65 ;真实sst = 读入sst*scale + offset
copy_VarMeta(sstdata, sst) ;将读入的数据的源信息都赋值给处理后的数据
不使用copy_VarMeta会让处理后的数据丢失掉源信息(比如坐标信息等)
接下来就可以使用sst正常画图了。
希望有帮助~(ps:CSDN居然还没有NCL的标签)