MOC footprints

Stub

Final content will cover registering MOCs and using IN_MOC / NOT IN_MOC predicates to restrict queries to a survey footprint or sky region.

Topics planned:

  • What a MOC is (a Multi-Order Coverage map; a region of sky encoded as a set of HEALPix pixels at various Norders). See the Glossary.
  • Registering one: s.register_moc("name", "path.fits"), or via a YAML mocs: block.
  • Using it: WHERE IN_MOC(<alias>, '<name>') and WHERE NOT IN_MOC(<alias>, '<name>').
  • Catalog auto-resolution: if you don't register 'two_mass' but a catalog named two_mass has a point_map.fits, IN_MOC(a, 'two_mass') lazy-loads it. Great for cross-survey footprint intersection.
  • Composing predicates: IN_MOC(a, 'des_dr2') AND NOT IN_MOC(a, 'artifacts')acid combines them into one effective MOC before pruning.
  • Where IN_MOC works: conjunctive WHERE, SELECT, ORDER BY, CASE expressions. Where it doesn't: inside OR, inside JOIN ON (rejected with ValidationError).