Skip to content

Commit ade40ff

Browse files
authored
csv2hdf5: improve usability of conversion script (#382)
* improve usability of conversion script * clarify h5py as a dependency
1 parent 7bbd786 commit ade40ff

File tree

2 files changed

+69
-33
lines changed

2 files changed

+69
-33
lines changed

data/expected/fb/convert2hdf5

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
#! /usr/bin/env python3
2+
3+
"""\
4+
Convert csv uvfits-like files to HDF5
5+
6+
Examples:
7+
8+
%(prog)s [options] -i input -o output
9+
"""
10+
11+
import sys, csv, argparse
12+
13+
try:
14+
import h5py
15+
except:
16+
print("Please install h5py!")
17+
sys.exit(1)
18+
19+
parser = argparse.ArgumentParser(description=__doc__)
20+
parser.add_argument("-i", dest="INPUT_FILE", default="", help="input file")
21+
parser.add_argument("-o", dest="OUTPUT_FILE", default="", help="output file")
22+
parser.add_argument("-w", "--with-w", dest="HAS_W", action="store_true", default=False, help="assume w coordinate present")
23+
args = parser.parse_args()
24+
25+
if args.INPUT_FILE == "":
26+
print("Specify input file using -i flag!")
27+
sys.exit(1)
28+
29+
if args.OUTPUT_FILE == "":
30+
print("Specify output file using -o flag!")
31+
sys.exit(1)
32+
33+
udata = []
34+
vdata = []
35+
wdata = []
36+
rdata = []
37+
idata = []
38+
sdata = []
39+
with open(args.INPUT_FILE, mode ='r') as file:
40+
csvFile = csv.reader(file)
41+
for line in csvFile:
42+
u = None
43+
v = None
44+
w = None
45+
re = None
46+
im = None
47+
s = None
48+
if args.HAS_W:
49+
u, v, w, re, im, sigma = line[0].split()
50+
wdata.append(float(w))
51+
else:
52+
u, v, re, im, sigma = line[0].split()
53+
udata.append(float(u))
54+
vdata.append(float(v))
55+
rdata.append(float(re))
56+
idata.append(float(im))
57+
sdata.append(float(sigma))
58+
59+
with h5py.File(args.OUTPUT_FILE, 'w') as f:
60+
f.create_dataset('u', data=udata)
61+
f.create_dataset('v', data=vdata)
62+
if args.HAS_W:
63+
f.create_dataset('w', data=wdata)
64+
f.create_dataset('re', data=rdata)
65+
f.create_dataset('im', data=idata)
66+
f.create_dataset('sigma', data=sdata)
67+
68+
print(f"Saved '{args.OUTPUT_FILE}'.")
69+

data/expected/fb/convert2hdf5.py

Lines changed: 0 additions & 33 deletions
This file was deleted.

0 commit comments

Comments
 (0)