|
| 1 | +import argparse as ap |
| 2 | + |
| 3 | +import matplotlib.pyplot as plt |
| 4 | +import numpy as np |
| 5 | +from pixell import enmap |
| 6 | + |
| 7 | +from mapcat.toolkit.update_sky_coverage import * |
| 8 | + |
| 9 | +parser = ap.ArgumentParser() |
| 10 | +parser.add_argument("--imap_path", type=str) |
| 11 | +parser.add_argument("--d1map_path", type=str) |
| 12 | +parser.add_argument("--opath", type=str) |
| 13 | + |
| 14 | +args = parser.parse_args() |
| 15 | +imap_path = args.imap_path |
| 16 | +d1map_path = args.d1map_path |
| 17 | +opath = args.opath |
| 18 | + |
| 19 | +imap = enmap.read_map(str(imap_path)) |
| 20 | + |
| 21 | +box = imap.box() |
| 22 | + |
| 23 | +dec_min, ra_max = np.rad2deg(box[0]) |
| 24 | +dec_max, ra_min = np.rad2deg(box[1]) |
| 25 | + |
| 26 | +pad_low = int((90 + dec_min) * 6 * 2) |
| 27 | +pad_high = int((90 - dec_max) * 6 * 2) |
| 28 | + |
| 29 | +imap = imap[0][::10, ::10] |
| 30 | + |
| 31 | +pad_map = np.pad( |
| 32 | + imap, ((pad_low, pad_high), (0, 0)), mode="constant", constant_values=0 |
| 33 | +) |
| 34 | +del imap |
| 35 | + |
| 36 | +left_limit = pad_map.shape[1] |
| 37 | +right_limit = 0 |
| 38 | +top_limit = pad_map.shape[0] |
| 39 | +bottom_limit = 0 |
| 40 | +extent = [left_limit, right_limit, bottom_limit, top_limit] |
| 41 | + |
| 42 | + |
| 43 | +plt.imshow(pad_map, vmin=-300, vmax=300, origin="lower", extent=extent) |
| 44 | +plt.vlines( |
| 45 | + np.arange(0, 360 * 6 * 2, 10 * 6 * 2), ymin=0, ymax=180 * 6 * 2, color="black", lw=1 |
| 46 | +) |
| 47 | +plt.hlines( |
| 48 | + np.arange(0, 180 * 6 * 2, 10 * 6 * 2), xmin=0, xmax=360 * 6 * 2, color="black", lw=1 |
| 49 | +) |
| 50 | +plt.xticks(np.arange(0, 360 * 6 * 2, 20 * 6 * 2), labels=np.arange(0, 360, 20)) |
| 51 | +plt.yticks(np.arange(0, 180 * 6 * 2, 10 * 6 * 2), labels=np.arange(-90, 90, 10)) |
| 52 | +plt.xlabel("RA (degrees)") |
| 53 | +plt.ylabel("Dec (degrees)") |
| 54 | + |
| 55 | +d1map = enmap.read_map(str(d1map_path)) |
| 56 | +coverage_tiles = get_sky_coverage(d1map) |
| 57 | + |
| 58 | +d1box = d1map.box() |
| 59 | + |
| 60 | +d1dec_min, d1ra_max = np.rad2deg(d1box[0]) |
| 61 | +d1dec_max, d1ra_min = np.rad2deg(d1box[1]) |
| 62 | + |
| 63 | +d1pad_low_dec = int((90 + d1dec_min) * 6 * 2) |
| 64 | +d1pad_high_dec = int((90 - d1dec_max) * 6 * 2) |
| 65 | + |
| 66 | +d1pad_low_ra = int((180 + d1ra_min) * 6 * 2) |
| 67 | +d1pad_high_ra = int((180 - d1ra_max) * 6 * 2) |
| 68 | + |
| 69 | +d1map = d1map[0][::10, ::10] |
| 70 | +d1pad_map = np.pad( |
| 71 | + d1map, |
| 72 | + ((d1pad_low_dec, d1pad_high_dec), (d1pad_high_ra, d1pad_low_ra)), |
| 73 | + mode="constant", |
| 74 | + constant_values=0, |
| 75 | +) |
| 76 | + |
| 77 | +plt.imshow( |
| 78 | + d1pad_map, |
| 79 | + vmin=-300, |
| 80 | + vmax=300, |
| 81 | + origin="lower", |
| 82 | + alpha=0.5, |
| 83 | + cmap="seismic", |
| 84 | + extent=extent, |
| 85 | +) |
| 86 | + |
| 87 | +for tile in coverage_tiles: |
| 88 | + plt.gca().add_patch( |
| 89 | + plt.Rectangle( |
| 90 | + (tile[0] * 10 * 6 * 2, tile[1] * 10 * 6 * 2), |
| 91 | + 10 * 6 * 2, |
| 92 | + 10 * 6 * 2, |
| 93 | + fill=False, |
| 94 | + edgecolor="red", |
| 95 | + lw=2, |
| 96 | + ) |
| 97 | + ) |
| 98 | + |
| 99 | +plt.savefig(opath + "act_coverage.png", dpi=300) |
0 commit comments