Skip to content

Commit d400613

Browse files
committed
implementing mass pipeline for Y3
1 parent 5670ed9 commit d400613

File tree

522 files changed

+156936
-52
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

522 files changed

+156936
-52
lines changed

.gitmodules

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[submodule "submodules/xshear"]
22
path = submodules/xshear
3-
url = https://github.com/danielgruen/xshear.git
3+
url = https://github.com/vargatn/xshear.git
44
branch = redmapper
55

6-
# https://github.com/esheldon/xshear.git
6+
# https://github.com/esheldon/xshear.git

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@ For detailed documentation see http://xpipe.readthedocs.io/
1818
* [API reference](https://xpipe.readthedocs.io/en/stable/api.html)
1919

2020

21-
Tamas Norbert Varga 2018
21+
Tamas Norbert Varga 2021
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

bin/pipe-y3/extract_shearcat.py

+81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
import pandas as pd
2+
import numpy as np
3+
import healpy as hp
4+
import h5py
5+
import matplotlib.pyplot as plt
6+
import yaml
7+
import fitsio
8+
9+
10+
main_file_path = "/e/ocean1/users/vargatn/DESY3/Y3_mastercat___UNBLIND___final_v1.1_12_22_20.h5"
11+
main_file = h5py.File(main_file_path, mode = 'r')
12+
fname_root = "/e/ocean1/users/vargatn/DES/DES_Y3A2_cluster/data/shearcat/"
13+
fname_prefix = "y3_mcal_sompz_v3_unblind"
14+
15+
fmt = ['%d', '%d'] + 10 * ['%.6f']
16+
sheared_names = ["unsheared", "_1p", "_1m", "_2p", "_2m"]
17+
# sheared_names = ["unsheared", "sheared_1p", "sheared_1m", "sheared_2p", "sheared_2m"]
18+
select_names = ["select", "select_1p", "select_1m", "select_2p", "select_2m"]
19+
bin_names = ["bin1", "bin2", "bin3", "bin4"]
20+
21+
for ibin, bin_name in enumerate(bin_names):
22+
for ishear, sheared_name in enumerate(sheared_names):
23+
if ishear == 0:
24+
_sheared_name = ""
25+
ztag = sheared_name
26+
_name = ""
27+
else:
28+
_sheared_name = "_sheared" + sheared_name
29+
ztag = "sheared" + sheared_name
30+
_name = sheared_name
31+
32+
oname = fname_root + fname_prefix + "_" + bin_name + _name + ".dat"
33+
print(oname)
34+
35+
index = main_file["index/"+select_names[ishear] + "_" + bin_name][:]
36+
37+
table = pd.DataFrame()
38+
39+
# loading part 1
40+
_tmp = main_file["index/coadd_object_id"][:]
41+
table["coadd_objects_id"] = _tmp[index]
42+
print("loaded coadd_id")
43+
44+
_tmp = main_file["catalog/sompz/" + ztag + "/cell_wide"][:]
45+
table["cell_id"] = _tmp[index]
46+
print("loaded cell_id")
47+
48+
_tmp = main_file["catalog/gold/ra"][:]
49+
table["ra"] = _tmp[index]
50+
_tmp = main_file["catalog/gold/dec"][:]
51+
table["dec"]= _tmp[index]
52+
print("loaded ra, dec")
53+
54+
# print("reading metacal unsheared")
55+
_tmp = main_file["catalog/metacal/" + ztag + "/e_1"][:]
56+
table["e1"] = _tmp[index]
57+
_tmp = main_file["catalog/metacal/" + ztag + "/e_2"][:]
58+
table["e2"] = _tmp[index]
59+
print("loaded, e1, e2")
60+
if ishear == 0:
61+
_tmp = main_file["catalog/metacal/" + ztag + "/R11"][:]
62+
table["R11"] = _tmp[index]
63+
_tmp = main_file["catalog/metacal/" + ztag + "/R22"][:]
64+
table["R22"] = _tmp[index]
65+
print("loaded, R11, R22")
66+
_R_12 = _tmp[index]
67+
_tmp = main_file["catalog/metacal/" + ztag + "/R12"][:]
68+
_R_21 = _tmp[index]
69+
_tmp = main_file["catalog/metacal/" + ztag + "/R21"][:]
70+
table["R12"] = (_R_12 + _R_21) / 2.
71+
print("loaded, R12, R21")
72+
73+
_tmp = main_file["catalog/metacal/" + ztag + "/weight"][:]
74+
table["weight"] = _tmp[index]
75+
76+
placeholder = np.ones(len(table)) * 1.5
77+
table["z_mean"] = placeholder
78+
table["z_mc"] = placeholder
79+
80+
table.to_hdf(oname.replace(".dat", ".h5"), key="data")
81+
table.to_csv(oname, index=False, sep=" ", header=False)

bin/pipe-y3/mkbins.py

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
"""
2+
Divides the lens and random points catalog into bins by parameters (and JK regions)
3+
"""
4+
5+
import argparse
6+
import pickle
7+
import xpipe.paths as paths
8+
import xpipe.xhandle.parbins as parbins
9+
10+
11+
parser = argparse.ArgumentParser(description='Creates parameter bins for xshear calculations')
12+
parser.add_argument('--params', type=str)
13+
parser.add_argument('--norands', default=False, action="store_true")
14+
15+
16+
if __name__ == '__main__':
17+
args = parser.parse_args()
18+
paths.update_params(args.params)
19+
20+
lenses = parbins.prepare_lenses()
21+
if not args.norands:
22+
randoms = parbins.prepare_random()
23+
else:
24+
randoms = None
25+
26+
xio = parbins.XIO(lenses, randoms, force_centers=paths.params["njk_max"])
27+
xio.mkdir()
28+
29+
logfile = xio.dpath + '/' + paths.params['tag'] + '_params.p'
30+
pickle.dump(paths.params, open(logfile, 'wb'))
31+
32+
xio.loop_bins(norands=args.norands)
33+

bin/pipe-y3/postprocess_sourcebins.py

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
"""
2+
Collects xshear output files into DeltaSigma profiles
3+
"""
4+
from __future__ import print_function, division
5+
import argparse
6+
import copy
7+
import numpy as np
8+
import pandas as pd
9+
import fitsio as fio
10+
11+
import xpipe.paths as paths
12+
import xpipe.xhandle.parbins as parbins
13+
import xpipe.xhandle.xwrap as xwrap
14+
import xpipe.xhandle.shearops as shearops
15+
16+
17+
18+
parser = argparse.ArgumentParser(description='postprocesses xshear output')
19+
parser.add_argument('--nometa', action="store_false", default=True)
20+
parser.add_argument('--npatch', default="auto")
21+
parser.add_argument('--params', type=str)
22+
parser.add_argument('--calibs', action="store_true", default=False)
23+
parser.add_argument('--norands', action="store_true", default=False)
24+
parser.add_argument('--lensweight', action="store_true", default=False)
25+
26+
# TODO update with intuitive source bin detection, and check with a proper example
27+
if __name__ == '__main__':
28+
args = parser.parse_args()
29+
paths.update_params(args.params)
30+
31+
clusts = []
32+
flist, flist_jk, rlist, rlist_jk = parbins.get_file_lists(paths.params, paths.dirpaths)
33+
for i, clust_name in enumerate(flist_jk):
34+
print("processing bin", i)
35+
36+
clust_infos = xwrap.create_infodict(clust_name)
37+
clust_files = [info["outfile"] for info in clust_infos]
38+
39+
weights = None
40+
if args.lensweight:
41+
weights = shearops.load_weights(i)
42+
43+
bin_tag = clust_files[0].split("_" + paths.params["lens_prefix"])[1].split("_patch")[0]
44+
45+
clust = shearops.process_profile(clust_files, ismeta=args.nometa, weights=weights)
46+
47+
resroot = paths.dirpaths["results"] + "/" + \
48+
paths.params["tag"] + "/" + paths.params["tag"] + "_" + paths.params["lens_prefix"] + bin_tag
49+
xwrap.write_profile(clust, resroot)
50+
51+
if args.calibs:
52+
ccont = xwrap.append_scrit_inv(ccont, clust)

bin/pipe-y3/xshear_metacal.py

+125
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
"""
2+
Wrapper to run xshear with METACALIBRATION shears
3+
4+
USAGE:
5+
run 5 times in total:
6+
- first for shear responses and shear,
7+
- 4 times to calculate inputs for selection responses
8+
9+
"""
10+
from __future__ import print_function, division
11+
import argparse
12+
import numpy as np
13+
from collections import OrderedDict
14+
15+
import xpipe.paths as paths
16+
import xpipe.xhandle.parbins as parbins
17+
import xpipe.xhandle.xwrap as xwrap
18+
import xpipe.tools.selector as selector
19+
20+
parser = argparse.ArgumentParser(description='Runs xshear')
21+
parser.add_argument('--runall', action="store_true")
22+
parser.add_argument('--head', action="store_true")
23+
parser.add_argument('--nopairs', action="store_false")
24+
parser.add_argument('--noclust', action="store_true")
25+
parser.add_argument('--norands', action="store_true")
26+
parser.add_argument('--params', type=str)
27+
28+
parser.add_argument("--metachunk", type=int, default=0)
29+
parser.add_argument("--nchunk", type=int, default=1)
30+
parser.add_argument("--ichunk", type=int, default=0)
31+
32+
33+
shape_path = paths.fullpaths[paths.params["shear_to_use"]]
34+
sheared_shape_paths = []
35+
for tag in xwrap.sheared_tags:
36+
sheared_shape_paths.append(shape_path.replace(".dat", tag + ".dat"))
37+
38+
if __name__ == '__main__':
39+
args = parser.parse_args()
40+
paths.update_params(args.params)
41+
42+
xpath = parbins.get_dpath(paths.params, paths.dirpaths) + "/" + \
43+
paths.params["tag"] + "_xconfig.cfg"
44+
45+
flist, flist_jk, rlist, rlist_jk = parbins.get_file_lists(paths.params, paths.dirpaths)
46+
print(flist)
47+
print(rlist)
48+
if args.metachunk == 0 or args.runall:
49+
print(xpath)
50+
51+
shear_settings = OrderedDict([
52+
('shear_style', "metacal"),
53+
('sigmacrit_style', 'sample'),
54+
('shear_units', 'both'),
55+
('sourceid_style', 'somcell'),
56+
('weight_style', "uniform")
57+
])
58+
xsettings=xwrap.get_main_source_settings()
59+
xsettings.update({"shear": shear_settings})
60+
# print(xsettings)
61+
xwrap.write_custom_xconf(xpath, xsettings=xsettings)
62+
63+
if not args.noclust:
64+
_alist = np.concatenate(flist_jk)
65+
alist = selector.partition(_alist, args.nchunk)[args.ichunk]
66+
clust_infos = xwrap.create_infodict(alist,
67+
head=args.head,
68+
pairs=args.nopairs,
69+
src_bins=paths.params["source_bins_to_use"],
70+
xconfig=xpath)
71+
print(clust_infos[0])
72+
xwrap.multi_xrun(clust_infos, nprocess=paths.params['nprocess'])
73+
74+
if not args.norands:
75+
_blist = np.concatenate(rlist_jk)
76+
blist = selector.partition(_blist, args.nchunk)[args.ichunk]
77+
rands_infos = xwrap.create_infodict(blist,
78+
head=args.head,
79+
pairs=args.nopairs,
80+
src_bins=paths.params["source_bins_to_use"],
81+
xconfig=xpath)
82+
xwrap.multi_xrun(rands_infos, nprocess=paths.params['nprocess'])
83+
84+
# this is the sheared computation with flags_select_*
85+
#sheared_tags =["_sheared_1p", "_sheared_1m", "_sheared_2p", "_sheared_2m"]
86+
for i, tag in enumerate(xwrap.sheared_tags):
87+
if i == (args.metachunk - 1) or args.runall:
88+
sheared_xconfig_fname = xpath.replace("xconfig", "xconfig" + tag)
89+
print(sheared_xconfig_fname)
90+
91+
xsettings = {
92+
"shear": OrderedDict([
93+
('shear_style', "reduced"),
94+
('sigmacrit_style', 'sample'),
95+
('shear_units', 'both'),
96+
('sourceid_style', 'somcell'),
97+
]),
98+
"pairlog": xwrap.pairlog_nopairs
99+
}
100+
xwrap.write_custom_xconf(sheared_xconfig_fname, xsettings=xsettings)
101+
102+
if not args.noclust:
103+
_alist = np.concatenate(flist_jk)
104+
alist = selector.partition(_alist, args.nchunk)[args.ichunk]
105+
sheared_clust_infos = xwrap.create_infodict(alist,
106+
head=args.head,
107+
pairs=args.nopairs,
108+
src_bins=paths.params["source_bins_to_use"],
109+
xconfig=sheared_xconfig_fname,
110+
metatag=tag,
111+
shape_path=sheared_shape_paths[i], )
112+
113+
xwrap.multi_xrun(sheared_clust_infos, nprocess=paths.params['nprocess'])
114+
115+
if not args.norands:
116+
_blist = np.concatenate(rlist_jk)
117+
blist = selector.partition(_blist, args.nchunk)[args.ichunk]
118+
sheared_rand_infos = xwrap.create_infodict(blist,
119+
head=args.head,
120+
pairs=args.nopairs,
121+
src_bins=paths.params["source_bins_to_use"],
122+
xconfig=sheared_xconfig_fname,
123+
metatag=tag,
124+
shape_path=sheared_shape_paths[i], )
125+
xwrap.multi_xrun(sheared_rand_infos, nprocess=paths.params['nprocess'])

setup.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
setup(name="xpipe",
44
packages=find_packages(),
5-
description="Measurement and data processing for DES Y1 cluster lensing",
5+
description="Measurement and data processing for DES cluster lensing",
66
install_requires=['numpy', 'scipy', 'pandas', 'astropy', 'fitsio', 'kmeans_radec', ],
77
dependency_links=['http://github.com/user/repo/tarball/master#egg=package-1.0'],
88
author="Tamas Norbert Varga",
99
author_email="[email protected]",
10-
version="0.45")
10+
version="0.5")
1111

0 commit comments

Comments
 (0)