27 """Manage a spatial index of hierarchical triangular mesh (HTM)
33 Depth of the HTM hierarchy to construct.
36 self.
htm = esutil.htm.HTM(depth)
39 """Get the IDs of all shards that touch a circular aperture.
43 ctrCoord : `lsst.geom.SpherePoint`
44 ICRS center of search region.
45 radius : `lsst.geom.Angle`
46 Radius of search region.
53 - shardIdList : `list` of `int`
55 - isOnBoundary : `list` of `bool`
56 For each shard in ``shardIdList`` is the shard on the
57 boundary (not fully enclosed by the search region)?
59 shardIdList = self.
htm.intersect(ctrCoord.getLongitude().asDegrees(),
60 ctrCoord.getLatitude().asDegrees(),
61 radius.asDegrees(), inclusive=
True)
62 coveredShardIdList = self.
htm.intersect(ctrCoord.getLongitude().asDegrees(),
63 ctrCoord.getLatitude().asDegrees(),
64 radius.asDegrees(), inclusive=
False)
65 isOnBoundary = (shardId
not in coveredShardIdList
for shardId
in shardIdList)
66 return shardIdList, isOnBoundary
69 """Generate shard IDs for sky positions.
73 raList : `list` of `float`
74 List of right ascensions, in degrees.
75 decList : `list` of `float`
76 List of declinations, in degrees.
80 shardIds : `list` of `int`
83 return self.
htm.lookup_id(raList, decList)
87 """Make a data id from a shard ID.
92 ID of shard in question.
94 Name of dataset to use.
104 return {
'pixel_id': shardId,
'name': datasetName}