我已经创建了一个x, y netcdf文件和现在想添加额外的时间能量变量。这为每个网格单元能量时间价值。
我的脚本在Python中是这样的:
值= loadtxt (“countries.txt skiprows = 0) % = loadtxt国家数据(“energy.txt”, skiprows = 0) %的能量
的energy.txt
文件是:
(国家id)……51 52 54 55 56 59 60 62…[时间步1]…649年南南南1083 9979南13602…[时间步2]…5743 43444 6365 1283 9062 4026南南…(时间步n)…………………………
等(直到87648步),感兴趣的细胞是第一行:
cellsOfInt =数据(0:)
- 我为一些细胞nan值以来没有值的时间步骤。
- 每一行对应一个时间步长对感兴趣的细胞51,在第一次一步nan值,在第二次步骤中我们有5743等等,直到87648年。
- 所有的细胞都感兴趣的国家。txt文件与感兴趣的细胞950 X 1000 id或南当没有价值。
我的代码:
y =数控。createDimension (" y ", 950) # y x =数控。createDimension (“x”, 1000) # x时间=数控。createDimension(“时间”,87648)#时间纬度=数控。createVariable (“y”、“f8”(“y”))经度=数控。createVariable (“x”、“f8”(“x”))时间= nc.createVariable(“时间”、“f8”(“时间”))国家=数控。createVariable(“国家”、“f8”(" y "、" x "));能量=数控。createVariable(“能源”、“f8”(“时间”、“y”、“x”), fill_value = -9999, chunksize = (950, 1000));时间。standard_name = '时间'时间。单位= '小时自2006-01-01 00:00:00.0。calendar='proleptic_gregorian' lats = np.arange(5497500,747500,-5000) #y lons = np.arange(2502500,7502500,5000) #x # Fill variables latitude[:] = lats longitude[:] = lons countries [:]=value
直到这里没问题我2 d国家但是它不给任何结果对能源:
xrange(0950):我的#行j xrange(0, 1000): #列在xrange n(0, 87648): #行米xrange(0,1): #如果数据列(1米)= =国家(i, j): #函件nc.variables数据(“能源”)[n] = [n m]
知道怎么解决这个问题我可以在country.netcdf文件时间维度与精力值在每个时间步?非常感谢! !
如果数据[0,m] = =国家(i, j):
因为你是感兴趣的第一行;(b)米
从0
来1
(的m xrange (0,1):
),但是它应该从0
来number_of_countries
这的所有列能源
是迭代。(c)的顺序n
和米
for循环似乎是完全无效的。更好的是:米…:如果数据[1 m] = =…:n…:nc.variables…=…
。或更换后一个for循环nc.variables[“能量”][:]=数据(:,m)
\ endgroup美元