change the sampleLayer to your water layer and then try applying the following to the boat position.
L = thisLayer;
targetPosition = L.toWorld(L.anchorPoint);
sampleLayer = thisComp.layer(thisComp.numLayers);
for (i=0; i<thisComp.height;i++) {
alphaCheck = sampleLayer.sampleImage(sampleLayer.fromWorld([targetPosition[0],i]), radius = [.5,.5]);
if (alphaCheck[3]<1) {
continue;
} else {
alphaPosition = [0,i];
break;
}
}
newWorldPos = L.fromWorld(L.toWorld(alphaPosition));
[value[0],newWorldPos[1]]
Dan Fredley