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()
Beispiel #3
0
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)