How LSST's do astrometry?the package and the sequence it call while doing astrometry?

I have a question, it may be kinda stupid, I want to know how LSST’s pipeline do astrometry,and I want to read and modify these codes, and finally use them to do astrometry for other observatory’s images, and I follow the Command editting

(lsst-scipipe-0.7.0) [yu@localhost astrom]$ which singleFrameDriver.py          ~/lsst_stack/stack/miniconda3-py38_4.9.2-0.7.0/Linux64/pipe_drivers/22.0.0+26c05adf09/bin/singleFrameDriver.py
(lsst-scipipe-0.7.0) [yu@localhost astrom]$ cat ~/lsst_stack/stack/miniconda3-py38_4.9.2-0.7.0/Linux64/pipe_drivers/22.0.0+26c05adf09/bin/singleFrameDriver.py
#!/usr/bin/env python
from lsst.pipe.drivers.singleFrameDriver import SingleFrameDriverTask
SingleFrameDriverTask.parseAndSubmit()

And I opened the lsst.pipe.drivers.singleFrameDriver, find it inherits from BatchParrelTask,which inherits from BatchCmdLineTask, then to CmdLineTask, and finally to Task. I find no footprint that use the package in

(lsst-scipipe-0.7.0) [yu@localhost astrom]$ pwd
/home/yu/lsst_stack/stack/miniconda3-py38_4.9.2-0.7.0/Linux64/meas_astrom/22.0.1-12-g44dc1dc+b59be3614c/python/lsst/meas/astrom
(lsst-scipipe-0.7.0) [yu@localhost astrom]$ ls
approximateWcs.py                    pessimisticPatternMatcherUtils.cc
astrometry.py                        pessimisticPatternMatcherUtils.so
denormalizeMatches.py                polynomialTransform.cc
directMatch.py                       polynomialTransform.so
display.py                           __pycache__
fitAffineWcs.py                      ref_match.py
fitSipDistortion.py                  scaledPolynomialTransformFitter.cc
fitTanSipWcs.py                      scaledPolynomialTransformFitter.so
__init__.py                          SConscript
makeMatchStatistics.cc               setMatchDistance.py
makeMatchStatistics.so               sip
matchOptimisticB                     sipTransform.cc
matchOptimisticBTask.py              sipTransform.so
matchPessimisticB.py                 verifyWcs.py
pessimistic_pattern_matcher_b_3D.py  version.py

Parts of these must be applied to the images in some sequence while doing the astrometry.
So, how can I know how LSST’s do astrometry? What packages did it call? And the order of them?
Thank you!

Learning about the LSST Science Pipelines to the extent of applying them to other observatories will take some time. You may want to start with presentations and videos from the most recent “Boot Camp” to understand how they work in general.

Specifically with reference to astrometry, I can give a couple of quick pointers to the minimal documentation we have. Other, more knowledgeable people may weigh in here, but likely not until after the US holidays. The AstrometryTask has some documentation at AstrometryTask — LSST Science Pipelines, and lsst.meas.astrom — LSST Science Pipelines documents the other components of the meas_astrom package, including the “Retargetable subtasks” that can be plugged into the astrometry framework.

This framework is in turn called by CalibrateTask from pipe_tasks. But before you get to that point you will almost certainly need to run the IsrTask and CharacterizeImageTask (which are similarly documented nearby in pipelines.lsst.io, and which themselves have prerequisites like master calibration images and a camera geometry description).

The singleFrameDriver.py, BatchParallelTask, BatchCmdLineTask, and CmdLineTask are middleware classes that provide an execution framework, rather than actual scientific algorithms. Furthermore, they are all obsolete as we have moved to the so-called “Gen3 Middleware”.

1 Like