def saveNetcdf(fileName, data): # NetCDF package try: from ase.io.pupynere import NetCDFFile except ImportError: print "ase.io.pupynere not installed on this computer." # get input data shape nx, ny, nz = data.shape print 'data type ' + str(data.dtype) # open file f = NetCDFFile(fileName, 'w') # create netcdf dimensions f.createDimension('x', nx) f.createDimension('y', ny) f.createDimension('z', nz) rho = f.createVariable('rho', 'd', ('x', 'y', 'z')) rho[:] = np.ones((nx, ny, nz)) E = f.createVariable('E', 'd', ('x', 'y', 'z')) E[:] = np.zeros((nx, ny, nz)) rho_vx = f.createVariable('rho_vx', 'd', ('x', 'y', 'z')) rho_vx[:] = data rho_vy = f.createVariable('rho_vy', 'd', ('x', 'y', 'z')) rho_vy[:] = np.zeros((nx, ny, nz)) rho_vz = f.createVariable('rho_vz', 'd', ('x', 'y', 'z')) rho_vz[:] = np.zeros((nx, ny, nz)) Bx = f.createVariable('Bx', 'd', ('x', 'y', 'z')) Bx[:] = np.zeros((nx, ny, nz)) By = f.createVariable('By', 'd', ('x', 'y', 'z')) By[:] = np.zeros((nx, ny, nz)) Bz = f.createVariable('Bz', 'd', ('x', 'y', 'z')) Bz[:] = np.zeros((nx, ny, nz)) f.sync() f.close()
def saveNetcdf(fileName,data): # NetCDF package try: from ase.io.pupynere import NetCDFFile except ImportError: print "ase.io.pupynere not installed on this computer." # get input data shape nx,ny,nz = data.shape print 'data type '+str(data.dtype) # open file f = NetCDFFile(fileName,'w') # create netcdf dimensions f.createDimension('x',nx) f.createDimension('y',ny) f.createDimension('z',nz) rho = f.createVariable('rho','d',('x','y','z')) rho[:] = np.ones((nx,ny,nz)) E = f.createVariable('E','d',('x','y','z')) E[:] = np.zeros((nx,ny,nz)) rho_vx = f.createVariable('rho_vx','d',('x','y','z')) rho_vx[:] = data rho_vy = f.createVariable('rho_vy','d',('x','y','z')) rho_vy[:] = np.zeros((nx,ny,nz)) rho_vz = f.createVariable('rho_vz','d',('x','y','z')) rho_vz[:] = np.zeros((nx,ny,nz)) Bx = f.createVariable('Bx','d',('x','y','z')) Bx[:] = np.zeros((nx,ny,nz)) By = f.createVariable('By','d',('x','y','z')) By[:] = np.zeros((nx,ny,nz)) Bz = f.createVariable('Bz','d',('x','y','z')) Bz[:] = np.zeros((nx,ny,nz)) f.sync() f.close()
import numpy as np from ase.io.pupynere import NetCDFFile # Write array a1 = np.random.rand(5, 5) a2 = a1 * 2 - 5 nc = NetCDFFile('test.nc', 'w') nc.createDimension('dimx', a1.shape[0]) nc.createDimension('dimy', a1.shape[1]) nc.createVariable('matrix1', 'd', ('dimx', 'dimy'))[:] = a1 nc.createVariable('matrix2', 'd', ('dimx', 'dimy'))[:] = a2 nc.sync() nc.close() # Read array nc = NetCDFFile('test.nc', 'r') b1 = nc.variables['matrix1'][:] b2 = nc.variables['matrix2'][:] assert np.all(a1 == b1) and np.all(a2 == b2)