Add tool scripts #1

Merged
florent merged 7 commits from develop into master 2024-11-10 15:43:36 +01:00
Showing only changes of commit a21662bf68 - Show all commits

48
misc/txt_to_npz.py Executable file
View File

@ -0,0 +1,48 @@
#!/usr/bin/env python
# file txt_to_npz.py
# author Florent Guiotte <florent.guiotte@uhb.fr>
# version 0.0
# date 24 mai 2019
"""Convert point clouds from text files to Idefix file format.
doc.
"""
import numpy as np
import idefix.io as io
from pathlib import Path
import argparse
from tqdm import tqdm
def txt_to_npy(fname, header, delimiter=None, dtype=None, compression=False):
oname = fname.stem + '.npz'
pc = io.load_txt(fname, header, delimiter, dtype)
io.dump_pc(oname, pc, compression)
def main():
parser = argparse.ArgumentParser(description='Convert point clouds from text files to Idefix file format.')
parser.add_argument('file', type=str, help='file or dir to convert')
parser.add_argument('header', type=str, help='field names of the data')
parser.add_argument('--dtype', '-t', type=str, help='field data types')
parser.add_argument('--delimiter', '-d', type=str, default=',', help='field data delimiter')
parser.add_argument('--compress', '-c', action='store_true', default=False, help='enable data compression')
args = parser.parse_args()
header = args.header.split()
dtype = [np.dtype(x) for x in args.dtype.split()] if args.dtype else None
delimiter = args.delimiter
compress = args.compress
wd = Path(args.file)
if wd.is_dir():
files = wd.glob('*.txt')
else:
files = (wd,)
pbar = tqdm(list(files))
for f in pbar:
pbar.write('Processing {}...'.format(f))
txt_to_npy(f, header, delimiter, dtype, compress)
if __name__ == '__main__':
main()