Get ECEF XYZ given starting coordinates, range, azimuth, and elevation?

It appears that there is no straight forward process to do this. The best method I found is to convert from RAE coordinates to SEZ coordinates, then from SEZ coordinates to ECR coordinates. Here is some C# code I modified to C++ to achieve this: void main() { // NOTE: distances are in meters, while angles are in degrees double siteECR = { -763997.48, -5458565.87, 3196706.0 }; double objRAE = { 30000.0, 310.0, 18.0 }; double objECR = { 0.0, 0.0, 0.0 }; // Should return ~-764142.7629, -5458517.683, 3217218.18 in objECR RAEtoECR(siteECR, objRAE, objECR); } /************************************************************************************************************************/ /* Converts a Range, Azimuth, Elevation location to a Latitude, Longitude, Altitude location */ /* siteLLA - array holding the Latitude, Longitude, and Altitude of the site location in degrees and meters */ /* rae - array holding the Range, Azimuth, and Elevation, in degrees, of the object viewed from the site location */ /* objECR - destination array to hold the ECR X, Y, Z location in meters */ /************************************************************************************************************************/ void RAEtoECR(double siteECR, double rae, double objECR) { double tempSEZ = { 0.0, 0.0, 0.0 }; double siteLLA = { 0.0, 0.0, 0.0 }; ECRtoLLA(siteECR, siteLLA); RAEtoSEZ(siteLLA, objRAE, tempSEZ); SEZtoECR(siteLLA, tempSEZ, objECR); } /************************************************************************************************************************/ /* Converts a Range, Azimuth, Elevation location to a South, East, Zenith location */ /* siteLLA - array holding the Latitude, Longitude, and Altitude of the site location in degrees and meters */ /* rae - array holding the Range, Azimuth, and Elevation, in degrees, of the object viewed from the site location */ /* sez - destination array to hold the South, East, and Zenith coordinates of the object being viewed in meters */ /************************************************************************************************************************/ void RAEtoSEZ(double siteLLA, double rae, double sez) { double range, azimuth, elevation; range = rae0; azimuth = rae1; elevation = rae2; // Compute needed math double slat = sin(Deg2Rad(siteLLA0)); double slon = sin(Deg2Rad(siteLLA1)); double clat = cos(Deg2Rad(siteLLA0)); double clon = cos(Deg2Rad(siteLLA1)); // Convert to radians azimuth = DEG2RAD(azimuth); elevation = DEG2RAD(elevation); // Convert sez0 = -range * cos(elevation) * cos(azimuth); sez1 = range * cos(elevation) * sin(azimuth); sez2 = range * sin(elevation); } /************************************************************************************************************************/ /* Converts a South, East, Zenith location to an ECR X, Y, Z location */ /* siteLLA - array holding the Latitude, Longitude, and Altitude of the site location in degrees and meters */ /* sez - array holding the South, East, and Zenith coordinates of the object being viewed in meters */ /* ecr - destination array to hold the ECR X, Y, Z location in meters */ /************************************************************************************************************************/ void SEZtoECR(double siteLLA, double sez, double ecr) { // Convert siteLLA to XYZ double siteXYZ = { 0.0, 0.0, 0.0 }; LLAtoECR(siteLLA, siteXYZ); double south, east, zenith; south = sez0; east = sez1; zenith = sez2; // Compute needed math double slat = sin(Deg2Rad(siteLLA0)); double slon = sin(Deg2Rad(siteLLA1)); double clat = cos(Deg2Rad(siteLLA0)); double clon = cos(Deg2Rad(siteLLA1)); // Convert ecr0 = ( slat * clon * south) + (-slon * east) + (clat * clon * zenith) + siteXYZ0; ecr1 = ( slat * slon * south) + ( clon * east) + (clat * slon * zenith) + siteXYZ1; ecr2 = (-clat * south) + ( slat * zenith) + siteXYZ2; }.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions