こんにちは、経験豊富な python コミュニティです。仕事の一環として磁気データを収集することがよくありますが、データを処理して品質を確認するには、現場から戻るまで待つ必要があります。このデータは次の形式で提供されます:-
時間、F、Ef、FP、東座標、北座標、高さ 21:51:02,53169.31,-14.3,-17.79,386330.362,7371876.155,540.939
これは、txt、xls、またはこの場合は csv などのさまざまな形式で出力できます。私の目標は、ラップトップですばやくプロットして、データに汚染がないことを確認できるようにすることです。Google を使用すると、stackoverflow にたどり着き、さまざまな投稿を調べて、以下のスクリプトを思いつきました。これらの投稿に感謝します。私の問題は、csv ファイルを読み取ることができることですが、そのデータをプロット セクションに取り込み、27 行目以降の不要な数値を削除する方法がわかりません。かなり単純だと思うと思いますが、経験不足のため、この 2 週間はぐるぐる回っています。回答者の皆様、ありがとうございます。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mlab as ml
f = open("filename.csv")
data = np.genfromtxt('filename.csv', dtype=[('Time',float),('F',float),('Ef',float),
('FP',float),('E',float),('N',float),('H',float)],
comments='"', delimiter=',')
#only here so that I can see the file is being
#read so will probably remove it later
for line in f:
print line
#below is copied from elsewhere in stackoverflow and trying to adapt
#to my needs so at the moment I get this a Duplicate Point Warning.
#So I need to call the above into what is below.
ndata = 100
ny, nx = 100, 200
xmin, xmax = 1, 50
ymin, ymax = 1, 50
x = np.random.randint(xmin, xmax, ndata)
y = np.random.randint(ymin, ymax, ndata)
z = np.random.random(ndata)
xi = np.linspace(xmin, xmax, nx) #
yi = np.linspace(ymin, ymax, ny) #
zi = ml.griddata(x, y, z, xi, yi) #
plt.contour(xi, yi, zi, 15, linewidths = 0.5, colors = 'k')
plt.pcolormesh(xi, yi, zi, cmap = plt.get_cmap('rainbow'))
plt.colorbar()
plt.scatter(x, y, marker = 'o', c = 'b', s = 5, zorder = 10)
plt.xlim(xmin, xmax)
plt.ylim(ymin, ymax)
plt.show()