forked from mtpenny/gbtds_optimizer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgbtds_optimizer.sh
executable file
·77 lines (59 loc) · 2.93 KB
/
gbtds_optimizer.sh
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
70
71
72
73
74
75
76
#!/bin/bash -x
if [ $# -ne 2 ]; then
echo "Usage: $0 <map_commands> <layout>"
exit
fi
map_commands=$(cat $1)
map_file=$(echo $map_commands | awk 'BEGIN{mapopt=-1}{for(i=1;i<=NF;i++){if($(i)=="--map-filename" || $(i)=="-m") mapopt=i+1; if(i==mapopt) print $(i)}}')
maproot=${1%.*}
layout=$2
nftmp=${layout#layout_}
nfields=${nftmp%%f*}
echo map_file $map_file
#--map-filename fidu_mass6_rate.yield.csv --map-cadence 14.7315 --map-texp 42.56 --fields-filename
#Field dimensions
read lmin lcent lmax bmin bcent bmax < <(awk 'BEGIN{lmin=1e50; lmax=-1e50; bmin=1e50; bmax=-1e50}$4==0&&NR>1{if($2<lmin) lmin=$2; if($2>lmax) lmax=$2; if($3<bmin) bmin=$3; if($3>bmax) bmax=$3;}END{print lmin,0.5*(lmin+lmax),lmax,bmin,0.5*(bmin+bmax),bmax}' field_layouts/${nfields}fields/$layout.centers)
read padlm padlp padbm padbp < <(awk 'BEGIN{lmin=1e50; lmax=-1e50; bmin=1e50; bmax=-1e50}NF==3{if($2<lmin) lmin=$2; if($2>lmax) lmax=$2; if($3<bmin) bmin=$3; if($3>bmax) bmax=$3;}END{print lmin,lmax,bmin,bmax}' sca_layout.txt)
read maplmin maplmax mapbmin mapbmax < <(awk -v FS=',' 'BEGIN{
lmin=1e50;
lmax=-1e50;
bmin=1e50;
bmax=-1e50;
lc=1;
bc=1}
{
if(NR==1){
for(i=1;i<=NF;i++){
if($(i)=="l") lc=i;
if($(i)=="b") bc=i
}
}else{
if($(lc)<lmin) lmin=$(lc);
if($(lc)>lmax) lmax=$(lc);
if($(bc)<bmin) bmin=$(bc);
if($(bc)>bmax) bmax=$(bc);
}}END{print lmin,lmax,bmin,bmax}' $map_file)
step=0.2
lrange=$(echo 1 | awk -v lmin=$lmin -v lmax=$lmax -v lcent=$lcent -v padlm=$padlm -v padlp=$padlp -v maplmin=$maplmin -v maplmax=$maplmax -v step=$step 'function floor(x){if(x<0){if(int(x)==x) return int(x); else return int(x)-1}else return int(x)}{maxf=maplmax-padlp-(lmax-lcent); minf=maplmin-padlm-(lmin-lcent); print step*floor(maxf/step),-step*floor(-minf/step)}')
brange=$(echo 1 | awk -v bmin=$bmin -v bmax=$bmax -v bcent=$bcent -v padbm=$padbm -v padbp=$padbp -v mapbmin=$mapbmin -v mapbmax=$mapbmax -v step=$step 'function floor(x){if(x<0){if(int(x)==x) return int(x); else return int(x)-1}else return int(x)}{maxf=mapbmax-padbp-(bmax-bcent); minf=mapbmin-padbm-(bmin-bcent); print step*floor(maxf/step),-step*floor(-minf/step)}')
echo lmin lcent lmax bmin bcent bmax
echo $lmin $lcent $lmax $bmin $bcent $bmax
echo padlm padlp padbm padbp
echo $padlm $padlp $padbm $padbp
echo maplmin maplmax mapbmin mapbmax
echo $maplmin $maplmax $mapbmin $mapbmax
echo lrange
echo $lrange
echo brange
echo $brange
#lrange="5 -5"
#brange="-3 3"
python gbtds_optimizer.py $map_commands \
--fields-filename field_layouts/${nfields}fields/${layout}.centers \
--lrange $lrange --brange $brange \
--lstep $step --bstep $step \
--cadence-bounds 7.0 15.0 --nread-bounds 10 40 \
--output-root output/${maproot}.${layout} --output-covfac
python results_plotter.py -i output/$maproot.$layout --contour-resolution 5 \
--smoothing 0.3 --lrange $maplmax $maplmin --brange $mapbmin $mapbmax \
--save png --save-root output/$maproot.$layout --no-show