construct_array_relative_beamvector¶
- HSTB.kluster.modules.beampointingvector.construct_array_relative_beamvector(maintx, mainrx, tx_angle, rx_angle)¶
Given the orientation vectors representing the transmitter/receiver at time of ping/receive (maintx, mainrx) and the TX/RX steering angles (tx_angle, rx_angle), determine new 3d beam vector components at the midpoint between the TX and RX. This would be the ‘actual’ array relative beam vector.
This is a simplification of the actual scenario, adding error in the xyz due to the difference in path length/ direction of the actual ray from tx-seafloor and seafloor-rx and this co-located assumption (tx-seafloor and rx-seafloor are the same is the assumption)
x = +FORWARD, y=+STARBOARD, z=+DOWN
Returns:
3d beam vector in co-located array ref frame. Of shape (xyz, time, beam), with 10 times and 200 beams, beamvecs shape would be (3, 10, 200)
<xarray.DataArray ‘tiltangle’ (xyz: 3, time: 10, beam: 200)>dask.array<concatenate, shape=(3, 10, 200), dtype=float64, chunksize=(1, 10, 200), chunktype=numpy.ndarray>Coordinates:* time (time) float64 1.496e+09 1.496e+09 …* beam (beam) int32 0 1 2 3 4 5 6 7 8 … 194 195 196 197 198 199 200* xyz (xyz) object ‘x’ ‘y’ ‘z’- Parameters
maintx (
DataArray) – orientation vector for transmitter at time of transmit, 2dim of shape (time, xyz)mainrx (
DataArray) – orientation vector for receiver at time of receive, 2dim of shape (time, xyz)tx_angle (
DataArray) – transmitter tiltangle for each ping timerx_angle (
DataArray) – receiver beam pointing angle for each ping time
- Returns
3d beam vector in co-located array ref frame
- Return type
xr.DataArray