lofar-astron/DP3

Better error message when LOFAR beam not compiled and applybeam is used

Closed this issue · 2 comments

I'm running prefactor and I get the following error:

std exception detected: Shared library applybeam not found in CASACORE_LDPATH or (DY)LD_LIBRARY_PATH
libdppp_applybeam.so: cannot open shared object file: No such file or directory
libdppp_applybeam.so: cannot open shared object file: No such file or directory

Should it be looking externally for applybeam? Running DPPP with the parset below reproduces the problem. This is using DP3 v4.1. Any suggestions appreciated.

msin.datacolumn=CORRECTED_DATA
applybeam.beammode=element
numthreads=10
applybeam.updateweights=True
applybeam.type=applybeam
applybeam.invert=True
applybeam.usechannelfreq=False
steps=[applybeam]
msin=/var/tmp/prefactor/working/Pre-Facet-Calibrator/L232873_SB218_uv.dppp.ndppp_prep_cal
msout.storagemanager=Dysco
msout.datacolumn=CORRECTED_DATA
msout.storagemanager.databitrate=0
msout=/var/tmp/prefactor/working/Pre-Facet-Calibrator/L232873_SB218_uv.dppp.ndppp_prep_cal'

You've probably not compiled with the LOFAR beam. Without the LOFAR beam, the applybeam step doesn't exist. The beam is available at https://github.com/lofar-astron/LOFARBeam .

We should report a nicer error message though, so I'll keep this open as a feature request to fix this error.

Cheers. I thought I had compiled with the beam but cmake was pretty stubborn. Setting:
-DLOFAR_STATION_RESPONSE_DIR=/opt/LOFARBeam-4.0/include -DLOFAR_STATION_RESPONSE_LIB=/opt/LOFARBeam-4.0/lib would get cmake to declare it found the beam library but it would fail at linking. Manually adding -L/opt/LOFARBeam-4.0/lib -lelementresponse -lstationresponse worked.

In the end just setting -DCMAKE_PREFIX_PATH=/opt/LOFARBeam-4.0 did the trick.