ぎょーむ日誌 2000-10-06
2000 年 10 月 06 日 (金)
- 0730 起床.
寝たのは 0430 ごろ.
3 時間× 2 寝てるから十分だろ.
- 朝飯・弁当の準備.
朝飯.
シャワー.
コーヒー.
- 0810 自宅発.
晴れ.
朝から晴れたのは久ぶりでは.
0825 東京モノレイル浜松町発.
0845 研究所着.
- Dennis さんと昨日見つけた
英語サポートありノート PC
web ペイジみながら
あれこれと.
- 昨日つくった mlf_driver.pl を動かして
挙動を見る.
ま,
あまり抜本的な改良をやってる
ヒマなさそうだな.
- ということで
小手先の改良とて
推定の precision を
実行時に外部から指定するように
変更してみる.
ところがファイル読みこみ部が汚くて,
このような簡単な変更にも時間がかかる.
- どうせ Unival クラス
(整数・倍精度小数・文字列に対応した型)
使うときに lib_siminit を呼び出しているんだから,
FileReader とか Option 使うようにするほうが
よさそうだな.
しかし,
ちょっと手間取りそうなので,
あとまわしだ.
- うん?
実行すると core 吐いてコケてしまうのは
なぜ?
gdb で backtrace.
どう考えてもこんなところで
segmentation fault するはずは
ないんだが
……
あ,
そうか plugin である
尤度関数のほうも作り直さんといかんのか.
本体のほうのヘッダーファイルとか
include してるもんなぁ.
なーんだ,
簡単簡単.
- ……
って,
そりゃあイカンじゃないか !!
この plugin モジュールは
mlfitting だけではなく
シミュレイターの方からも
呼び出す予定なんだから.
- しばらく考えたすえに,
樹高を計算する height 関数だけは
mlfitting 系のクラスに依存しないように
書き換える.
- あれこれやって D-H アロメトリー最尤推定系が
完結したところで昼飯.
弁当を食う.
[太さ-高さ関係の例]
拡張相対成長式とかいう狂信が
あまりあてはまってない ACT
(ヒナウチワカエデ) と「それな
りかな」の BTG (ミズメ).
- さーて,
次のパラメーター推定やる前に
毎木データーをいっぺん
シミュレイター系に持って行かないといけない.
樹木たちを三次元的に再配置して
それぞれの個体から「見た」開空度を
算出するためだ
(そして
これを用いて成長モデルの
パラメーターを推定する).
- 樹木名前データーベイス
(といっても小川選抜 24 樹種しかないが)
の書式を変更する.
Perl に読ませるときは
てきとーでよかったけど,
C++ のストリームに読ませるには
単純にしておいたほうが安全である.
そう,
これからは C++ な作業も始まるのである.
- 書式変更にともない樹木名前とりあつかい
Perl モジュール tree_name.pm を
書き換える.
ココだけ書き換えればよい !
というのがモジュール化していく
プログラミング技法の利点だ.
樹木名に関するかぎり
他の多くの Perl スクリプトたちは
この tree_name.pm に
何もかもお任せしてるんだから.
- えーと,
Perl で
「ひとつ以上の tab で切れ」
は
split /\t+/
で
……
うん,
よさそーだ
(実験してみないと
正規表現に確信もてぬワタシ).
- Pasoh シミュレイターを刈り込んでいって
小川シミュレイターに変えていく.
はい.
まだオブジェクト指向プログラミングが
十分ではありません.
本来ならきちんと継承を使って
BaseForest という基底クラスから
PasohForest とか OgawaForest を
派生するべきなんですが
……
何が「森林」の基底なのか現時点ではわからん.
ははは.
- 北大・地環研では盗難事件多発.
- 鳥取では地震.
震度 6 強ですか.
- Pasoh な Forest クラスから
いらん関数削っていく.
「なんだー,
この
KohyamaB( void )
ってのは
……
あ,
甲山さん特注のオプションだったか.
全部削除」
- コンストラクターの中でいくつ
FileReader オブジェクトを起動しなければ
ならんのだろうか.
このクラスはけっこうカサばるのである.
現状を
ちょっと整理してみよう.
- 最初のパラメーターファイルを読む
FileReader (一時的) :
まずこれを読み込むことで全てが始まる
(そう!
小さなひとつのファイルに
世界構築に至る経路が記されているのである).
しかし
この FileReader は
コンストラクターの中で使い捨て.
- Option オブジェクト:
一方で,
引数処理のこいつは長い寿命が与えられている.
消せないんだろうか.
- 離散空間世界 Gridworld オブジェクト初期化 :
これは Forest クラスの外で
造られるんで気にしなくてよし.
- 全天光源群 Sky オブジェクト初期化:
その実態は
vecotr<LightSource>
.
使い捨て FileReader クラスによる
初期化.
しかしこれって Forest から
分離すべきじゃなかろーか.
どうせどういうシミュレイションでも
LightSource は単独ではなく
タバねて使うものなんだから.
うん,
あとからそうしよう.
わーい,
これでまた Forest コンストラクターが
短くなるぞ.
- 毎木データーの読み込み:
これは initializer という
FileReader オブジェクトを
メンバー変数にしてるが,
初期化がすんだら initializer.Clear()
でカラにしちゃってる.
これも消せないだろうか.
どうせ Tree を初期化するときに
外から呼ぶためにメンバー変数にしてるんでしょ.
- 地形データーの読み込み:
これは従来とは方式を変えるべきだろうな.
一ヵ月ほど前に VoxelTopo クラス造ったことだし.
同時に新しく Quadrat クラスも導入しなくては.
とうぜん FileReader オブジェクト
topo_reader は使い捨て.
少しは見通しがたってきたかな
……
われながら悠長すぎるかもしれん.
- 1745 腹減ったんで帰宅.
本屋 dan には寄らないぞ
……
よーし 1754 東京モノレイル浜松町発.
なんか混んでるなぁ.
連休前の金曜日の夜って
こんなもん?
皆さん,
羽田からどこに行くんだろう.
家まであと数分.
ああ,
それなのに
旧東海道の古本屋でトラップされてしまう.
1850 帰宅.
[旧東海道ぞいの縁日]
六の日は縁日,という
ことで屋台などが並ぶ.
大森らしく海苔の屋台
というか出店まである.
- 晩飯食うと眠りそうになる.
久しぶりに風呂に入る.
- 風呂トイレの電球が切れたので
代えの電球を買って来た.
100W の大きいやつである.
うん,
これで風呂につかりながら
本を読むのに十分だろう.
びんぼー人のささいな楽しみです.
- 湯をはって本を持って入る.
いやー,
明るい.
- 風呂から上がると眠気が取れたので,
ofr2000 のコードを見直してみたりする.
- ま,
明日は土曜日だし.
- 今日の食卓
- 朝 (0750):
米 0.5 合.
タマネギ・卵炒め.
まだ残ってる雑多味噌汁の残り.
- 昼 (1220):
弁当.
米 0.7 合.
タマネギ・卵炒め.
- 晩 (2000):
米 0.6 合.
味噌汁の残りを食べ尽くす.
ネギ・ピーマン・エノキダケの炒めもの.
カレールウで味つけ.
またまた手抜きですな.