A method for measuring an average velocity of fluid flow in a channel, comprising: transmitting with a plurality of beams (102; 202; 402; 602; 702), using a transmitter of a non-contact fluid velocity sensor device (101; 201, 401; 601; 701), directed energy carrying a signal toward a surface of a fluid (104; 204, 404; 604; 704) in a fluid channel (103; 203; 403; 603; 703) so as to produce a plurality of reflections, each of the plurality of reflections corresponding to one of a plurality of locations within the fluid channel, wherein the plurality of locations span the entire width of the fluid channel (103; 203; 403; 603; 703); detecting, by at least one receiver of the non-contact fluid velocity sensor device (101; 201, 401; 601; 701), a plurality of received signals, each of the plurality of received signals corresponding to one of the plurality of reflections; determining the level of the fluid in the channel; determining, based upon differences between transmitted and the received signals, a plurality of localized surface velocities, each of the plurality of localized surface velocities corresponding to one of the plurality of locations, wherein the determining comprises identifying, for each of the one or more received signals, a velocity corresponding to the location of the corresponding received signal; whereby a beam (102; 202; 402; 602; 702) has a shape of a circular or flattened cone having its apex at the sensor device (101; 201, 401; 601; 701), whereby the projection of the cone on the surface of the fluid (104; 204, 404; 604; 704) produces a measurement patch whose shape is either circular, or ovaloid or teardrop-shaped and has a given width; characterized in computing, from the plurality of localized surface velocities, a cross-sectional average velocity of fluid in the channel; and wherein the given width of the measurement patch of the beam (102; 202; 402; 602; 702) contacting the surface of the fluid (104; 204, 404; 604; 704) is kept constant irrespective of the level of the fluid. transmitting with a plurality of beams (102; 202; 402; 602; 702), using a transmitter of a non-contact fluid velocity sensor device (101; 201, 401; 601; 701), directed energy carrying a signal toward a surface of a fluid (104; 204, 404; 604; 704) in a fluid channel (103; 203; 403; 603; 703) so as to produce a plurality of reflections, each of the plurality of reflections corresponding to one of a plurality of locations within the fluid channel, wherein the plurality of locations span the entire width of the fluid channel (103; 203; 403; 603; 703); detecting, by at least one receiver of the non-contact fluid velocity sensor device (101; 201, 401; 601; 701), a plurality of received signals, each of the plurality of received signals corresponding to one of the plurality of reflections; determining the level of the fluid in the channel; determining, based upon differences between transmitted and the received signals, a plurality of localized surface velocities, each of the plurality of localized surface velocities corresponding to one of the plurality of locations, wherein the determining comprises identifying, for each of the one or more received signals, a velocity corresponding to the location of the corresponding received signal; whereby a beam (102; 202; 402; 602; 702) has a shape of a circular or flattened cone having its apex at the sensor device (101; 201, 401; 601; 701), whereby the projection of the cone on the surface of the fluid (104; 204, 404; 604; 704) produces a measurement patch whose shape is either circular, or ovaloid or teardrop-shaped and has a given width; characterized in computing, from the plurality of localized surface velocities, a cross-sectional average velocity of fluid in the channel; and wherein the given width of the measurement patch of the beam (102; 202; 402; 602; 702) contacting the surface of the fluid (104; 204, 404; 604; 704) is kept constant irrespective of the level of the fluid.