Hi team,
The following figure 1 is the code used in parseTLV.py in Visualizer to convert the sphere coordinate system to a Cartesian coordinate system. This function code is called by the parseCompressedSphericalPointCloudTLV function in this file.

Figure 1
As shown in Figure 2, at the function call, use pointCloud[:, 0:3] for Range, PointCloud[:, 0:3] is stored in the order of Range, Azimuth, Elevation, and the parameters in the function Figure 1 are stored accordingly.

Figure 2
According to the sphere coordinate system shown in Figure 3, θ in Figure 3 should be Elevation in the code, φ should be Azimuth and r should be range.

Figure 3
The calculation of xyz in Figure 1 seems to be incorrect based on the conversion between the sphere and the Cartesian coordinate systems shown in Figure 4. For example, x should be equal to range*sin(elevation)*cos(azimuth). However, the operation of Figure 1 is range*sin(azimuth)*cos(elevation).

Figure 4
Is there any error in the calculation? Could you help check it? Thanks.
Best Regards,
Cherry