gnuplot の dgrid3d を考える.
理由は,ここに書いたとおり.
---------------------
まずは,こんな等高線の図があるとします.
フリーハンドで描いたので,汚いのは無視しましょう.
デジタイザー,たとえば engauge digitizer みたいなソフトを使うといいでしょう.
ほんで,
### X, Y, Z ###
0.000000 250.000000 40.0
12.886600 244.845000 40.0
25.773200 238.402000 40.0
36.082500 225.515000 40.0
43.814400 208.763000 40.0
42.525800 192.010000 40.0
37.371100 175.258000 40.0
34.793800 161.082000 40.0
30.927800 149.485000 40.0
......
0.000000 250.000000 40.0
12.886600 244.845000 40.0
25.773200 238.402000 40.0
36.082500 225.515000 40.0
43.814400 208.763000 40.0
42.525800 192.010000 40.0
37.371100 175.258000 40.0
34.793800 161.082000 40.0
30.927800 149.485000 40.0
......
##
##
### X, Y, Z ###
217.784000 104.381000 40.0
206.186000 99.226800 40.0
190.722000 97.938100 40.0
175.258000 88.917500 40.0
166.237000 85.051500 40.0
159.794000 76.030900 40.0
158.505000 64.433000 40.0
164.948000 60.567000 40.0
181.701000 64.433000 40.0
195.876000 68.299000 40.0
##
### X, Y, Z ###
217.784000 104.381000 40.0
206.186000 99.226800 40.0
190.722000 97.938100 40.0
175.258000 88.917500 40.0
166.237000 85.051500 40.0
159.794000 76.030900 40.0
158.505000 64.433000 40.0
164.948000 60.567000 40.0
181.701000 64.433000 40.0
195.876000 68.299000 40.0
通常モードだと,
って,感じ.上記は,with line と with points を重ねてる.
わかりやすいように.
で, gnuplot コンソールで,
gnuplot> set dgrid3d 50, 50, 4
gnuplot> splot "./map.lne" u 1:2:3 w l
とやると,
と,格子目に補間データを設けて,描画してくれる.
問題は,この格子上に乗っかってるデータがほしい.
---------------------
引き続き,コンソール 上で
gnuplot> set output "output.dat"
gnuplot> set table
gnuplot> replot
とやると,画面変化はないが, output.dat が作業ディレクトリに生成される.
---------------------
output.dat の中身は
#Surface 0 of 1 surfaces
#IsoCurve 0, 50 points
#x y z type
500 30.9278 41.6448 i
500 40.4744 41.2966 i
500 50.021 41.0037 i
500 59.5676 40.7681 i
500 69.1142 40.5872 i
500 78.6608 40.4556 i
(中略)
500 441.431 43.7643 i
500 450.978 44.197 i
500 460.525 44.6666 i
500 470.071 45.1702 i
500 479.618 45.7076 i
500 489.164 46.2796 i
500 498.711 46.8864 i
#IsoCurve 1, 50 points
#x y z type
489.796 30.9278 41.2901 i
489.796 40.4744 40.945 i
....
(中略)
10.2041 498.711 43.8984 i
#IsoCurve 49, 50 points
#x y z type
0 30.9278 45.5525 i
0 40.4744 45.1661 i
0 50.021 44.7526 i
0 59.5676 44.2973 i
0 69.1142 43.7911 i
(中略)
0 470.071 42.2797 i
0 479.618 43.0064 i
0 489.164 43.7655 i
0 498.711 44.5343 i
て感じ.
---------------------
すごいんじゃないでしょうか.....
もっと,早く気がついていれば...
---------------------
gnuplot> set dgrid3d 50, 50, 4
の 50, 50 が 50x50 の意. 4 は 距離の 4 乗で重み付け平均.
0 件のコメント:
コメントを投稿