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}