Python netCDF:从地理区域创建离散坐标变量

Python netCDF:从地理区域创建离散坐标变量,python,python-2.7,geospatial,netcdf4,Python,Python 2.7,Geospatial,Netcdf4,我希望创建一个netCDF4文件“area_nc”,其中包含时间维度和离散的字母数字区号,例如“A0”、“A1”、“A2”、“B0”等,不适合常规网格(而不是纬度/经度) pdf文件建议这可以在第4.5节中完成,但我找不到任何例子 有办法做到这一点吗 到目前为止,我已经尝试: import netCDF4 as nc area_nc = nc.Dataset('area.nc', 'w') area_nc.createDimension('time', None) area_nc.creat

我希望创建一个netCDF4文件“area_nc”,其中包含时间维度和离散的字母数字区号,例如“A0”、“A1”、“A2”、“B0”等,不适合常规网格(而不是纬度/经度)

pdf文件建议这可以在第4.5节中完成,但我找不到任何例子

有办法做到这一点吗

到目前为止,我已经尝试:

import netCDF4 as nc

area_nc = nc.Dataset('area.nc', 'w')

area_nc.createDimension('time', None)
area_nc.createDimension('nhood', 6)

time = area_nc.createVariable('time', int, ('time'))
nhood = area_nc.createVariable('nhood', str, ('nhood'))

in_temp = area_nc.createVariable('in_temp', int, ('time', 'nhood'))

nhood[:] = ['A0', 'A1', 'A2', 'B0', 'B1', 'B2']
但我得到了一个错误:

IndexError: data can only be assigned to VLEN variables using integer indices
为了实现这一点,我希望使用此代码作为参考,而不是整数切片,将数据添加到文件中,例如:

area_nc.variables['in_temp'][0, 'A0'] = 23

谢谢

问题的第一部分,错误: 该错误表示python认为您的维度具有可变长度(VLEN)。解决方案在于更好地定义维度。解决方案是更改您的两行:

nhood = area_nc.createVariable('nhood', str, ('nhood')) ->
nhood = area_nc.createVariable('nhood', '<U13', ('nhood'))

nhood[:] = ['A0', 'A1', 'A2', 'B0', 'B1', 'B2'] ->
nhood[:] = np.array(['A0', 'A1', 'A2', 'B0', 'B1', 'B2'])

尝试并展示你的代码,哪些有效,哪些无效。谢谢@Alan,补充道。
def int_area(area):
    import numpy as np
    return np.where(np.array(['A0', 'A1', 'A2', 'B0', 'B1', 'B2'])==area)[0][0]
area_nc.variables['in_temp'][0, int_area('A0')] = 23