背景
広い部屋の温度を複数地点で計測し、それを用いて温度分布を計算し出力したいと考えています。
その計算にクリギングを使おうと思い、調べたらpyKriging
が出てきました。
http://www.pykriging.com/
https://github.com/capaulson/pyKriging
クリギングとは地形の算出によく用いられる手法で、
図のように複数地点で計測した標高から、他の地点の標高を算出し地形を明らかにする事が出来ます。
聞きたいこと
ホームページにあるサンプルや、Githubのコードをクローンして読んでみましたが、
どうしてもデータの入力方法が分かりません。
それを教えて頂きたいです????
調査したこと(3つ)
サンプルのデータ入力方法
コードはこのようになっており、X
とy
が入力データではないかと推測しました
import pyKriging from pyKriging.krige import kriging from pyKriging.samplingplan import samplingplan # The Kriging model starts by defining a sampling plan, we use an optimal Latin Hypercube here sp = samplingplan(2) X = sp.optimallhc(20) # Next, we define the problem we would like to solve testfun = pyKriging.testfunctions().branin y = testfun(X) # Now that we have our initial data, we can create an instance of a Kriging model k = kriging(X, y, testfunction=testfun, name='simple') k.train() # Now, five infill points are added. Note that the model is re-trained after each point is added numiter = 5 for i in range(numiter): print 'Infill iteration {0} of {1}....'.format(i + 1, numiter) newpoints = k.infill(1) for point in newpoints: k.addPoint(point, testfun(point)[0]) k.train() # And plot the results k.plot()
サンプルの入力データの中身
上記を踏まえ、それぞれprintすると次のように出ました。
Xがポイントの座標、yがポイントの値かと思われます。
X
1[[0.175 0.625] 2 [0.325 0.825] 3 [0.075 0.225] 4 [0.225 0.975] 5 [0.725 0.325] 6 [0.275 0.125] 7 [0.625 0.525] 8 [0.925 0.275] 9 [0.375 0.575] 10 [0.675 0.925] 11 [0.525 0.775] 12 [0.025 0.725] 13 [0.825 0.075] 14 [0.875 0.475] 15 [0.575 0.175] 16 [0.775 0.675] 17 [0.425 0.025] 18 [0.975 0.875] 19 [0.125 0.425] 20 [0.475 0.375]]
y
1[ 5.2438795 59.27093668 118.41829804 43.06748015 36.62451614 2 49.07513829 50.46422992 10.74224018 32.40154544 176.95915015 3 86.77220659 36.84161119 18.57719369 42.36475702 4.85866494 4 103.90408196 27.54179195 115.20981522 35.36567784 13.19602273]
サンプルの入力データ変更
それらの仮説を踏まえて、yのデータをとりあえず次のように変えてみました。
ただ最小値/最大値が変わらず、色分布が上手くいかなかった為次のように表示されてしまいました。
本当は温度のようなわずかな差でも色による違いがはっきり分かるようにしたいです。
y
1y = [ 2 22, 24, 20, 21, 19, 3 22, 22, 18, 17, 17, 4 20, 21, 20, 21, 20, 5 23, 25, 26, 24, 24, 6]
回答1件
あなたの回答
tips
プレビュー