import argparse import logging import os import h5py logger = logging.getLogger(__name__) # Parse command line arguments parser = argparse.ArgumentParser(description='Writes a HDF5 file of AustinMan or AustinWoman head only.', usage='python head_only_hdf5 filename') parser.add_argument('filename', help='name and path to (HDF5) file containing AustinMan or AustinWoman model') args = parser.parse_args() # Read full body HDF5 file f = h5py.File(args.filename, 'r') dx_dy_dz = f.attrs['dx_dy_dz'] data = f['/data'][:, :, :] # Define head as last 1/8 of total body height nzhead = 7 * int(data.shape[2] / 8) logger.info(f'Dimensions of head model: {data.shape[0]:g} x {data.shape[1]:g} x {data.shape[2] - nzhead:g} cells') # Write HDF5 file headfile = os.path.splitext(args.filename)[0] + '_head.h5' f = h5py.File(headfile, 'w') f.attrs['dx_dy_dz'] = dx_dy_dz f['/data'] = data[:, :, nzhead:data.shape[2]]