XDL TIP
[NXDL] 타겟지점, 센서의 고도, 센서자세를 이용하여 센서의 위치 추정
작성자
pixoneer
작성일
2016-11-19 13:35
조회
2944
// 타겟지점, 센서의 고도, 센서자세를 이용하여 역으로 센서의 위치 추정한다.
// 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
전체 0개
번호 | 제목 | 작성자 | 작성일 | 조회 |
17 |
[NCC] Static 함수를 이용한 다양한 좌표계 변환
pixoneer
2016.11.19
3066
|
pixoneer | 2016.11.19 | 3066 |
16 |
[NCC] 좌표계 변환 ( Geographic->UTM 변환)
pixoneer
2016.11.19
3503
|
pixoneer | 2016.11.19 | 3503 |
15 |
[NCC] XSpatialReference클래스에 좌표 시스템 설정하기
pixoneer
2016.11.19
2645
|
pixoneer | 2016.11.19 | 2645 |
14 |
[NXDL] 타겟지점, 센서의 고도, 센서자세를 이용하여 센서의 위치 추정
pixoneer
2016.11.19
2944
|
pixoneer | 2016.11.19 | 2944 |
13 |
[NXDL] ECEF좌표계로부터 Lat/Lon(위경도)좌표계로 변환하기
pixoneer
2016.11.19
3403
|
pixoneer | 2016.11.19 | 3403 |
12 |
[NXDL] 위경도 좌표계로부터 ECEF좌표계로 변환하기
pixoneer
2016.11.19
2885
|
pixoneer | 2016.11.19 | 2885 |
11 |
[NXDL] 이미지의 통계값을 이용해 Gaussian 95%에 해당하는 최대/최소값 구하기
pixoneer
2016.11.19
2070
|
pixoneer | 2016.11.19 | 2070 |
10 |
[NXDL] 지구상에 센서 지점로부터 특정거리상에 존재하는 타원체상의 지점 계산
pixoneer
2016.11.19
2399
|
pixoneer | 2016.11.19 | 2399 |
9 |
[NXDL] 지구상의 특정 2개의 지점간 방위각과 거리 구하기(CalArcDistAndAngle함수 사용)
pixoneer
2016.11.19
2362
|
pixoneer | 2016.11.19 | 2362 |
8 |
[NXDL] 지구상의 특정 기준점으로부터 임의의 방위각과 특정 거리에 존재하는 지점 계산(CalcPosByBearingAndDist 사용)
pixoneer
2016.11.19
2082
|
pixoneer | 2016.11.19 | 2082 |