3

することでpythonを学ぼうとしています。私は、M 0.1 から 2.0 までの約 500,000 の地震 (震源地) について、現実世界の xy (緯度経度 dd) 座標と z (地表下 km) 値を持っています。.txt タブ区切りのテーブルで、データを 10 行の xyz 値に切り詰めました。matplotlib の回転可能な 3D 散布図ボックスにデータをプロットしたいと考えています。基本的なコマンドを使用してデータを読み取ることができ、フォーマットは正常に見えます。mpl がデータを読み取ってプロットするために、データをリストまたは配列に読み取る必要があるかどうかはわかりません。配列を作成する必要はありますか?

次に、油井の地下の位置をプロットしたいのですが、坑井に沿った頂点の xyz 座標 (約 40 の位置) が与えられます。ポリラインを作成する必要がありますか? このデータは、一部の震源と同じ一般的な座標 (さらに評価する必要があります) を持っています。どのデータセットをプロットにする必要があり、どれをサブプロットにする必要がありますか? また、xy 緯度経度座標の小数点以下 6 から 7 桁と 2 桁の z 座標を考えると、必要な「浮動小数点数」については不明です。

4

1 に答える 1

4

実際、Matplotlib はこれには適していません。真の 3D プロットは許可されず、必要な複雑さ (または 3D のポイント数) を処理できません。代わりにmayaviを見てください。

ところで、マイクロ地震をやっているようですね?(私は地球物理学者でもありますが、それが価値のあるものです。)

簡単な例として:

from enthought.mayavi import mlab
import numpy as np

# Generate some random hypocenters
x, y, z, mag = np.random.random((4, 500))

# Make a curved well bore...
wellx, welly, wellz = 3 * [np.linspace(0, 1.5, 10)]
wellz =  wellz**2

# Plot the hypocenters, colored and scaled by magnitude
mlab.points3d(x, y, z, mag)

# Plot the wellbore
mlab.plot3d(wellx, welly, wellz, tube_radius=0.1)

mlab.show()

ここに画像の説明を入力

データの読み取りに関する限り、次のように単純なはずです。

x, y, z = np.loadtxt('data.txt').T

どのような問題に遭遇しましたか?

于 2012-05-24T15:41:24.323 に答える