2017-04-18 3 views
0

나는 netCDF 파일을 가지고 있고 python netCDF4를 사용하여 새로운 변수를 만들려고했습니다. 그러나 프로그램이 값을 배열에 할당하지 못했습니다.NetCDF4 변수에 값을 할당하십시오.

다음은 내 코드입니다

import netCDF4 
file = netCDF4.Dataset(filename, "r+") 
tmp = file.createVariable("tmp", "f4", ('time','height','lat','lon'), zlib=True) 
tmp.set_auto_mask(False) 
tmp.set_auto_maskandscale(False) 

//setting values 
tmp[0][0][0][0] = 0.1234 
print(tmp[0][0][0][0]) 
//I got 9.96921e+36, which seems to be the default fill value 

나는이 문제를 해결하기 위해 어떻게해야합니까?

도움을 주시면 감사하겠습니다. netCDF의 파일에있는 변수를 액세스

TIA

답변

0

는 다음과 같이 수행됩니다

<type "netCDF4._netCDF4.Variable"> 
float32 temp(time, level, lat, lon) 
    least_significant_digit: 3 
    units: K 
unlimited dimensions: time, level 
current shape = (0, 0, 73, 144) 
: 당신이 tmp 변수를보고 인쇄 할 경우이 같은 것을 볼 수

file.variables["tmp"][0,0,0,0] = 0.1234 
//read complete var 
putDataInHere = file.variables["tmp"][:] 

+0

그래서 새 위치에 값을 지정하려면 'file.variable [ "tmp"] 대신 [file.variable [ "tmp"] [0,0,0,0] = 0.1234' 0] [0] [0] [0] = 0.1234 '맞습니까? 나는 지금 막 시도하고 작동 같이 보인다. @lpoorthuis –

+0

정확하게. [numpy 색인 생성] (https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html)을 살펴보십시오. python netcdf4는 numpy 배열을 사용하고 있으므로 색인 생성은 파이썬 목록과 약간 다릅니다. – lpoorthuis

+0

입니다. 이제는 원활하게 작동합니다. 도와 주셔서 감사합니다. @lpoorthuis –