File: convert2hdf5

package info (click to toggle)
purify 5.0.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 186,836 kB
  • sloc: cpp: 17,731; python: 510; xml: 182; makefile: 7; sh: 6
file content (69 lines) | stat: -rwxr-xr-x 1,701 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#! /usr/bin/env python3

"""\
Convert csv uvfits-like files to HDF5

Examples:

  %(prog)s [options] -i input -o output
"""

import sys, csv, argparse

try:
  import h5py
except:
  print("Please install h5py!")
  sys.exit(1)

parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("-i", dest="INPUT_FILE", default="", help="input file")
parser.add_argument("-o", dest="OUTPUT_FILE", default="", help="output file")
parser.add_argument("-w", "--with-w", dest="HAS_W", action="store_true", default=False, help="assume w coordinate present")
args = parser.parse_args()

if args.INPUT_FILE == "":
  print("Specify input file using -i flag!")
  sys.exit(1)

if args.OUTPUT_FILE == "":
  print("Specify output file using -o flag!")
  sys.exit(1)

udata = []
vdata = []
wdata = []
rdata = []
idata = []
sdata = []
with open(args.INPUT_FILE, mode ='r') as file:
    csvFile = csv.reader(file)
    for line in csvFile:
        u  = None
        v  = None
        w  = None
        re = None
        im = None
        s  = None
        if args.HAS_W:
            u, v, w, re, im, sigma = line[0].split()
            wdata.append(float(w))
        else:
            u, v, re, im, sigma = line[0].split()
        udata.append(float(u))
        vdata.append(float(v))
        rdata.append(float(re))
        idata.append(float(im))
        sdata.append(float(sigma))

with h5py.File(args.OUTPUT_FILE, 'w') as f:
  f.create_dataset('u', data=udata)
  f.create_dataset('v', data=vdata)
  if args.HAS_W:
      f.create_dataset('w', data=wdata)
  f.create_dataset('re', data=rdata)
  f.create_dataset('im', data=idata)
  f.create_dataset('sigma', data=sdata)

print(f"Saved '{args.OUTPUT_FILE}'.")