XDL TIP
[NXDL] 타겟지점, 센서의 고도, 센서자세를 이용하여 센서의 위치 추정
Author
pixoneer
Date
2016-11-19 13:35
Views
2942
// 타겟지점, 센서의 고도, 센서자세를 이용하여 역으로 센서의 위치 추정한다.
// 1. 타겟 지점에 대한 XGeoPoint를 생성하고 이로부터 ECEF값을 얻는다.
XVertex3d vTarget;
XGeoPoint geoTarget = XGeoPoint.FromDegree(127.059026, 36.070813, 24);
vTarget = geoTarget.ecr;
// 2. 센서의 yaw, pitch, roll값을 설정한다.
XAngle yaw, pitch, roll;
yaw = XAngle.FromDegree(70.57);
pitch = XAngle.FromDegree(61.20);
roll = XAngle.FromDegree(0);
// 3. 타겟이 있는 지점에 대한 ECEF좌표계상의 NED(North, East, Down)벡터를 생성한다.
XVertex3d vN, vE, vD;
vN = new XVertex3d();
vE = new XVertex3d();
vD = new XVertex3d();
Xfn.GetFrameNED(vTarget, ref vN, ref vE, ref vD);
// 4. NED 벡터와 센서의 자세 정보를 입력하여 ECEF공간상에서 센서의 지향 벡터를 얻는다.
XVertex3d vS = Xfn.GetSensorPointingVector(vE, vN, vD, yaw, pitch, roll);
// 5. 센서의 고도값을 이용하여 센서까지의 Slant거리값을 계산.
double height = 14882;
double slant = height / Xfn.DotProduct(vS, vD);
// 6. 센서의 위치 추정
XVertex3d vPos = new XVertex3d();
vPos = vTarget - slant * vS;
// 7. ECEF 좌표를 위경도 좌표로 변환
XGeoPoint vSource = XGeoPoint.FromEcr(ref vPos);
Console.WriteLine("{0} {1} {2}", vSource.lond.ToString(), vSource.latd.ToString(), vSource.hgt.ToString());
// 35.982355, 126.75321, 14882
// 1. 타겟 지점에 대한 XGeoPoint를 생성하고 이로부터 ECEF값을 얻는다.
XVertex3d vTarget;
XGeoPoint geoTarget = XGeoPoint.FromDegree(127.059026, 36.070813, 24);
vTarget = geoTarget.ecr;
// 2. 센서의 yaw, pitch, roll값을 설정한다.
XAngle yaw, pitch, roll;
yaw = XAngle.FromDegree(70.57);
pitch = XAngle.FromDegree(61.20);
roll = XAngle.FromDegree(0);
// 3. 타겟이 있는 지점에 대한 ECEF좌표계상의 NED(North, East, Down)벡터를 생성한다.
XVertex3d vN, vE, vD;
vN = new XVertex3d();
vE = new XVertex3d();
vD = new XVertex3d();
Xfn.GetFrameNED(vTarget, ref vN, ref vE, ref vD);
// 4. NED 벡터와 센서의 자세 정보를 입력하여 ECEF공간상에서 센서의 지향 벡터를 얻는다.
XVertex3d vS = Xfn.GetSensorPointingVector(vE, vN, vD, yaw, pitch, roll);
// 5. 센서의 고도값을 이용하여 센서까지의 Slant거리값을 계산.
double height = 14882;
double slant = height / Xfn.DotProduct(vS, vD);
// 6. 센서의 위치 추정
XVertex3d vPos = new XVertex3d();
vPos = vTarget - slant * vS;
// 7. ECEF 좌표를 위경도 좌표로 변환
XGeoPoint vSource = XGeoPoint.FromEcr(ref vPos);
Console.WriteLine("{0} {1} {2}", vSource.lond.ToString(), vSource.latd.ToString(), vSource.hgt.ToString());
// 35.982355, 126.75321, 14882
Total Reply 0Count
Number | Title | Author | Date | Views |
27 |
XDK 호환 XDM 생성 ( ver. 2.0.3.11 ~ )
pixoneer
2022.08.03
513
|
pixoneer | 2022.08.03 | 513 |
26 |
비행체 다중모델 사용(예: 프로펠러 움직임 효과)
pixoneer
2022.07.08
547
|
pixoneer | 2022.07.08 | 547 |
25 |
프로그램 닫기를 해도 종료되지 않을 때
pixoneer support
2021.01.14
1138
|
pixoneer support | 2021.01.14 | 1138 |
24 |
[XDL2.0] 256 x 256 타일 형식의 TIFF 파일로 저장하기
pixoneer support
2021.01.07
1240
|
pixoneer support | 2021.01.07 | 1240 |
23 |
[NXPlanet] PlanetView 2D에서 화면에 도시되는 데이터의 레벨을 계산하는 방법
pixoneer
2019.03.15
1636
|
pixoneer | 2019.03.15 | 1636 |
22 |
[NIO] RPF(Raster Product Format)파일 구조 정보 얻기(TOC파일 로딩)
pixoneer
2016.11.21
3597
|
pixoneer | 2016.11.21 | 3597 |
21 |
[NIO] 벡터파일(Shape파일) 로딩, 속성값 읽기, 좌표계 변환, XML파일로 저장하기
pixoneer
2016.11.21
3966
|
pixoneer | 2016.11.21 | 3966 |
20 |
[NIO] NASA에서 배포하는 지오이드 파일로부터 지오이드값 추출
pixoneer
2016.11.19
3022
|
pixoneer | 2016.11.19 | 3022 |
19 |
[NIO] DTED-2로부터 특정 위치에 해당하는 고도값 추출
pixoneer
2016.11.19
3106
|
pixoneer | 2016.11.19 | 3106 |
18 |
[NIO] 영상 파일 포맷 변환하기
pixoneer
2016.11.19
2843
|
pixoneer | 2016.11.19 | 2843 |