There are a couple of tricks to upgrading to the new image api, so installing the new build system from scratch.
Notes on upgrading to the new image API here and here.
Problems I came across :
- Boost had problems installing.
Error: Failed to find/use boost_mpi library in /lsst/lsst_root_dms_012809/Linux64/external/boost/1.36.0+1/lib Solution : reinstall boost eups remove boost 1.36.0+1 --force lsstpkg install -C boost
- Doxygen did not build
Failed to build and install external/doxygen/1.5.8/doxygen.bld Solution : Need to install bison as root (either need to list this [wiki:InstallingOnLinux here] (done) or put in build system) yum install bison
- Having problems "essconsing" because of pex_exceptions
error: lsst/pex/exceptions.h: No such file or directory (even tho $PEX_EXCEPTIONS_DIR/include/lsst/pex/exceptions.h exists) Solution : Need to re-arrange the order of dependencies in both ups.table and SConstruct. Here is one from afw: setupRequired(daf_data >= 3.2.1) setupRequired(utils >= 3.4) setupRequired(boost >= 1.36.0+1) setupRequired(cfitsio >= 3006.2) setupRequired(wcslib >= 4.2+3) setupRequired(xpa >= 2.1.7b2) setupRequired(numpy >= 1.0.1) setupRequired(minuit >= 1.7.9) setupOptional(afwdata) envPrepend(LD_LIBRARY_PATH, ${PRODUCT_DIR}/lib) envPrepend(DYLD_LIBRARY_PATH, ${PRODUCT_DIR}/lib) envPrepend(PYTHONPATH, ${PRODUCT_DIR}/python)
Good reference : afw trunk's SConstruct and table
- Doxygen hangs
It just keeps going at 100% CPU on "doxygen doxygen.conf" Solution: TBD
And other random coding/API changes:
old:
} catch (lsst::pex::exceptions::ExceptionStack &e) {
new:
} catch (std::exception &e) {
old:
kImage = kernelPtr->computeNewImage(kSum, false);
new:
kSum = kernelPtr->computeImage(kImage, false);
old: (cols -> width; rows -> height)
miToConvolveParentPtr->getCols()
new:
miToConvolveParentPtr->getWidth()
old:
unsigned int startCol = (*kiter)->getCtrCol();
new:
unsigned int startCol = (*kiter)->getCtrX();
Col = Width = X
Row = Height = Y
old:
throw pexExcept::DomainError("Unable to determine kernel uncertainty (nan)");
new:
throw LSST_EXCEPT(pexExcept::Exception, "Unable to determine kernel uncertainty (nan)");
old:
i explicitly instantiate things like
lsst::afw::image::MaskedImage<double, lsst::afw::image::MaskPixel> const &imageToNotConvolve,
new:
masked images are now also templated on variance, but there are default values for this and the mask, so i think i want to
lsst::afw::image::MaskedImage<double> const &imageToNotConvolve,
If you get the problem during SWIG:
/lsst/lsst_root_dms_012809/Linux64/daf_base/3.2/python/lsst/daf/base/baseLib.i:21: Error: Unable to find 'lsst/pex/exceptions/exceptionsLib.i'
You need to edit $IP_DIFFIM_DIR/python/lsst/ip/diffim/SConscript and add in stuff like:
env.CheckSwig("python", ilang="c++", includedProducts="pex_exceptions")
old:
templateMaskedImage = afwImage.MaskedImageF()
templateMaskedImage.readFits(templatePath)
new:
templateMaskedImage = afwImage.MaskedImageF(templatePath)
