Detect the water surface for safe landing

Hi all,

I want to detect the water surface for my drone avoid landing on water.
In PX4 User Guide say: “Landing on water may occur if using radar or ultrasound sensors, but should not occur if using stereo cameras or LIDAR. The system will only land if it is able to detect ground. For stereo cameras, water that is rough enough to have sufficient distinguishing features for analysis will not be flat enough to land on”
https://docs.px4.io/master/en/computer_vision/safe_landing.html
I want to ask you for advice:

  1. Is there any document more explain for detail about that?
  2. Except using stereo cameras or LIDAR, is there any other way to detect the water surface?
  3. Can use the PX4Flow to detect the water surface?
    https://docs.px4.io/master/en/sensor/optical_flow.html

Thank you for spending the time to read and answer me!