9331766d45652a2da306937271e304a606ecf941
[thesis.git] / tex / src / figures / cantilever-data / SConscript
1 import os.path
2
3 from site_cons.site_init import link_wtk_graph
4
5
6 FIGURES = ['v-dep', 'loading-rate']
7 Ks = ['131.98', '24.33'] # HACK!  these are not static
8
9 # Get the passed in environment.
10 Import('env')
11
12 data_dir = Dir('data')
13 raw = File(os.path.join(str(data_dir), 'raw'))
14 raw = [raw]
15 # = env.Command(
16 #    os.path.join(str(data_dir), 'raw'),
17 #    ['extract_f_v_k_data.sh'],
18 #    './$SOURCE > $TARGET')
19 #env.Requires(raw, data_dir)
20
21 averaged_data = env.Command(
22     os.path.join(str(data_dir), 'averaged-data'),
23     ['avg_data.py'] + raw,
24     'cd .. && python avg_data.py',
25     chdir=True)
26 spring_constants = env.SideEffect(
27     os.path.join(str(data_dir), 'spring-constants'),
28     averaged_data)
29
30 loading_rate_dir = Dir('loading-rate.d')
31 def loading_rate_file(k):
32     return os.path.join(str(loading_rate_dir), 'loading_rate_%s.dat' % k)
33
34 loading_rates = env.Command(
35     loading_rate_file(Ks[0]),
36     ['get_loading_rates.py', 'avg_data.py', raw],
37     'cd .. && python get_loading_rates.py',
38     chdir=True)
39 #env.Requires(loading_rates, loading_rate_dir)
40
41 loading_rate_data = [loading_rates]
42 for k in Ks[1:]:
43     loading_rate_data.append(
44         env.SideEffect(loading_rate_file(k), loading_rates))
45
46 v_dep_dir = Dir('v-dep.d')
47 def v_dep_file(k):
48     return os.path.join(str(v_dep_dir), 'v_dep_%s.dat' % k)
49 def v_dep_fit_file(k):
50     return os.path.join(str(v_dep_dir), 'v_dep_%s.fit.dat' % k)
51
52 v_deps = env.Command(
53     v_dep_file(Ks[0]),
54     ['get_v_dep.sh', spring_constants, averaged_data],
55     'cd .. && ./get_v_dep.sh',
56     chdir=True)
57 #env.Requires(v_deps, v_dep_dir)
58
59 v_dep_data = [v_deps]
60 for k in Ks[1:]:
61     v_dep_data.append(
62         env.SideEffect(v_dep_file(k), v_deps))
63     
64 for k,data in zip(Ks, v_dep_data):    
65     v_dep_data.append(
66         env.Command(
67             v_dep_fit_file(k),
68             ['fit_data.py'] + data,
69             'python $SOURCES  > $TARGET'))
70
71 v_dep = env.Command(
72         'v-dep.asy',
73         ['make_v_dep_plots.sh'] + v_dep_data,
74         './make_v_dep_plots.sh',
75         chdir=True)
76 env.SideEffect('v-dep.gp', v_dep)
77
78
79 wtk_graph = link_wtk_graph(env)
80
81 for fig in FIGURES:
82     asyfile = '%s.asy' % fig  # static .asy file
83     pyfig = fig.replace('-', '_')
84     if pyfig in globals():    # generated .asy file
85         asyfile = globals()[pyfig]
86     env.Asymptote([asyfile, wtk_graph])
87
88 # Pass back the modified environment.
89 Return('env')