diff --git a/client.go b/client.go index 1262342..66a4c35 100644 --- a/client.go +++ b/client.go @@ -17,11 +17,11 @@ type UDPConn interface { // Client is a VLP-16 client. type Client struct { - conn UDPConn - senderAddr *net.UDPAddr - buf [lengthOfPacket]byte - packet Packet - sphericalPointCloud SphericalPointCloud + conn UDPConn + senderAddr *net.UDPAddr + buf [lengthOfPacket]byte + packet Packet + pointCloud PointCloud } // NewClient returns a new VLP-16 client with the provided UDP connection. @@ -44,7 +44,7 @@ func (c *Client) Receive(ctx context.Context) error { return xerrors.Errorf("VLP-16 client: receive: unexpected packet length: %d (expected %d)", n, lengthOfPacket) } c.packet.unmarshal(&c.buf) - c.sphericalPointCloud.UnmarshalPacket(&c.packet) + c.pointCloud.UnmarshalPacket(&c.packet) return nil } @@ -63,9 +63,9 @@ func (c *Client) Packet() *Packet { return &c.packet } -// Packet returns the last received VLP-16 packet decoded as a spherical point cloud. -func (c *Client) SphericalPointCloud() *SphericalPointCloud { - return &c.sphericalPointCloud +// PointCloud returns the point cloud representation of the last received packet. +func (c *Client) PointCloud() *PointCloud { + return &c.pointCloud } // Close the client's underlying UDP connection. diff --git a/client_test.go b/client_test.go index 89dfe39..e2a2ef5 100644 --- a/client_test.go +++ b/client_test.go @@ -41,5 +41,5 @@ func TestClient_Receive(t *testing.T) { require.NoError(t, client.Receive(ctx)) require.Equal(t, exampleData, client.RawPacket()) require.Equal(t, examplePacket(), client.Packet()) - require.Equal(t, exampleSphericalPointCloud(), client.SphericalPointCloud()) + requirePointCloudEqual(t, exampleSphericalPointCloud(), client.PointCloud()) } diff --git a/example_test.go b/example_test.go index 3e03a5f..aca2a35 100644 --- a/example_test.go +++ b/example_test.go @@ -1,5 +1,9 @@ package vlp16 +import ( + "github.com/einride/unit" +) + func exampleData() *[lengthOfPacket]byte { return &[lengthOfPacket]byte{ 0xff, 0xee, 0x66, 0x28, 0x0, 0x0, 0x2, 0xff, 0x2, 0x3, 0x0, 0x0, 0x3, 0x10, 0x3, 0x4b, 0x0, 0x0, 0x2, @@ -69,14 +73,15 @@ func exampleData() *[lengthOfPacket]byte { } } -func examplePacketLastReflection() *Packet { +func examplePacket() *Packet { return &Packet{ Blocks: [12]Block{ { Azimuth: 0x2866, + Flag: 0xeeff, Channels: [32]Channel{ {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2ff, Reflectivity: 0x3}, // Second valid point, last return + {Distance: 0x2ff, Reflectivity: 0x3}, {Distance: 0x0, Reflectivity: 0x3}, {Distance: 0x310, Reflectivity: 0x4b}, {Distance: 0x0, Reflectivity: 0x2}, @@ -90,7 +95,7 @@ func examplePacketLastReflection() *Packet { {Distance: 0x2a9, Reflectivity: 0x23}, {Distance: 0x2c5, Reflectivity: 0x32}, {Distance: 0x2c3, Reflectivity: 0x1d}, - {Distance: 0x2d9, Reflectivity: 0x4a}, // 16th valid point, Laser ID 15 + {Distance: 0x2d9, Reflectivity: 0x4a}, {Distance: 0x0, Reflectivity: 0x2}, {Distance: 0x30f, Reflectivity: 0x7}, {Distance: 0x0, Reflectivity: 0x2}, @@ -106,16 +111,17 @@ func examplePacketLastReflection() *Packet { {Distance: 0x2b5, Reflectivity: 0x26}, {Distance: 0x2d6, Reflectivity: 0x39}, {Distance: 0x2c6, Reflectivity: 0x18}, - {Distance: 0x2d3, Reflectivity: 0x32}, // 32nd valid point, Laser ID 31 + {Distance: 0x2d3, Reflectivity: 0x32}, }, }, { Azimuth: 0x288e, + Flag: 0xeeff, Channels: [32]Channel{ {Distance: 0x0, Reflectivity: 0x2}, {Distance: 0x0, Reflectivity: 0x64}, {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x318, Reflectivity: 0x4c}, // 36th valid point, not last return + {Distance: 0x318, Reflectivity: 0x4c}, {Distance: 0x0, Reflectivity: 0x2}, {Distance: 0x2ad, Reflectivity: 0x3e}, {Distance: 0x0, Reflectivity: 0x3}, @@ -148,6 +154,7 @@ func examplePacketLastReflection() *Packet { }, { Azimuth: 0x28b6, + Flag: 0xeeff, Channels: [32]Channel{ {Distance: 0x0, Reflectivity: 0x2}, {Distance: 0x31c, Reflectivity: 0x45}, @@ -185,6 +192,7 @@ func examplePacketLastReflection() *Packet { }, { Azimuth: 0x28de, + Flag: 0xeeff, Channels: [32]Channel{ {Distance: 0x0, Reflectivity: 0x2}, {Distance: 0x321, Reflectivity: 0x41}, @@ -222,6 +230,7 @@ func examplePacketLastReflection() *Packet { }, { Azimuth: 0x2906, + Flag: 0xeeff, Channels: [32]Channel{ {Distance: 0x0, Reflectivity: 0x2}, {Distance: 0x322, Reflectivity: 0x43}, @@ -259,6 +268,7 @@ func examplePacketLastReflection() *Packet { }, { Azimuth: 0x292e, + Flag: 0xeeff, Channels: [32]Channel{ {Distance: 0x0, Reflectivity: 0x2}, {Distance: 0x32b, Reflectivity: 0x41}, @@ -296,6 +306,7 @@ func examplePacketLastReflection() *Packet { }, { Azimuth: 0x2956, + Flag: 0xeeff, Channels: [32]Channel{ {Distance: 0x0, Reflectivity: 0x2}, {Distance: 0x331, Reflectivity: 0x3d}, @@ -333,6 +344,7 @@ func examplePacketLastReflection() *Packet { }, { Azimuth: 0x297d, + Flag: 0xeeff, Channels: [32]Channel{ {Distance: 0x0, Reflectivity: 0x2}, {Distance: 0x333, Reflectivity: 0x3d}, @@ -370,6 +382,7 @@ func examplePacketLastReflection() *Packet { }, { Azimuth: 0x29a5, + Flag: 0xeeff, Channels: [32]Channel{ {Distance: 0x0, Reflectivity: 0x2}, {Distance: 0x33a, Reflectivity: 0x38}, @@ -407,6 +420,7 @@ func examplePacketLastReflection() *Packet { }, { Azimuth: 0x29cc, + Flag: 0xeeff, Channels: [32]Channel{ {Distance: 0x0, Reflectivity: 0x2}, {Distance: 0x339, Reflectivity: 0x3c}, @@ -444,6 +458,7 @@ func examplePacketLastReflection() *Packet { }, { Azimuth: 0x29f5, + Flag: 0xeeff, Channels: [32]Channel{ {Distance: 0x0, Reflectivity: 0x2}, {Distance: 0x344, Reflectivity: 0x3a}, @@ -481,6 +496,7 @@ func examplePacketLastReflection() *Packet { }, { Azimuth: 0x2a1d, + Flag: 0xeeff, Channels: [32]Channel{ {Distance: 0x0, Reflectivity: 0x2}, {Distance: 0x346, Reflectivity: 0x38}, @@ -518,6057 +534,2345 @@ func examplePacketLastReflection() *Packet { }, }, Timestamp: 0x9eea6b9b, - ReturnMode: 0x39, + ReturnMode: 0x37, ProductID: 0x22, } } -func examplePacket() *Packet { - return &Packet{ - Blocks: [12]Block{ +func exampleSphericalPointCloud() *PointCloud { + return &PointCloud{ + Azimuths: [ColumnsPerPacket]unit.Angle{ + 103.42 * unit.Degree, + 103.62 * unit.Degree, + 103.82 * unit.Degree, + 104.02 * unit.Degree, + 104.22 * unit.Degree, + 104.42 * unit.Degree, + 104.62 * unit.Degree, + 104.82 * unit.Degree, + 105.02 * unit.Degree, + 105.22 * unit.Degree, + 105.42 * unit.Degree, + 105.62 * unit.Degree, + 105.82 * unit.Degree, + 106.01 * unit.Degree, + 106.21 * unit.Degree, + 106.41 * unit.Degree, + 106.61 * unit.Degree, + 106.8 * unit.Degree, + 107 * unit.Degree, + 107.2 * unit.Degree, + 107.41 * unit.Degree, + 107.61 * unit.Degree, + 107.81 * unit.Degree, + 108.01 * unit.Degree, + }, + Points: [BlocksPerPacket * ChannelsPerBlock]Point{ { - Azimuth: 0x2866, - Flag: 0xeeff, - Channels: [32]Channel{ - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2ff, Reflectivity: 0x3}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x310, Reflectivity: 0x4b}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2ac, Reflectivity: 0x39}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2bc, Reflectivity: 0x38}, - {Distance: 0x0, Reflectivity: 0x1}, - {Distance: 0x2bd, Reflectivity: 0x45}, - {Distance: 0x2be, Reflectivity: 0x0}, - {Distance: 0x2c8, Reflectivity: 0x57}, - {Distance: 0x2a9, Reflectivity: 0x23}, - {Distance: 0x2c5, Reflectivity: 0x32}, - {Distance: 0x2c3, Reflectivity: 0x1d}, - {Distance: 0x2d9, Reflectivity: 0x4a}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x30f, Reflectivity: 0x7}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x30e, Reflectivity: 0x46}, - {Distance: 0x0, Reflectivity: 0x4}, - {Distance: 0x2ac, Reflectivity: 0x3d}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2c4, Reflectivity: 0x41}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2ba, Reflectivity: 0x38}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2c6, Reflectivity: 0x3e}, - {Distance: 0x2b5, Reflectivity: 0x26}, - {Distance: 0x2d6, Reflectivity: 0x39}, - {Distance: 0x2c6, Reflectivity: 0x18}, - {Distance: 0x2d3, Reflectivity: 0x32}, - }, + Distance: 0, + Column: 0, + Row: 0, + Reflectivity: 2, }, { - Azimuth: 0x288e, - Flag: 0xeeff, - Channels: [32]Channel{ - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x0, Reflectivity: 0x64}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x318, Reflectivity: 0x4c}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2ad, Reflectivity: 0x3e}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2c4, Reflectivity: 0x4f}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2c1, Reflectivity: 0x41}, - {Distance: 0x2dc, Reflectivity: 0x0}, - {Distance: 0x2cc, Reflectivity: 0x57}, - {Distance: 0x2b8, Reflectivity: 0x25}, - {Distance: 0x2d7, Reflectivity: 0x46}, - {Distance: 0x2f9, Reflectivity: 0x21}, - {Distance: 0x2d6, Reflectivity: 0x44}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x31a, Reflectivity: 0x3c}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x31c, Reflectivity: 0x4c}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2ac, Reflectivity: 0x3d}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2ca, Reflectivity: 0x5b}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2c7, Reflectivity: 0x54}, - {Distance: 0x2dc, Reflectivity: 0x0}, - {Distance: 0x2c9, Reflectivity: 0x63}, - {Distance: 0x2b7, Reflectivity: 0x23}, - {Distance: 0x2e1, Reflectivity: 0x55}, - {Distance: 0x303, Reflectivity: 0x25}, - {Distance: 0x2d6, Reflectivity: 0x51}, - }, + Distance: 1.534, + Column: 0, + Row: 8, + Reflectivity: 3, }, { - Azimuth: 0x28b6, - Flag: 0xeeff, - Channels: [32]Channel{ - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x31c, Reflectivity: 0x45}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x31a, Reflectivity: 0x54}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2ae, Reflectivity: 0x39}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2c2, Reflectivity: 0x4f}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2c7, Reflectivity: 0x53}, - {Distance: 0x2c8, Reflectivity: 0x0}, - {Distance: 0x2c9, Reflectivity: 0x57}, - {Distance: 0x2b5, Reflectivity: 0x24}, - {Distance: 0x2d3, Reflectivity: 0x48}, - {Distance: 0x308, Reflectivity: 0x33}, - {Distance: 0x2dd, Reflectivity: 0x4c}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x31f, Reflectivity: 0x41}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x31a, Reflectivity: 0x4b}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2b4, Reflectivity: 0x34}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2c4, Reflectivity: 0x4d}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2c6, Reflectivity: 0x49}, - {Distance: 0x2d0, Reflectivity: 0x0}, - {Distance: 0x2cb, Reflectivity: 0x59}, - {Distance: 0x2bc, Reflectivity: 0x27}, - {Distance: 0x2d8, Reflectivity: 0x43}, - {Distance: 0x312, Reflectivity: 0x3b}, - {Distance: 0x2df, Reflectivity: 0x44}, - }, + Distance: 0, + Column: 0, + Row: 1, + Reflectivity: 3, }, { - Azimuth: 0x28de, - Flag: 0xeeff, - Channels: [32]Channel{ - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x321, Reflectivity: 0x41}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x31c, Reflectivity: 0x51}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2b6, Reflectivity: 0x3d}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2c8, Reflectivity: 0x3f}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2c3, Reflectivity: 0x41}, - {Distance: 0x2ce, Reflectivity: 0x0}, - {Distance: 0x2cf, Reflectivity: 0x44}, - {Distance: 0x2c1, Reflectivity: 0x2d}, - {Distance: 0x2d0, Reflectivity: 0x3a}, - {Distance: 0x319, Reflectivity: 0x2e}, - {Distance: 0x2dd, Reflectivity: 0x38}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x327, Reflectivity: 0x3d}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x320, Reflectivity: 0x51}, - {Distance: 0x0, Reflectivity: 0x4}, - {Distance: 0x2b4, Reflectivity: 0x39}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2c9, Reflectivity: 0x3c}, - {Distance: 0x0, Reflectivity: 0x1}, - {Distance: 0x2c1, Reflectivity: 0x3f}, - {Distance: 0x2ce, Reflectivity: 0x3}, - {Distance: 0x2cd, Reflectivity: 0x47}, - {Distance: 0x2c6, Reflectivity: 0x33}, - {Distance: 0x2d2, Reflectivity: 0x3f}, - {Distance: 0x321, Reflectivity: 0x30}, - {Distance: 0x2d5, Reflectivity: 0x38}, - }, + Distance: 1.568, + Column: 0, + Row: 9, + Reflectivity: 75, }, { - Azimuth: 0x2906, - Flag: 0xeeff, - Channels: [32]Channel{ - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x322, Reflectivity: 0x43}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x328, Reflectivity: 0x48}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2b5, Reflectivity: 0x3e}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2c2, Reflectivity: 0x4b}, - {Distance: 0x0, Reflectivity: 0x1}, - {Distance: 0x2c2, Reflectivity: 0x49}, - {Distance: 0x0, Reflectivity: 0x64}, - {Distance: 0x2c5, Reflectivity: 0x49}, - {Distance: 0x2c4, Reflectivity: 0x40}, - {Distance: 0x2db, Reflectivity: 0x46}, - {Distance: 0x31a, Reflectivity: 0x3e}, - {Distance: 0x2d3, Reflectivity: 0x3f}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x325, Reflectivity: 0x41}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x328, Reflectivity: 0x48}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2ba, Reflectivity: 0x3d}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2be, Reflectivity: 0x4f}, - {Distance: 0x0, Reflectivity: 0x1}, - {Distance: 0x2c4, Reflectivity: 0x4e}, - {Distance: 0x2d1, Reflectivity: 0x29}, - {Distance: 0x2c7, Reflectivity: 0x4b}, - {Distance: 0x2c4, Reflectivity: 0x40}, - {Distance: 0x2d2, Reflectivity: 0x3e}, - {Distance: 0x320, Reflectivity: 0x3e}, - {Distance: 0x2d7, Reflectivity: 0x3b}, - }, + Distance: 0, + Column: 0, + Row: 2, + Reflectivity: 2, }, { - Azimuth: 0x292e, - Flag: 0xeeff, - Channels: [32]Channel{ - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x32b, Reflectivity: 0x41}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x324, Reflectivity: 0x4b}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2bf, Reflectivity: 0x40}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2c0, Reflectivity: 0x3f}, - {Distance: 0x0, Reflectivity: 0x1}, - {Distance: 0x2c3, Reflectivity: 0x41}, - {Distance: 0x2d1, Reflectivity: 0x2a}, - {Distance: 0x2ca, Reflectivity: 0x3c}, - {Distance: 0x2c4, Reflectivity: 0x43}, - {Distance: 0x2cd, Reflectivity: 0x35}, - {Distance: 0x318, Reflectivity: 0x3b}, - {Distance: 0x2dd, Reflectivity: 0x35}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x32f, Reflectivity: 0x3d}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x326, Reflectivity: 0x4c}, - {Distance: 0x0, Reflectivity: 0x4}, - {Distance: 0x2be, Reflectivity: 0x3b}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2c6, Reflectivity: 0x35}, - {Distance: 0x0, Reflectivity: 0x1}, - {Distance: 0x2c5, Reflectivity: 0x3c}, - {Distance: 0x2d1, Reflectivity: 0x2d}, - {Distance: 0x2cc, Reflectivity: 0x3c}, - {Distance: 0x2ca, Reflectivity: 0x43}, - {Distance: 0x2cf, Reflectivity: 0x31}, - {Distance: 0x310, Reflectivity: 0x12}, - {Distance: 0x2da, Reflectivity: 0x30}, - }, - }, - { - Azimuth: 0x2956, - Flag: 0xeeff, - Channels: [32]Channel{ - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x331, Reflectivity: 0x3d}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x330, Reflectivity: 0x4c}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2bd, Reflectivity: 0x40}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2ca, Reflectivity: 0x33}, - {Distance: 0x0, Reflectivity: 0x1}, - {Distance: 0x2c3, Reflectivity: 0x3a}, - {Distance: 0x2d1, Reflectivity: 0x3f}, - {Distance: 0x2ce, Reflectivity: 0x3c}, - {Distance: 0x2d1, Reflectivity: 0x4c}, - {Distance: 0x2de, Reflectivity: 0x35}, - {Distance: 0x2e5, Reflectivity: 0x6}, - {Distance: 0x2db, Reflectivity: 0x31}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x32d, Reflectivity: 0x3f}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x334, Reflectivity: 0x4f}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2c1, Reflectivity: 0x40}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2ce, Reflectivity: 0x3b}, - {Distance: 0x0, Reflectivity: 0x1}, - {Distance: 0x2c9, Reflectivity: 0x3c}, - {Distance: 0x2d5, Reflectivity: 0x3c}, - {Distance: 0x2ce, Reflectivity: 0x39}, - {Distance: 0x2d0, Reflectivity: 0x4e}, - {Distance: 0x2e0, Reflectivity: 0x38}, - {Distance: 0x2e9, Reflectivity: 0x8}, - {Distance: 0x2dd, Reflectivity: 0x35}, - }, - }, - { - Azimuth: 0x297d, - Flag: 0xeeff, - Channels: [32]Channel{ - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x333, Reflectivity: 0x3d}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x334, Reflectivity: 0x51}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2c5, Reflectivity: 0x40}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2cc, Reflectivity: 0x45}, - {Distance: 0x0, Reflectivity: 0x1}, - {Distance: 0x2d3, Reflectivity: 0x3d}, - {Distance: 0x2db, Reflectivity: 0x28}, - {Distance: 0x2d1, Reflectivity: 0x45}, - {Distance: 0x2cf, Reflectivity: 0x53}, - {Distance: 0x2e0, Reflectivity: 0x43}, - {Distance: 0x2e5, Reflectivity: 0x4}, - {Distance: 0x2e3, Reflectivity: 0x3d}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x339, Reflectivity: 0x3c}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x32e, Reflectivity: 0x4c}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2c9, Reflectivity: 0x45}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2cc, Reflectivity: 0x57}, - {Distance: 0x0, Reflectivity: 0x1}, - {Distance: 0x2d2, Reflectivity: 0x4e}, - {Distance: 0x2de, Reflectivity: 0x13}, - {Distance: 0x2d8, Reflectivity: 0x54}, - {Distance: 0x2d3, Reflectivity: 0x53}, - {Distance: 0x2e4, Reflectivity: 0x55}, - {Distance: 0x2fc, Reflectivity: 0x5}, - {Distance: 0x2e8, Reflectivity: 0x4b}, - }, - }, - { - Azimuth: 0x29a5, - Flag: 0xeeff, - Channels: [32]Channel{ - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x33a, Reflectivity: 0x38}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x336, Reflectivity: 0x51}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2c9, Reflectivity: 0x45}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2ce, Reflectivity: 0x51}, - {Distance: 0x0, Reflectivity: 0x1}, - {Distance: 0x2cd, Reflectivity: 0x58}, - {Distance: 0x2dd, Reflectivity: 0x23}, - {Distance: 0x2d9, Reflectivity: 0x55}, - {Distance: 0x2d8, Reflectivity: 0x4e}, - {Distance: 0x2dd, Reflectivity: 0x52}, - {Distance: 0x0, Reflectivity: 0x64}, - {Distance: 0x2ea, Reflectivity: 0x52}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x33a, Reflectivity: 0x3a}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x33c, Reflectivity: 0x4f}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2c7, Reflectivity: 0x4b}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2d4, Reflectivity: 0x4b}, - {Distance: 0x0, Reflectivity: 0x1}, - {Distance: 0x2cf, Reflectivity: 0x51}, - {Distance: 0x2af, Reflectivity: 0x19}, - {Distance: 0x2da, Reflectivity: 0x57}, - {Distance: 0x2da, Reflectivity: 0x4b}, - {Distance: 0x2e2, Reflectivity: 0x46}, - {Distance: 0x309, Reflectivity: 0x9}, - {Distance: 0x2e2, Reflectivity: 0x4b}, - }, - }, - { - Azimuth: 0x29cc, - Flag: 0xeeff, - Channels: [32]Channel{ - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x339, Reflectivity: 0x3c}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x344, Reflectivity: 0x4b}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2c9, Reflectivity: 0x47}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2d2, Reflectivity: 0x3c}, - {Distance: 0x0, Reflectivity: 0x1}, - {Distance: 0x2d3, Reflectivity: 0x3d}, - {Distance: 0x2d8, Reflectivity: 0x50}, - {Distance: 0x2d2, Reflectivity: 0x3b}, - {Distance: 0x2da, Reflectivity: 0x4b}, - {Distance: 0x2e5, Reflectivity: 0x3f}, - {Distance: 0x311, Reflectivity: 0x8}, - {Distance: 0x2de, Reflectivity: 0x3b}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x33e, Reflectivity: 0x3a}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x344, Reflectivity: 0x4c}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2ca, Reflectivity: 0x38}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2cd, Reflectivity: 0x3c}, - {Distance: 0x0, Reflectivity: 0x1}, - {Distance: 0x2d5, Reflectivity: 0x3d}, - {Distance: 0x2e1, Reflectivity: 0x3f}, - {Distance: 0x2d7, Reflectivity: 0x48}, - {Distance: 0x2d6, Reflectivity: 0x49}, - {Distance: 0x2e3, Reflectivity: 0x36}, - {Distance: 0x30f, Reflectivity: 0x7}, - {Distance: 0x2e5, Reflectivity: 0x3e}, - }, - }, - { - Azimuth: 0x29f5, - Flag: 0xeeff, - Channels: [32]Channel{ - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x344, Reflectivity: 0x3a}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x340, Reflectivity: 0x4c}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2ce, Reflectivity: 0x30}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2ce, Reflectivity: 0x32}, - {Distance: 0x0, Reflectivity: 0x1}, - {Distance: 0x2d8, Reflectivity: 0x35}, - {Distance: 0x2e9, Reflectivity: 0x3c}, - {Distance: 0x2d4, Reflectivity: 0x39}, - {Distance: 0x2d9, Reflectivity: 0x29}, - {Distance: 0x2e0, Reflectivity: 0x35}, - {Distance: 0x307, Reflectivity: 0x4}, - {Distance: 0x2e7, Reflectivity: 0x36}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x345, Reflectivity: 0x3d}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x346, Reflectivity: 0x48}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2cc, Reflectivity: 0x2d}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2d6, Reflectivity: 0x35}, - {Distance: 0x0, Reflectivity: 0x4d}, - {Distance: 0x2d4, Reflectivity: 0x36}, - {Distance: 0x2ea, Reflectivity: 0x3b}, - {Distance: 0x2df, Reflectivity: 0x3f}, - {Distance: 0x2d5, Reflectivity: 0x15}, - {Distance: 0x2e2, Reflectivity: 0x32}, - {Distance: 0x2ff, Reflectivity: 0x5}, - {Distance: 0x2eb, Reflectivity: 0x38}, - }, - }, - { - Azimuth: 0x2a1d, - Flag: 0xeeff, - Channels: [32]Channel{ - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x346, Reflectivity: 0x38}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x34a, Reflectivity: 0x4b}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2cd, Reflectivity: 0x33}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2da, Reflectivity: 0x36}, - {Distance: 0x2f4, Reflectivity: 0x28}, - {Distance: 0x2d5, Reflectivity: 0x3c}, - {Distance: 0x2e4, Reflectivity: 0x3b}, - {Distance: 0x2de, Reflectivity: 0x3c}, - {Distance: 0x2dd, Reflectivity: 0x41}, - {Distance: 0x2ea, Reflectivity: 0x35}, - {Distance: 0x301, Reflectivity: 0x5}, - {Distance: 0x2e9, Reflectivity: 0x35}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x344, Reflectivity: 0x3a}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x34e, Reflectivity: 0x48}, - {Distance: 0x0, Reflectivity: 0x2}, - {Distance: 0x2ce, Reflectivity: 0x3d}, - {Distance: 0x0, Reflectivity: 0x3}, - {Distance: 0x2da, Reflectivity: 0x39}, - {Distance: 0x2c4, Reflectivity: 0x29}, - {Distance: 0x2dc, Reflectivity: 0x36}, - {Distance: 0x2d5, Reflectivity: 0x28}, - {Distance: 0x2dd, Reflectivity: 0x47}, - {Distance: 0x2bf, Reflectivity: 0x2e}, - {Distance: 0x2ef, Reflectivity: 0x38}, - {Distance: 0x304, Reflectivity: 0x5}, - {Distance: 0x2eb, Reflectivity: 0x3a}, - }, - }, - }, - Timestamp: 0x9eea6b9b, - ReturnMode: 0x37, - ProductID: 0x22, - } -} - -func exampleSphericalPointCloud() *SphericalPointCloud { - return &SphericalPointCloud{ - SphericalPoints: [BlocksPerPacket * ChannelsPerBlock]SphericalPoint{ - { - Distance: 0, - Azimuth: 1.8050195124125357, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 0, - }, - { - Distance: 1.534, - Azimuth: 1.8050195124125357, - Elevation: 0.017453292519943295, - Reflectivity: 3, - TimingOffset: 2.304, - }, - { - Distance: 0, - Azimuth: 1.8050195124125357, - Elevation: -0.22689280275926285, - Reflectivity: 3, - TimingOffset: 4.608, - }, - { - Distance: 1.568, - Azimuth: 1.8050195124125357, - Elevation: 0.05235987755982988, - Reflectivity: 75, - TimingOffset: 6.911999999999999, - }, - { - Distance: 0, - Azimuth: 1.8050195124125357, - Elevation: -0.19198621771937624, - Reflectivity: 2, - TimingOffset: 9.216, - }, - { - Distance: 1.368, - Azimuth: 1.8050195124125357, - Elevation: 0.08726646259971647, - Reflectivity: 57, - TimingOffset: 11.52, + Distance: 1.368, + Column: 0, + Row: 10, + Reflectivity: 57, }, { Distance: 0, - Azimuth: 1.8050195124125357, - Elevation: -0.15707963267948966, + Column: 0, + Row: 3, Reflectivity: 3, - TimingOffset: 13.823999999999998, }, { Distance: 1.4000000000000001, - Azimuth: 1.8050195124125357, - Elevation: 0.12217304763960307, + Column: 0, + Row: 11, Reflectivity: 56, - TimingOffset: 16.128, }, { Distance: 0, - Azimuth: 1.8050195124125357, - Elevation: -0.12217304763960307, + Column: 0, + Row: 4, Reflectivity: 1, - TimingOffset: 18.432, }, { Distance: 1.4020000000000001, - Azimuth: 1.8050195124125357, - Elevation: 0.15707963267948966, + Column: 0, + Row: 12, Reflectivity: 69, - TimingOffset: 20.735999999999997, }, { Distance: 1.4040000000000001, - Azimuth: 1.8050195124125357, - Elevation: -0.08726646259971647, + Column: 0, + Row: 5, Reflectivity: 0, - TimingOffset: 23.04, }, { Distance: 1.424, - Azimuth: 1.8050195124125357, - Elevation: 0.19198621771937624, + Column: 0, + Row: 13, Reflectivity: 87, - TimingOffset: 25.343999999999998, }, { Distance: 1.362, - Azimuth: 1.8050195124125357, - Elevation: -0.05235987755982988, + Column: 0, + Row: 6, Reflectivity: 35, - TimingOffset: 27.647999999999996, }, { Distance: 1.418, - Azimuth: 1.8050195124125357, - Elevation: 0.22689280275926285, + Column: 0, + Row: 14, Reflectivity: 50, - TimingOffset: 29.951999999999998, }, { Distance: 1.414, - Azimuth: 1.8050195124125357, - Elevation: -0.017453292519943295, + Column: 0, + Row: 7, Reflectivity: 29, - TimingOffset: 32.256, }, { Distance: 1.458, - Azimuth: 1.8050195124125357, - Elevation: 0.2617993877991494, + Column: 0, + Row: 15, Reflectivity: 74, - TimingOffset: 34.559999999999995, }, { Distance: 0, - Azimuth: 1.808510170916524, - Elevation: -0.2617993877991494, + Column: 1, + Row: 0, Reflectivity: 2, - TimingOffset: 55.296, }, { Distance: 1.566, - Azimuth: 1.808510170916524, - Elevation: 0.017453292519943295, + Column: 1, + Row: 8, Reflectivity: 7, - TimingOffset: 57.6, }, { Distance: 0, - Azimuth: 1.808510170916524, - Elevation: -0.22689280275926285, + Column: 1, + Row: 1, Reflectivity: 2, - TimingOffset: 59.903999999999996, }, { Distance: 1.564, - Azimuth: 1.808510170916524, - Elevation: 0.05235987755982988, + Column: 1, + Row: 9, Reflectivity: 70, - TimingOffset: 62.208, }, { Distance: 0, - Azimuth: 1.808510170916524, - Elevation: -0.19198621771937624, + Column: 1, + Row: 2, Reflectivity: 4, - TimingOffset: 64.512, }, { Distance: 1.368, - Azimuth: 1.808510170916524, - Elevation: 0.08726646259971647, + Column: 1, + Row: 10, Reflectivity: 61, - TimingOffset: 66.816, }, { Distance: 0, - Azimuth: 1.808510170916524, - Elevation: -0.15707963267948966, + Column: 1, + Row: 3, Reflectivity: 3, - TimingOffset: 69.12, }, { Distance: 1.416, - Azimuth: 1.808510170916524, - Elevation: 0.12217304763960307, + Column: 1, + Row: 11, Reflectivity: 65, - TimingOffset: 71.424, }, { Distance: 0, - Azimuth: 1.808510170916524, - Elevation: -0.12217304763960307, + Column: 1, + Row: 4, Reflectivity: 2, - TimingOffset: 73.728, }, { Distance: 1.3960000000000001, - Azimuth: 1.808510170916524, - Elevation: 0.15707963267948966, + Column: 1, + Row: 12, Reflectivity: 56, - TimingOffset: 76.032, }, { Distance: 0, - Azimuth: 1.808510170916524, - Elevation: -0.08726646259971647, + Column: 1, + Row: 5, Reflectivity: 3, - TimingOffset: 78.336, }, { Distance: 1.42, - Azimuth: 1.808510170916524, - Elevation: 0.19198621771937624, + Column: 1, + Row: 13, Reflectivity: 62, - TimingOffset: 80.64, }, { Distance: 1.3860000000000001, - Azimuth: 1.808510170916524, - Elevation: -0.05235987755982988, + Column: 1, + Row: 6, Reflectivity: 38, - TimingOffset: 82.94399999999999, }, { Distance: 1.452, - Azimuth: 1.808510170916524, - Elevation: 0.22689280275926285, + Column: 1, + Row: 14, Reflectivity: 57, - TimingOffset: 85.24799999999999, }, { Distance: 1.42, - Azimuth: 1.808510170916524, - Elevation: -0.017453292519943295, + Column: 1, + Row: 7, Reflectivity: 24, - TimingOffset: 87.55199999999999, }, { Distance: 1.446, - Azimuth: 1.808510170916524, - Elevation: 0.2617993877991494, + Column: 1, + Row: 15, Reflectivity: 50, - TimingOffset: 89.856, }, { Distance: 0, - Azimuth: 1.812000829420513, - Elevation: -0.2617993877991494, + Column: 2, + Row: 0, Reflectivity: 2, - TimingOffset: 110.592, }, { Distance: 0, - Azimuth: 1.812000829420513, - Elevation: 0.017453292519943295, + Column: 2, + Row: 8, Reflectivity: 100, - TimingOffset: 112.896, }, { Distance: 0, - Azimuth: 1.812000829420513, - Elevation: -0.22689280275926285, + Column: 2, + Row: 1, Reflectivity: 3, - TimingOffset: 115.2, }, { Distance: 1.584, - Azimuth: 1.812000829420513, - Elevation: 0.05235987755982988, + Column: 2, + Row: 9, Reflectivity: 76, - TimingOffset: 117.50399999999999, }, { Distance: 0, - Azimuth: 1.812000829420513, - Elevation: -0.19198621771937624, + Column: 2, + Row: 2, Reflectivity: 2, - TimingOffset: 119.80799999999999, }, { Distance: 1.37, - Azimuth: 1.812000829420513, - Elevation: 0.08726646259971647, + Column: 2, + Row: 10, Reflectivity: 62, - TimingOffset: 122.112, }, { Distance: 0, - Azimuth: 1.812000829420513, - Elevation: -0.15707963267948966, + Column: 2, + Row: 3, Reflectivity: 3, - TimingOffset: 124.416, }, { Distance: 1.416, - Azimuth: 1.812000829420513, - Elevation: 0.12217304763960307, + Column: 2, + Row: 11, Reflectivity: 79, - TimingOffset: 126.72, }, { Distance: 0, - Azimuth: 1.812000829420513, - Elevation: -0.12217304763960307, + Column: 2, + Row: 4, Reflectivity: 2, - TimingOffset: 129.024, }, { Distance: 1.41, - Azimuth: 1.812000829420513, - Elevation: 0.15707963267948966, + Column: 2, + Row: 12, Reflectivity: 65, - TimingOffset: 131.328, }, { Distance: 1.464, - Azimuth: 1.812000829420513, - Elevation: -0.08726646259971647, + Column: 2, + Row: 5, Reflectivity: 0, - TimingOffset: 133.632, }, { Distance: 1.432, - Azimuth: 1.812000829420513, - Elevation: 0.19198621771937624, + Column: 2, + Row: 13, Reflectivity: 87, - TimingOffset: 135.936, }, { Distance: 1.3920000000000001, - Azimuth: 1.812000829420513, - Elevation: -0.05235987755982988, + Column: 2, + Row: 6, Reflectivity: 37, - TimingOffset: 138.24, }, { Distance: 1.454, - Azimuth: 1.812000829420513, - Elevation: 0.22689280275926285, + Column: 2, + Row: 14, Reflectivity: 70, - TimingOffset: 140.54399999999998, }, { Distance: 1.522, - Azimuth: 1.812000829420513, - Elevation: -0.017453292519943295, + Column: 2, + Row: 7, Reflectivity: 33, - TimingOffset: 142.848, }, { Distance: 1.452, - Azimuth: 1.812000829420513, - Elevation: 0.2617993877991494, + Column: 2, + Row: 15, Reflectivity: 68, - TimingOffset: 145.152, }, { Distance: 0, - Azimuth: 1.8154914879245017, - Elevation: -0.2617993877991494, + Column: 3, + Row: 0, Reflectivity: 2, - TimingOffset: 165.888, }, { Distance: 1.588, - Azimuth: 1.8154914879245017, - Elevation: 0.017453292519943295, + Column: 3, + Row: 8, Reflectivity: 60, - TimingOffset: 168.192, }, { Distance: 0, - Azimuth: 1.8154914879245017, - Elevation: -0.22689280275926285, + Column: 3, + Row: 1, Reflectivity: 2, - TimingOffset: 170.496, }, { Distance: 1.592, - Azimuth: 1.8154914879245017, - Elevation: 0.05235987755982988, + Column: 3, + Row: 9, Reflectivity: 76, - TimingOffset: 172.8, }, { Distance: 0, - Azimuth: 1.8154914879245017, - Elevation: -0.19198621771937624, + Column: 3, + Row: 2, Reflectivity: 2, - TimingOffset: 175.104, }, { Distance: 1.368, - Azimuth: 1.8154914879245017, - Elevation: 0.08726646259971647, + Column: 3, + Row: 10, Reflectivity: 61, - TimingOffset: 177.40800000000002, }, { Distance: 0, - Azimuth: 1.8154914879245017, - Elevation: -0.15707963267948966, + Column: 3, + Row: 3, Reflectivity: 3, - TimingOffset: 179.712, }, { Distance: 1.428, - Azimuth: 1.8154914879245017, - Elevation: 0.12217304763960307, + Column: 3, + Row: 11, Reflectivity: 91, - TimingOffset: 182.01600000000002, }, { Distance: 0, - Azimuth: 1.8154914879245017, - Elevation: -0.12217304763960307, + Column: 3, + Row: 4, Reflectivity: 3, - TimingOffset: 184.32, }, { Distance: 1.422, - Azimuth: 1.8154914879245017, - Elevation: 0.15707963267948966, + Column: 3, + Row: 12, Reflectivity: 84, - TimingOffset: 186.624, }, { Distance: 1.464, - Azimuth: 1.8154914879245017, - Elevation: -0.08726646259971647, + Column: 3, + Row: 5, Reflectivity: 0, - TimingOffset: 188.928, }, { Distance: 1.426, - Azimuth: 1.8154914879245017, - Elevation: 0.19198621771937624, + Column: 3, + Row: 13, Reflectivity: 99, - TimingOffset: 191.232, }, { Distance: 1.3900000000000001, - Azimuth: 1.8154914879245017, - Elevation: -0.05235987755982988, + Column: 3, + Row: 6, Reflectivity: 35, - TimingOffset: 193.536, }, { Distance: 1.474, - Azimuth: 1.8154914879245017, - Elevation: 0.22689280275926285, + Column: 3, + Row: 14, Reflectivity: 85, - TimingOffset: 195.84, }, { Distance: 1.542, - Azimuth: 1.8154914879245017, - Elevation: -0.017453292519943295, + Column: 3, + Row: 7, Reflectivity: 37, - TimingOffset: 198.144, }, { Distance: 1.452, - Azimuth: 1.8154914879245017, - Elevation: 0.2617993877991494, + Column: 3, + Row: 15, Reflectivity: 81, - TimingOffset: 200.448, }, { Distance: 0, - Azimuth: 1.81898214642849, - Elevation: -0.2617993877991494, + Column: 4, + Row: 0, Reflectivity: 2, - TimingOffset: 221.184, }, { Distance: 1.592, - Azimuth: 1.81898214642849, - Elevation: 0.017453292519943295, + Column: 4, + Row: 8, Reflectivity: 69, - TimingOffset: 223.488, }, { Distance: 0, - Azimuth: 1.81898214642849, - Elevation: -0.22689280275926285, + Column: 4, + Row: 1, Reflectivity: 2, - TimingOffset: 225.792, }, { Distance: 1.588, - Azimuth: 1.81898214642849, - Elevation: 0.05235987755982988, + Column: 4, + Row: 9, Reflectivity: 84, - TimingOffset: 228.096, }, { Distance: 0, - Azimuth: 1.81898214642849, - Elevation: -0.19198621771937624, + Column: 4, + Row: 2, Reflectivity: 2, - TimingOffset: 230.4, }, { Distance: 1.372, - Azimuth: 1.81898214642849, - Elevation: 0.08726646259971647, + Column: 4, + Row: 10, Reflectivity: 57, - TimingOffset: 232.704, }, { Distance: 0, - Azimuth: 1.81898214642849, - Elevation: -0.15707963267948966, + Column: 4, + Row: 3, Reflectivity: 3, - TimingOffset: 235.00799999999998, }, { Distance: 1.412, - Azimuth: 1.81898214642849, - Elevation: 0.12217304763960307, + Column: 4, + Row: 11, Reflectivity: 79, - TimingOffset: 237.312, }, { Distance: 0, - Azimuth: 1.81898214642849, - Elevation: -0.12217304763960307, + Column: 4, + Row: 4, Reflectivity: 3, - TimingOffset: 239.61599999999999, }, { Distance: 1.422, - Azimuth: 1.81898214642849, - Elevation: 0.15707963267948966, + Column: 4, + Row: 12, Reflectivity: 83, - TimingOffset: 241.92, }, { Distance: 1.424, - Azimuth: 1.81898214642849, - Elevation: -0.08726646259971647, + Column: 4, + Row: 5, Reflectivity: 0, - TimingOffset: 244.224, }, { Distance: 1.426, - Azimuth: 1.81898214642849, - Elevation: 0.19198621771937624, + Column: 4, + Row: 13, Reflectivity: 87, - TimingOffset: 246.528, }, { Distance: 1.3860000000000001, - Azimuth: 1.81898214642849, - Elevation: -0.05235987755982988, + Column: 4, + Row: 6, Reflectivity: 36, - TimingOffset: 248.832, }, { Distance: 1.446, - Azimuth: 1.81898214642849, - Elevation: 0.22689280275926285, + Column: 4, + Row: 14, Reflectivity: 72, - TimingOffset: 251.136, }, { Distance: 1.552, - Azimuth: 1.81898214642849, - Elevation: -0.017453292519943295, + Column: 4, + Row: 7, Reflectivity: 51, - TimingOffset: 253.44, }, { Distance: 1.466, - Azimuth: 1.81898214642849, - Elevation: 0.2617993877991494, + Column: 4, + Row: 15, Reflectivity: 76, - TimingOffset: 255.744, }, { Distance: 0, - Azimuth: 1.822472804932479, - Elevation: -0.2617993877991494, + Column: 5, + Row: 0, Reflectivity: 2, - TimingOffset: 276.48, }, { Distance: 1.598, - Azimuth: 1.822472804932479, - Elevation: 0.017453292519943295, + Column: 5, + Row: 8, Reflectivity: 65, - TimingOffset: 278.784, }, { Distance: 0, - Azimuth: 1.822472804932479, - Elevation: -0.22689280275926285, + Column: 5, + Row: 1, Reflectivity: 3, - TimingOffset: 281.088, }, { Distance: 1.588, - Azimuth: 1.822472804932479, - Elevation: 0.05235987755982988, + Column: 5, + Row: 9, Reflectivity: 75, - TimingOffset: 283.392, }, { Distance: 0, - Azimuth: 1.822472804932479, - Elevation: -0.19198621771937624, + Column: 5, + Row: 2, Reflectivity: 2, - TimingOffset: 285.696, }, { Distance: 1.3840000000000001, - Azimuth: 1.822472804932479, - Elevation: 0.08726646259971647, + Column: 5, + Row: 10, Reflectivity: 52, - TimingOffset: 288, }, { Distance: 0, - Azimuth: 1.822472804932479, - Elevation: -0.15707963267948966, + Column: 5, + Row: 3, Reflectivity: 3, - TimingOffset: 290.30400000000003, }, { Distance: 1.416, - Azimuth: 1.822472804932479, - Elevation: 0.12217304763960307, + Column: 5, + Row: 11, Reflectivity: 77, - TimingOffset: 292.608, }, { Distance: 0, - Azimuth: 1.822472804932479, - Elevation: -0.12217304763960307, + Column: 5, + Row: 4, Reflectivity: 2, - TimingOffset: 294.91200000000003, }, { Distance: 1.42, - Azimuth: 1.822472804932479, - Elevation: 0.15707963267948966, + Column: 5, + Row: 12, Reflectivity: 73, - TimingOffset: 297.216, }, { Distance: 1.44, - Azimuth: 1.822472804932479, - Elevation: -0.08726646259971647, + Column: 5, + Row: 5, Reflectivity: 0, - TimingOffset: 299.52000000000004, }, { Distance: 1.43, - Azimuth: 1.822472804932479, - Elevation: 0.19198621771937624, + Column: 5, + Row: 13, Reflectivity: 89, - TimingOffset: 301.824, }, { Distance: 1.4000000000000001, - Azimuth: 1.822472804932479, - Elevation: -0.05235987755982988, + Column: 5, + Row: 6, Reflectivity: 39, - TimingOffset: 304.12800000000004, }, { Distance: 1.456, - Azimuth: 1.822472804932479, - Elevation: 0.22689280275926285, + Column: 5, + Row: 14, Reflectivity: 67, - TimingOffset: 306.432, }, { Distance: 1.572, - Azimuth: 1.822472804932479, - Elevation: -0.017453292519943295, + Column: 5, + Row: 7, Reflectivity: 59, - TimingOffset: 308.736, }, { Distance: 1.47, - Azimuth: 1.822472804932479, - Elevation: 0.2617993877991494, + Column: 5, + Row: 15, Reflectivity: 68, - TimingOffset: 311.04, - }, - { - Distance: 0, - Azimuth: 1.8259634634364679, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 331.776, - }, - { - Distance: 1.602, - Azimuth: 1.8259634634364679, - Elevation: 0.017453292519943295, - Reflectivity: 65, - TimingOffset: 334.08, - }, - { - Distance: 0, - Azimuth: 1.8259634634364679, - Elevation: -0.22689280275926285, - Reflectivity: 2, - TimingOffset: 336.384, - }, - { - Distance: 1.592, - Azimuth: 1.8259634634364679, - Elevation: 0.05235987755982988, - Reflectivity: 81, - TimingOffset: 338.688, - }, - { - Distance: 0, - Azimuth: 1.8259634634364679, - Elevation: -0.19198621771937624, - Reflectivity: 2, - TimingOffset: 340.992, - }, - { - Distance: 1.3880000000000001, - Azimuth: 1.8259634634364679, - Elevation: 0.08726646259971647, - Reflectivity: 61, - TimingOffset: 343.296, - }, - { - Distance: 0, - Azimuth: 1.8259634634364679, - Elevation: -0.15707963267948966, - Reflectivity: 3, - TimingOffset: 345.6, - }, - { - Distance: 1.424, - Azimuth: 1.8259634634364679, - Elevation: 0.12217304763960307, - Reflectivity: 63, - TimingOffset: 347.904, - }, - { - Distance: 0, - Azimuth: 1.8259634634364679, - Elevation: -0.12217304763960307, - Reflectivity: 2, - TimingOffset: 350.208, - }, - { - Distance: 1.414, - Azimuth: 1.8259634634364679, - Elevation: 0.15707963267948966, - Reflectivity: 65, - TimingOffset: 352.512, - }, - { - Distance: 1.436, - Azimuth: 1.8259634634364679, - Elevation: -0.08726646259971647, - Reflectivity: 0, - TimingOffset: 354.81600000000003, - }, - { - Distance: 1.438, - Azimuth: 1.8259634634364679, - Elevation: 0.19198621771937624, - Reflectivity: 68, - TimingOffset: 357.12, - }, - { - Distance: 1.41, - Azimuth: 1.8259634634364679, - Elevation: -0.05235987755982988, - Reflectivity: 45, - TimingOffset: 359.424, - }, - { - Distance: 1.44, - Azimuth: 1.8259634634364679, - Elevation: 0.22689280275926285, - Reflectivity: 58, - TimingOffset: 361.728, - }, - { - Distance: 1.586, - Azimuth: 1.8259634634364679, - Elevation: -0.017453292519943295, - Reflectivity: 46, - TimingOffset: 364.03200000000004, - }, - { - Distance: 1.466, - Azimuth: 1.8259634634364679, - Elevation: 0.2617993877991494, - Reflectivity: 56, - TimingOffset: 366.336, - }, - { - Distance: 0, - Azimuth: 1.8294541219404563, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 387.072, - }, - { - Distance: 1.614, - Azimuth: 1.8294541219404563, - Elevation: 0.017453292519943295, - Reflectivity: 61, - TimingOffset: 389.376, - }, - { - Distance: 0, - Azimuth: 1.8294541219404563, - Elevation: -0.22689280275926285, - Reflectivity: 2, - TimingOffset: 391.68, - }, - { - Distance: 1.6, - Azimuth: 1.8294541219404563, - Elevation: 0.05235987755982988, - Reflectivity: 81, - TimingOffset: 393.984, - }, - { - Distance: 0, - Azimuth: 1.8294541219404563, - Elevation: -0.19198621771937624, - Reflectivity: 4, - TimingOffset: 396.288, - }, - { - Distance: 1.3840000000000001, - Azimuth: 1.8294541219404563, - Elevation: 0.08726646259971647, - Reflectivity: 57, - TimingOffset: 398.592, - }, - { - Distance: 0, - Azimuth: 1.8294541219404563, - Elevation: -0.15707963267948966, - Reflectivity: 3, - TimingOffset: 400.896, - }, - { - Distance: 1.426, - Azimuth: 1.8294541219404563, - Elevation: 0.12217304763960307, - Reflectivity: 60, - TimingOffset: 403.2, - }, - { - Distance: 0, - Azimuth: 1.8294541219404563, - Elevation: -0.12217304763960307, - Reflectivity: 1, - TimingOffset: 405.504, - }, - { - Distance: 1.41, - Azimuth: 1.8294541219404563, - Elevation: 0.15707963267948966, - Reflectivity: 63, - TimingOffset: 407.808, - }, - { - Distance: 1.436, - Azimuth: 1.8294541219404563, - Elevation: -0.08726646259971647, - Reflectivity: 3, - TimingOffset: 410.112, - }, - { - Distance: 1.434, - Azimuth: 1.8294541219404563, - Elevation: 0.19198621771937624, - Reflectivity: 71, - TimingOffset: 412.416, - }, - { - Distance: 1.42, - Azimuth: 1.8294541219404563, - Elevation: -0.05235987755982988, - Reflectivity: 51, - TimingOffset: 414.72, - }, - { - Distance: 1.444, - Azimuth: 1.8294541219404563, - Elevation: 0.22689280275926285, - Reflectivity: 63, - TimingOffset: 417.024, - }, - { - Distance: 1.602, - Azimuth: 1.8294541219404563, - Elevation: -0.017453292519943295, - Reflectivity: 48, - TimingOffset: 419.328, - }, - { - Distance: 1.45, - Azimuth: 1.8294541219404563, - Elevation: 0.2617993877991494, - Reflectivity: 56, - TimingOffset: 421.632, - }, - { - Distance: 0, - Azimuth: 1.8329447804444448, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 442.368, - }, - { - Distance: 1.604, - Azimuth: 1.8329447804444448, - Elevation: 0.017453292519943295, - Reflectivity: 67, - TimingOffset: 444.67199999999997, - }, - { - Distance: 0, - Azimuth: 1.8329447804444448, - Elevation: -0.22689280275926285, - Reflectivity: 2, - TimingOffset: 446.976, - }, - { - Distance: 1.616, - Azimuth: 1.8329447804444448, - Elevation: 0.05235987755982988, - Reflectivity: 72, - TimingOffset: 449.28, - }, - { - Distance: 0, - Azimuth: 1.8329447804444448, - Elevation: -0.19198621771937624, - Reflectivity: 2, - TimingOffset: 451.584, - }, - { - Distance: 1.3860000000000001, - Azimuth: 1.8329447804444448, - Elevation: 0.08726646259971647, - Reflectivity: 62, - TimingOffset: 453.888, - }, - { - Distance: 0, - Azimuth: 1.8329447804444448, - Elevation: -0.15707963267948966, - Reflectivity: 3, - TimingOffset: 456.192, - }, - { - Distance: 1.412, - Azimuth: 1.8329447804444448, - Elevation: 0.12217304763960307, - Reflectivity: 75, - TimingOffset: 458.496, - }, - { - Distance: 0, - Azimuth: 1.8329447804444448, - Elevation: -0.12217304763960307, - Reflectivity: 1, - TimingOffset: 460.8, - }, - { - Distance: 1.412, - Azimuth: 1.8329447804444448, - Elevation: 0.15707963267948966, - Reflectivity: 73, - TimingOffset: 463.104, - }, - { - Distance: 0, - Azimuth: 1.8329447804444448, - Elevation: -0.08726646259971647, - Reflectivity: 100, - TimingOffset: 465.408, - }, - { - Distance: 1.418, - Azimuth: 1.8329447804444448, - Elevation: 0.19198621771937624, - Reflectivity: 73, - TimingOffset: 467.712, - }, - { - Distance: 1.416, - Azimuth: 1.8329447804444448, - Elevation: -0.05235987755982988, - Reflectivity: 64, - TimingOffset: 470.01599999999996, - }, - { - Distance: 1.462, - Azimuth: 1.8329447804444448, - Elevation: 0.22689280275926285, - Reflectivity: 70, - TimingOffset: 472.32, - }, - { - Distance: 1.588, - Azimuth: 1.8329447804444448, - Elevation: -0.017453292519943295, - Reflectivity: 62, - TimingOffset: 474.624, - }, - { - Distance: 1.446, - Azimuth: 1.8329447804444448, - Elevation: 0.2617993877991494, - Reflectivity: 63, - TimingOffset: 476.928, - }, - { - Distance: 0, - Azimuth: 1.8364354389484336, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 497.664, - }, - { - Distance: 1.61, - Azimuth: 1.8364354389484336, - Elevation: 0.017453292519943295, - Reflectivity: 65, - TimingOffset: 499.96799999999996, - }, - { - Distance: 0, - Azimuth: 1.8364354389484336, - Elevation: -0.22689280275926285, - Reflectivity: 2, - TimingOffset: 502.272, - }, - { - Distance: 1.616, - Azimuth: 1.8364354389484336, - Elevation: 0.05235987755982988, - Reflectivity: 72, - TimingOffset: 504.57599999999996, - }, - { - Distance: 0, - Azimuth: 1.8364354389484336, - Elevation: -0.19198621771937624, - Reflectivity: 2, - TimingOffset: 506.88, - }, - { - Distance: 1.3960000000000001, - Azimuth: 1.8364354389484336, - Elevation: 0.08726646259971647, - Reflectivity: 61, - TimingOffset: 509.18399999999997, - }, - { - Distance: 0, - Azimuth: 1.8364354389484336, - Elevation: -0.15707963267948966, - Reflectivity: 3, - TimingOffset: 511.488, - }, - { - Distance: 1.4040000000000001, - Azimuth: 1.8364354389484336, - Elevation: 0.12217304763960307, - Reflectivity: 79, - TimingOffset: 513.792, - }, - { - Distance: 0, - Azimuth: 1.8364354389484336, - Elevation: -0.12217304763960307, - Reflectivity: 1, - TimingOffset: 516.096, - }, - { - Distance: 1.416, - Azimuth: 1.8364354389484336, - Elevation: 0.15707963267948966, - Reflectivity: 78, - TimingOffset: 518.4, - }, - { - Distance: 1.442, - Azimuth: 1.8364354389484336, - Elevation: -0.08726646259971647, - Reflectivity: 41, - TimingOffset: 520.704, - }, - { - Distance: 1.422, - Azimuth: 1.8364354389484336, - Elevation: 0.19198621771937624, - Reflectivity: 75, - TimingOffset: 523.008, - }, - { - Distance: 1.416, - Azimuth: 1.8364354389484336, - Elevation: -0.05235987755982988, - Reflectivity: 64, - TimingOffset: 525.312, - }, - { - Distance: 1.444, - Azimuth: 1.8364354389484336, - Elevation: 0.22689280275926285, - Reflectivity: 62, - TimingOffset: 527.616, - }, - { - Distance: 1.6, - Azimuth: 1.8364354389484336, - Elevation: -0.017453292519943295, - Reflectivity: 62, - TimingOffset: 529.92, - }, - { - Distance: 1.454, - Azimuth: 1.8364354389484336, - Elevation: 0.2617993877991494, - Reflectivity: 59, - TimingOffset: 532.2239999999999, - }, - { - Distance: 0, - Azimuth: 1.839926097452422, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 552.96, - }, - { - Distance: 1.622, - Azimuth: 1.839926097452422, - Elevation: 0.017453292519943295, - Reflectivity: 65, - TimingOffset: 555.264, - }, - { - Distance: 0, - Azimuth: 1.839926097452422, - Elevation: -0.22689280275926285, - Reflectivity: 2, - TimingOffset: 557.568, - }, - { - Distance: 1.608, - Azimuth: 1.839926097452422, - Elevation: 0.05235987755982988, - Reflectivity: 75, - TimingOffset: 559.8720000000001, - }, - { - Distance: 0, - Azimuth: 1.839926097452422, - Elevation: -0.19198621771937624, - Reflectivity: 2, - TimingOffset: 562.176, - }, - { - Distance: 1.4060000000000001, - Azimuth: 1.839926097452422, - Elevation: 0.08726646259971647, - Reflectivity: 64, - TimingOffset: 564.48, - }, - { - Distance: 0, - Azimuth: 1.839926097452422, - Elevation: -0.15707963267948966, - Reflectivity: 3, - TimingOffset: 566.784, - }, - { - Distance: 1.408, - Azimuth: 1.839926097452422, - Elevation: 0.12217304763960307, - Reflectivity: 63, - TimingOffset: 569.0880000000001, - }, - { - Distance: 0, - Azimuth: 1.839926097452422, - Elevation: -0.12217304763960307, - Reflectivity: 1, - TimingOffset: 571.392, - }, - { - Distance: 1.414, - Azimuth: 1.839926097452422, - Elevation: 0.15707963267948966, - Reflectivity: 65, - TimingOffset: 573.696, - }, - { - Distance: 1.442, - Azimuth: 1.839926097452422, - Elevation: -0.08726646259971647, - Reflectivity: 42, - TimingOffset: 576, - }, - { - Distance: 1.428, - Azimuth: 1.839926097452422, - Elevation: 0.19198621771937624, - Reflectivity: 60, - TimingOffset: 578.3040000000001, - }, - { - Distance: 1.416, - Azimuth: 1.839926097452422, - Elevation: -0.05235987755982988, - Reflectivity: 67, - TimingOffset: 580.6080000000001, - }, - { - Distance: 1.434, - Azimuth: 1.839926097452422, - Elevation: 0.22689280275926285, - Reflectivity: 53, - TimingOffset: 582.912, - }, - { - Distance: 1.584, - Azimuth: 1.839926097452422, - Elevation: -0.017453292519943295, - Reflectivity: 59, - TimingOffset: 585.216, - }, - { - Distance: 1.466, - Azimuth: 1.839926097452422, - Elevation: 0.2617993877991494, - Reflectivity: 53, - TimingOffset: 587.52, - }, - { - Distance: 0, - Azimuth: 1.843416755956411, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 608.256, - }, - { - Distance: 1.6300000000000001, - Azimuth: 1.843416755956411, - Elevation: 0.017453292519943295, - Reflectivity: 61, - TimingOffset: 610.56, - }, - { - Distance: 0, - Azimuth: 1.843416755956411, - Elevation: -0.22689280275926285, - Reflectivity: 2, - TimingOffset: 612.8639999999999, - }, - { - Distance: 1.612, - Azimuth: 1.843416755956411, - Elevation: 0.05235987755982988, - Reflectivity: 76, - TimingOffset: 615.168, - }, - { - Distance: 0, - Azimuth: 1.843416755956411, - Elevation: -0.19198621771937624, - Reflectivity: 4, - TimingOffset: 617.472, - }, - { - Distance: 1.4040000000000001, - Azimuth: 1.843416755956411, - Elevation: 0.08726646259971647, - Reflectivity: 59, - TimingOffset: 619.776, - }, - { - Distance: 0, - Azimuth: 1.843416755956411, - Elevation: -0.15707963267948966, - Reflectivity: 3, - TimingOffset: 622.0799999999999, - }, - { - Distance: 1.42, - Azimuth: 1.843416755956411, - Elevation: 0.12217304763960307, - Reflectivity: 53, - TimingOffset: 624.384, - }, - { - Distance: 0, - Azimuth: 1.843416755956411, - Elevation: -0.12217304763960307, - Reflectivity: 1, - TimingOffset: 626.688, - }, - { - Distance: 1.418, - Azimuth: 1.843416755956411, - Elevation: 0.15707963267948966, - Reflectivity: 60, - TimingOffset: 628.992, - }, - { - Distance: 1.442, - Azimuth: 1.843416755956411, - Elevation: -0.08726646259971647, - Reflectivity: 45, - TimingOffset: 631.2959999999999, - }, - { - Distance: 1.432, - Azimuth: 1.843416755956411, - Elevation: 0.19198621771937624, - Reflectivity: 60, - TimingOffset: 633.6, - }, - { - Distance: 1.428, - Azimuth: 1.843416755956411, - Elevation: -0.05235987755982988, - Reflectivity: 67, - TimingOffset: 635.904, - }, - { - Distance: 1.438, - Azimuth: 1.843416755956411, - Elevation: 0.22689280275926285, - Reflectivity: 49, - TimingOffset: 638.208, - }, - { - Distance: 1.568, - Azimuth: 1.843416755956411, - Elevation: -0.017453292519943295, - Reflectivity: 18, - TimingOffset: 640.512, - }, - { - Distance: 1.46, - Azimuth: 1.843416755956411, - Elevation: 0.2617993877991494, - Reflectivity: 48, - TimingOffset: 642.8159999999999, - }, - { - Distance: 0, - Azimuth: 1.8469074144603996, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 663.552, - }, - { - Distance: 1.6340000000000001, - Azimuth: 1.8469074144603996, - Elevation: 0.017453292519943295, - Reflectivity: 61, - TimingOffset: 665.856, - }, - { - Distance: 0, - Azimuth: 1.8469074144603996, - Elevation: -0.22689280275926285, - Reflectivity: 2, - TimingOffset: 668.16, - }, - { - Distance: 1.6320000000000001, - Azimuth: 1.8469074144603996, - Elevation: 0.05235987755982988, - Reflectivity: 76, - TimingOffset: 670.464, - }, - { - Distance: 0, - Azimuth: 1.8469074144603996, - Elevation: -0.19198621771937624, - Reflectivity: 2, - TimingOffset: 672.768, - }, - { - Distance: 1.4020000000000001, - Azimuth: 1.8469074144603996, - Elevation: 0.08726646259971647, - Reflectivity: 64, - TimingOffset: 675.072, - }, - { - Distance: 0, - Azimuth: 1.8469074144603996, - Elevation: -0.15707963267948966, - Reflectivity: 3, - TimingOffset: 677.376, - }, - { - Distance: 1.428, - Azimuth: 1.8469074144603996, - Elevation: 0.12217304763960307, - Reflectivity: 51, - TimingOffset: 679.6800000000001, - }, - { - Distance: 0, - Azimuth: 1.8469074144603996, - Elevation: -0.12217304763960307, - Reflectivity: 1, - TimingOffset: 681.984, - }, - { - Distance: 1.414, - Azimuth: 1.8469074144603996, - Elevation: 0.15707963267948966, - Reflectivity: 58, - TimingOffset: 684.288, - }, - { - Distance: 1.442, - Azimuth: 1.8469074144603996, - Elevation: -0.08726646259971647, - Reflectivity: 63, - TimingOffset: 686.592, - }, - { - Distance: 1.436, - Azimuth: 1.8469074144603996, - Elevation: 0.19198621771937624, - Reflectivity: 60, - TimingOffset: 688.8960000000001, - }, - { - Distance: 1.442, - Azimuth: 1.8469074144603996, - Elevation: -0.05235987755982988, - Reflectivity: 76, - TimingOffset: 691.2, - }, - { - Distance: 1.468, - Azimuth: 1.8469074144603996, - Elevation: 0.22689280275926285, - Reflectivity: 53, - TimingOffset: 693.504, - }, - { - Distance: 1.482, - Azimuth: 1.8469074144603996, - Elevation: -0.017453292519943295, - Reflectivity: 6, - TimingOffset: 695.808, - }, - { - Distance: 1.462, - Azimuth: 1.8469074144603996, - Elevation: 0.2617993877991494, - Reflectivity: 49, - TimingOffset: 698.112, - }, - { - Distance: 0, - Azimuth: 1.8502235400391887, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 718.848, - }, - { - Distance: 1.6260000000000001, - Azimuth: 1.8502235400391887, - Elevation: 0.017453292519943295, - Reflectivity: 63, - TimingOffset: 721.1519999999999, - }, - { - Distance: 0, - Azimuth: 1.8502235400391887, - Elevation: -0.22689280275926285, - Reflectivity: 2, - TimingOffset: 723.4559999999999, - }, - { - Distance: 1.6400000000000001, - Azimuth: 1.8502235400391887, - Elevation: 0.05235987755982988, - Reflectivity: 79, - TimingOffset: 725.76, - }, - { - Distance: 0, - Azimuth: 1.8502235400391887, - Elevation: -0.19198621771937624, - Reflectivity: 2, - TimingOffset: 728.064, - }, - { - Distance: 1.41, - Azimuth: 1.8502235400391887, - Elevation: 0.08726646259971647, - Reflectivity: 64, - TimingOffset: 730.3679999999999, - }, - { - Distance: 0, - Azimuth: 1.8502235400391887, - Elevation: -0.15707963267948966, - Reflectivity: 3, - TimingOffset: 732.6719999999999, - }, - { - Distance: 1.436, - Azimuth: 1.8502235400391887, - Elevation: 0.12217304763960307, - Reflectivity: 59, - TimingOffset: 734.976, - }, - { - Distance: 0, - Azimuth: 1.8502235400391887, - Elevation: -0.12217304763960307, - Reflectivity: 1, - TimingOffset: 737.28, - }, - { - Distance: 1.426, - Azimuth: 1.8502235400391887, - Elevation: 0.15707963267948966, - Reflectivity: 60, - TimingOffset: 739.584, - }, - { - Distance: 1.45, - Azimuth: 1.8502235400391887, - Elevation: -0.08726646259971647, - Reflectivity: 60, - TimingOffset: 741.8879999999999, - }, - { - Distance: 1.436, - Azimuth: 1.8502235400391887, - Elevation: 0.19198621771937624, - Reflectivity: 57, - TimingOffset: 744.192, - }, - { - Distance: 1.44, - Azimuth: 1.8502235400391887, - Elevation: -0.05235987755982988, - Reflectivity: 78, - TimingOffset: 746.496, - }, - { - Distance: 1.472, - Azimuth: 1.8502235400391887, - Elevation: 0.22689280275926285, - Reflectivity: 56, - TimingOffset: 748.8, - }, - { - Distance: 1.49, - Azimuth: 1.8502235400391887, - Elevation: -0.017453292519943295, - Reflectivity: 8, - TimingOffset: 751.1039999999999, - }, - { - Distance: 1.466, - Azimuth: 1.8502235400391887, - Elevation: 0.2617993877991494, - Reflectivity: 53, - TimingOffset: 753.4079999999999, - }, - { - Distance: 0, - Azimuth: 1.8537141985431775, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 774.144, - }, - { - Distance: 1.6380000000000001, - Azimuth: 1.8537141985431775, - Elevation: 0.017453292519943295, - Reflectivity: 61, - TimingOffset: 776.448, - }, - { - Distance: 0, - Azimuth: 1.8537141985431775, - Elevation: -0.22689280275926285, - Reflectivity: 2, - TimingOffset: 778.752, - }, - { - Distance: 1.6400000000000001, - Azimuth: 1.8537141985431775, - Elevation: 0.05235987755982988, - Reflectivity: 81, - TimingOffset: 781.056, - }, - { - Distance: 0, - Azimuth: 1.8537141985431775, - Elevation: -0.19198621771937624, - Reflectivity: 2, - TimingOffset: 783.36, - }, - { - Distance: 1.418, - Azimuth: 1.8537141985431775, - Elevation: 0.08726646259971647, - Reflectivity: 64, - TimingOffset: 785.664, - }, - { - Distance: 0, - Azimuth: 1.8537141985431775, - Elevation: -0.15707963267948966, - Reflectivity: 3, - TimingOffset: 787.968, - }, - { - Distance: 1.432, - Azimuth: 1.8537141985431775, - Elevation: 0.12217304763960307, - Reflectivity: 69, - TimingOffset: 790.272, - }, - { - Distance: 0, - Azimuth: 1.8537141985431775, - Elevation: -0.12217304763960307, - Reflectivity: 1, - TimingOffset: 792.576, - }, - { - Distance: 1.446, - Azimuth: 1.8537141985431775, - Elevation: 0.15707963267948966, - Reflectivity: 61, - TimingOffset: 794.88, - }, - { - Distance: 1.462, - Azimuth: 1.8537141985431775, - Elevation: -0.08726646259971647, - Reflectivity: 40, - TimingOffset: 797.184, - }, - { - Distance: 1.442, - Azimuth: 1.8537141985431775, - Elevation: 0.19198621771937624, - Reflectivity: 69, - TimingOffset: 799.488, - }, - { - Distance: 1.438, - Azimuth: 1.8537141985431775, - Elevation: -0.05235987755982988, - Reflectivity: 83, - TimingOffset: 801.792, - }, - { - Distance: 1.472, - Azimuth: 1.8537141985431775, - Elevation: 0.22689280275926285, - Reflectivity: 67, - TimingOffset: 804.096, - }, - { - Distance: 1.482, - Azimuth: 1.8537141985431775, - Elevation: -0.017453292519943295, - Reflectivity: 4, - TimingOffset: 806.4, - }, - { - Distance: 1.478, - Azimuth: 1.8537141985431775, - Elevation: 0.2617993877991494, - Reflectivity: 61, - TimingOffset: 808.704, - }, - { - Distance: 0, - Azimuth: 1.857204857047166, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 829.4399999999999, - }, - { - Distance: 1.6500000000000001, - Azimuth: 1.857204857047166, - Elevation: 0.017453292519943295, - Reflectivity: 60, - TimingOffset: 831.7439999999999, - }, - { - Distance: 0, - Azimuth: 1.857204857047166, - Elevation: -0.22689280275926285, - Reflectivity: 2, - TimingOffset: 834.0479999999999, - }, - { - Distance: 1.6280000000000001, - Azimuth: 1.857204857047166, - Elevation: 0.05235987755982988, - Reflectivity: 76, - TimingOffset: 836.352, - }, - { - Distance: 0, - Azimuth: 1.857204857047166, - Elevation: -0.19198621771937624, - Reflectivity: 2, - TimingOffset: 838.656, - }, - { - Distance: 1.426, - Azimuth: 1.857204857047166, - Elevation: 0.08726646259971647, - Reflectivity: 69, - TimingOffset: 840.9599999999999, - }, - { - Distance: 0, - Azimuth: 1.857204857047166, - Elevation: -0.15707963267948966, - Reflectivity: 3, - TimingOffset: 843.2639999999999, - }, - { - Distance: 1.432, - Azimuth: 1.857204857047166, - Elevation: 0.12217304763960307, - Reflectivity: 87, - TimingOffset: 845.568, - }, - { - Distance: 0, - Azimuth: 1.857204857047166, - Elevation: -0.12217304763960307, - Reflectivity: 1, - TimingOffset: 847.872, - }, - { - Distance: 1.444, - Azimuth: 1.857204857047166, - Elevation: 0.15707963267948966, - Reflectivity: 78, - TimingOffset: 850.1759999999999, - }, - { - Distance: 1.468, - Azimuth: 1.857204857047166, - Elevation: -0.08726646259971647, - Reflectivity: 19, - TimingOffset: 852.4799999999999, - }, - { - Distance: 1.456, - Azimuth: 1.857204857047166, - Elevation: 0.19198621771937624, - Reflectivity: 84, - TimingOffset: 854.784, - }, - { - Distance: 1.446, - Azimuth: 1.857204857047166, - Elevation: -0.05235987755982988, - Reflectivity: 83, - TimingOffset: 857.088, - }, - { - Distance: 1.48, - Azimuth: 1.857204857047166, - Elevation: 0.22689280275926285, - Reflectivity: 85, - TimingOffset: 859.3919999999999, - }, - { - Distance: 1.528, - Azimuth: 1.857204857047166, - Elevation: -0.017453292519943295, - Reflectivity: 5, - TimingOffset: 861.6959999999999, - }, - { - Distance: 1.488, - Azimuth: 1.857204857047166, - Elevation: 0.2617993877991494, - Reflectivity: 75, - TimingOffset: 863.9999999999999, - }, - { - Distance: 0, - Azimuth: 1.8606955155511546, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 884.736, - }, - { - Distance: 1.6520000000000001, - Azimuth: 1.8606955155511546, - Elevation: 0.017453292519943295, - Reflectivity: 56, - TimingOffset: 887.04, - }, - { - Distance: 0, - Azimuth: 1.8606955155511546, - Elevation: -0.22689280275926285, - Reflectivity: 2, - TimingOffset: 889.3439999999999, - }, - { - Distance: 1.6440000000000001, - Azimuth: 1.8606955155511546, - Elevation: 0.05235987755982988, - Reflectivity: 81, - TimingOffset: 891.648, - }, - { - Distance: 0, - Azimuth: 1.8606955155511546, - Elevation: -0.19198621771937624, - Reflectivity: 2, - TimingOffset: 893.952, - }, - { - Distance: 1.426, - Azimuth: 1.8606955155511546, - Elevation: 0.08726646259971647, - Reflectivity: 69, - TimingOffset: 896.256, - }, - { - Distance: 0, - Azimuth: 1.8606955155511546, - Elevation: -0.15707963267948966, - Reflectivity: 3, - TimingOffset: 898.56, - }, - { - Distance: 1.436, - Azimuth: 1.8606955155511546, - Elevation: 0.12217304763960307, - Reflectivity: 81, - TimingOffset: 900.864, - }, - { - Distance: 0, - Azimuth: 1.8606955155511546, - Elevation: -0.12217304763960307, - Reflectivity: 1, - TimingOffset: 903.168, - }, - { - Distance: 1.434, - Azimuth: 1.8606955155511546, - Elevation: 0.15707963267948966, - Reflectivity: 88, - TimingOffset: 905.472, - }, - { - Distance: 1.466, - Azimuth: 1.8606955155511546, - Elevation: -0.08726646259971647, - Reflectivity: 35, - TimingOffset: 907.776, - }, - { - Distance: 1.458, - Azimuth: 1.8606955155511546, - Elevation: 0.19198621771937624, - Reflectivity: 85, - TimingOffset: 910.08, - }, - { - Distance: 1.456, - Azimuth: 1.8606955155511546, - Elevation: -0.05235987755982988, - Reflectivity: 78, - TimingOffset: 912.384, - }, - { - Distance: 1.466, - Azimuth: 1.8606955155511546, - Elevation: 0.22689280275926285, - Reflectivity: 82, - TimingOffset: 914.688, - }, - { - Distance: 0, - Azimuth: 1.8606955155511546, - Elevation: -0.017453292519943295, - Reflectivity: 100, - TimingOffset: 916.992, - }, - { - Distance: 1.492, - Azimuth: 1.8606955155511546, - Elevation: 0.2617993877991494, - Reflectivity: 82, - TimingOffset: 919.2959999999999, - }, - { - Distance: 0, - Azimuth: 1.8640116411299437, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 940.032, - }, - { - Distance: 1.6520000000000001, - Azimuth: 1.8640116411299437, - Elevation: 0.017453292519943295, - Reflectivity: 58, - TimingOffset: 942.336, - }, - { - Distance: 0, - Azimuth: 1.8640116411299437, - Elevation: -0.22689280275926285, - Reflectivity: 2, - TimingOffset: 944.64, - }, - { - Distance: 1.6560000000000001, - Azimuth: 1.8640116411299437, - Elevation: 0.05235987755982988, - Reflectivity: 79, - TimingOffset: 946.9440000000001, - }, - { - Distance: 0, - Azimuth: 1.8640116411299437, - Elevation: -0.19198621771937624, - Reflectivity: 2, - TimingOffset: 949.248, - }, - { - Distance: 1.422, - Azimuth: 1.8640116411299437, - Elevation: 0.08726646259971647, - Reflectivity: 75, - TimingOffset: 951.552, - }, - { - Distance: 0, - Azimuth: 1.8640116411299437, - Elevation: -0.15707963267948966, - Reflectivity: 3, - TimingOffset: 953.856, - }, - { - Distance: 1.448, - Azimuth: 1.8640116411299437, - Elevation: 0.12217304763960307, - Reflectivity: 75, - TimingOffset: 956.1600000000001, - }, - { - Distance: 0, - Azimuth: 1.8640116411299437, - Elevation: -0.12217304763960307, - Reflectivity: 1, - TimingOffset: 958.464, - }, - { - Distance: 1.438, - Azimuth: 1.8640116411299437, - Elevation: 0.15707963267948966, - Reflectivity: 81, - TimingOffset: 960.768, - }, - { - Distance: 1.374, - Azimuth: 1.8640116411299437, - Elevation: -0.08726646259971647, - Reflectivity: 25, - TimingOffset: 963.072, - }, - { - Distance: 1.46, - Azimuth: 1.8640116411299437, - Elevation: 0.19198621771937624, - Reflectivity: 87, - TimingOffset: 965.3760000000001, - }, - { - Distance: 1.46, - Azimuth: 1.8640116411299437, - Elevation: -0.05235987755982988, - Reflectivity: 75, - TimingOffset: 967.6800000000001, - }, - { - Distance: 1.476, - Azimuth: 1.8640116411299437, - Elevation: 0.22689280275926285, - Reflectivity: 70, - TimingOffset: 969.984, - }, - { - Distance: 1.554, - Azimuth: 1.8640116411299437, - Elevation: -0.017453292519943295, - Reflectivity: 9, - TimingOffset: 972.288, - }, - { - Distance: 1.476, - Azimuth: 1.8640116411299437, - Elevation: 0.2617993877991494, - Reflectivity: 75, - TimingOffset: 974.592, - }, - { - Distance: 0, - Azimuth: 1.8675022996339325, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 995.328, - }, - { - Distance: 1.6500000000000001, - Azimuth: 1.8675022996339325, - Elevation: 0.017453292519943295, - Reflectivity: 60, - TimingOffset: 997.632, - }, - { - Distance: 0, - Azimuth: 1.8675022996339325, - Elevation: -0.22689280275926285, - Reflectivity: 2, - TimingOffset: 999.9359999999999, - }, - { - Distance: 1.672, - Azimuth: 1.8675022996339325, - Elevation: 0.05235987755982988, - Reflectivity: 75, - TimingOffset: 1002.24, - }, - { - Distance: 0, - Azimuth: 1.8675022996339325, - Elevation: -0.19198621771937624, - Reflectivity: 2, - TimingOffset: 1004.544, - }, - { - Distance: 1.426, - Azimuth: 1.8675022996339325, - Elevation: 0.08726646259971647, - Reflectivity: 71, - TimingOffset: 1006.848, - }, - { - Distance: 0, - Azimuth: 1.8675022996339325, - Elevation: -0.15707963267948966, - Reflectivity: 3, - TimingOffset: 1009.1519999999999, - }, - { - Distance: 1.444, - Azimuth: 1.8675022996339325, - Elevation: 0.12217304763960307, - Reflectivity: 60, - TimingOffset: 1011.456, - }, - { - Distance: 0, - Azimuth: 1.8675022996339325, - Elevation: -0.12217304763960307, - Reflectivity: 1, - TimingOffset: 1013.76, - }, - { - Distance: 1.446, - Azimuth: 1.8675022996339325, - Elevation: 0.15707963267948966, - Reflectivity: 61, - TimingOffset: 1016.064, - }, - { - Distance: 1.456, - Azimuth: 1.8675022996339325, - Elevation: -0.08726646259971647, - Reflectivity: 80, - TimingOffset: 1018.3679999999999, - }, - { - Distance: 1.444, - Azimuth: 1.8675022996339325, - Elevation: 0.19198621771937624, - Reflectivity: 59, - TimingOffset: 1020.672, - }, - { - Distance: 1.46, - Azimuth: 1.8675022996339325, - Elevation: -0.05235987755982988, - Reflectivity: 75, - TimingOffset: 1022.976, - }, - { - Distance: 1.482, - Azimuth: 1.8675022996339325, - Elevation: 0.22689280275926285, - Reflectivity: 63, - TimingOffset: 1025.28, - }, - { - Distance: 1.57, - Azimuth: 1.8675022996339325, - Elevation: -0.017453292519943295, - Reflectivity: 8, - TimingOffset: 1027.584, - }, - { - Distance: 1.468, - Azimuth: 1.8675022996339325, - Elevation: 0.2617993877991494, - Reflectivity: 59, - TimingOffset: 1029.888, - }, - { - Distance: 0, - Azimuth: 1.8709929581379214, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 1050.624, - }, - { - Distance: 1.6600000000000001, - Azimuth: 1.8709929581379214, - Elevation: 0.017453292519943295, - Reflectivity: 58, - TimingOffset: 1052.928, - }, - { - Distance: 0, - Azimuth: 1.8709929581379214, - Elevation: -0.22689280275926285, - Reflectivity: 2, - TimingOffset: 1055.232, - }, - { - Distance: 1.672, - Azimuth: 1.8709929581379214, - Elevation: 0.05235987755982988, - Reflectivity: 76, - TimingOffset: 1057.536, - }, - { - Distance: 0, - Azimuth: 1.8709929581379214, - Elevation: -0.19198621771937624, - Reflectivity: 2, - TimingOffset: 1059.84, - }, - { - Distance: 1.428, - Azimuth: 1.8709929581379214, - Elevation: 0.08726646259971647, - Reflectivity: 56, - TimingOffset: 1062.144, - }, - { - Distance: 0, - Azimuth: 1.8709929581379214, - Elevation: -0.15707963267948966, - Reflectivity: 3, - TimingOffset: 1064.448, - }, - { - Distance: 1.434, - Azimuth: 1.8709929581379214, - Elevation: 0.12217304763960307, - Reflectivity: 60, - TimingOffset: 1066.752, - }, - { - Distance: 0, - Azimuth: 1.8709929581379214, - Elevation: -0.12217304763960307, - Reflectivity: 1, - TimingOffset: 1069.056, - }, - { - Distance: 1.45, - Azimuth: 1.8709929581379214, - Elevation: 0.15707963267948966, - Reflectivity: 61, - TimingOffset: 1071.3600000000001, - }, - { - Distance: 1.474, - Azimuth: 1.8709929581379214, - Elevation: -0.08726646259971647, - Reflectivity: 63, - TimingOffset: 1073.664, - }, - { - Distance: 1.454, - Azimuth: 1.8709929581379214, - Elevation: 0.19198621771937624, - Reflectivity: 72, - TimingOffset: 1075.968, - }, - { - Distance: 1.452, - Azimuth: 1.8709929581379214, - Elevation: -0.05235987755982988, - Reflectivity: 73, - TimingOffset: 1078.272, - }, - { - Distance: 1.478, - Azimuth: 1.8709929581379214, - Elevation: 0.22689280275926285, - Reflectivity: 54, - TimingOffset: 1080.576, - }, - { - Distance: 1.566, - Azimuth: 1.8709929581379214, - Elevation: -0.017453292519943295, - Reflectivity: 7, - TimingOffset: 1082.88, - }, - { - Distance: 1.482, - Azimuth: 1.8709929581379214, - Elevation: 0.2617993877991494, - Reflectivity: 62, - TimingOffset: 1085.184, - }, - { - Distance: 0, - Azimuth: 1.8746581495671093, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 1105.92, - }, - { - Distance: 1.672, - Azimuth: 1.8746581495671093, - Elevation: 0.017453292519943295, - Reflectivity: 58, - TimingOffset: 1108.2240000000002, - }, - { - Distance: 0, - Azimuth: 1.8746581495671093, - Elevation: -0.22689280275926285, - Reflectivity: 3, - TimingOffset: 1110.528, - }, - { - Distance: 1.6640000000000001, - Azimuth: 1.8746581495671093, - Elevation: 0.05235987755982988, - Reflectivity: 76, - TimingOffset: 1112.832, - }, - { - Distance: 0, - Azimuth: 1.8746581495671093, - Elevation: -0.19198621771937624, - Reflectivity: 2, - TimingOffset: 1115.136, - }, - { - Distance: 1.436, - Azimuth: 1.8746581495671093, - Elevation: 0.08726646259971647, - Reflectivity: 48, - TimingOffset: 1117.44, - }, - { - Distance: 0, - Azimuth: 1.8746581495671093, - Elevation: -0.15707963267948966, - Reflectivity: 3, - TimingOffset: 1119.7440000000001, - }, - { - Distance: 1.436, - Azimuth: 1.8746581495671093, - Elevation: 0.12217304763960307, - Reflectivity: 50, - TimingOffset: 1122.048, - }, - { - Distance: 0, - Azimuth: 1.8746581495671093, - Elevation: -0.12217304763960307, - Reflectivity: 1, - TimingOffset: 1124.352, - }, - { - Distance: 1.456, - Azimuth: 1.8746581495671093, - Elevation: 0.15707963267948966, - Reflectivity: 53, - TimingOffset: 1126.6560000000002, - }, - { - Distance: 1.49, - Azimuth: 1.8746581495671093, - Elevation: -0.08726646259971647, - Reflectivity: 60, - TimingOffset: 1128.96, - }, - { - Distance: 1.448, - Azimuth: 1.8746581495671093, - Elevation: 0.19198621771937624, - Reflectivity: 57, - TimingOffset: 1131.2640000000001, - }, - { - Distance: 1.458, - Azimuth: 1.8746581495671093, - Elevation: -0.05235987755982988, - Reflectivity: 41, - TimingOffset: 1133.568, - }, - { - Distance: 1.472, - Azimuth: 1.8746581495671093, - Elevation: 0.22689280275926285, - Reflectivity: 53, - TimingOffset: 1135.872, - }, - { - Distance: 1.55, - Azimuth: 1.8746581495671093, - Elevation: -0.017453292519943295, - Reflectivity: 4, - TimingOffset: 1138.1760000000002, - }, - { - Distance: 1.486, - Azimuth: 1.8746581495671093, - Elevation: 0.2617993877991494, - Reflectivity: 54, - TimingOffset: 1140.48, - }, - { - Distance: 0, - Azimuth: 1.8781488080710982, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 1161.216, - }, - { - Distance: 1.674, - Azimuth: 1.8781488080710982, - Elevation: 0.017453292519943295, - Reflectivity: 61, - TimingOffset: 1163.52, - }, - { - Distance: 0, - Azimuth: 1.8781488080710982, - Elevation: -0.22689280275926285, - Reflectivity: 2, - TimingOffset: 1165.8239999999998, - }, - { - Distance: 1.676, - Azimuth: 1.8781488080710982, - Elevation: 0.05235987755982988, - Reflectivity: 72, - TimingOffset: 1168.128, - }, - { - Distance: 0, - Azimuth: 1.8781488080710982, - Elevation: -0.19198621771937624, - Reflectivity: 2, - TimingOffset: 1170.4319999999998, - }, - { - Distance: 1.432, - Azimuth: 1.8781488080710982, - Elevation: 0.08726646259971647, - Reflectivity: 45, - TimingOffset: 1172.7359999999999, - }, - { - Distance: 0, - Azimuth: 1.8781488080710982, - Elevation: -0.15707963267948966, - Reflectivity: 3, - TimingOffset: 1175.04, - }, - { - Distance: 1.452, - Azimuth: 1.8781488080710982, - Elevation: 0.12217304763960307, - Reflectivity: 53, - TimingOffset: 1177.3439999999998, - }, - { - Distance: 0, - Azimuth: 1.8781488080710982, - Elevation: -0.12217304763960307, - Reflectivity: 77, - TimingOffset: 1179.648, - }, - { - Distance: 1.448, - Azimuth: 1.8781488080710982, - Elevation: 0.15707963267948966, - Reflectivity: 54, - TimingOffset: 1181.952, - }, - { - Distance: 1.492, - Azimuth: 1.8781488080710982, - Elevation: -0.08726646259971647, - Reflectivity: 59, - TimingOffset: 1184.2559999999999, - }, - { - Distance: 1.47, - Azimuth: 1.8781488080710982, - Elevation: 0.19198621771937624, - Reflectivity: 63, - TimingOffset: 1186.56, - }, - { - Distance: 1.45, - Azimuth: 1.8781488080710982, - Elevation: -0.05235987755982988, - Reflectivity: 21, - TimingOffset: 1188.8639999999998, - }, - { - Distance: 1.476, - Azimuth: 1.8781488080710982, - Elevation: 0.22689280275926285, - Reflectivity: 50, - TimingOffset: 1191.168, - }, - { - Distance: 1.534, - Azimuth: 1.8781488080710982, - Elevation: -0.017453292519943295, - Reflectivity: 5, - TimingOffset: 1193.472, - }, - { - Distance: 1.494, - Azimuth: 1.8781488080710982, - Elevation: 0.2617993877991494, - Reflectivity: 56, - TimingOffset: 1195.7759999999998, - }, - { - Distance: 0, - Azimuth: 1.8816394665750866, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 1216.512, - }, - { - Distance: 1.676, - Azimuth: 1.8816394665750866, - Elevation: 0.017453292519943295, - Reflectivity: 56, - TimingOffset: 1218.816, - }, - { - Distance: 0, - Azimuth: 1.8816394665750866, - Elevation: -0.22689280275926285, - Reflectivity: 2, - TimingOffset: 1221.12, - }, - { - Distance: 1.684, - Azimuth: 1.8816394665750866, - Elevation: 0.05235987755982988, - Reflectivity: 75, - TimingOffset: 1223.424, - }, - { - Distance: 0, - Azimuth: 1.8816394665750866, - Elevation: -0.19198621771937624, - Reflectivity: 2, - TimingOffset: 1225.7279999999998, - }, - { - Distance: 1.434, - Azimuth: 1.8816394665750866, - Elevation: 0.08726646259971647, - Reflectivity: 51, - TimingOffset: 1228.032, - }, - { - Distance: 0, - Azimuth: 1.8816394665750866, - Elevation: -0.15707963267948966, - Reflectivity: 3, - TimingOffset: 1230.336, - }, - { - Distance: 1.46, - Azimuth: 1.8816394665750866, - Elevation: 0.12217304763960307, - Reflectivity: 54, - TimingOffset: 1232.6399999999999, - }, - { - Distance: 1.512, - Azimuth: 1.8816394665750866, - Elevation: -0.12217304763960307, - Reflectivity: 40, - TimingOffset: 1234.944, - }, - { - Distance: 1.45, - Azimuth: 1.8816394665750866, - Elevation: 0.15707963267948966, - Reflectivity: 60, - TimingOffset: 1237.248, - }, - { - Distance: 1.48, - Azimuth: 1.8816394665750866, - Elevation: -0.08726646259971647, - Reflectivity: 59, - TimingOffset: 1239.552, - }, - { - Distance: 1.468, - Azimuth: 1.8816394665750866, - Elevation: 0.19198621771937624, - Reflectivity: 60, - TimingOffset: 1241.856, - }, - { - Distance: 1.466, - Azimuth: 1.8816394665750866, - Elevation: -0.05235987755982988, - Reflectivity: 65, - TimingOffset: 1244.1599999999999, - }, - { - Distance: 1.492, - Azimuth: 1.8816394665750866, - Elevation: 0.22689280275926285, - Reflectivity: 53, - TimingOffset: 1246.464, - }, - { - Distance: 1.538, - Azimuth: 1.8816394665750866, - Elevation: -0.017453292519943295, - Reflectivity: 5, - TimingOffset: 1248.768, - }, - { - Distance: 1.49, - Azimuth: 1.8816394665750866, - Elevation: 0.2617993877991494, - Reflectivity: 53, - TimingOffset: 1251.072, - }, - { - Distance: 0, - Azimuth: 1.8851301250790755, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 1271.808, - }, - { - Distance: 1.672, - Azimuth: 1.8851301250790755, - Elevation: 0.017453292519943295, - Reflectivity: 58, - TimingOffset: 1274.112, - }, - { - Distance: 0, - Azimuth: 1.8851301250790755, - Elevation: -0.22689280275926285, - Reflectivity: 2, - TimingOffset: 1276.416, - }, - { - Distance: 1.692, - Azimuth: 1.8851301250790755, - Elevation: 0.05235987755982988, - Reflectivity: 72, - TimingOffset: 1278.72, - }, - { - Distance: 0, - Azimuth: 1.8851301250790755, - Elevation: -0.19198621771937624, - Reflectivity: 2, - TimingOffset: 1281.024, - }, - { - Distance: 1.436, - Azimuth: 1.8851301250790755, - Elevation: 0.08726646259971647, - Reflectivity: 61, - TimingOffset: 1283.328, - }, - { - Distance: 0, - Azimuth: 1.8851301250790755, - Elevation: -0.15707963267948966, - Reflectivity: 3, - TimingOffset: 1285.632, - }, - { - Distance: 1.46, - Azimuth: 1.8851301250790755, - Elevation: 0.12217304763960307, - Reflectivity: 57, - TimingOffset: 1287.936, - }, - { - Distance: 1.416, - Azimuth: 1.8851301250790755, - Elevation: -0.12217304763960307, - Reflectivity: 41, - TimingOffset: 1290.24, - }, - { - Distance: 1.464, - Azimuth: 1.8851301250790755, - Elevation: 0.15707963267948966, - Reflectivity: 54, - TimingOffset: 1292.544, - }, - { - Distance: 1.45, - Azimuth: 1.8851301250790755, - Elevation: -0.08726646259971647, - Reflectivity: 40, - TimingOffset: 1294.848, - }, - { - Distance: 1.466, - Azimuth: 1.8851301250790755, - Elevation: 0.19198621771937624, - Reflectivity: 71, - TimingOffset: 1297.152, - }, - { - Distance: 1.4060000000000001, - Azimuth: 1.8851301250790755, - Elevation: -0.05235987755982988, - Reflectivity: 46, - TimingOffset: 1299.456, - }, - { - Distance: 1.502, - Azimuth: 1.8851301250790755, - Elevation: 0.22689280275926285, - Reflectivity: 56, - TimingOffset: 1301.76, - }, - { - Distance: 1.544, - Azimuth: 1.8851301250790755, - Elevation: -0.017453292519943295, - Reflectivity: 5, - TimingOffset: 1304.064, - }, - { - Distance: 1.494, - Azimuth: 1.8851301250790755, - Elevation: 0.2617993877991494, - Reflectivity: 58, - TimingOffset: 1306.368, - }, - }, - Timestamp: 2666163099000, - } -} - -func exampleSphericalPointCloudLastReflection() *SphericalPointCloud { - return &SphericalPointCloud{ - SphericalPoints: [BlocksPerPacket * ChannelsPerBlock]SphericalPoint{ - { - Distance: 0, - Azimuth: 1.8050195124125357, - Elevation: -0.2617993877991494, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 0, - }, - { - Distance: 1.534, - Azimuth: 1.8050195124125357, - Elevation: 0.017453292519943295, - Reflectivity: 3, - LastReflection: true, - TimingOffset: 2.304, - }, - { - Distance: 0, - Azimuth: 1.8050195124125357, - Elevation: -0.22689280275926285, - Reflectivity: 3, - LastReflection: true, - TimingOffset: 4.608, - }, - { - Distance: 1.568, - Azimuth: 1.8050195124125357, - Elevation: 0.05235987755982988, - Reflectivity: 75, - LastReflection: true, - TimingOffset: 6.911999999999999, - }, - { - Distance: 0, - Azimuth: 1.8050195124125357, - Elevation: -0.19198621771937624, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 9.216, - }, - { - Distance: 1.368, - Azimuth: 1.8050195124125357, - Elevation: 0.08726646259971647, - Reflectivity: 57, - LastReflection: true, - TimingOffset: 11.52, - }, - { - Distance: 0, - Azimuth: 1.8050195124125357, - Elevation: -0.15707963267948966, - Reflectivity: 3, - LastReflection: true, - TimingOffset: 13.823999999999998, - }, - { - Distance: 1.4000000000000001, - Azimuth: 1.8050195124125357, - Elevation: 0.12217304763960307, - Reflectivity: 56, - LastReflection: true, - TimingOffset: 16.128, - }, - { - Distance: 0, - Azimuth: 1.8050195124125357, - Elevation: -0.12217304763960307, - Reflectivity: 1, - LastReflection: true, - TimingOffset: 18.432, - }, - { - Distance: 1.4020000000000001, - Azimuth: 1.8050195124125357, - Elevation: 0.15707963267948966, - Reflectivity: 69, - LastReflection: true, - TimingOffset: 20.735999999999997, - }, - { - Distance: 1.4040000000000001, - Azimuth: 1.8050195124125357, - Elevation: -0.08726646259971647, - Reflectivity: 0, - LastReflection: true, - TimingOffset: 23.04, - }, - { - Distance: 1.424, - Azimuth: 1.8050195124125357, - Elevation: 0.19198621771937624, - Reflectivity: 87, - LastReflection: true, - TimingOffset: 25.343999999999998, - }, - { - Distance: 1.362, - Azimuth: 1.8050195124125357, - Elevation: -0.05235987755982988, - Reflectivity: 35, - LastReflection: true, - TimingOffset: 27.647999999999996, - }, - { - Distance: 1.418, - Azimuth: 1.8050195124125357, - Elevation: 0.22689280275926285, - Reflectivity: 50, - LastReflection: true, - TimingOffset: 29.951999999999998, - }, - { - Distance: 1.414, - Azimuth: 1.8050195124125357, - Elevation: -0.017453292519943295, - Reflectivity: 29, - LastReflection: true, - TimingOffset: 32.256, - }, - { - Distance: 1.458, - Azimuth: 1.8050195124125357, - Elevation: 0.2617993877991494, - Reflectivity: 74, - LastReflection: true, - TimingOffset: 34.559999999999995, - }, - { - Distance: 0, - Azimuth: 1.808510170916524, - Elevation: -0.2617993877991494, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 55.296, - }, - { - Distance: 1.566, - Azimuth: 1.808510170916524, - Elevation: 0.017453292519943295, - Reflectivity: 7, - LastReflection: true, - TimingOffset: 57.6, - }, - { - Distance: 0, - Azimuth: 1.808510170916524, - Elevation: -0.22689280275926285, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 59.903999999999996, - }, - { - Distance: 1.564, - Azimuth: 1.808510170916524, - Elevation: 0.05235987755982988, - Reflectivity: 70, - LastReflection: true, - TimingOffset: 62.208, - }, - { - Distance: 0, - Azimuth: 1.808510170916524, - Elevation: -0.19198621771937624, - Reflectivity: 4, - LastReflection: true, - TimingOffset: 64.512, - }, - { - Distance: 1.368, - Azimuth: 1.808510170916524, - Elevation: 0.08726646259971647, - Reflectivity: 61, - LastReflection: true, - TimingOffset: 66.816, - }, - { - Distance: 0, - Azimuth: 1.808510170916524, - Elevation: -0.15707963267948966, - Reflectivity: 3, - LastReflection: true, - TimingOffset: 69.12, - }, - { - Distance: 1.416, - Azimuth: 1.808510170916524, - Elevation: 0.12217304763960307, - Reflectivity: 65, - LastReflection: true, - TimingOffset: 71.424, - }, - { - Distance: 0, - Azimuth: 1.808510170916524, - Elevation: -0.12217304763960307, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 73.728, - }, - { - Distance: 1.3960000000000001, - Azimuth: 1.808510170916524, - Elevation: 0.15707963267948966, - Reflectivity: 56, - LastReflection: true, - TimingOffset: 76.032, - }, - { - Distance: 0, - Azimuth: 1.808510170916524, - Elevation: -0.08726646259971647, - Reflectivity: 3, - LastReflection: true, - TimingOffset: 78.336, - }, - { - Distance: 1.42, - Azimuth: 1.808510170916524, - Elevation: 0.19198621771937624, - Reflectivity: 62, - LastReflection: true, - TimingOffset: 80.64, - }, - { - Distance: 1.3860000000000001, - Azimuth: 1.808510170916524, - Elevation: -0.05235987755982988, - Reflectivity: 38, - LastReflection: true, - TimingOffset: 82.94399999999999, - }, - { - Distance: 1.452, - Azimuth: 1.808510170916524, - Elevation: 0.22689280275926285, - Reflectivity: 57, - LastReflection: true, - TimingOffset: 85.24799999999999, - }, - { - Distance: 1.42, - Azimuth: 1.808510170916524, - Elevation: -0.017453292519943295, - Reflectivity: 24, - LastReflection: true, - TimingOffset: 87.55199999999999, - }, - { - Distance: 1.446, - Azimuth: 1.808510170916524, - Elevation: 0.2617993877991494, - Reflectivity: 50, - LastReflection: true, - TimingOffset: 89.856, - }, - { - Distance: 0, - Azimuth: 1.812000829420513, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 0, - }, - { - Distance: 0, - Azimuth: 1.812000829420513, - Elevation: 0.017453292519943295, - Reflectivity: 100, - TimingOffset: 2.304, - }, - { - Distance: 0, - Azimuth: 1.812000829420513, - Elevation: -0.22689280275926285, - Reflectivity: 3, - TimingOffset: 4.608, - }, - { - Distance: 1.584, - Azimuth: 1.812000829420513, - Elevation: 0.05235987755982988, - Reflectivity: 76, - TimingOffset: 6.911999999999999, - }, - { - Distance: 0, - Azimuth: 1.812000829420513, - Elevation: -0.19198621771937624, - Reflectivity: 2, - TimingOffset: 9.216, - }, - { - Distance: 1.37, - Azimuth: 1.812000829420513, - Elevation: 0.08726646259971647, - Reflectivity: 62, - TimingOffset: 11.52, - }, - { - Distance: 0, - Azimuth: 1.812000829420513, - Elevation: -0.15707963267948966, - Reflectivity: 3, - TimingOffset: 13.823999999999998, - }, - { - Distance: 1.416, - Azimuth: 1.812000829420513, - Elevation: 0.12217304763960307, - Reflectivity: 79, - TimingOffset: 16.128, - }, - { - Distance: 0, - Azimuth: 1.812000829420513, - Elevation: -0.12217304763960307, - Reflectivity: 2, - TimingOffset: 18.432, - }, - { - Distance: 1.41, - Azimuth: 1.812000829420513, - Elevation: 0.15707963267948966, - Reflectivity: 65, - TimingOffset: 20.735999999999997, - }, - { - Distance: 1.464, - Azimuth: 1.812000829420513, - Elevation: -0.08726646259971647, - Reflectivity: 0, - TimingOffset: 23.04, - }, - { - Distance: 1.432, - Azimuth: 1.812000829420513, - Elevation: 0.19198621771937624, - Reflectivity: 87, - TimingOffset: 25.343999999999998, - }, - { - Distance: 1.3920000000000001, - Azimuth: 1.812000829420513, - Elevation: -0.05235987755982988, - Reflectivity: 37, - TimingOffset: 27.647999999999996, - }, - { - Distance: 1.454, - Azimuth: 1.812000829420513, - Elevation: 0.22689280275926285, - Reflectivity: 70, - TimingOffset: 29.951999999999998, - }, - { - Distance: 1.522, - Azimuth: 1.812000829420513, - Elevation: -0.017453292519943295, - Reflectivity: 33, - TimingOffset: 32.256, - }, - { - Distance: 1.452, - Azimuth: 1.812000829420513, - Elevation: 0.2617993877991494, - Reflectivity: 68, - TimingOffset: 34.559999999999995, - }, - { - Distance: 0, - Azimuth: 1.8154914879245017, - Elevation: -0.2617993877991494, - Reflectivity: 2, - TimingOffset: 55.296, - }, - { - Distance: 1.588, - Azimuth: 1.8154914879245017, - Elevation: 0.017453292519943295, - Reflectivity: 60, - TimingOffset: 57.6, - }, - { - Distance: 0, - Azimuth: 1.8154914879245017, - Elevation: -0.22689280275926285, - Reflectivity: 2, - TimingOffset: 59.903999999999996, - }, - { - Distance: 1.592, - Azimuth: 1.8154914879245017, - Elevation: 0.05235987755982988, - Reflectivity: 76, - TimingOffset: 62.208, - }, - { - Distance: 0, - Azimuth: 1.8154914879245017, - Elevation: -0.19198621771937624, - Reflectivity: 2, - TimingOffset: 64.512, - }, - { - Distance: 1.368, - Azimuth: 1.8154914879245017, - Elevation: 0.08726646259971647, - Reflectivity: 61, - TimingOffset: 66.816, - }, - { - Distance: 0, - Azimuth: 1.8154914879245017, - Elevation: -0.15707963267948966, - Reflectivity: 3, - TimingOffset: 69.12, - }, - { - Distance: 1.428, - Azimuth: 1.8154914879245017, - Elevation: 0.12217304763960307, - Reflectivity: 91, - TimingOffset: 71.424, - }, - { - Distance: 0, - Azimuth: 1.8154914879245017, - Elevation: -0.12217304763960307, - Reflectivity: 3, - TimingOffset: 73.728, - }, - { - Distance: 1.422, - Azimuth: 1.8154914879245017, - Elevation: 0.15707963267948966, - Reflectivity: 84, - TimingOffset: 76.032, - }, - { - Distance: 1.464, - Azimuth: 1.8154914879245017, - Elevation: -0.08726646259971647, - Reflectivity: 0, - TimingOffset: 78.336, - }, - { - Distance: 1.426, - Azimuth: 1.8154914879245017, - Elevation: 0.19198621771937624, - Reflectivity: 99, - TimingOffset: 80.64, - }, - { - Distance: 1.3900000000000001, - Azimuth: 1.8154914879245017, - Elevation: -0.05235987755982988, - Reflectivity: 35, - TimingOffset: 82.94399999999999, - }, - { - Distance: 1.474, - Azimuth: 1.8154914879245017, - Elevation: 0.22689280275926285, - Reflectivity: 85, - TimingOffset: 85.24799999999999, - }, - { - Distance: 1.542, - Azimuth: 1.8154914879245017, - Elevation: -0.017453292519943295, - Reflectivity: 37, - TimingOffset: 87.55199999999999, - }, - { - Distance: 1.452, - Azimuth: 1.8154914879245017, - Elevation: 0.2617993877991494, - Reflectivity: 81, - TimingOffset: 89.856, - }, - { - Distance: 0, - Azimuth: 1.81898214642849, - Elevation: -0.2617993877991494, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 110.592, - }, - { - Distance: 1.592, - Azimuth: 1.81898214642849, - Elevation: 0.017453292519943295, - Reflectivity: 69, - LastReflection: true, - TimingOffset: 112.896, - }, - { - Distance: 0, - Azimuth: 1.81898214642849, - Elevation: -0.22689280275926285, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 115.2, - }, - { - Distance: 1.588, - Azimuth: 1.81898214642849, - Elevation: 0.05235987755982988, - Reflectivity: 84, - LastReflection: true, - TimingOffset: 117.50399999999999, - }, - { - Distance: 0, - Azimuth: 1.81898214642849, - Elevation: -0.19198621771937624, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 119.80799999999999, - }, - { - Distance: 1.372, - Azimuth: 1.81898214642849, - Elevation: 0.08726646259971647, - Reflectivity: 57, - LastReflection: true, - TimingOffset: 122.112, - }, - { - Distance: 0, - Azimuth: 1.81898214642849, - Elevation: -0.15707963267948966, - Reflectivity: 3, - LastReflection: true, - TimingOffset: 124.416, - }, - { - Distance: 1.412, - Azimuth: 1.81898214642849, - Elevation: 0.12217304763960307, - Reflectivity: 79, - LastReflection: true, - TimingOffset: 126.72, - }, - { - Distance: 0, - Azimuth: 1.81898214642849, - Elevation: -0.12217304763960307, - Reflectivity: 3, - LastReflection: true, - TimingOffset: 129.024, - }, - { - Distance: 1.422, - Azimuth: 1.81898214642849, - Elevation: 0.15707963267948966, - Reflectivity: 83, - LastReflection: true, - TimingOffset: 131.328, - }, - { - Distance: 1.424, - Azimuth: 1.81898214642849, - Elevation: -0.08726646259971647, - Reflectivity: 0, - LastReflection: true, - TimingOffset: 133.632, - }, - { - Distance: 1.426, - Azimuth: 1.81898214642849, - Elevation: 0.19198621771937624, - Reflectivity: 87, - LastReflection: true, - TimingOffset: 135.936, - }, - { - Distance: 1.3860000000000001, - Azimuth: 1.81898214642849, - Elevation: -0.05235987755982988, - Reflectivity: 36, - LastReflection: true, - TimingOffset: 138.24, - }, - { - Distance: 1.446, - Azimuth: 1.81898214642849, - Elevation: 0.22689280275926285, - Reflectivity: 72, - LastReflection: true, - TimingOffset: 140.54399999999998, - }, - { - Distance: 1.552, - Azimuth: 1.81898214642849, - Elevation: -0.017453292519943295, - Reflectivity: 51, - LastReflection: true, - TimingOffset: 142.848, - }, - { - Distance: 1.466, - Azimuth: 1.81898214642849, - Elevation: 0.2617993877991494, - Reflectivity: 76, - LastReflection: true, - TimingOffset: 145.152, - }, - { - Distance: 0, - Azimuth: 1.822472804932479, - Elevation: -0.2617993877991494, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 165.888, - }, - { - Distance: 1.598, - Azimuth: 1.822472804932479, - Elevation: 0.017453292519943295, - Reflectivity: 65, - LastReflection: true, - TimingOffset: 168.192, - }, - { - Distance: 0, - Azimuth: 1.822472804932479, - Elevation: -0.22689280275926285, - Reflectivity: 3, - LastReflection: true, - TimingOffset: 170.496, - }, - { - Distance: 1.588, - Azimuth: 1.822472804932479, - Elevation: 0.05235987755982988, - Reflectivity: 75, - LastReflection: true, - TimingOffset: 172.8, - }, - { - Distance: 0, - Azimuth: 1.822472804932479, - Elevation: -0.19198621771937624, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 175.104, - }, - { - Distance: 1.3840000000000001, - Azimuth: 1.822472804932479, - Elevation: 0.08726646259971647, - Reflectivity: 52, - LastReflection: true, - TimingOffset: 177.40800000000002, - }, - { - Distance: 0, - Azimuth: 1.822472804932479, - Elevation: -0.15707963267948966, - Reflectivity: 3, - LastReflection: true, - TimingOffset: 179.712, - }, - { - Distance: 1.416, - Azimuth: 1.822472804932479, - Elevation: 0.12217304763960307, - Reflectivity: 77, - LastReflection: true, - TimingOffset: 182.01600000000002, - }, - { - Distance: 0, - Azimuth: 1.822472804932479, - Elevation: -0.12217304763960307, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 184.32, - }, - { - Distance: 1.42, - Azimuth: 1.822472804932479, - Elevation: 0.15707963267948966, - Reflectivity: 73, - LastReflection: true, - TimingOffset: 186.624, - }, - { - Distance: 1.44, - Azimuth: 1.822472804932479, - Elevation: -0.08726646259971647, - Reflectivity: 0, - LastReflection: true, - TimingOffset: 188.928, - }, - { - Distance: 1.43, - Azimuth: 1.822472804932479, - Elevation: 0.19198621771937624, - Reflectivity: 89, - LastReflection: true, - TimingOffset: 191.232, - }, - { - Distance: 1.4000000000000001, - Azimuth: 1.822472804932479, - Elevation: -0.05235987755982988, - Reflectivity: 39, - LastReflection: true, - TimingOffset: 193.536, - }, - { - Distance: 1.456, - Azimuth: 1.822472804932479, - Elevation: 0.22689280275926285, - Reflectivity: 67, - LastReflection: true, - TimingOffset: 195.84, - }, - { - Distance: 1.572, - Azimuth: 1.822472804932479, - Elevation: -0.017453292519943295, - Reflectivity: 59, - LastReflection: true, - TimingOffset: 198.144, - }, - { - Distance: 1.47, - Azimuth: 1.822472804932479, - Elevation: 0.2617993877991494, - Reflectivity: 68, - LastReflection: true, - TimingOffset: 200.448, }, { Distance: 0, - Azimuth: 1.8259634634364679, - Elevation: -0.2617993877991494, + Column: 6, + Row: 0, Reflectivity: 2, - TimingOffset: 110.592, }, { Distance: 1.602, - Azimuth: 1.8259634634364679, - Elevation: 0.017453292519943295, + Column: 6, + Row: 8, Reflectivity: 65, - TimingOffset: 112.896, }, { Distance: 0, - Azimuth: 1.8259634634364679, - Elevation: -0.22689280275926285, + Column: 6, + Row: 1, Reflectivity: 2, - TimingOffset: 115.2, }, { Distance: 1.592, - Azimuth: 1.8259634634364679, - Elevation: 0.05235987755982988, + Column: 6, + Row: 9, Reflectivity: 81, - TimingOffset: 117.50399999999999, }, { Distance: 0, - Azimuth: 1.8259634634364679, - Elevation: -0.19198621771937624, + Column: 6, + Row: 2, Reflectivity: 2, - TimingOffset: 119.80799999999999, }, { Distance: 1.3880000000000001, - Azimuth: 1.8259634634364679, - Elevation: 0.08726646259971647, + Column: 6, + Row: 10, Reflectivity: 61, - TimingOffset: 122.112, }, { Distance: 0, - Azimuth: 1.8259634634364679, - Elevation: -0.15707963267948966, + Column: 6, + Row: 3, Reflectivity: 3, - TimingOffset: 124.416, }, { Distance: 1.424, - Azimuth: 1.8259634634364679, - Elevation: 0.12217304763960307, + Column: 6, + Row: 11, Reflectivity: 63, - TimingOffset: 126.72, }, { Distance: 0, - Azimuth: 1.8259634634364679, - Elevation: -0.12217304763960307, + Column: 6, + Row: 4, Reflectivity: 2, - TimingOffset: 129.024, }, { Distance: 1.414, - Azimuth: 1.8259634634364679, - Elevation: 0.15707963267948966, + Column: 6, + Row: 12, Reflectivity: 65, - TimingOffset: 131.328, }, { Distance: 1.436, - Azimuth: 1.8259634634364679, - Elevation: -0.08726646259971647, + Column: 6, + Row: 5, Reflectivity: 0, - TimingOffset: 133.632, }, { Distance: 1.438, - Azimuth: 1.8259634634364679, - Elevation: 0.19198621771937624, + Column: 6, + Row: 13, Reflectivity: 68, - TimingOffset: 135.936, }, { Distance: 1.41, - Azimuth: 1.8259634634364679, - Elevation: -0.05235987755982988, + Column: 6, + Row: 6, Reflectivity: 45, - TimingOffset: 138.24, }, { Distance: 1.44, - Azimuth: 1.8259634634364679, - Elevation: 0.22689280275926285, + Column: 6, + Row: 14, Reflectivity: 58, - TimingOffset: 140.54399999999998, }, { Distance: 1.586, - Azimuth: 1.8259634634364679, - Elevation: -0.017453292519943295, + Column: 6, + Row: 7, Reflectivity: 46, - TimingOffset: 142.848, }, { Distance: 1.466, - Azimuth: 1.8259634634364679, - Elevation: 0.2617993877991494, + Column: 6, + Row: 15, Reflectivity: 56, - TimingOffset: 145.152, }, { Distance: 0, - Azimuth: 1.8294541219404563, - Elevation: -0.2617993877991494, + Column: 7, + Row: 0, Reflectivity: 2, - TimingOffset: 165.888, }, { Distance: 1.614, - Azimuth: 1.8294541219404563, - Elevation: 0.017453292519943295, + Column: 7, + Row: 8, Reflectivity: 61, - TimingOffset: 168.192, }, { Distance: 0, - Azimuth: 1.8294541219404563, - Elevation: -0.22689280275926285, + Column: 7, + Row: 1, Reflectivity: 2, - TimingOffset: 170.496, }, { Distance: 1.6, - Azimuth: 1.8294541219404563, - Elevation: 0.05235987755982988, + Column: 7, + Row: 9, Reflectivity: 81, - TimingOffset: 172.8, }, { Distance: 0, - Azimuth: 1.8294541219404563, - Elevation: -0.19198621771937624, + Column: 7, + Row: 2, Reflectivity: 4, - TimingOffset: 175.104, }, { Distance: 1.3840000000000001, - Azimuth: 1.8294541219404563, - Elevation: 0.08726646259971647, + Column: 7, + Row: 10, Reflectivity: 57, - TimingOffset: 177.40800000000002, }, { Distance: 0, - Azimuth: 1.8294541219404563, - Elevation: -0.15707963267948966, + Column: 7, + Row: 3, Reflectivity: 3, - TimingOffset: 179.712, }, { Distance: 1.426, - Azimuth: 1.8294541219404563, - Elevation: 0.12217304763960307, + Column: 7, + Row: 11, Reflectivity: 60, - TimingOffset: 182.01600000000002, }, { Distance: 0, - Azimuth: 1.8294541219404563, - Elevation: -0.12217304763960307, + Column: 7, + Row: 4, Reflectivity: 1, - TimingOffset: 184.32, }, { Distance: 1.41, - Azimuth: 1.8294541219404563, - Elevation: 0.15707963267948966, + Column: 7, + Row: 12, Reflectivity: 63, - TimingOffset: 186.624, }, { Distance: 1.436, - Azimuth: 1.8294541219404563, - Elevation: -0.08726646259971647, + Column: 7, + Row: 5, Reflectivity: 3, - TimingOffset: 188.928, }, { Distance: 1.434, - Azimuth: 1.8294541219404563, - Elevation: 0.19198621771937624, + Column: 7, + Row: 13, Reflectivity: 71, - TimingOffset: 191.232, }, { Distance: 1.42, - Azimuth: 1.8294541219404563, - Elevation: -0.05235987755982988, + Column: 7, + Row: 6, Reflectivity: 51, - TimingOffset: 193.536, }, { Distance: 1.444, - Azimuth: 1.8294541219404563, - Elevation: 0.22689280275926285, + Column: 7, + Row: 14, Reflectivity: 63, - TimingOffset: 195.84, }, { Distance: 1.602, - Azimuth: 1.8294541219404563, - Elevation: -0.017453292519943295, + Column: 7, + Row: 7, Reflectivity: 48, - TimingOffset: 198.144, }, { Distance: 1.45, - Azimuth: 1.8294541219404563, - Elevation: 0.2617993877991494, + Column: 7, + Row: 15, Reflectivity: 56, - TimingOffset: 200.448, }, { - Distance: 0, - Azimuth: 1.8329447804444448, - Elevation: -0.2617993877991494, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 221.184, + Distance: 0, + Column: 8, + Row: 0, + Reflectivity: 2, }, { - Distance: 1.604, - Azimuth: 1.8329447804444448, - Elevation: 0.017453292519943295, - Reflectivity: 67, - LastReflection: true, - TimingOffset: 223.488, + Distance: 1.604, + Column: 8, + Row: 8, + Reflectivity: 67, }, { - Distance: 0, - Azimuth: 1.8329447804444448, - Elevation: -0.22689280275926285, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 225.792, + Distance: 0, + Column: 8, + Row: 1, + Reflectivity: 2, }, { - Distance: 1.616, - Azimuth: 1.8329447804444448, - Elevation: 0.05235987755982988, - Reflectivity: 72, - LastReflection: true, - TimingOffset: 228.096, + Distance: 1.616, + Column: 8, + Row: 9, + Reflectivity: 72, }, { - Distance: 0, - Azimuth: 1.8329447804444448, - Elevation: -0.19198621771937624, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 230.4, + Distance: 0, + Column: 8, + Row: 2, + Reflectivity: 2, }, { - Distance: 1.3860000000000001, - Azimuth: 1.8329447804444448, - Elevation: 0.08726646259971647, - Reflectivity: 62, - LastReflection: true, - TimingOffset: 232.704, + Distance: 1.3860000000000001, + Column: 8, + Row: 10, + Reflectivity: 62, }, { - Distance: 0, - Azimuth: 1.8329447804444448, - Elevation: -0.15707963267948966, - Reflectivity: 3, - LastReflection: true, - TimingOffset: 235.00799999999998, + Distance: 0, + Column: 8, + Row: 3, + Reflectivity: 3, }, { - Distance: 1.412, - Azimuth: 1.8329447804444448, - Elevation: 0.12217304763960307, - Reflectivity: 75, - LastReflection: true, - TimingOffset: 237.312, + Distance: 1.412, + Column: 8, + Row: 11, + Reflectivity: 75, }, { - Distance: 0, - Azimuth: 1.8329447804444448, - Elevation: -0.12217304763960307, - Reflectivity: 1, - LastReflection: true, - TimingOffset: 239.61599999999999, + Distance: 0, + Column: 8, + Row: 4, + Reflectivity: 1, }, { - Distance: 1.412, - Azimuth: 1.8329447804444448, - Elevation: 0.15707963267948966, - Reflectivity: 73, - LastReflection: true, - TimingOffset: 241.92, + Distance: 1.412, + Column: 8, + Row: 12, + Reflectivity: 73, }, { - Distance: 0, - Azimuth: 1.8329447804444448, - Elevation: -0.08726646259971647, - Reflectivity: 100, - LastReflection: true, - TimingOffset: 244.224, + Distance: 0, + Column: 8, + Row: 5, + Reflectivity: 100, }, { - Distance: 1.418, - Azimuth: 1.8329447804444448, - Elevation: 0.19198621771937624, - Reflectivity: 73, - LastReflection: true, - TimingOffset: 246.528, + Distance: 1.418, + Column: 8, + Row: 13, + Reflectivity: 73, }, { - Distance: 1.416, - Azimuth: 1.8329447804444448, - Elevation: -0.05235987755982988, - Reflectivity: 64, - LastReflection: true, - TimingOffset: 248.832, + Distance: 1.416, + Column: 8, + Row: 6, + Reflectivity: 64, }, { - Distance: 1.462, - Azimuth: 1.8329447804444448, - Elevation: 0.22689280275926285, - Reflectivity: 70, - LastReflection: true, - TimingOffset: 251.136, + Distance: 1.462, + Column: 8, + Row: 14, + Reflectivity: 70, }, { - Distance: 1.588, - Azimuth: 1.8329447804444448, - Elevation: -0.017453292519943295, - Reflectivity: 62, - LastReflection: true, - TimingOffset: 253.44, + Distance: 1.588, + Column: 8, + Row: 7, + Reflectivity: 62, }, { - Distance: 1.446, - Azimuth: 1.8329447804444448, - Elevation: 0.2617993877991494, - Reflectivity: 63, - LastReflection: true, - TimingOffset: 255.744, + Distance: 1.446, + Column: 8, + Row: 15, + Reflectivity: 63, }, { - Distance: 0, - Azimuth: 1.8364354389484336, - Elevation: -0.2617993877991494, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 276.48, + Distance: 0, + Column: 9, + Row: 0, + Reflectivity: 2, }, { - Distance: 1.61, - Azimuth: 1.8364354389484336, - Elevation: 0.017453292519943295, - Reflectivity: 65, - LastReflection: true, - TimingOffset: 278.784, + Distance: 1.61, + Column: 9, + Row: 8, + Reflectivity: 65, }, { - Distance: 0, - Azimuth: 1.8364354389484336, - Elevation: -0.22689280275926285, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 281.088, + Distance: 0, + Column: 9, + Row: 1, + Reflectivity: 2, }, { - Distance: 1.616, - Azimuth: 1.8364354389484336, - Elevation: 0.05235987755982988, - Reflectivity: 72, - LastReflection: true, - TimingOffset: 283.392, + Distance: 1.616, + Column: 9, + Row: 9, + Reflectivity: 72, }, { - Distance: 0, - Azimuth: 1.8364354389484336, - Elevation: -0.19198621771937624, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 285.696, + Distance: 0, + Column: 9, + Row: 2, + Reflectivity: 2, }, { - Distance: 1.3960000000000001, - Azimuth: 1.8364354389484336, - Elevation: 0.08726646259971647, - Reflectivity: 61, - LastReflection: true, - TimingOffset: 288, + Distance: 1.3960000000000001, + Column: 9, + Row: 10, + Reflectivity: 61, }, { - Distance: 0, - Azimuth: 1.8364354389484336, - Elevation: -0.15707963267948966, - Reflectivity: 3, - LastReflection: true, - TimingOffset: 290.30400000000003, + Distance: 0, + Column: 9, + Row: 3, + Reflectivity: 3, }, { - Distance: 1.4040000000000001, - Azimuth: 1.8364354389484336, - Elevation: 0.12217304763960307, - Reflectivity: 79, - LastReflection: true, - TimingOffset: 292.608, + Distance: 1.4040000000000001, + Column: 9, + Row: 11, + Reflectivity: 79, }, { - Distance: 0, - Azimuth: 1.8364354389484336, - Elevation: -0.12217304763960307, - Reflectivity: 1, - LastReflection: true, - TimingOffset: 294.91200000000003, + Distance: 0, + Column: 9, + Row: 4, + Reflectivity: 1, }, { - Distance: 1.416, - Azimuth: 1.8364354389484336, - Elevation: 0.15707963267948966, - Reflectivity: 78, - LastReflection: true, - TimingOffset: 297.216, + Distance: 1.416, + Column: 9, + Row: 12, + Reflectivity: 78, }, { - Distance: 1.442, - Azimuth: 1.8364354389484336, - Elevation: -0.08726646259971647, - Reflectivity: 41, - LastReflection: true, - TimingOffset: 299.52000000000004, + Distance: 1.442, + Column: 9, + Row: 5, + Reflectivity: 41, }, { - Distance: 1.422, - Azimuth: 1.8364354389484336, - Elevation: 0.19198621771937624, - Reflectivity: 75, - LastReflection: true, - TimingOffset: 301.824, + Distance: 1.422, + Column: 9, + Row: 13, + Reflectivity: 75, }, { - Distance: 1.416, - Azimuth: 1.8364354389484336, - Elevation: -0.05235987755982988, - Reflectivity: 64, - LastReflection: true, - TimingOffset: 304.12800000000004, + Distance: 1.416, + Column: 9, + Row: 6, + Reflectivity: 64, }, { - Distance: 1.444, - Azimuth: 1.8364354389484336, - Elevation: 0.22689280275926285, - Reflectivity: 62, - LastReflection: true, - TimingOffset: 306.432, + Distance: 1.444, + Column: 9, + Row: 14, + Reflectivity: 62, }, { - Distance: 1.6, - Azimuth: 1.8364354389484336, - Elevation: -0.017453292519943295, - Reflectivity: 62, - LastReflection: true, - TimingOffset: 308.736, + Distance: 1.6, + Column: 9, + Row: 7, + Reflectivity: 62, }, { - Distance: 1.454, - Azimuth: 1.8364354389484336, - Elevation: 0.2617993877991494, - Reflectivity: 59, - LastReflection: true, - TimingOffset: 311.04, + Distance: 1.454, + Column: 9, + Row: 15, + Reflectivity: 59, }, { Distance: 0, - Azimuth: 1.839926097452422, - Elevation: -0.2617993877991494, + Column: 10, + Row: 0, Reflectivity: 2, - TimingOffset: 221.184, }, { Distance: 1.622, - Azimuth: 1.839926097452422, - Elevation: 0.017453292519943295, + Column: 10, + Row: 8, Reflectivity: 65, - TimingOffset: 223.488, }, { Distance: 0, - Azimuth: 1.839926097452422, - Elevation: -0.22689280275926285, + Column: 10, + Row: 1, Reflectivity: 2, - TimingOffset: 225.792, }, { Distance: 1.608, - Azimuth: 1.839926097452422, - Elevation: 0.05235987755982988, + Column: 10, + Row: 9, Reflectivity: 75, - TimingOffset: 228.096, }, { Distance: 0, - Azimuth: 1.839926097452422, - Elevation: -0.19198621771937624, + Column: 10, + Row: 2, Reflectivity: 2, - TimingOffset: 230.4, }, { Distance: 1.4060000000000001, - Azimuth: 1.839926097452422, - Elevation: 0.08726646259971647, + Column: 10, + Row: 10, Reflectivity: 64, - TimingOffset: 232.704, }, { Distance: 0, - Azimuth: 1.839926097452422, - Elevation: -0.15707963267948966, + Column: 10, + Row: 3, Reflectivity: 3, - TimingOffset: 235.00799999999998, }, { Distance: 1.408, - Azimuth: 1.839926097452422, - Elevation: 0.12217304763960307, + Column: 10, + Row: 11, Reflectivity: 63, - TimingOffset: 237.312, }, { Distance: 0, - Azimuth: 1.839926097452422, - Elevation: -0.12217304763960307, + Column: 10, + Row: 4, Reflectivity: 1, - TimingOffset: 239.61599999999999, }, { Distance: 1.414, - Azimuth: 1.839926097452422, - Elevation: 0.15707963267948966, + Column: 10, + Row: 12, Reflectivity: 65, - TimingOffset: 241.92, }, { Distance: 1.442, - Azimuth: 1.839926097452422, - Elevation: -0.08726646259971647, + Column: 10, + Row: 5, Reflectivity: 42, - TimingOffset: 244.224, }, { Distance: 1.428, - Azimuth: 1.839926097452422, - Elevation: 0.19198621771937624, + Column: 10, + Row: 13, Reflectivity: 60, - TimingOffset: 246.528, }, { Distance: 1.416, - Azimuth: 1.839926097452422, - Elevation: -0.05235987755982988, + Column: 10, + Row: 6, Reflectivity: 67, - TimingOffset: 248.832, }, { Distance: 1.434, - Azimuth: 1.839926097452422, - Elevation: 0.22689280275926285, + Column: 10, + Row: 14, Reflectivity: 53, - TimingOffset: 251.136, }, { Distance: 1.584, - Azimuth: 1.839926097452422, - Elevation: -0.017453292519943295, + Column: 10, + Row: 7, Reflectivity: 59, - TimingOffset: 253.44, }, { Distance: 1.466, - Azimuth: 1.839926097452422, - Elevation: 0.2617993877991494, + Column: 10, + Row: 15, Reflectivity: 53, - TimingOffset: 255.744, }, { Distance: 0, - Azimuth: 1.843416755956411, - Elevation: -0.2617993877991494, + Column: 11, + Row: 0, Reflectivity: 2, - TimingOffset: 276.48, }, { Distance: 1.6300000000000001, - Azimuth: 1.843416755956411, - Elevation: 0.017453292519943295, + Column: 11, + Row: 8, Reflectivity: 61, - TimingOffset: 278.784, }, { Distance: 0, - Azimuth: 1.843416755956411, - Elevation: -0.22689280275926285, + Column: 11, + Row: 1, Reflectivity: 2, - TimingOffset: 281.088, }, { Distance: 1.612, - Azimuth: 1.843416755956411, - Elevation: 0.05235987755982988, + Column: 11, + Row: 9, Reflectivity: 76, - TimingOffset: 283.392, }, { Distance: 0, - Azimuth: 1.843416755956411, - Elevation: -0.19198621771937624, + Column: 11, + Row: 2, Reflectivity: 4, - TimingOffset: 285.696, }, { Distance: 1.4040000000000001, - Azimuth: 1.843416755956411, - Elevation: 0.08726646259971647, + Column: 11, + Row: 10, Reflectivity: 59, - TimingOffset: 288, }, { Distance: 0, - Azimuth: 1.843416755956411, - Elevation: -0.15707963267948966, + Column: 11, + Row: 3, Reflectivity: 3, - TimingOffset: 290.30400000000003, }, { Distance: 1.42, - Azimuth: 1.843416755956411, - Elevation: 0.12217304763960307, + Column: 11, + Row: 11, Reflectivity: 53, - TimingOffset: 292.608, }, { Distance: 0, - Azimuth: 1.843416755956411, - Elevation: -0.12217304763960307, + Column: 11, + Row: 4, Reflectivity: 1, - TimingOffset: 294.91200000000003, }, { Distance: 1.418, - Azimuth: 1.843416755956411, - Elevation: 0.15707963267948966, + Column: 11, + Row: 12, Reflectivity: 60, - TimingOffset: 297.216, }, { Distance: 1.442, - Azimuth: 1.843416755956411, - Elevation: -0.08726646259971647, + Column: 11, + Row: 5, Reflectivity: 45, - TimingOffset: 299.52000000000004, }, { Distance: 1.432, - Azimuth: 1.843416755956411, - Elevation: 0.19198621771937624, + Column: 11, + Row: 13, Reflectivity: 60, - TimingOffset: 301.824, }, { Distance: 1.428, - Azimuth: 1.843416755956411, - Elevation: -0.05235987755982988, + Column: 11, + Row: 6, Reflectivity: 67, - TimingOffset: 304.12800000000004, }, { Distance: 1.438, - Azimuth: 1.843416755956411, - Elevation: 0.22689280275926285, + Column: 11, + Row: 14, Reflectivity: 49, - TimingOffset: 306.432, }, { Distance: 1.568, - Azimuth: 1.843416755956411, - Elevation: -0.017453292519943295, + Column: 11, + Row: 7, Reflectivity: 18, - TimingOffset: 308.736, }, { Distance: 1.46, - Azimuth: 1.843416755956411, - Elevation: 0.2617993877991494, + Column: 11, + Row: 15, Reflectivity: 48, - TimingOffset: 311.04, }, { - Distance: 0, - Azimuth: 1.8469074144603996, - Elevation: -0.2617993877991494, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 331.776, + Distance: 0, + Column: 12, + Row: 0, + Reflectivity: 2, }, { - Distance: 1.6340000000000001, - Azimuth: 1.8469074144603996, - Elevation: 0.017453292519943295, - Reflectivity: 61, - LastReflection: true, - TimingOffset: 334.08, + Distance: 1.6340000000000001, + Column: 12, + Row: 8, + Reflectivity: 61, }, { - Distance: 0, - Azimuth: 1.8469074144603996, - Elevation: -0.22689280275926285, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 336.384, + Distance: 0, + Column: 12, + Row: 1, + Reflectivity: 2, }, { - Distance: 1.6320000000000001, - Azimuth: 1.8469074144603996, - Elevation: 0.05235987755982988, - Reflectivity: 76, - LastReflection: true, - TimingOffset: 338.688, + Distance: 1.6320000000000001, + Column: 12, + Row: 9, + Reflectivity: 76, }, { - Distance: 0, - Azimuth: 1.8469074144603996, - Elevation: -0.19198621771937624, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 340.992, + Distance: 0, + Column: 12, + Row: 2, + Reflectivity: 2, }, { - Distance: 1.4020000000000001, - Azimuth: 1.8469074144603996, - Elevation: 0.08726646259971647, - Reflectivity: 64, - LastReflection: true, - TimingOffset: 343.296, + Distance: 1.4020000000000001, + Column: 12, + Row: 10, + Reflectivity: 64, }, { - Distance: 0, - Azimuth: 1.8469074144603996, - Elevation: -0.15707963267948966, - Reflectivity: 3, - LastReflection: true, - TimingOffset: 345.6, + Distance: 0, + Column: 12, + Row: 3, + Reflectivity: 3, }, { - Distance: 1.428, - Azimuth: 1.8469074144603996, - Elevation: 0.12217304763960307, - Reflectivity: 51, - LastReflection: true, - TimingOffset: 347.904, + Distance: 1.428, + Column: 12, + Row: 11, + Reflectivity: 51, }, { - Distance: 0, - Azimuth: 1.8469074144603996, - Elevation: -0.12217304763960307, - Reflectivity: 1, - LastReflection: true, - TimingOffset: 350.208, + Distance: 0, + Column: 12, + Row: 4, + Reflectivity: 1, }, { - Distance: 1.414, - Azimuth: 1.8469074144603996, - Elevation: 0.15707963267948966, - Reflectivity: 58, - LastReflection: true, - TimingOffset: 352.512, + Distance: 1.414, + Column: 12, + Row: 12, + Reflectivity: 58, }, { - Distance: 1.442, - Azimuth: 1.8469074144603996, - Elevation: -0.08726646259971647, - Reflectivity: 63, - LastReflection: true, - TimingOffset: 354.81600000000003, + Distance: 1.442, + Column: 12, + Row: 5, + Reflectivity: 63, }, { - Distance: 1.436, - Azimuth: 1.8469074144603996, - Elevation: 0.19198621771937624, - Reflectivity: 60, - LastReflection: true, - TimingOffset: 357.12, + Distance: 1.436, + Column: 12, + Row: 13, + Reflectivity: 60, }, { - Distance: 1.442, - Azimuth: 1.8469074144603996, - Elevation: -0.05235987755982988, - Reflectivity: 76, - LastReflection: true, - TimingOffset: 359.424, + Distance: 1.442, + Column: 12, + Row: 6, + Reflectivity: 76, }, { - Distance: 1.468, - Azimuth: 1.8469074144603996, - Elevation: 0.22689280275926285, - Reflectivity: 53, - LastReflection: true, - TimingOffset: 361.728, + Distance: 1.468, + Column: 12, + Row: 14, + Reflectivity: 53, }, { - Distance: 1.482, - Azimuth: 1.8469074144603996, - Elevation: -0.017453292519943295, - Reflectivity: 6, - LastReflection: true, - TimingOffset: 364.03200000000004, + Distance: 1.482, + Column: 12, + Row: 7, + Reflectivity: 6, }, { - Distance: 1.462, - Azimuth: 1.8469074144603996, - Elevation: 0.2617993877991494, - Reflectivity: 49, - LastReflection: true, - TimingOffset: 366.336, + Distance: 1.462, + Column: 12, + Row: 15, + Reflectivity: 49, }, { - Distance: 0, - Azimuth: 1.8502235400391887, - Elevation: -0.2617993877991494, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 387.072, + Distance: 0, + Column: 13, + Row: 0, + Reflectivity: 2, }, { - Distance: 1.6260000000000001, - Azimuth: 1.8502235400391887, - Elevation: 0.017453292519943295, - Reflectivity: 63, - LastReflection: true, - TimingOffset: 389.376, + Distance: 1.6260000000000001, + Column: 13, + Row: 8, + Reflectivity: 63, }, { - Distance: 0, - Azimuth: 1.8502235400391887, - Elevation: -0.22689280275926285, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 391.68, + Distance: 0, + Column: 13, + Row: 1, + Reflectivity: 2, }, { - Distance: 1.6400000000000001, - Azimuth: 1.8502235400391887, - Elevation: 0.05235987755982988, - Reflectivity: 79, - LastReflection: true, - TimingOffset: 393.984, + Distance: 1.6400000000000001, + Column: 13, + Row: 9, + Reflectivity: 79, }, { - Distance: 0, - Azimuth: 1.8502235400391887, - Elevation: -0.19198621771937624, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 396.288, + Distance: 0, + Column: 13, + Row: 2, + Reflectivity: 2, }, { - Distance: 1.41, - Azimuth: 1.8502235400391887, - Elevation: 0.08726646259971647, - Reflectivity: 64, - LastReflection: true, - TimingOffset: 398.592, + Distance: 1.41, + Column: 13, + Row: 10, + Reflectivity: 64, }, { - Distance: 0, - Azimuth: 1.8502235400391887, - Elevation: -0.15707963267948966, - Reflectivity: 3, - LastReflection: true, - TimingOffset: 400.896, + Distance: 0, + Column: 13, + Row: 3, + Reflectivity: 3, }, { - Distance: 1.436, - Azimuth: 1.8502235400391887, - Elevation: 0.12217304763960307, - Reflectivity: 59, - LastReflection: true, - TimingOffset: 403.2, + Distance: 1.436, + Column: 13, + Row: 11, + Reflectivity: 59, }, { - Distance: 0, - Azimuth: 1.8502235400391887, - Elevation: -0.12217304763960307, - Reflectivity: 1, - LastReflection: true, - TimingOffset: 405.504, + Distance: 0, + Column: 13, + Row: 4, + Reflectivity: 1, }, { - Distance: 1.426, - Azimuth: 1.8502235400391887, - Elevation: 0.15707963267948966, - Reflectivity: 60, - LastReflection: true, - TimingOffset: 407.808, + Distance: 1.426, + Column: 13, + Row: 12, + Reflectivity: 60, }, { - Distance: 1.45, - Azimuth: 1.8502235400391887, - Elevation: -0.08726646259971647, - Reflectivity: 60, - LastReflection: true, - TimingOffset: 410.112, + Distance: 1.45, + Column: 13, + Row: 5, + Reflectivity: 60, }, { - Distance: 1.436, - Azimuth: 1.8502235400391887, - Elevation: 0.19198621771937624, - Reflectivity: 57, - LastReflection: true, - TimingOffset: 412.416, + Distance: 1.436, + Column: 13, + Row: 13, + Reflectivity: 57, }, { - Distance: 1.44, - Azimuth: 1.8502235400391887, - Elevation: -0.05235987755982988, - Reflectivity: 78, - LastReflection: true, - TimingOffset: 414.72, + Distance: 1.44, + Column: 13, + Row: 6, + Reflectivity: 78, }, { - Distance: 1.472, - Azimuth: 1.8502235400391887, - Elevation: 0.22689280275926285, - Reflectivity: 56, - LastReflection: true, - TimingOffset: 417.024, + Distance: 1.472, + Column: 13, + Row: 14, + Reflectivity: 56, }, { - Distance: 1.49, - Azimuth: 1.8502235400391887, - Elevation: -0.017453292519943295, - Reflectivity: 8, - LastReflection: true, - TimingOffset: 419.328, + Distance: 1.49, + Column: 13, + Row: 7, + Reflectivity: 8, }, { - Distance: 1.466, - Azimuth: 1.8502235400391887, - Elevation: 0.2617993877991494, - Reflectivity: 53, - LastReflection: true, - TimingOffset: 421.632, + Distance: 1.466, + Column: 13, + Row: 15, + Reflectivity: 53, }, { Distance: 0, - Azimuth: 1.8537141985431775, - Elevation: -0.2617993877991494, + Column: 14, + Row: 0, Reflectivity: 2, - TimingOffset: 331.776, }, { Distance: 1.6380000000000001, - Azimuth: 1.8537141985431775, - Elevation: 0.017453292519943295, + Column: 14, + Row: 8, Reflectivity: 61, - TimingOffset: 334.08, }, { Distance: 0, - Azimuth: 1.8537141985431775, - Elevation: -0.22689280275926285, + Column: 14, + Row: 1, Reflectivity: 2, - TimingOffset: 336.384, }, { Distance: 1.6400000000000001, - Azimuth: 1.8537141985431775, - Elevation: 0.05235987755982988, + Column: 14, + Row: 9, Reflectivity: 81, - TimingOffset: 338.688, }, { Distance: 0, - Azimuth: 1.8537141985431775, - Elevation: -0.19198621771937624, + Column: 14, + Row: 2, Reflectivity: 2, - TimingOffset: 340.992, }, { Distance: 1.418, - Azimuth: 1.8537141985431775, - Elevation: 0.08726646259971647, + Column: 14, + Row: 10, Reflectivity: 64, - TimingOffset: 343.296, }, { Distance: 0, - Azimuth: 1.8537141985431775, - Elevation: -0.15707963267948966, + Column: 14, + Row: 3, Reflectivity: 3, - TimingOffset: 345.6, }, { Distance: 1.432, - Azimuth: 1.8537141985431775, - Elevation: 0.12217304763960307, + Column: 14, + Row: 11, Reflectivity: 69, - TimingOffset: 347.904, }, { Distance: 0, - Azimuth: 1.8537141985431775, - Elevation: -0.12217304763960307, + Column: 14, + Row: 4, Reflectivity: 1, - TimingOffset: 350.208, }, { Distance: 1.446, - Azimuth: 1.8537141985431775, - Elevation: 0.15707963267948966, + Column: 14, + Row: 12, Reflectivity: 61, - TimingOffset: 352.512, }, { Distance: 1.462, - Azimuth: 1.8537141985431775, - Elevation: -0.08726646259971647, + Column: 14, + Row: 5, Reflectivity: 40, - TimingOffset: 354.81600000000003, }, { Distance: 1.442, - Azimuth: 1.8537141985431775, - Elevation: 0.19198621771937624, + Column: 14, + Row: 13, Reflectivity: 69, - TimingOffset: 357.12, }, { Distance: 1.438, - Azimuth: 1.8537141985431775, - Elevation: -0.05235987755982988, + Column: 14, + Row: 6, Reflectivity: 83, - TimingOffset: 359.424, }, { Distance: 1.472, - Azimuth: 1.8537141985431775, - Elevation: 0.22689280275926285, + Column: 14, + Row: 14, Reflectivity: 67, - TimingOffset: 361.728, }, { Distance: 1.482, - Azimuth: 1.8537141985431775, - Elevation: -0.017453292519943295, + Column: 14, + Row: 7, Reflectivity: 4, - TimingOffset: 364.03200000000004, }, { Distance: 1.478, - Azimuth: 1.8537141985431775, - Elevation: 0.2617993877991494, + Column: 14, + Row: 15, Reflectivity: 61, - TimingOffset: 366.336, }, { Distance: 0, - Azimuth: 1.857204857047166, - Elevation: -0.2617993877991494, + Column: 15, + Row: 0, Reflectivity: 2, - TimingOffset: 387.072, }, { Distance: 1.6500000000000001, - Azimuth: 1.857204857047166, - Elevation: 0.017453292519943295, + Column: 15, + Row: 8, Reflectivity: 60, - TimingOffset: 389.376, }, { Distance: 0, - Azimuth: 1.857204857047166, - Elevation: -0.22689280275926285, + Column: 15, + Row: 1, Reflectivity: 2, - TimingOffset: 391.68, }, { Distance: 1.6280000000000001, - Azimuth: 1.857204857047166, - Elevation: 0.05235987755982988, + Column: 15, + Row: 9, Reflectivity: 76, - TimingOffset: 393.984, }, { Distance: 0, - Azimuth: 1.857204857047166, - Elevation: -0.19198621771937624, + Column: 15, + Row: 2, Reflectivity: 2, - TimingOffset: 396.288, }, { Distance: 1.426, - Azimuth: 1.857204857047166, - Elevation: 0.08726646259971647, + Column: 15, + Row: 10, Reflectivity: 69, - TimingOffset: 398.592, }, { Distance: 0, - Azimuth: 1.857204857047166, - Elevation: -0.15707963267948966, + Column: 15, + Row: 3, Reflectivity: 3, - TimingOffset: 400.896, }, { Distance: 1.432, - Azimuth: 1.857204857047166, - Elevation: 0.12217304763960307, + Column: 15, + Row: 11, Reflectivity: 87, - TimingOffset: 403.2, }, { Distance: 0, - Azimuth: 1.857204857047166, - Elevation: -0.12217304763960307, + Column: 15, + Row: 4, Reflectivity: 1, - TimingOffset: 405.504, }, { Distance: 1.444, - Azimuth: 1.857204857047166, - Elevation: 0.15707963267948966, + Column: 15, + Row: 12, Reflectivity: 78, - TimingOffset: 407.808, }, { Distance: 1.468, - Azimuth: 1.857204857047166, - Elevation: -0.08726646259971647, + Column: 15, + Row: 5, Reflectivity: 19, - TimingOffset: 410.112, }, { Distance: 1.456, - Azimuth: 1.857204857047166, - Elevation: 0.19198621771937624, + Column: 15, + Row: 13, Reflectivity: 84, - TimingOffset: 412.416, }, { Distance: 1.446, - Azimuth: 1.857204857047166, - Elevation: -0.05235987755982988, + Column: 15, + Row: 6, Reflectivity: 83, - TimingOffset: 414.72, }, { Distance: 1.48, - Azimuth: 1.857204857047166, - Elevation: 0.22689280275926285, + Column: 15, + Row: 14, Reflectivity: 85, - TimingOffset: 417.024, }, { Distance: 1.528, - Azimuth: 1.857204857047166, - Elevation: -0.017453292519943295, + Column: 15, + Row: 7, Reflectivity: 5, - TimingOffset: 419.328, }, { Distance: 1.488, - Azimuth: 1.857204857047166, - Elevation: 0.2617993877991494, + Column: 15, + Row: 15, Reflectivity: 75, - TimingOffset: 421.632, }, { - Distance: 0, - Azimuth: 1.8606955155511546, - Elevation: -0.2617993877991494, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 442.368, + Distance: 0, + Column: 16, + Row: 0, + Reflectivity: 2, }, { - Distance: 1.6520000000000001, - Azimuth: 1.8606955155511546, - Elevation: 0.017453292519943295, - Reflectivity: 56, - LastReflection: true, - TimingOffset: 444.67199999999997, + Distance: 1.6520000000000001, + Column: 16, + Row: 8, + Reflectivity: 56, }, { - Distance: 0, - Azimuth: 1.8606955155511546, - Elevation: -0.22689280275926285, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 446.976, + Distance: 0, + Column: 16, + Row: 1, + Reflectivity: 2, }, { - Distance: 1.6440000000000001, - Azimuth: 1.8606955155511546, - Elevation: 0.05235987755982988, - Reflectivity: 81, - LastReflection: true, - TimingOffset: 449.28, + Distance: 1.6440000000000001, + Column: 16, + Row: 9, + Reflectivity: 81, }, { - Distance: 0, - Azimuth: 1.8606955155511546, - Elevation: -0.19198621771937624, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 451.584, + Distance: 0, + Column: 16, + Row: 2, + Reflectivity: 2, }, { - Distance: 1.426, - Azimuth: 1.8606955155511546, - Elevation: 0.08726646259971647, - Reflectivity: 69, - LastReflection: true, - TimingOffset: 453.888, + Distance: 1.426, + Column: 16, + Row: 10, + Reflectivity: 69, }, { - Distance: 0, - Azimuth: 1.8606955155511546, - Elevation: -0.15707963267948966, - Reflectivity: 3, - LastReflection: true, - TimingOffset: 456.192, + Distance: 0, + Column: 16, + Row: 3, + Reflectivity: 3, }, { - Distance: 1.436, - Azimuth: 1.8606955155511546, - Elevation: 0.12217304763960307, - Reflectivity: 81, - LastReflection: true, - TimingOffset: 458.496, + Distance: 1.436, + Column: 16, + Row: 11, + Reflectivity: 81, }, { - Distance: 0, - Azimuth: 1.8606955155511546, - Elevation: -0.12217304763960307, - Reflectivity: 1, - LastReflection: true, - TimingOffset: 460.8, + Distance: 0, + Column: 16, + Row: 4, + Reflectivity: 1, }, { - Distance: 1.434, - Azimuth: 1.8606955155511546, - Elevation: 0.15707963267948966, - Reflectivity: 88, - LastReflection: true, - TimingOffset: 463.104, + Distance: 1.434, + Column: 16, + Row: 12, + Reflectivity: 88, }, { - Distance: 1.466, - Azimuth: 1.8606955155511546, - Elevation: -0.08726646259971647, - Reflectivity: 35, - LastReflection: true, - TimingOffset: 465.408, + Distance: 1.466, + Column: 16, + Row: 5, + Reflectivity: 35, }, { - Distance: 1.458, - Azimuth: 1.8606955155511546, - Elevation: 0.19198621771937624, - Reflectivity: 85, - LastReflection: true, - TimingOffset: 467.712, + Distance: 1.458, + Column: 16, + Row: 13, + Reflectivity: 85, }, { - Distance: 1.456, - Azimuth: 1.8606955155511546, - Elevation: -0.05235987755982988, - Reflectivity: 78, - LastReflection: true, - TimingOffset: 470.01599999999996, + Distance: 1.456, + Column: 16, + Row: 6, + Reflectivity: 78, }, { - Distance: 1.466, - Azimuth: 1.8606955155511546, - Elevation: 0.22689280275926285, - Reflectivity: 82, - LastReflection: true, - TimingOffset: 472.32, + Distance: 1.466, + Column: 16, + Row: 14, + Reflectivity: 82, }, { - Distance: 0, - Azimuth: 1.8606955155511546, - Elevation: -0.017453292519943295, - Reflectivity: 100, - LastReflection: true, - TimingOffset: 474.624, + Distance: 0, + Column: 16, + Row: 7, + Reflectivity: 100, }, { - Distance: 1.492, - Azimuth: 1.8606955155511546, - Elevation: 0.2617993877991494, - Reflectivity: 82, - LastReflection: true, - TimingOffset: 476.928, + Distance: 1.492, + Column: 16, + Row: 15, + Reflectivity: 82, }, { - Distance: 0, - Azimuth: 1.8640116411299437, - Elevation: -0.2617993877991494, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 497.664, + Distance: 0, + Column: 17, + Row: 0, + Reflectivity: 2, }, { - Distance: 1.6520000000000001, - Azimuth: 1.8640116411299437, - Elevation: 0.017453292519943295, - Reflectivity: 58, - LastReflection: true, - TimingOffset: 499.96799999999996, + Distance: 1.6520000000000001, + Column: 17, + Row: 8, + Reflectivity: 58, }, { - Distance: 0, - Azimuth: 1.8640116411299437, - Elevation: -0.22689280275926285, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 502.272, + Distance: 0, + Column: 17, + Row: 1, + Reflectivity: 2, }, { - Distance: 1.6560000000000001, - Azimuth: 1.8640116411299437, - Elevation: 0.05235987755982988, - Reflectivity: 79, - LastReflection: true, - TimingOffset: 504.57599999999996, + Distance: 1.6560000000000001, + Column: 17, + Row: 9, + Reflectivity: 79, }, { - Distance: 0, - Azimuth: 1.8640116411299437, - Elevation: -0.19198621771937624, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 506.88, + Distance: 0, + Column: 17, + Row: 2, + Reflectivity: 2, }, { - Distance: 1.422, - Azimuth: 1.8640116411299437, - Elevation: 0.08726646259971647, - Reflectivity: 75, - LastReflection: true, - TimingOffset: 509.18399999999997, + Distance: 1.422, + Column: 17, + Row: 10, + Reflectivity: 75, }, { - Distance: 0, - Azimuth: 1.8640116411299437, - Elevation: -0.15707963267948966, - Reflectivity: 3, - LastReflection: true, - TimingOffset: 511.488, + Distance: 0, + Column: 17, + Row: 3, + Reflectivity: 3, }, { - Distance: 1.448, - Azimuth: 1.8640116411299437, - Elevation: 0.12217304763960307, - Reflectivity: 75, - LastReflection: true, - TimingOffset: 513.792, + Distance: 1.448, + Column: 17, + Row: 11, + Reflectivity: 75, }, { - Distance: 0, - Azimuth: 1.8640116411299437, - Elevation: -0.12217304763960307, - Reflectivity: 1, - LastReflection: true, - TimingOffset: 516.096, + Distance: 0, + Column: 17, + Row: 4, + Reflectivity: 1, }, { - Distance: 1.438, - Azimuth: 1.8640116411299437, - Elevation: 0.15707963267948966, - Reflectivity: 81, - LastReflection: true, - TimingOffset: 518.4, + Distance: 1.438, + Column: 17, + Row: 12, + Reflectivity: 81, }, { - Distance: 1.374, - Azimuth: 1.8640116411299437, - Elevation: -0.08726646259971647, - Reflectivity: 25, - LastReflection: true, - TimingOffset: 520.704, + Distance: 1.374, + Column: 17, + Row: 5, + Reflectivity: 25, }, { - Distance: 1.46, - Azimuth: 1.8640116411299437, - Elevation: 0.19198621771937624, - Reflectivity: 87, - LastReflection: true, - TimingOffset: 523.008, + Distance: 1.46, + Column: 17, + Row: 13, + Reflectivity: 87, }, { - Distance: 1.46, - Azimuth: 1.8640116411299437, - Elevation: -0.05235987755982988, - Reflectivity: 75, - LastReflection: true, - TimingOffset: 525.312, + Distance: 1.46, + Column: 17, + Row: 6, + Reflectivity: 75, }, { - Distance: 1.476, - Azimuth: 1.8640116411299437, - Elevation: 0.22689280275926285, - Reflectivity: 70, - LastReflection: true, - TimingOffset: 527.616, + Distance: 1.476, + Column: 17, + Row: 14, + Reflectivity: 70, }, { - Distance: 1.554, - Azimuth: 1.8640116411299437, - Elevation: -0.017453292519943295, - Reflectivity: 9, - LastReflection: true, - TimingOffset: 529.92, + Distance: 1.554, + Column: 17, + Row: 7, + Reflectivity: 9, }, { - Distance: 1.476, - Azimuth: 1.8640116411299437, - Elevation: 0.2617993877991494, - Reflectivity: 75, - LastReflection: true, - TimingOffset: 532.2239999999999, + Distance: 1.476, + Column: 17, + Row: 15, + Reflectivity: 75, }, { Distance: 0, - Azimuth: 1.8675022996339325, - Elevation: -0.2617993877991494, + Column: 18, + Row: 0, Reflectivity: 2, - TimingOffset: 442.368, }, { Distance: 1.6500000000000001, - Azimuth: 1.8675022996339325, - Elevation: 0.017453292519943295, + Column: 18, + Row: 8, Reflectivity: 60, - TimingOffset: 444.67199999999997, }, { Distance: 0, - Azimuth: 1.8675022996339325, - Elevation: -0.22689280275926285, + Column: 18, + Row: 1, Reflectivity: 2, - TimingOffset: 446.976, }, { Distance: 1.672, - Azimuth: 1.8675022996339325, - Elevation: 0.05235987755982988, + Column: 18, + Row: 9, Reflectivity: 75, - TimingOffset: 449.28, }, { Distance: 0, - Azimuth: 1.8675022996339325, - Elevation: -0.19198621771937624, + Column: 18, + Row: 2, Reflectivity: 2, - TimingOffset: 451.584, }, { Distance: 1.426, - Azimuth: 1.8675022996339325, - Elevation: 0.08726646259971647, + Column: 18, + Row: 10, Reflectivity: 71, - TimingOffset: 453.888, }, { Distance: 0, - Azimuth: 1.8675022996339325, - Elevation: -0.15707963267948966, + Column: 18, + Row: 3, Reflectivity: 3, - TimingOffset: 456.192, }, { Distance: 1.444, - Azimuth: 1.8675022996339325, - Elevation: 0.12217304763960307, + Column: 18, + Row: 11, Reflectivity: 60, - TimingOffset: 458.496, }, { Distance: 0, - Azimuth: 1.8675022996339325, - Elevation: -0.12217304763960307, + Column: 18, + Row: 4, Reflectivity: 1, - TimingOffset: 460.8, }, { Distance: 1.446, - Azimuth: 1.8675022996339325, - Elevation: 0.15707963267948966, + Column: 18, + Row: 12, Reflectivity: 61, - TimingOffset: 463.104, }, { Distance: 1.456, - Azimuth: 1.8675022996339325, - Elevation: -0.08726646259971647, + Column: 18, + Row: 5, Reflectivity: 80, - TimingOffset: 465.408, }, { Distance: 1.444, - Azimuth: 1.8675022996339325, - Elevation: 0.19198621771937624, + Column: 18, + Row: 13, Reflectivity: 59, - TimingOffset: 467.712, }, { Distance: 1.46, - Azimuth: 1.8675022996339325, - Elevation: -0.05235987755982988, + Column: 18, + Row: 6, Reflectivity: 75, - TimingOffset: 470.01599999999996, }, { Distance: 1.482, - Azimuth: 1.8675022996339325, - Elevation: 0.22689280275926285, + Column: 18, + Row: 14, Reflectivity: 63, - TimingOffset: 472.32, }, { Distance: 1.57, - Azimuth: 1.8675022996339325, - Elevation: -0.017453292519943295, + Column: 18, + Row: 7, Reflectivity: 8, - TimingOffset: 474.624, }, { Distance: 1.468, - Azimuth: 1.8675022996339325, - Elevation: 0.2617993877991494, + Column: 18, + Row: 15, Reflectivity: 59, - TimingOffset: 476.928, }, { Distance: 0, - Azimuth: 1.8709929581379214, - Elevation: -0.2617993877991494, + Column: 19, + Row: 0, Reflectivity: 2, - TimingOffset: 497.664, }, { Distance: 1.6600000000000001, - Azimuth: 1.8709929581379214, - Elevation: 0.017453292519943295, + Column: 19, + Row: 8, Reflectivity: 58, - TimingOffset: 499.96799999999996, }, { Distance: 0, - Azimuth: 1.8709929581379214, - Elevation: -0.22689280275926285, + Column: 19, + Row: 1, Reflectivity: 2, - TimingOffset: 502.272, }, { Distance: 1.672, - Azimuth: 1.8709929581379214, - Elevation: 0.05235987755982988, + Column: 19, + Row: 9, Reflectivity: 76, - TimingOffset: 504.57599999999996, }, { Distance: 0, - Azimuth: 1.8709929581379214, - Elevation: -0.19198621771937624, + Column: 19, + Row: 2, Reflectivity: 2, - TimingOffset: 506.88, }, { Distance: 1.428, - Azimuth: 1.8709929581379214, - Elevation: 0.08726646259971647, + Column: 19, + Row: 10, Reflectivity: 56, - TimingOffset: 509.18399999999997, }, { Distance: 0, - Azimuth: 1.8709929581379214, - Elevation: -0.15707963267948966, + Column: 19, + Row: 3, Reflectivity: 3, - TimingOffset: 511.488, }, { Distance: 1.434, - Azimuth: 1.8709929581379214, - Elevation: 0.12217304763960307, + Column: 19, + Row: 11, Reflectivity: 60, - TimingOffset: 513.792, }, { Distance: 0, - Azimuth: 1.8709929581379214, - Elevation: -0.12217304763960307, + Column: 19, + Row: 4, Reflectivity: 1, - TimingOffset: 516.096, }, { Distance: 1.45, - Azimuth: 1.8709929581379214, - Elevation: 0.15707963267948966, + Column: 19, + Row: 12, Reflectivity: 61, - TimingOffset: 518.4, }, { Distance: 1.474, - Azimuth: 1.8709929581379214, - Elevation: -0.08726646259971647, + Column: 19, + Row: 5, Reflectivity: 63, - TimingOffset: 520.704, }, { Distance: 1.454, - Azimuth: 1.8709929581379214, - Elevation: 0.19198621771937624, + Column: 19, + Row: 13, Reflectivity: 72, - TimingOffset: 523.008, }, { Distance: 1.452, - Azimuth: 1.8709929581379214, - Elevation: -0.05235987755982988, + Column: 19, + Row: 6, Reflectivity: 73, - TimingOffset: 525.312, }, { Distance: 1.478, - Azimuth: 1.8709929581379214, - Elevation: 0.22689280275926285, + Column: 19, + Row: 14, Reflectivity: 54, - TimingOffset: 527.616, }, { Distance: 1.566, - Azimuth: 1.8709929581379214, - Elevation: -0.017453292519943295, + Column: 19, + Row: 7, Reflectivity: 7, - TimingOffset: 529.92, }, { Distance: 1.482, - Azimuth: 1.8709929581379214, - Elevation: 0.2617993877991494, + Column: 19, + Row: 15, Reflectivity: 62, - TimingOffset: 532.2239999999999, }, { - Distance: 0, - Azimuth: 1.8746581495671093, - Elevation: -0.2617993877991494, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 552.96, + Distance: 0, + Column: 20, + Row: 0, + Reflectivity: 2, }, { - Distance: 1.672, - Azimuth: 1.8746581495671093, - Elevation: 0.017453292519943295, - Reflectivity: 58, - LastReflection: true, - TimingOffset: 555.264, + Distance: 1.672, + Column: 20, + Row: 8, + Reflectivity: 58, }, { - Distance: 0, - Azimuth: 1.8746581495671093, - Elevation: -0.22689280275926285, - Reflectivity: 3, - LastReflection: true, - TimingOffset: 557.568, + Distance: 0, + Column: 20, + Row: 1, + Reflectivity: 3, }, { - Distance: 1.6640000000000001, - Azimuth: 1.8746581495671093, - Elevation: 0.05235987755982988, - Reflectivity: 76, - LastReflection: true, - TimingOffset: 559.8720000000001, + Distance: 1.6640000000000001, + Column: 20, + Row: 9, + Reflectivity: 76, }, { - Distance: 0, - Azimuth: 1.8746581495671093, - Elevation: -0.19198621771937624, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 562.176, + Distance: 0, + Column: 20, + Row: 2, + Reflectivity: 2, }, { - Distance: 1.436, - Azimuth: 1.8746581495671093, - Elevation: 0.08726646259971647, - Reflectivity: 48, - LastReflection: true, - TimingOffset: 564.48, + Distance: 1.436, + Column: 20, + Row: 10, + Reflectivity: 48, }, { - Distance: 0, - Azimuth: 1.8746581495671093, - Elevation: -0.15707963267948966, - Reflectivity: 3, - LastReflection: true, - TimingOffset: 566.784, + Distance: 0, + Column: 20, + Row: 3, + Reflectivity: 3, }, { - Distance: 1.436, - Azimuth: 1.8746581495671093, - Elevation: 0.12217304763960307, - Reflectivity: 50, - LastReflection: true, - TimingOffset: 569.0880000000001, + Distance: 1.436, + Column: 20, + Row: 11, + Reflectivity: 50, }, { - Distance: 0, - Azimuth: 1.8746581495671093, - Elevation: -0.12217304763960307, - Reflectivity: 1, - LastReflection: true, - TimingOffset: 571.392, + Distance: 0, + Column: 20, + Row: 4, + Reflectivity: 1, }, { - Distance: 1.456, - Azimuth: 1.8746581495671093, - Elevation: 0.15707963267948966, - Reflectivity: 53, - LastReflection: true, - TimingOffset: 573.696, + Distance: 1.456, + Column: 20, + Row: 12, + Reflectivity: 53, }, { - Distance: 1.49, - Azimuth: 1.8746581495671093, - Elevation: -0.08726646259971647, - Reflectivity: 60, - LastReflection: true, - TimingOffset: 576, + Distance: 1.49, + Column: 20, + Row: 5, + Reflectivity: 60, }, { - Distance: 1.448, - Azimuth: 1.8746581495671093, - Elevation: 0.19198621771937624, - Reflectivity: 57, - LastReflection: true, - TimingOffset: 578.3040000000001, + Distance: 1.448, + Column: 20, + Row: 13, + Reflectivity: 57, }, { - Distance: 1.458, - Azimuth: 1.8746581495671093, - Elevation: -0.05235987755982988, - Reflectivity: 41, - LastReflection: true, - TimingOffset: 580.6080000000001, + Distance: 1.458, + Column: 20, + Row: 6, + Reflectivity: 41, }, { - Distance: 1.472, - Azimuth: 1.8746581495671093, - Elevation: 0.22689280275926285, - Reflectivity: 53, - LastReflection: true, - TimingOffset: 582.912, + Distance: 1.472, + Column: 20, + Row: 14, + Reflectivity: 53, }, { - Distance: 1.55, - Azimuth: 1.8746581495671093, - Elevation: -0.017453292519943295, - Reflectivity: 4, - LastReflection: true, - TimingOffset: 585.216, + Distance: 1.55, + Column: 20, + Row: 7, + Reflectivity: 4, }, { - Distance: 1.486, - Azimuth: 1.8746581495671093, - Elevation: 0.2617993877991494, - Reflectivity: 54, - LastReflection: true, - TimingOffset: 587.52, + Distance: 1.486, + Column: 20, + Row: 15, + Reflectivity: 54, }, { - Distance: 0, - Azimuth: 1.8781488080710982, - Elevation: -0.2617993877991494, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 608.256, + Distance: 0, + Column: 21, + Row: 0, + Reflectivity: 2, }, { - Distance: 1.674, - Azimuth: 1.8781488080710982, - Elevation: 0.017453292519943295, - Reflectivity: 61, - LastReflection: true, - TimingOffset: 610.56, + Distance: 1.674, + Column: 21, + Row: 8, + Reflectivity: 61, }, { - Distance: 0, - Azimuth: 1.8781488080710982, - Elevation: -0.22689280275926285, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 612.8639999999999, + Distance: 0, + Column: 21, + Row: 1, + Reflectivity: 2, }, { - Distance: 1.676, - Azimuth: 1.8781488080710982, - Elevation: 0.05235987755982988, - Reflectivity: 72, - LastReflection: true, - TimingOffset: 615.168, + Distance: 1.676, + Column: 21, + Row: 9, + Reflectivity: 72, }, { - Distance: 0, - Azimuth: 1.8781488080710982, - Elevation: -0.19198621771937624, - Reflectivity: 2, - LastReflection: true, - TimingOffset: 617.472, + Distance: 0, + Column: 21, + Row: 2, + Reflectivity: 2, }, { - Distance: 1.432, - Azimuth: 1.8781488080710982, - Elevation: 0.08726646259971647, - Reflectivity: 45, - LastReflection: true, - TimingOffset: 619.776, + Distance: 1.432, + Column: 21, + Row: 10, + Reflectivity: 45, }, { - Distance: 0, - Azimuth: 1.8781488080710982, - Elevation: -0.15707963267948966, - Reflectivity: 3, - LastReflection: true, - TimingOffset: 622.0799999999999, + Distance: 0, + Column: 21, + Row: 3, + Reflectivity: 3, }, { - Distance: 1.452, - Azimuth: 1.8781488080710982, - Elevation: 0.12217304763960307, - Reflectivity: 53, - LastReflection: true, - TimingOffset: 624.384, + Distance: 1.452, + Column: 21, + Row: 11, + Reflectivity: 53, }, { - Distance: 0, - Azimuth: 1.8781488080710982, - Elevation: -0.12217304763960307, - Reflectivity: 77, - LastReflection: true, - TimingOffset: 626.688, + Distance: 0, + Column: 21, + Row: 4, + Reflectivity: 77, }, { - Distance: 1.448, - Azimuth: 1.8781488080710982, - Elevation: 0.15707963267948966, - Reflectivity: 54, - LastReflection: true, - TimingOffset: 628.992, + Distance: 1.448, + Column: 21, + Row: 12, + Reflectivity: 54, }, { - Distance: 1.492, - Azimuth: 1.8781488080710982, - Elevation: -0.08726646259971647, - Reflectivity: 59, - LastReflection: true, - TimingOffset: 631.2959999999999, + Distance: 1.492, + Column: 21, + Row: 5, + Reflectivity: 59, }, { - Distance: 1.47, - Azimuth: 1.8781488080710982, - Elevation: 0.19198621771937624, - Reflectivity: 63, - LastReflection: true, - TimingOffset: 633.6, + Distance: 1.47, + Column: 21, + Row: 13, + Reflectivity: 63, }, { - Distance: 1.45, - Azimuth: 1.8781488080710982, - Elevation: -0.05235987755982988, - Reflectivity: 21, - LastReflection: true, - TimingOffset: 635.904, + Distance: 1.45, + Column: 21, + Row: 6, + Reflectivity: 21, }, { - Distance: 1.476, - Azimuth: 1.8781488080710982, - Elevation: 0.22689280275926285, - Reflectivity: 50, - LastReflection: true, - TimingOffset: 638.208, + Distance: 1.476, + Column: 21, + Row: 14, + Reflectivity: 50, }, { - Distance: 1.534, - Azimuth: 1.8781488080710982, - Elevation: -0.017453292519943295, - Reflectivity: 5, - LastReflection: true, - TimingOffset: 640.512, + Distance: 1.534, + Column: 21, + Row: 7, + Reflectivity: 5, }, { - Distance: 1.494, - Azimuth: 1.8781488080710982, - Elevation: 0.2617993877991494, - Reflectivity: 56, - LastReflection: true, - TimingOffset: 642.8159999999999, + Distance: 1.494, + Column: 21, + Row: 15, + Reflectivity: 56, }, { Distance: 0, - Azimuth: 1.8816394665750866, - Elevation: -0.2617993877991494, + Column: 22, + Row: 0, Reflectivity: 2, - TimingOffset: 552.96, }, { Distance: 1.676, - Azimuth: 1.8816394665750866, - Elevation: 0.017453292519943295, + Column: 22, + Row: 8, Reflectivity: 56, - TimingOffset: 555.264, }, { Distance: 0, - Azimuth: 1.8816394665750866, - Elevation: -0.22689280275926285, + Column: 22, + Row: 1, Reflectivity: 2, - TimingOffset: 557.568, }, { Distance: 1.684, - Azimuth: 1.8816394665750866, - Elevation: 0.05235987755982988, + Column: 22, + Row: 9, Reflectivity: 75, - TimingOffset: 559.8720000000001, }, { Distance: 0, - Azimuth: 1.8816394665750866, - Elevation: -0.19198621771937624, + Column: 22, + Row: 2, Reflectivity: 2, - TimingOffset: 562.176, }, { Distance: 1.434, - Azimuth: 1.8816394665750866, - Elevation: 0.08726646259971647, + Column: 22, + Row: 10, Reflectivity: 51, - TimingOffset: 564.48, }, { Distance: 0, - Azimuth: 1.8816394665750866, - Elevation: -0.15707963267948966, + Column: 22, + Row: 3, Reflectivity: 3, - TimingOffset: 566.784, }, { Distance: 1.46, - Azimuth: 1.8816394665750866, - Elevation: 0.12217304763960307, + Column: 22, + Row: 11, Reflectivity: 54, - TimingOffset: 569.0880000000001, }, { Distance: 1.512, - Azimuth: 1.8816394665750866, - Elevation: -0.12217304763960307, + Column: 22, + Row: 4, Reflectivity: 40, - TimingOffset: 571.392, }, { Distance: 1.45, - Azimuth: 1.8816394665750866, - Elevation: 0.15707963267948966, + Column: 22, + Row: 12, Reflectivity: 60, - TimingOffset: 573.696, }, { Distance: 1.48, - Azimuth: 1.8816394665750866, - Elevation: -0.08726646259971647, + Column: 22, + Row: 5, Reflectivity: 59, - TimingOffset: 576, }, { Distance: 1.468, - Azimuth: 1.8816394665750866, - Elevation: 0.19198621771937624, + Column: 22, + Row: 13, Reflectivity: 60, - TimingOffset: 578.3040000000001, }, { Distance: 1.466, - Azimuth: 1.8816394665750866, - Elevation: -0.05235987755982988, + Column: 22, + Row: 6, Reflectivity: 65, - TimingOffset: 580.6080000000001, }, { Distance: 1.492, - Azimuth: 1.8816394665750866, - Elevation: 0.22689280275926285, + Column: 22, + Row: 14, Reflectivity: 53, - TimingOffset: 582.912, }, { Distance: 1.538, - Azimuth: 1.8816394665750866, - Elevation: -0.017453292519943295, + Column: 22, + Row: 7, Reflectivity: 5, - TimingOffset: 585.216, }, { Distance: 1.49, - Azimuth: 1.8816394665750866, - Elevation: 0.2617993877991494, + Column: 22, + Row: 15, Reflectivity: 53, - TimingOffset: 587.52, }, { Distance: 0, - Azimuth: 1.8851301250790755, - Elevation: -0.2617993877991494, + Column: 23, + Row: 0, Reflectivity: 2, - TimingOffset: 608.256, }, { Distance: 1.672, - Azimuth: 1.8851301250790755, - Elevation: 0.017453292519943295, + Column: 23, + Row: 8, Reflectivity: 58, - TimingOffset: 610.56, }, { Distance: 0, - Azimuth: 1.8851301250790755, - Elevation: -0.22689280275926285, + Column: 23, + Row: 1, Reflectivity: 2, - TimingOffset: 612.8639999999999, }, { Distance: 1.692, - Azimuth: 1.8851301250790755, - Elevation: 0.05235987755982988, + Column: 23, + Row: 9, Reflectivity: 72, - TimingOffset: 615.168, }, { Distance: 0, - Azimuth: 1.8851301250790755, - Elevation: -0.19198621771937624, + Column: 23, + Row: 2, Reflectivity: 2, - TimingOffset: 617.472, }, { Distance: 1.436, - Azimuth: 1.8851301250790755, - Elevation: 0.08726646259971647, + Column: 23, + Row: 10, Reflectivity: 61, - TimingOffset: 619.776, }, { Distance: 0, - Azimuth: 1.8851301250790755, - Elevation: -0.15707963267948966, + Column: 23, + Row: 3, Reflectivity: 3, - TimingOffset: 622.0799999999999, }, { Distance: 1.46, - Azimuth: 1.8851301250790755, - Elevation: 0.12217304763960307, + Column: 23, + Row: 11, Reflectivity: 57, - TimingOffset: 624.384, }, { Distance: 1.416, - Azimuth: 1.8851301250790755, - Elevation: -0.12217304763960307, + Column: 23, + Row: 4, Reflectivity: 41, - TimingOffset: 626.688, }, { Distance: 1.464, - Azimuth: 1.8851301250790755, - Elevation: 0.15707963267948966, + Column: 23, + Row: 12, Reflectivity: 54, - TimingOffset: 628.992, }, { Distance: 1.45, - Azimuth: 1.8851301250790755, - Elevation: -0.08726646259971647, + Column: 23, + Row: 5, Reflectivity: 40, - TimingOffset: 631.2959999999999, }, { Distance: 1.466, - Azimuth: 1.8851301250790755, - Elevation: 0.19198621771937624, + Column: 23, + Row: 13, Reflectivity: 71, - TimingOffset: 633.6, }, { Distance: 1.4060000000000001, - Azimuth: 1.8851301250790755, - Elevation: -0.05235987755982988, + Column: 23, + Row: 6, Reflectivity: 46, - TimingOffset: 635.904, }, { Distance: 1.502, - Azimuth: 1.8851301250790755, - Elevation: 0.22689280275926285, + Column: 23, + Row: 14, Reflectivity: 56, - TimingOffset: 638.208, }, { Distance: 1.544, - Azimuth: 1.8851301250790755, - Elevation: -0.017453292519943295, + Column: 23, + Row: 7, Reflectivity: 5, - TimingOffset: 640.512, }, { Distance: 1.494, - Azimuth: 1.8851301250790755, - Elevation: 0.2617993877991494, + Column: 23, + Row: 15, Reflectivity: 58, - TimingOffset: 642.8159999999999, }, }, - Timestamp: 2666163099000, + TimeSinceTopOfHour: 2666163099000, } } diff --git a/go.mod b/go.mod index 355ecb4..0949d1a 100644 --- a/go.mod +++ b/go.mod @@ -3,10 +3,9 @@ module github.com/einride/vlp-16-go go 1.12 require ( - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/einride/unit v1.6.0 github.com/golang/mock v1.3.1 - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/stretchr/testify v1.2.2 + github.com/stretchr/testify v1.3.0 golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a - golang.org/x/xerrors v0.0.0-20190315151331-d61658bd2e18 + golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522 ) diff --git a/go.sum b/go.sum index 34728be..82db13d 100644 --- a/go.sum +++ b/go.sum @@ -1,11 +1,15 @@ +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/einride/unit v1.6.0 h1:V5vGFpNfGkFDPPhOduQhI4JSzePdDeHNI6NXyE7EFNo= +github.com/einride/unit v1.6.0/go.mod h1:VkeEoz/WVqQktnRS0c+Fn82+cgzbXaCxwrVAuku9RmI= github.com/golang/mock v1.3.1 h1:qGJ6qTW+x6xX/my+8YUVl4WNpX9B7+/l2tRsHGZ7f2s= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -15,5 +19,5 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a h1:mEQZbbaBjWyLNy0tmZmgEuQAR8XOQ3hL8GYi3J/NG64= golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= -golang.org/x/xerrors v0.0.0-20190315151331-d61658bd2e18 h1:1AGvnywFL1aB5KLRxyLseWJI6aSYPo3oF7HSpXdWQdU= -golang.org/x/xerrors v0.0.0-20190315151331-d61658bd2e18/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522 h1:bhOzK9QyoD0ogCnFro1m2mz41+Ib0oOhfJnBp5MR4K4= +golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/pointcloud.go b/pointcloud.go new file mode 100644 index 0000000..ff9b79b --- /dev/null +++ b/pointcloud.go @@ -0,0 +1,110 @@ +package vlp16 + +import ( + "time" + + "github.com/einride/unit" +) + +const ( + // PointsPerCloud is the number of points in a full firing point cloud. + PointsPerCloud = BlocksPerPacket * ChannelsPerBlock + // CloumnsPerPacket is the number of columns in point cloud matrix. + ColumnsPerPacket = BlocksPerPacket * 2 + // RowsPerColumnSingleReturn is the number of rows in point cloud in single return mode. + RowsPerColumnSingleReturn = 16 + // FullFiringTime is the total time for laser firings plus recharge (55.296 µs). + FullFiringTime = 55296 * time.Nanosecond + // SingleFiringTime is the time for one laser firing (2.304 µs). + SingleFiringTime = 2304 * time.Nanosecond + // RechargeTime is the recharge time between laser firings (18.432 µs). + RechargeTime = 18432 * time.Nanosecond + // LowestElevation is the elevation angle of first row of measurements. + LowestElevation = -15 * unit.Degree + // DeltaElevation is the angle difference between two rows. + DeltaElevation = 2 * unit.Degree +) + +// compile-time assertion on full firing time. +var _ [FullFiringTime]struct{} = [RowsPerColumnSingleReturn*SingleFiringTime + RechargeTime]struct{}{} + +type PointCloud struct { + TimeSinceTopOfHour time.Duration + Points [PointsPerCloud]Point + Azimuths [ColumnsPerPacket]unit.Angle +} + +type Point struct { + Row uint8 + Column uint8 + Return uint8 + Reflectivity uint8 + IsLastReflection bool + Distance unit.Distance +} + +const ( + distanceFactor = 0.002 + azimuthFactor = 0.01 +) + +func (s *PointCloud) UnmarshalPacket(packet *Packet) { + s.TimeSinceTopOfHour = time.Duration(packet.Timestamp) * time.Microsecond + for blockIndex := range packet.Blocks { + block := &packet.Blocks[blockIndex] + for channelIndex := range block.Channels { + channel := &block.Channels[channelIndex] + point := &s.Points[blockIndex*ChannelsPerBlock+channelIndex] + if packet.ReturnMode == ReturnModeDualReturn { + point.Column = uint8(blockIndex - (blockIndex % 2) + (channelIndex / RowsPerColumnSingleReturn)) + point.Return = uint8(channelIndex % RowsPerColumnSingleReturn) + } else { + point.Column = uint8(blockIndex*2 + channelIndex/RowsPerColumnSingleReturn) + point.Return = 0 + } + if channelIndex >= RowsPerColumnSingleReturn { // account for second firing + point.Row = uint8((channelIndex-RowsPerColumnSingleReturn)/2 + + (channelIndex-RowsPerColumnSingleReturn)%2*8) + } else { + point.Row = uint8(channelIndex/2 + channelIndex%2*8) + } + point.Distance = unit.Distance(channel.Distance) * distanceFactor * unit.Metre + point.Reflectivity = packet.Blocks[blockIndex].Channels[channelIndex].Reflectivity + point.IsLastReflection = packet.ReturnMode == ReturnModeLastReturn || + // dual return mode: even number blocks (0,2,4,...) contain last return + packet.ReturnMode == ReturnModeDualReturn && blockIndex%2 == 0 + switch channelIndex { + case 0: + s.Azimuths[point.Column] = + unit.Angle(float64(block.Azimuth)*azimuthFactor) * unit.Degree + case 16: + s.Azimuths[point.Column] = + unit.Angle(float64(interpolateAzimuth(uint8(blockIndex), packet))*azimuthFactor) * unit.Degree + } + } + } +} + +func interpolateAzimuth(blockIndex uint8, packet *Packet) uint16 { + // TODO: Interpolate azimuth with high precision algorithm + // Interpolates azimuth angle by using the either the next blocks azimuth or if it's the last block + // it uses the next to last. + var azimuthMin uint16 + var azimuthMax uint16 + if blockIndex == uint8(len(packet.Blocks)-1) { + azimuthMin = packet.Blocks[blockIndex-1].Azimuth + azimuthMax = packet.Blocks[blockIndex].Azimuth + } else { + azimuthMin = packet.Blocks[blockIndex].Azimuth + azimuthMax = packet.Blocks[blockIndex+1].Azimuth + } + if azimuthMax < azimuthMin { // If the bigger angle has gone over 360 degrees (35999 -> 0) + azimuthMax += 360 / azimuthFactor + } + azimuth := packet.Blocks[blockIndex].Azimuth + (azimuthMax-azimuthMin)/2 + const maxAzimuth = 35999 // Azimuth max value as binary + if azimuth > maxAzimuth { + azimuth -= 360 / azimuthFactor + } + return azimuth +} diff --git a/pointcloud_test.go b/pointcloud_test.go new file mode 100644 index 0000000..a81e722 --- /dev/null +++ b/pointcloud_test.go @@ -0,0 +1,55 @@ +package vlp16 + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestSphericalPointCloud_UnmarshalExamplePacket(t *testing.T) { + actual := &PointCloud{} + actual.UnmarshalPacket(examplePacket()) + requirePointCloudEqual(t, exampleSphericalPointCloud(), actual) +} + +func requirePointCloudEqual(t *testing.T, p *PointCloud, pc *PointCloud) { + const delta = 1e-5 + require.Equal(t, p.TimeSinceTopOfHour, pc.TimeSinceTopOfHour) + for i := range p.Azimuths { + require.InDelta(t, p.Azimuths[i].Radians(), pc.Azimuths[i].Radians(), delta) + } + for i := range p.Points { + require.InDelta(t, p.Points[i].Distance.Metres(), pc.Points[i].Distance.Metres(), delta) + require.Equal(t, p.Points[i].Column, pc.Points[i].Column) + require.Equal(t, p.Points[i].Row, pc.Points[i].Row) + require.Equal(t, p.Points[i].Reflectivity, pc.Points[i].Reflectivity) + require.Equal(t, p.Points[i].IsLastReflection, pc.Points[i].IsLastReflection) + } +} + +func TestInterpolateAzimuth(t *testing.T) { + sc, done := newPacketRecordingScanner(t, "testdata/recording.bin") + defer done() + for sc.Scan() { + var data [lengthOfPacket]byte + copy(data[:], sc.Bytes()) + var packet Packet + packet.unmarshal(&data) + for blockIndex := 0; blockIndex < len(packet.Blocks); blockIndex++ { + block := packet.Blocks[blockIndex] + azimuth := block.Azimuth + for j := 0; j < len(packet.Blocks[0].Channels); j++ { + if j == 16 { + newAzimuth := interpolateAzimuth(uint8(blockIndex), &packet) + var testBool bool + if azimuth > 35980 { // approximate that holds as of now... + testBool = azimuth > newAzimuth + } else { + testBool = newAzimuth > azimuth + } + require.True(t, testBool) + } + } + } + } +} diff --git a/spherical_point_cloud.go b/spherical_point_cloud.go deleted file mode 100644 index ed43813..0000000 --- a/spherical_point_cloud.go +++ /dev/null @@ -1,47 +0,0 @@ -package vlp16 - -import ( - "time" -) - -// PointsPerCloud is the number of points in a point cloud. -const PointsPerCloud = BlocksPerPacket * ChannelsPerBlock - -type SphericalPointCloud struct { - Timestamp time.Duration - SphericalPoints [PointsPerCloud]SphericalPoint -} - -type SphericalPoint struct { - Distance float64 - Azimuth float64 - Elevation float64 - Reflectivity uint8 - LastReflection bool - TimingOffset float64 -} - -func (s *SphericalPointCloud) UnmarshalPacket(packet *Packet) { - // duration is in nanoseconds and Velodyne timestamp in microseconds - s.Timestamp = time.Duration(packet.Timestamp) * time.Microsecond - timingOffsets := calculateTimingOffset(packet.ReturnMode) - for i := range packet.Blocks { - block := &packet.Blocks[i] - azimuth := block.Azimuth - for j := range block.Channels { - channel := &block.Channels[j] - if j == 16 { - azimuth = interpolateAzimuth(i, packet) - } - point := &s.SphericalPoints[i*ChannelsPerBlock+j] - point.Distance = float64(channel.Distance) * distanceFactor - point.Azimuth = deg2Rad(float64(azimuth) * azimuthFactor) - point.Elevation = verticalAngle(j) - point.Reflectivity = packet.Blocks[i].Channels[j].Reflectivity - point.LastReflection = packet.ReturnMode == ReturnModeLastReturn || - // dual return mode: even number blocks (0,2,4,...) contain last return - packet.ReturnMode == ReturnModeDualReturn && i%2 == 0 - point.TimingOffset = timingOffsets[j][i] - } - } -} diff --git a/spherical_point_cloud_test.go b/spherical_point_cloud_test.go deleted file mode 100644 index f5c4a39..0000000 --- a/spherical_point_cloud_test.go +++ /dev/null @@ -1,58 +0,0 @@ -package vlp16 - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func TestSimulateRead(t *testing.T) { - sc, done := newPacketRecordingScanner(t, "testdata/recording.bin") - defer done() - for sc.Scan() { - var data [lengthOfPacket]byte - copy(data[:], sc.Bytes()) - var packet Packet - packet.unmarshal(&data) - var cloud SphericalPointCloud - cloud.UnmarshalPacket(&packet) - for i := range cloud.SphericalPoints { - // all points in test data are strongest return - require.Equal(t, cloud.SphericalPoints[i].LastReflection, false) - } - } -} - -func TestSphericalPointCloud_UnmarshalExamplePacket(t *testing.T) { - actual := &SphericalPointCloud{} - actual.UnmarshalPacket(examplePacket()) - require.Equal(t, exampleSphericalPointCloud(), actual) -} - -func TestSphericalPointCloud_UnmarshalExamplePacketLastReflection(t *testing.T) { - actual := &SphericalPointCloud{} - actual.UnmarshalPacket(examplePacketLastReflection()) - require.Equal(t, exampleSphericalPointCloudLastReflection(), actual) -} - -func TestLastReflection(t *testing.T) { - var cloud SphericalPointCloud - cloud.UnmarshalPacket(examplePacketLastReflection()) - require.Equal(t, cloud.SphericalPoints[1].LastReflection, true) - require.Equal(t, cloud.SphericalPoints[35].LastReflection, false) -} - -func TestTimingOffset(t *testing.T) { - const eps = 0.005 - var cloud SphericalPointCloud - cloud.UnmarshalPacket(examplePacketLastReflection()) - require.InDelta(t, 2.304, cloud.SphericalPoints[1].TimingOffset, eps) - require.InDelta(t, 34.560, cloud.SphericalPoints[15].TimingOffset, eps) - require.InDelta(t, 89.856, cloud.SphericalPoints[31].TimingOffset, eps) - require.InDelta(t, 642.816, cloud.SphericalPoints[len(cloud.SphericalPoints)-1].TimingOffset, eps) - cloud.UnmarshalPacket(examplePacket()) - require.InDelta(t, 2.304, cloud.SphericalPoints[1].TimingOffset, eps) - require.InDelta(t, 34.560, cloud.SphericalPoints[15].TimingOffset, eps) - require.InDelta(t, 89.856, cloud.SphericalPoints[31].TimingOffset, eps) - require.InDelta(t, 1306.37, cloud.SphericalPoints[len(cloud.SphericalPoints)-1].TimingOffset, eps) -} diff --git a/vlp16.go b/vlp16.go deleted file mode 100644 index 6c988be..0000000 --- a/vlp16.go +++ /dev/null @@ -1,100 +0,0 @@ -package vlp16 - -import ( - "math" -) - -const ( - distanceFactor = 0.002 // 2/1000. A reported value of 51154 represents 102.308 meter - azimuthFactor = 0.01 // Azimuth is uint16 representing an angle in one hundredth of a degree - maxAzimuth = 35999 // Azimuth max value as binary - fullFiringTime = 55.296 // Total time for laser firings plus recharge (µs) - singleFiringTime = 2.304 // Time for one laser firing (µs) -) - -func calculateTimingOffset(returnMode ReturnMode) [32][12]float64 { - var timingOffsets [32][12]float64 - var dataBlockIndex int - for y, inner := range timingOffsets { - for x := range inner { - if returnMode == ReturnModeDualReturn { - dataBlockIndex = (x - (x % 2)) + (y / 16) - } else { - dataBlockIndex = (x * 2) + (y / 16) - } - dataPointIndex := y % 16 - timingOffsets[y][x] = fullFiringTime*float64(dataBlockIndex) + - singleFiringTime*float64(dataPointIndex) - } - } - return timingOffsets -} - -func spherical2XYZ(laserID int, azimuth uint16, distance uint16) (float64, float64, float64) { - omega := verticalAngle(laserID) - r := float64(distance) * distanceFactor - alpha := deg2Rad(float64(azimuth) * azimuthFactor) - - X := r * math.Cos(omega) * math.Sin(alpha) - Y := r * math.Cos(omega) * math.Cos(alpha) - Z := r * math.Sin(omega) - - return X, Y, Z -} - -func verticalAngle(laserID int) float64 { - verticalAngles := [16]float64{ - deg2Rad(-15), - deg2Rad(1), - deg2Rad(-13), - deg2Rad(3), - deg2Rad(-11), - deg2Rad(5), - deg2Rad(-9), - deg2Rad(7), - deg2Rad(-7), - deg2Rad(9), - deg2Rad(-5), - deg2Rad(11), - deg2Rad(-3), - deg2Rad(13), - deg2Rad(-1), - deg2Rad(15), - } - if laserID > 15 { // Account for second firing - laserID -= 16 - } - return verticalAngles[laserID] -} - -func interpolateAzimuth(blockIndex int, packet *Packet) uint16 { - // TODO: Interpolate azimuth with high precision algorithm - // Interpolates azimuth angle by using the either the next blocks azimuth or if it's the last block - // it uses the next to last. - var azimuthMin uint16 - var azimuthMax uint16 - - if blockIndex == len(packet.Blocks)-1 { - azimuthMin = packet.Blocks[blockIndex-1].Azimuth - azimuthMax = packet.Blocks[blockIndex].Azimuth - } else { - azimuthMin = packet.Blocks[blockIndex].Azimuth - azimuthMax = packet.Blocks[blockIndex+1].Azimuth - } - - if azimuthMax < azimuthMin { // If the bigger angle has gone over 360 degrees (35999 -> 0) - azimuthMax += 360 / azimuthFactor - } - - azimuth := packet.Blocks[blockIndex].Azimuth + (azimuthMax-azimuthMin)/2 - - if azimuth > maxAzimuth { - azimuth -= 360 / azimuthFactor - } - - return azimuth -} - -func deg2Rad(degree float64) float64 { - return degree * math.Pi / 180 -} diff --git a/vlp16_test.go b/vlp16_test.go deleted file mode 100644 index 3da9ab3..0000000 --- a/vlp16_test.go +++ /dev/null @@ -1,83 +0,0 @@ -package vlp16 - -import ( - "math" - "testing" - - "github.com/stretchr/testify/require" -) - -func TestCalculateTimeOffset(t *testing.T) { - eps := 0.005 - // Expected values taken from Figure 9-9 Single Return Mode Timing Offsets (µs), VLP-16 Manual - timingOffsetsLastReturn := calculateTimingOffset(ReturnModeLastReturn) - require.InDelta(t, 0.0, timingOffsetsLastReturn[0][0], eps) - require.InDelta(t, 34.560, timingOffsetsLastReturn[15][0], eps) - require.InDelta(t, 55.296, timingOffsetsLastReturn[16][0], eps) - require.InDelta(t, 89.856, timingOffsetsLastReturn[31][0], eps) - require.InDelta(t, 110.592, timingOffsetsLastReturn[0][1], eps) - require.InDelta(t, 145.152, timingOffsetsLastReturn[15][1], eps) - require.InDelta(t, 165.888, timingOffsetsLastReturn[16][1], eps) - require.InDelta(t, 200.448, timingOffsetsLastReturn[31][1], eps) - require.InDelta(t, 1306.37, timingOffsetsLastReturn[31][11], eps) - // Expected values taken from Figure 9-10 Dual Return Mode Timing Offsets (µs), VLP-16 Manual - timingOffsetsDualReturn := calculateTimingOffset(ReturnModeDualReturn) - require.InDelta(t, 0.0, timingOffsetsDualReturn[0][0], eps) - require.InDelta(t, 34.560, timingOffsetsDualReturn[15][0], eps) - require.InDelta(t, 55.296, timingOffsetsDualReturn[16][0], eps) - require.InDelta(t, 89.856, timingOffsetsDualReturn[31][0], eps) - require.InDelta(t, 0.0, timingOffsetsDualReturn[0][1], eps) - require.InDelta(t, 34.560, timingOffsetsDualReturn[15][1], eps) - require.InDelta(t, 55.296, timingOffsetsDualReturn[16][1], eps) - require.InDelta(t, 89.856, timingOffsetsDualReturn[31][1], eps) - require.InDelta(t, 642.816, timingOffsetsDualReturn[31][11], eps) -} - -func TestInterpolateAzimuth(t *testing.T) { - sc, done := newPacketRecordingScanner(t, "testdata/recording.bin") - defer done() - for sc.Scan() { - var data [lengthOfPacket]byte - copy(data[:], sc.Bytes()) - var packet Packet - packet.unmarshal(&data) - for blockIndex := 0; blockIndex < len(packet.Blocks); blockIndex++ { - block := packet.Blocks[blockIndex] - azimuth := block.Azimuth - for j := 0; j < len(packet.Blocks[0].Channels); j++ { - if j == 16 { - newAzimuth := interpolateAzimuth(blockIndex, &packet) - var testBool bool - if azimuth > 35980 { // approximate that holds as of now... - testBool = azimuth > newAzimuth - } else { - testBool = newAzimuth > azimuth - } - require.True(t, testBool) - } - } - } - } -} - -func TestVerticalAngle(t *testing.T) { - require.Equal(t, deg2Rad(-15), verticalAngle(0)) - require.Equal(t, deg2Rad(15), verticalAngle(15)) - require.Equal(t, deg2Rad(7), verticalAngle(7)) -} - -func TestSpherical2XYZ(t *testing.T) { - laserID := 15 // 15 degrees - azimuth := uint16(9000) // 90 degrees - distance := uint16(1 / distanceFactor) // 1 meter - X, Y, Z := spherical2XYZ(laserID, azimuth, distance) - require.InEpsilon(t, X, 0.965925826289068, 0.000001) - require.InEpsilon(t, Y, 5.914589856893349e-17, 0.000001) - require.InEpsilon(t, Z, 0.258819045102521, 0.000001) -} - -func TestDeg2Rad(t *testing.T) { - require.Equal(t, deg2Rad(0.0), 0.0) - require.Equal(t, deg2Rad(90), math.Pi/2) - require.Equal(t, deg2Rad(180), math.Pi) -}