- 积分
- 184
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2018-10-9
- 最后登录
- 1970-1-1

|
Python
系统平台: |
windows10 spyder python3.6.5 netcdf4 |
问题截图: |
- |
问题概况: |
想要将下载的包含多个变量ERA5的NC文件分割成包含单个变量的NC文件,但不知道该如何将变量属性信息写入新文件中 |
我看过提问的智慧: |
看过 |
自己思考时长(天): |
2 |
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
代码如下
import netCDF4 as ncimport numpy as np
file_obj = nc.Dataset(r'F:\\Data\\ERA5\\pressure-levels\\20180621\\pressure-levels-2018062101.nc')
all_vars = file_obj.variables.keys() #获取全部变量名称
all_vars = list(all_vars)
all_vars_info = file_obj.variables.items()
all_vars_info = list(all_vars_info)
lat = file_obj.variables['latitude'][:]
lon = file_obj.variables['longitude'][:]
level = file_obj.variables['level'][:]
time = file_obj.variables['time'][:]
cc0 = file_obj.variables['cc'][:]
data = np.array(cc0)
file_path = pathlib.Path(r'F:\\Data\\ERA5\\pressure-levels\\Fraction of cloud cover\\cc_2018062101.nc')
if file_path.is_file:
file_path.unlink()
else:
print(f"Error:{file_path} file not found")
f_w = nc.Dataset(file_path, 'w', format = 'NETCDF4')
f_w.createDimension('time',1)
f_w.createDimension('level',29)
f_w.createDimension('lat',721)
f_w.createDimension('lon',1440)
f_w.createVariable('time',np.int32,('time'))
f_w.createVariable('level',np.int32,('level'))
f_w.createVariable('latitude',np.float32,('lat'))
f_w.createVariable('longitude',np.float32,('lon'))
f_w.variables['time'][:] = time[:]
f_w.variables['level'][:] = level[:]
f_w.variables['latitude'][:] = lat[:]
f_w.variables['longitude'][:] = lon[:]
f_w.createVariable('cc', np.float64, ('time','level','lat','lon'))
f_w.variables['cc'][:] = data
print('data have been written')
f_w.close()
file_obj.close()
#这部分代码可将cc变量写入,但如图所示,没有属性信息
——————————————————————————————————————————————————————————
在查阅过程中发现setattr函数可以创建变量的局部信息,变量赋值后想要写入属性信息,代码如下
for i in range(len(all_vars)):
setattr(all_vars[i],'variables',all_vars_info[i])
报错信息如下:
setattr(all_vars[i],'variables',all_vars_info[i])
AttributeError: 'str' object has no attribute 'variables'
——————————————————————————————————————————————————————————
这两天刚接触NC文件,恳请各位不吝赐教!
|
-
原始文件变量属性信息
-
新写入文件变量属性信息
|