XYZ로 거리, 방위각, 딥을 변환하는 방법?


10

헤더 및 설문 조사 드릴 데이터가 포함 된 Excel 스프레드 시트가 있습니다. 헤더 데이터에는 구멍 ID와 위치 좌표가 포함되며 측량 데이터에는 거리, 방위각 및 딥 값이있는 관련 다운 홀 측량이 포함됩니다.

구멍 위치와 표면 높이를 알고 있으므로 측량 테이블을 XYZ 좌표로 변환하고 싶습니다. 누구든지 기능 / 절차 / 예를 가지고 있습니까? (VB 및 ArcObjects)

헤더 데이터 :

헤더 데이터

조사 자료:

여기에 이미지 설명을 입력하십시오


어쨌든 xyz 좌표로 사용할 수 없습니까? 나는 딥의 원점이 0이라고 가정합니까?
Emily

1
@Emily-예 첫 번째 XYZ가 제공됩니다 (X : 425990, Y : 5409010, Z : 350). 딥 값은 0이고 거리는 0입니다. 거리 : 41, 방위각 : 359, 딥 : -71에 대해 XYZ를 어떻게 계산합니까? (각 조사 지점마다 방향과 기울기가 다르기 때문에 편향된 나선이 생길 수 있습니다.) 아마도 간단한 공식이있을 것입니다.
Jakub Sisak GeoGraphics

답변:


10

이 질문은 구형 좌표와 직교 좌표 간의 변환을 요구합니다 . 이 스프레드 시트는 다음과 같은 공식을 보여줍니다.

스프레드 시트 스크린 샷

파란색 선이 입력되고 검은 색이 중간 계산이며 빨간색이 출력됩니다. 수식 내에서 값은 [Parameter] 열의 이름으로 나타납니다 (삽입 | 이름 | 만들기 작업을 통해 할당 됨).

지리학에서는 일반적으로 방위각이 동쪽에서 북쪽이 아닌 북쪽에서 가져 오기 때문에 대부분의 수학 / 물리학 참고 문헌과 다릅니다. 이로 인해 지리적 방위각이 수학적 수치 (90도까지) 의 보수 가됩니다. 모든 삼각 함수에서 보수를 통해 각도를 교체하면 "공"파트너와 각도를 교환합니다. 사인과 코사인이 서로 바뀌고, 접하고 코탄젠트, 시컨트와 코시컨트입니다. 또한 많은 수학적 시스템에서 "딥"은 수평 각도 (위도)가 아닌 실제 수직 각도 (위도)에서 각도로 표시되어 다시 사인과 코사인의 교환을 유발합니다.

9/20/13 수정

다운 홀 거리의 경우 아마도 부정하고 싶을 것입니다 dZ.


감사. 좋아 보인다! 방위각 유형을 확인해야합니다. 수식에서 라디안을 어떻게 찾습니까?
Jakub Sisak GeoGraphics

라디안 =도 / 180 * Pi
우버

바로 감사. 위 링크의 공식을보고 머리를 긁고있었습니다. 종소리로 클리어
Jakub Sisak GeoGraphics

@Jakub 당신은 이것이 유효한 유효한 스프레드 시트라는 것을 알고 있습니까? 이 수식을 Excel에 입력하고 [Parameter] 열의 왼쪽에 표시된대로 [Value] 열의 셀 이름을 지정하면 실행됩니다. 파란색 텍스트가 입력됩니다. 검은 색은 중간 계산입니다. 빨간색이 출력됩니다. 익숙해지면 두 번째 스프레드 시트를 수정하여 모든 항목에 대해 계산을 수행 할 수 있습니다. 유일한 트릭은 (X0, Y0, Z0) 좌표를 처음부터 조인하는 것입니다 : 데이터베이스 또는 VLOOKUP ()을 사용하여 수행하십시오.
whuber

나는 몰랐다. 더 나은! 따라서 RADIANS는 분명히 Azimuth 또는 dip을 전달하는 Excel 함수입니다.
Jakub Sisak GeoGraphics

3

이것은 오래된 질문이지만 다른 답변은 적절하지 않습니다. 거리 (측정 된 깊이), 딥 (기울기), 방위각을 3D 좌표로 변환하는 방법은 측정이 수행 된 위치 (측량 스테이션)간에 발생하는 상황을 해석하는 방법에 따라 다릅니다. 오늘날의 표준 관행은 "최소 곡률 (Minimum Curvature)"이며, 여기서 원호는 각 측량 위치를 연결한다고 가정합니다.

http://www.drillingformulas.com/minimum-curvature-method/ 는 X, Y 및 Z 위치를 계산하는 방법에 대한 자세한 정보를 제공합니다. 관련 부분은 다음과 같습니다

dMD = Distance2 - Distance1
B = acos(cos(I2 - I1) - (sin(I1)*sin(I2)*(1-cos(A2-A1))))
RF = 2 / B * tan(B / 2)
dX = dMD/2 * (sin(I1)*sin(A1) + sin(I2)*sin(A2))*RF
dY = dMD/2 * (sin(I1)*cos(A1) + sin(I2)*cos(A2))*RF
dZ = dMD/2 * (cos(I1) + cos(I2))*RF

X2 = X1 + dX
Y2 = Y1 + dX
Z2 = Z1 + dX

직선 세그먼트 (I1 == I2 및 A1 == A2)가 있으면 B가 0으로 끝나고 RF는 0으로 나누기 오류를 생성합니다. B가 0 인 경우 RF를 1로 설정합니다 (B가 0으로 갈 때 RF의 한계가 1이므로). 그렇지 않으면, 이것은 잘 작동합니다, 감사합니다!
Saxon Druce
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.