extract_aux.py

Sat, 01 Aug 2026 13:27:15 -0500

author
Tuomo Valkonen <tuomov@iki.fi>
date
Sat, 01 Aug 2026 13:27:15 -0500
changeset 14
0fffcda184a2
parent 12
a0d61ac3719e
permissions
-rwxr-xr-x

LOCAL_DEPS_HACK

12
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
1 #!.venv/bin/python3
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
2 import argparse
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
3 import csv
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
4 from pathlib import Path
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
5
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
6 import numpy as np
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
7
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
8 from plot import find_files
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
9
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
10
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
11 def extract_aux(prefix):
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
12
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
13 iter_files = find_files(prefix)
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
14
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
15 init_filename = "%s/init_aux.csv" % Path(prefix).parent
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
16 filename = "%s/res_aux.csv" % prefix
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
17
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
18 # Do true and noisy values
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
19
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
20 initdata = [
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
21 [
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
22 "k_true",
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
23 "c1_true",
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
24 "c2_true",
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
25 "k_noisy",
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
26 "c1_noisy",
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
27 "c2_noisy",
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
28 ]
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
29 ]
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
30
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
31 data0 = np.load("%s/omega_0.npz" % Path(prefix).parent)
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
32 k_true = data0["k_true"]
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
33 c1_true = data0["c1_true"]
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
34 c2_true = data0["c2_true"]
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
35 initdata.append(
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
36 [
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
37 k_true,
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
38 c1_true,
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
39 c2_true,
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
40 data0["k_noisy"],
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
41 data0["c1_noisy"],
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
42 data0["c2_noisy"],
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
43 ]
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
44 )
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
45 with open(init_filename, mode="w", newline="") as file:
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
46 # Create a csv.writer object
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
47 writer = csv.writer(file, delimiter="\t")
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
48 # Write data to the CSV file
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
49 writer.writerows(initdata)
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
50
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
51 # Do reconstructed values
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
52
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
53 auxdata = [
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
54 [
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
55 "iter",
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
56 "k",
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
57 "c1",
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
58 "c2",
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
59 "k_dist",
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
60 "c_dist",
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
61 ]
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
62 ]
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
63
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
64 for iter, file in iter_files:
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
65 d = np.load(file)
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
66 k = d["k"]
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
67 c1 = d["c1"]
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
68 c2 = d["c2"]
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
69 k_dist = np.abs(k - k_true)
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
70 c_dist = np.sqrt((c1 - c1_true) ** 2 + (c2 - c2_true) ** 2)
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
71 auxdata.append([iter, k, c1, c2, k_dist, c_dist])
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
72
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
73 # Open the file in write mode
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
74 with open(filename, mode="w", newline="") as file:
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
75 # Create a csv.writer object
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
76 writer = csv.writer(file, delimiter="\t")
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
77 # Write data to the CSV file
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
78 writer.writerows(auxdata)
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
79
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
80
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
81 def main():
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
82 parser = argparse.ArgumentParser(
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
83 prog="extract_aux.py",
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
84 description="Extract auxiliary parameters from pointsource_pde",
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
85 )
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
86
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
87 parser.add_argument("filename")
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
88
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
89 args = parser.parse_args()
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
90
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
91 extract_aux(args.filename)
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
92
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
93
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
94 if __name__ == "__main__":
a0d61ac3719e Various revisions:
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
95 main()

mercurial