距離、方位角、傾斜角をXYZに変換する方法は?


10

ヘッダーと調査ドリルデータを含むExcelスプレッドシートがあります。ヘッダーデータには、穴IDと場所の座標が含まれ、調査データには、距離、方位角、および傾斜角の値を持つ関連するダウンホール調査が含まれます。

穴の位置と標高がわかっているので、測量テーブルもXYZ座標に変換できるようにしたいと考えています。誰かが機能/手順/例を持っていますか?(VBとArcObjects)

ヘッダーデータ:

ヘッダーデータ

調査データ:

ここに画像の説明を入力してください


とにかくそれらをxyz座標として使用できませんか?dipの原点は0だと思いますよね。
エミリー

1
@Emily-はい、最初のXYZが指定されます(X:425990、Y:5409010、Z:350)。ディップ値は0で、距離は0です。距離:41、方位角:359、ディップ:-71のXYZを計算するにはどうすればよいですか?(各調査ポイントで方向と傾斜が異なり、結果として逸脱したらせん状のダウンホールになります)おそらく簡単な式があります...
Jakub Sisak GeoGraphics

回答:


10

質問は、球座標とデカルト座標間の変換を求めています。このスプレッドシートは数式をレイアウトします:

スプレッドシートのスクリーンショット

青い線は入力、黒い線は中間の計算、そして赤い線は出力です。数式内では、値は[挿入] | [名前|作成]操作で割り当てられた[パラメーター]列の名前で参照されます。

地理学では方位角は通常、北東ではなく北東に取られるため、ほとんどの数学/物理学のリファレンスとは異なります。これにより、地理的方位角は数学的方位角を補完します(合計で90度になります)。任意のトリガー関数で角度をその補数で置き換えると、その角度が「co」パートナーと交換されます。正弦と余弦は、正接と余接、正割と正割に交換されます。また、多くの数学システムでは、「ディップ」は、水平(緯度)からの角度ではなく、真の垂直(同一緯度)からの角度として表され、正弦と余弦の交換を引き起こします。

13/9/20を編集

ダウンホール距離については、おそらく否定する必要がありますdZ


ありがとう。いいね!方位角タイプを確認する必要があります。数式でラジアンを見つけるにはどうすればよいですか?
Jakub Sisak GeoGraphics 2011

ラジアン=度/ 180 * Pi
whuber

右に。ありがとう。私は上のリンクにある公式をじっと見つめ、頭をかきました。ベルのようになりました。
Jakub Sisak GeoGraphics 2011

@Jakubこれは有効で有効なスプレッドシートであることを知っていますよね?これらの数式をExcelに入力し、左側の[パラメーター]列に示されているように[値]列のセルに名前を付けると、実行されます。青色のテキストが入力されています。黒は中間計算です。赤が出力されます。慣れてきたら、2番目のスプレッドシートを変更して、すべてのエントリの計算を行うことができます。唯一のトリックは、最初から(X0、Y0、Z0)座標を結合することです。データベースを使用するか、VLOOKUP()を使用して行います。
whuber

知らなかった。さらに良い!したがって、RADIANSは明らかに、Azimuthまたはdipを渡すExcel関数です。
Jakub Sisak GeoGraphics 2011

3

これは古い質問ですが、他の回答は適切ではありません。距離(測定深度)、傾斜(傾斜)、方位角から3D座標への変換は、測定が行われた場所(測量ステーション)間で何が起こっているかをどのように解釈するかによって異なります。今日の標準的な手法は「最小曲率」であり、円弧が各測量位置を接続すると想定されています。

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はゼロ除算エラーを生成することがわかりました。Bがゼロの場合は、RFを1に設定します(Bが0になるときのRFの制限は1なので)。それ以外の場合は、これでうまくいきます。ありがとう!
Saxon Druce、2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.