2017-04-26 4 views
1

Mein Code:netcdf Variable zu erstellen: Fehler eine ganze Zahl erforderlich ist

data = Dataset('/scratch/uni/ifmto/janniklas/data.nc', 'w', format='NETCDF4_CLASSIC') 

data.createDimension('z', len(zn)) 
data.createDimension('x', len(xn)) 
data.createDimension('y', len(yn)) 

nz = data.createVariable('zn', np.float32, 'z') 
nx = data.createVariable('xn', np.float32, 'x') 
nx = data.createVariable('yn', np.float32, 'y') 

N = data.createVariable('N', np.float32, 'z','x','y') 

Einige zusätzliche Informationen:

shape(nx) = 288 ; shape(ny) = 288 ; shape(nz) = 67 
shape(N) = (67,288,288) 

nx, ny eine nz haben die Dimension sein Vektoren

ich der folgende Fehler:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "Aufgabe.py", line 97, in <module> 
    N = data.createVariable('N', np.float32, 'z','x','y') 
    File "netCDF4/_netCDF4.pyx", line 2222, in netCDF4._netCDF4.Dataset.createVariable (netCDF4/_netCDF4.c:16460) 
    File "netCDF4/_netCDF4.pyx", line 3141, in netCDF4._netCDF4.Variable.__init__ (netCDF4/_netCDF4.c:27788) 
TypeError: an integer is required 

Ich verwende Python 2.7

Antwort

2

Wenn Sie Dimension einer Variablen setzen Sie tuple nicht nur um eine Sequenz zu verwenden:

from netCDF4 import Dataset 
import numpy as np 

data = Dataset('data.nc', 'w', format='NETCDF4_CLASSIC') 

data.createDimension('z', 67) 
data.createDimension('x', 288) 
data.createDimension('y', 288) 
# 'z' has to be a tuple 
nz = data.createVariable('zn', np.float32, ('z',)) 
nx = data.createVariable('xn', np.float32, ('x',)) 
nx = data.createVariable('yn', np.float32, ('y',)) 

N = data.createVariable('N', np.float32, ('z','x','y')) 
Verwandte Themen