Skip to content

Commit d1befba

Browse files
committed
Decompose consdb polygons at the start.
1 parent 1c193a1 commit d1befba

File tree

2 files changed

+19
-14
lines changed

2 files changed

+19
-14
lines changed

decasu/lsst_wcs_consdb.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,14 @@ def __init__(self, config, dbstring, bands, compute_pixels=True):
101101
db_table["dec_center"] = np.zeros(len(db_table))
102102
db_table["decasu_lst"] = np.zeros(len(db_table))
103103
db_table["skyvar"] = db_table["sky_noise"]**2.
104+
db_table["ra_poly_0"] = np.zeros(len(db_table))
105+
db_table["ra_poly_1"] = np.zeros(len(db_table))
106+
db_table["ra_poly_2"] = np.zeros(len(db_table))
107+
db_table["ra_poly_3"] = np.zeros(len(db_table))
108+
db_table["dec_poly_0"] = np.zeros(len(db_table))
109+
db_table["dec_poly_1"] = np.zeros(len(db_table))
110+
db_table["dec_poly_2"] = np.zeros(len(db_table))
111+
db_table["dec_poly_3"] = np.zeros(len(db_table))
104112

105113
print("Computing local sidereal time...")
106114
loc = EarthLocation(lat=config.latitude*units.degree,
@@ -144,12 +152,20 @@ def __call__(self, row):
144152
region_str = self.table["s_region"][row]
145153

146154
region = lsst.sphgeom.Region.from_ivoa_pos("".join(region_str.split("ICRS")).upper())
155+
verts = [lsst.sphgeom.LonLat(vert) for vert in region.getVertices()]
156+
ra = np.asarray([v.getLon().asDegrees() for v in verts])
157+
dec = np.asarray([v.getLat().asDegrees() for v in verts])
158+
147159
centroid = lsst.sphgeom.LonLat(region.getCentroid())
148160
center = [centroid.getLon().asDegrees(), centroid.getLat().asDegrees()]
149161

150162
self.table["ra_center"][row] = center[0]
151163
self.table["dec_center"][row] = center[1]
152164

165+
for i in range(4):
166+
self.table[f"ra_poly_{i}"][row] = ra[i]
167+
self.table[f"dec_poly_{i}"][row] = dec[i]
168+
153169
if self.compute_pixels:
154170
vertices = np.asarray([[v.x(), v.y(), v.z()] for v in region.getVertices()])
155171
pixels = hpg.query_polygon_vec(self.config.nside_run, vertices, inclusive=True, fact=16)

decasu/region_mapper.py

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -500,20 +500,9 @@ def build_region_input_map(self, indices, tilename=None, hpix=None):
500500
else:
501501
# Don't use the WCS and use the bounding box specified in the table.
502502
# This is only possible with DECam 1-amp mode or consdb.
503-
if "s_region" in dg.table.dtype.names:
504-
import lsst.sphgeom
505-
506-
region = lsst.sphgeom.Region.from_ivoa_pos(
507-
"".join(dg.table["s_region"][ind].split("ICRS")).upper(),
508-
)
509-
verts = [lsst.sphgeom.LonLat(vert) for vert in region.getVertices()]
510-
ra = np.asarray([v.getLon().asDegrees() for v in verts])
511-
dec = np.asarray([v.getLat().asDegrees() for v in verts])
512-
poly = healsparse.Polygon(ra=ra, dec=dec, value=[bit])
513-
else:
514-
ra = np.array([dg.table[field][ind] for field in self.config.ra_corner_fields])
515-
dec = np.array([dg.table[field][ind] for field in self.config.dec_corner_fields])
516-
poly = healsparse.Polygon(ra=ra, dec=dec, value=[bit])
503+
ra = np.array([dg.table[field][ind] for field in self.config.ra_corner_fields])
504+
dec = np.array([dg.table[field][ind] for field in self.config.dec_corner_fields])
505+
poly = healsparse.Polygon(ra=ra, dec=dec, value=[bit])
517506

518507
# Check if we have additional masking
519508
if (dg.streak_table is not None or dg.bleed_table is not None or

0 commit comments

Comments
 (0)