Problem building meas_mosaic

Hi all,
I am processing HSC data using version 15 of the pipeline and would like to use meas_mosaic. I have been trying to install it from git source using these instructions, and find that I cannot build it using scons. When I try, I receive the following outputs:

scons: Reading SConscript files ...
Setting OS X binary compatibility level: 10.9
EUPS integration: enabled
Checking who built the CC compiler...(cached) clang=9.1.0
CC is clang version 9.1.0
Checking for C++14 support
Checking whether the C++ compiler works... (cached) yes
C++14 supported with '-std=c++14'
Setting up environment to build package 'meas_mosaic'.
Running pytest with 1 process
pytest: running on 2 Python test files.
scons: done reading SConscript files.
scons: Building targets ...
clang++ -o src/FluxFitBoundedField.os -c -std=c++14 -g -DLSST_LITTLE_ENDIAN=1 -O3 -Wall -Wno-unused-function -fPIC -Iinclude -I/Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/afw/15.0/include -I/Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/astshim/15.0/include -I/Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/ndarray/1.4.2lsst1/include -I/Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/pex_config/15.0/include -I/Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/daf_persistence/15.0/include -I/Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/pex_policy/15.0+1/include -I/Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/log/15.0+1/include -I/Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/daf_base/15.0/include -I/Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/utils/15.0/include -I/Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/pex_exceptions/15.0/include -I/Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/base/15.0/include -isystem /Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/pybind11/2.1.1-1-gbfe630d/include -isystem /Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/starlink_ast/lsst-dev-geaa6eadbc4/include -isystem /Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/cfitsio/3360.lsst5/include -isystem /Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/minuit2/5.34.14/include -isystem /Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/fftw/3.3.4.lsst2/include -isystem /Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/eigen/3.2.5.lsst3/include -isystem /Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/mariadbclient/10.1.21.lsst2/include -isystem /Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/log4cxx/0.10.0.lsst7/include -isystem /Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/gsl/2.4/include -isystem /Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/boost/1.66.0/include -isystem /Users/holly/lsst_stack/python/miniconda3-4.3.21/include/python3.6m -isystem /Users/holly/lsst_stack/python/miniconda3-4.3.21/lib/python3.6/site-packages/numpy/core/include src/FluxFitBoundedField.cc
In file included from src/FluxFitBoundedField.cc:24:
In file included from include/lsst/meas/mosaic/FluxFitBoundedField.h:30:
In file included from include/lsst/meas/mosaic/fluxfit.h:6:
include/lsst/meas/mosaic/mosaicfit.h:31:33: error: no matching member function
      for call to 'skyToPixel'
                    _pixels(wcs.skyToPixel(_sky)),
                            ~~~~^~~~~~~~~~
/Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/afw/15.0/include/lsst/afw/geom/SkyWcs.h:335:13: note: 
      candidate function not viable: no known conversion from
      'lsst::afw::geom::SpherePoint' to 'const coord::IcrsCoord' for 1st
      argument
    Point2D skyToPixel(coord::IcrsCoord const &sky) const { return _tran...
            ^
/Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/afw/15.0/include/lsst/afw/geom/SkyWcs.h:336:26: note: 
      candidate function not viable: no known conversion from
      'lsst::afw::geom::SpherePoint' to 'const std::vector<coord::IcrsCoord>'
      for 1st argument
    std::vector<Point2D> skyToPixel(std::vector<coord::IcrsCoord> const ...
                         ^
In file included from src/FluxFitBoundedField.cc:24:
In file included from include/lsst/meas/mosaic/FluxFitBoundedField.h:30:
In file included from include/lsst/meas/mosaic/fluxfit.h:6:
include/lsst/meas/mosaic/mosaicfit.h:243:17: error: constructor for
      'lsst::meas::mosaic::KDTree' must explicitly initialize the member 'c'
      which does not have a default constructor
                KDTree(SourceSet& s, int depth) { _initializeSources(s, ...
                ^
include/lsst/meas/mosaic/mosaicfit.h:238:32: note: member is declared here
                lsst::afw::geom::SpherePoint c;
                                             ^
/Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/afw/15.0/include/lsst/afw/geom/SpherePoint.h:60:7: note: 
      'lsst::afw::geom::SpherePoint' declared here
class SpherePoint final {
      ^
In file included from src/FluxFitBoundedField.cc:24:
In file included from include/lsst/meas/mosaic/FluxFitBoundedField.h:30:
In file included from include/lsst/meas/mosaic/fluxfit.h:6:
include/lsst/meas/mosaic/mosaicfit.h:246:17: error: constructor for
      'lsst::meas::mosaic::KDTree' must explicitly initialize the member 'c'
      which does not have a default constructor
                KDTree(SourceMatchSet m, int depth) { _initializeMatches...
                ^
include/lsst/meas/mosaic/mosaicfit.h:238:32: note: member is declared here
                lsst::afw::geom::SpherePoint c;
                                             ^
/Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/afw/15.0/include/lsst/afw/geom/SpherePoint.h:60:7: note: 
      'lsst::afw::geom::SpherePoint' declared here
class SpherePoint final {
      ^
3 errors generated.
scons: *** [src/FluxFitBoundedField.os] Error 1
scons: building terminated because of errors.

I’m not sure what is causing these errors- any advice would be appreciated! Thank you.

You’re building a modern meas_mosaic with an earlier version of everything else. You need to rewind meas_mosaic to the same point at which the LSST 15.0 release was made. I’ve added a 15.0 tag to make it easier:

git checkout 15.0

Oh, I see - thank you so much!

I have a follow-up question – I don’t really understand how to run mosaic.py. Running

mosaic.py DATA --rerun meas_mosaic -c allowMixedFilters=True --numCoresForRead=8 --diagnostics --diagDir=DATA/rerun/meas_mosaic/diagnostics --id filter=HSC-R2^HSC-I2^HSC-NB0816

I’m getting the following error:

Traceback (most recent call last):
  File "/Users/holly/lsst_stack/meas_mosaic/bin/mosaic.py", line 5, in <module>
    MosaicTask.parseAndRun()
  File "/Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/pipe_base/15.0/python/lsst/pipe/base/cmdLineTask.py", line 581, in parseAndRun
    parsedCmd = argumentParser.parse_args(config=config, args=args, log=log, override=cls.applyOverrides)
  File "/Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/pipe_base/15.0/python/lsst/pipe/base/argumentParser.py", line 623, in parse_args
    self._processDataIds(namespace)
  File "/Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/pipe_base/15.0/python/lsst/pipe/base/argumentParser.py", line 732, in _processDataIds
    dataIdContainer.makeDataRefList(namespace)
  File "/Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/meas_base/15.0/python/lsst/meas/base/forcedPhotCcd.py", line 72, in makeDataRefList
    skymap = namespace.butler.get(namespace.config.coaddName + "Coadd_skyMap")
  File "/Users/holly/lsst_stack/stack/miniconda3-4.3.21-10a4fa6/DarwinX86/daf_persistence/15.0/python/lsst/daf/persistence/butler.py", line 1410, in get
    raise NoResults("No locations for get:", datasetType, dataId)
lsst.daf.persistence.butlerExceptions.NoResults: No locations for get: datasetType:deepCoadd_skyMap dataId:DataId(initialdata={}, tag=set())

I’m not sure exactly what this means or how to fix it… any help would be much appreciated. Thank you!

You need a skyMap so it can find what visits lie in what tracts. See here for making a skyMap:

https://pipelines.lsst.io/v/DM-11393/getting-started/coaddition.html#making-a-sky-map

(And there is no such filter as HSC-NB0816 — it’s just NB0816.)

Thank you! I have a skyMap and am still receiving the same error message - is there some way I can specify the directory that my skyMap is stored in so meas_mosaic can find it?

(and thank you @price for catching my error with the filter name!)

The skymap has to be created in the same rerun as (or a parent rerun of what) you’re using for meas_mosaic.

That was the problem - looks like I’m good to go! Thank you both very much!