Skip to content
Snippets Groups Projects
load_data.py 1.61 KiB
Newer Older
import h5py
import numpy as np
import tools
def load_data_0D(filename,dname):
    with h5py.File(filename, 'r') as file:
        # Load time data
        time  = file['data/var0d/time']
        time  = time[:]
        var0D = file['data/var0d/'+dname]
        var0D = var0D[:]
    return time, var0D

def load_data_3D_frame(filename,dname,tframe):
    with h5py.File(filename, 'r') as file:
        # load time
        time  = file['data/var3d/time']
        time  = time[:]
        # find frame
        iframe = tools.closest_index(time,tframe)
        tf     = time[iframe]
        # Load data
        if dname == 'Ni00':
            data = file[f'data/var3d/Na00/{iframe:06d}']
            data = data[:,:,:,0]
        else:
            data = file[f'data/var3d/{dname}/{iframe:06d}']
        data = data[:]
        data = data['real']+1j*data['imaginary'] 
        # Load the grids
        kxgrid = file[f'data/grid/coordkx']
        kygrid = file[f'data/grid/coordky']
        zgrid  = file[f'data/grid/coordz']
    return time,data,tf

def load_grids(filename):
    with h5py.File(filename, 'r') as file:
        # Load the grids
        kxgrid = file[f'data/grid/coordkx']
        kygrid = file[f'data/grid/coordky']
        zgrid  = file[f'data/grid/coordz']
        pgrid  = file[f'data/grid/coordp']
        jgrid  = file[f'data/grid/coordj']
        Nx     = kxgrid.size
        Nky    = kygrid.size
        Ny     = 2*(Nky-1)
        Lx     = 2*np.pi/kxgrid[1]
        Ly     = 2*np.pi/kygrid[1]
        xgrid  = np.linspace(-Lx/2,Lx/2,Nx)
        ygrid  = np.linspace(-Ly/2,Ly/2,Ny)
    return xgrid,kxgrid,ygrid,kygrid,zgrid,pgrid,jgrid