python – 将3d钻孔轨迹转换为笛卡尔坐标并使用matplotlib绘制它

我希望能够使用方向和距离绘制两条线.这是一个Drillhole跟踪,所以我现在有这种格式的数据,

深度实际上是距离孔的距离,而不是垂直深度.方位角来自磁北. Dip基于0是水平的.我想从同一点绘制两条线(0,0,0很好)并根据这种信息看看它们是如何不同的.

我没有使用Matplotlib的经验,但我对Python感到满意,并希望了解这个绘图工具.我找到了this page并且它有助于理解框架,但我仍然无法弄清楚如何使用3d向量绘制线条.有人可以给我一些关于如何做到这一点或在哪里找到我需要的指示的指示?谢谢

最佳答案 将坐标转换为笛卡尔坐标并使用matplotlib绘制的脚本,其中包含以下注释:

import numpy as np
import matplotlib.pyplot as plt
# import for 3d plot
from mpl_toolkits.mplot3d import Axes3D
# initializing 3d plot
fig = plt.figure()
ax = fig.add_subplot(111, projection = '3d')
# several data points 
r = np.array([0, 14, 64, 114])
# get lengths of the separate segments 
r[1:] = r[1:] - r[:-1]
phi = np.array([255.6, 255.6, 261.7, 267.4])
theta = np.array([-79.5, -79.5, -79.4, -78.8])
# convert to radians
phi = phi * 2 * np.pi / 360.
# in spherical coordinates theta is measured from zenith down; you are measuring it from horizontal plane up 
theta = (90. - theta) * 2 * np.pi / 360.
# get x, y, z from known formulae
x = r*np.cos(phi)*np.sin(theta)
y = r*np.sin(phi)*np.sin(theta)
z = r*np.cos(theta)
# np.cumsum is employed to gradually sum resultant vectors 
ax.plot(np.cumsum(x),np.cumsum(y),np.cumsum(z))
点赞