LoginSignup
1

More than 5 years have passed since last update.

[Obsolete] bash + Povray > conv-pov-exec (2008) > x,y,z座標ファイルに基づき、球粒子により構成されたaggregateの画像を生成する

Last updated at Posted at 2018-01-19
▲この記事は10年以上前(2007年?)の記事執筆者によるソースだけを掲載しています。 参考にはしない方が良いでしょう。
動作環境
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 16.04 LTS desktop amd64
TensorFlow v1.2.1
cuDNN v5.1 for Linux
CUDA v8.0
Python 3.5.2
IPython 6.0.0 -- An enhanced Interactive Python.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
scipy v0.19.1
geopandas v0.3.0
MATLAB R2017b (Home Edition)
ADDA v.1.3b6
POV-Ray 3.7.0.unofficial

処理概要

  • x,y,z座標のファイルがある
  • bashによりpovrayのファイルを作る
  • povrayを実行して画像作成

ファイル

bashスクリプト

conv-pov-exec
#!/usr/bin/env bash


#INPUT
#   LN-SHAPE : x,y,z, information 
#
#
#

#config only for MacOSX, following lines are required
#function seq(){ 
#  jot $2 $1 $2 
#}


XXX=0.0
YYY=0.0
ZZZ=0.0
RRR=0.5   #config radius of monomer in [LN-SHAPE]



#copy header information
cat CONFIG/in.base > res.pov



#obtaine number of lines 
rnum=`wc -l LN-SHAPE | awk '{print $1}'`
for ir in `seq 1 $rnum`;do
#T  echo $ir
  base=`head -n $ir LN-SHAPE | tail -n 1`
  XXX=`echo $base | awk '{print $1}'`
  ZZZ=`echo $base | awk '{print $2}'`   #for povray coordinate (X,Z,Y)
  YYY=`echo $base | awk '{print $3}'`

 cat CONFIG/in.sph1 | sed 's/XXX/'$XXX'/g'  | sed 's/YYY/'$YYY'/g'  | sed 's/ZZZ/'$ZZZ'/g'  | sed 's/RRR/'$RRR'/g' >> res.pov
done 



echo "type"
echo "  povray res.pov" 
echo
echo "to create [res.png] file"

exit

Povray用ベースファイル

CONFIGディレクトリ以下に置いて使用していた。

CONFIG/in.baseファイル

camera {
  location <20, 20, -20>
  look_at <0, 0, 0>
}
light_source { <100, 200, -100>
  color rgb <1.0, 1.0, 1.0>
}

background{color rgb <1.0,1.0,1.0>}
CONFIG/in.sph1ファイル

sphere { <XXX, YYY, ZZZ>, RRR
  texture {
    pigment { color rgb <0.7,0.7,0.7> }
    finish {      ambient 0.4    }
  }
}

座標ファイル

Symbolic linkされたファイル。

LN-SHAPE
-0.206024 -0.0500037 -0.362243
0.240619 -0.0408003 -1.25691
-0.222088 -0.173478 -2.13343
-0.428536 0.741937 -0.930855
-0.456008 0.512586 -2.82234
-1.09577 1.1038 -2.33126
-0.723359 1.83366 -1.75801
-0.220487 -0.721207 0.378889
0.00143984 2.49459 -1.56351
0.276163 1.17341 -2.9874
0.285958 -1.50224 0.74427
-0.613472 -1.91975 0.61499
-1.38449 -2.30775 0.110027
-0.998799 -1.45723 1.41349
0.346688 1.3107 -0.656026
-0.907595 -2.08359 -0.739869
-1.17658 -1.41438 2.39663
-1.73311 -1.51981 -0.766118
0.951388 2.7415 -1.37211
0.487672 -0.0193166 0.455449
0.0525986 -1.80593 -0.709314
0.23501 2.16789 -2.89089
0.448589 3.52376 -1.00434
-0.135017 -0.98297 -2.71407
-1.66636 -1.46246 3.26715
-0.616715 2.64807 -2.68117
-0.0390232 3.42868 -2.91975
-1.79448 1.73051 -1.98622
-0.110748 1.91672 -3.79498
0.553308 -2.12589 1.47883
1.23408 -0.151325 -1.28544
0.0288372 -2.02543 2.32432
1.52134 -2.33078 1.62353
-0.696783 1.14755 -4.04982
0.488679 4.50816 -0.833022
0.564678 3.83997 -0.0627753
-1.49875 3.06824 -2.89442
0.133993 4.20514 -3.5257
1.36141 4.07263 -1.05359
0.816969 3.32333 -3.42589
1.10045 -2.83199 2.3796
-2.43676 -0.917459 2.93631
-2.51608 -1.95059 3.06787
0.0816325 -3.0228 2.27474
-0.718472 -0.726951 2.96017
-0.650296 -1.1209 3.87677
-0.977801 -0.509779 -0.801523
-2.04562 -2.50054 3.75796
-1.31449 1.06261 -0.595819
2.41856 -1.88956 1.64138
1.03493 -2.7097 3.36993
-0.710678 -3.39893 1.79435
1.99649 4.36966 -0.34053
-2.72008 0.0344286 2.81952
0.659126 1.98077 -4.42995
-3.51294 -1.98111 3.14085
1.55759 -1.78964 2.46368
0.838695 0.467073 -0.344681
-1.96557 2.04592 -2.91962
-1.02314 -4.07531 2.46135
-1.42092 -2.76968 2.10995
-2.47699 -0.929391 -1.07924
0.961407 -1.00494 2.29394
1.47686 -3.18078 4.13333
1.59369 2.32311 -4.52681
1.1534 -1.17304 3.26083
-2.29207 -2.72571 1.6209
3.21816 -1.80445 1.04691
-2.16371 3.75552 -2.60209
-0.830271 2.64796 -3.6581
-2.3148 0.948342 2.79693
1.17717 1.74263 -0.304258
-2.54456 1.85436 -3.71214
1.36126 -2.92476 0.835136
4.14273 -1.42362 1.03472
-2.8345 0.669632 1.98932
1.69806 4.69919 -1.7565
0.897478 -3.96417 4.35834
0.484193 -3.0591 4.45863
1.86665 5.43792 -1.10392
-2.19183 -2.63941 4.73742
-1.8487 -1.21509 4.21875
-1.039 -0.956109 -3.14079
0.142327 -0.957862 -3.67452
-2.01737 -3.99703 2.388
-2.99825 1.21119 3.47797
0.660338 0.740036 -2.17217
1.67136 -3.71465 3.31043
3.48255 -1.17357 1.77636
1.59383 4.26601 -2.65176
-1.61848 4.51689 -2.95285
0.494414 -3.19393 0.41546
2.17663 -3.07998 1.52713
-0.829575 -2.30122 -1.71278
-2.53564 -1.95282 5.37803
-1.62508 -0.415624 -3.74444
1.84575 -1.67914 3.77514
-3.26513 2.08066 -3.05672
4.3415 -1.45952 2.20114
-1.93534 2.24691 -1.14154
2.58325 -1.74434 4.44733
2.57185 5.40147 -1.81198
1.94154 3.51569 -3.214
1.04867 -1.83227 0.18807
0.203212 1.64831 0.274263
1.59359 -4.66848 4.49751
1.48627 -4.53763 2.77336
0.680725 -1.50128 -2.97082
3.18338 -1.2651 0.205548
-1.4624 -3.13687 -0.44358
-1.52817 2.38648 -4.32485
3.5634 -1.68452 -0.618876
-0.294682 -3.13494 -0.195971
-1.71946 -2.18964 -2.15511
2.86306 -1.9513 2.53503
2.94393 4.64103 -0.509956
0.984935 4.55772 0.492394
-0.0705575 5.03808 -0.19549
-1.35522 0.949252 3.07837
1.42784 4.23828 1.33012
2.43869 -3.35801 3.84335
2.85093 4.46617 -2.02953
-1.75051 -4.08102 -0.603495
-0.749211 -3.37211 -1.10391
-2.81923 2.00166 -1.53977
2.04954 1.79209 -5.24111
1.43893 2.58218 -2.23055
-4.16261 1.86064 -3.43898

実行

$ bash conv-pov-exec
type
  povray res.pov

to create [res.png] file

上記のメッセージに従い以下を実行すると[res.png]ファイルが生成される。

$ povray res.pov

eogでres.pngを開いた結果。
(フラクタル次元2程度の粒子の例)

qiita.png

生成されるファイル

conv-pov-execにより生成されるres.povファイル

res.pov
camera {
  location <20, 20, -20>
  look_at <0, 0, 0>
}
light_source { <100, 200, -100>
  color rgb <1.0, 1.0, 1.0>
}

background{color rgb <1.0,1.0,1.0>}




sphere { <-0.206024, -0.362243, -0.0500037>, 0.5
  texture {
    pigment { color rgb <0.7,0.7,0.7> }
    finish {      ambient 0.4    }
  }
}


sphere { <0.240619, -1.25691, -0.0408003>, 0.5
  texture {
    pigment { color rgb <0.7,0.7,0.7> }
    finish {      ambient 0.4    }
  }
}

...(以下sphereの定義が続く)

備考

206,800個の座標ファイルを処理した。

以下の実行時間になった。Matplotlibでの描画時間と同じ程度遅い。

  • bash conv-pov-exec: 43分
  • povray res.pov: 3秒

qiita.png

Povray利用の利点

Matplotlibと比べて、Povray利用の利点はあるだろう。
上記のres.povファイルが作成されれば、エディタでcamera設定を変更して異なるViewでの描画が秒オーダーの処理時間でできる。
一方で、Matplotlibではviewの変更後の描画に数十分オーダーの処理時間がかかる。

qiita.png

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1