从netCDF4的文档中: http://unidata.github.io/netcdf4-python/#netCDF4.Variable
谁能给我一个使用Python中的scale_factor和add_offset参数编写数据的简单示例?
答案 0 :(得分:1)
如果您想知道如何使用(?<!\S)\1(?!\S)
和add_offset
参数来打包或解压缩scale_factor
文件中的数据,则可以阅读here。
当您使用python(download NCEP reanalysis I data for example)读取netCDF4文件时,可以引用以下代码:
.nc
我们要读取>>> import netCDF4 as nc
>>> file_obj = nc.Dataset('./air.mon.mean.nc')
>>> file_obj.variables.keys()
odict_keys(['lat', 'lon', 'time', 'air'])
变量并通过
air
它将显示:
file_obj.variables['air']
我们可以通过
阅读<class 'netCDF4._netCDF4.Variable'>
float32 air(time, lat, lon)
long_name: Monthly Mean Air Temperature at sigma level 0.995
valid_range: [-2000. 2000.]
units: degC
add_offset: 0.0
scale_factor: 1.0
missing_value: -9.96921e+36
precision: 1
least_significant_digit: 0
var_desc: Air Temperature
level_desc: Surface
statistic: Mean
parent_stat: Individual Obs
dataset: NCEP Reanalysis Derived Products
actual_range: [-73.78001 42.14595]
unlimited dimensions: time
current shape = (848, 73, 144)
filling on, default _FillValue of 9.969209968386869e+36 used
和add_offset
scale_factor
然后读取
的packed_value>>> add_offset = file_obj.variables['air'].add_offset
>>> scale_factor = file_obj.variables['air'].scale_factor
最后,我们可以使用pack表达式计算upacked_value(实际值),
>>> packed_value = file_obj.variables['air'][:]
结果:
>>> unpacked_value = packed_value * scale_factor + add_offset