ぎょーむ日誌 2001-01-09
2001 年 01 月 09 日 (火)
- 0700 起床.
3 時間ぐらい寝たか.
- 朝飯・弁当の準備.
体重 72.0 Kg.
運動不足だろうな,
これは.
昨日は雪が降ったらしいけど,
部屋から一歩も出なかったんで
気づかなかった.
朝飯.
コーヒー.
- 0745 自宅発.
晴れ.
寒い.
0805 東京モノレイル流通センター発.
定期券が先週末で切れたんで,
浜松町までの切符 330 円買う.
京浜運河に渡来した水鳥がまた増えたような.
浜松町の気温 2 ℃.
定期券買おうとすると長い行列.
帰りがけにしよう.
0825 研究所着.
- 歩いたりモノレイル車内で,
小川モデリングなんかのデータ処理系に
ついて考えてたんだが
……
BEGIN-END な構造のファイルを読ませる
Filereader クラスを変えんといかんなぁ,
という結論.
現在のは片っ端から読み込んでいって,
階層構造内の位置を表す string を key とする
map を生成して
……
というふうになってる.
この方式は問題をいろいろと惹起しかねないわけで
……
- 巨大ファイルの読み込み時に
メモリーを食いつぶす.
- 複雑な階層構造に,
じつは対応できていない
(これは一括読み込みの問題ではなく,
私のへっぽこ設計の問題なんだが).
- 階層の ID が整数型に制約されてる
(う …… 同上).
なんだ,
一括読み込み方式の問題は第一点だけだったか.
ともかく,
それを解決するには
逐次読み込み方式にせざるをえない.
そうすると,
ファイル構造に少しばかり制約をつくんだが,
これは仕方あるまい.
こんなふうになるんだろうか.
BEGIN FOREST ABC
(先にここが読まれる)
(GetNextItem でたどっていく)
……
BEGIN TREE 1
(GetNextNode とかでここに飛び込む)
……
(GetNextItem でたどっていく)
……
END TREE 1
BEGIN TREE 2
(GetNextNode とかでここに飛び込む)
……
END TREE 2
BEGIN TREE i
……
END TREE N
(ExitNode とかでここに戻る)
(ここに書いてあることは後から読まれる)
(GetNextItem でたどっていく)
……
END FOREST ABC
- とはいえ,
小さなファイルを読み込む場合なんかだと
内容をすべて map につっこむ
Filereader の簡便性は捨てがたいから
……
逐次読み込みの新しい input クラスを
作るべきなんでしょうな.
- いちいち GetNext... とかするのはうっとうしいなあ.
書式にもっと制約を加えて,
非階層データはイッキ読みして map につっこむかな.
そうすると現ヴァージョンとの兼ね合いもよい.
いや,
しかし階層構造の無い巨大ファイルだと
メモリーが足りなくなるか.
やはり新規作成か.
- ふと思い出して,
Wingz3.11 を試用してみることに.
rpm パッケイジのサイトは混んでたので
wingz-311.tar.gz というのを取ってくる.
ソースではなくバイナリーである
(
製造元のサイト
見るといろんな OS 用のを出してるみたいだ).
ああ,
しかしなんとしたことか,
開空度ファイルはこれでも開けないのである.
まあ,
xlHtml あるからかまわんのだけど.
- とはいえ,
入力系の大改善などに取り掛かるまえに,
gnuplot 呼び出しの自動化を終わらせなくては.
これができたら,
小川の現ヴァージョンは凍結して,
入力系を改善.
開空度データを読ませる Eye は
樹木個体ではなく方形区の子分にすべきなんで,
階層構造がいろいろとややこしくなるのである.
あ,
include というような構文が
使えるようにすべきなのかも.
- 見通しのたたぬままコード書き.
- お,
西村さんがいつのまにか PowerBookG3.
「あ,よさそうなマシンですね」
「安かったですよ.
ハードディスクが小さくて 10GB しかないから」
「いやはや,
いままで 320MB (PoerBook540c 改) だった
ヒトが 10GB で『小さい』ってコトはないでしょう」
- 森林総研の正木さんからデータ送られてきたり,
それについて ofm-ml で質問してるうちに
午前終了.
- 昼飯食いつつネット上のニュースなど見る.
fj.lang.perl より.
E*cel は 65535 行しか CSV ファイルが読めない !
なんかスゴい
……
どういう了見で作っているんだろうか.
- 昼飯食ったあともメイル書き.
小川開空度問題と,
あと広島の小林さんと樹木個体モデリングの相談.
- 正木さんから送っていただいたファイルが
複雑な変換を経て unix コマンドでは扱えない
JIS 呪われな ``?'' で始まる名前になる.
ふつーの手段では消せないので,
あまり好きではない mc (midnight commander)
を rpm -Uvh
(ぱっけいじいんすとーる)
してファイル消去.
毒をもって毒を制する.
- 1430 コード書き再開.
えーと,
gnuplot 自動呼び出しのやつである.
うう,
この末端にトラップされたまま
なかなか脱けだせん.
- 甲山家の新しいイヌの写真画像を
拝謁させていただく光栄によくする.
なんだかずいぶんとまた小型のようで.
- Perl スクリプト書き,
初歩的なところでつまづく.
どうして
use lib
してもモジュール置場へのパスが通らんのだろう
……
なるほど,
ふつーの変数で
use lib $ofr_home;
てなこと書いてもダメなんだな.
ユーザー定義の変数が評価される前に,
最初にコード内の全ての use
文が評価されるわけだ.
ということで,
どうせ環境変数を設定してるんで
use lib $ENV{ "OFR_HOME"};
というふうにするしかないか.
%ENV
はさらに早く評価されるからである.
BEGIN { $ofr_home = ... }
でもいいのかもしれんが,
ちょっと邪悪なかんぢですな.
これは.
- さーて問題は,
Perl では初挑戦の関数の再帰的呼び出しである.
再帰呼び出しだけだったら
別にどうってことないんだけど,
このときにファイルハンドルが重複する
……
default では
ファイルハンドルはグローバルなんだよね.
つまり再帰呼び出し先で
close
されたり何かされたりして,
まずい.
なんかこのあたりをごまかすことできないか
……
あ,
わかった.
local
使うんだ.
sub function {
...
local *HANDLE; # my ではなく local
open HANDLE, ...; # 新しくファイルを開く (A)
...
function ...; # 再帰呼び出し (別のファイルが開く)
# (A) で開いたファイルは保持したまま
...
close HANDLE; # (A) で開いたファイルだけ閉じる
...
}
これでファイルハンドルが局所化されて,
function
を再帰呼び出ししても安全です.
- ようし,
これで自作 Perl スクリプト内の世界に限るとはいえ,
gnuplot スクリプトで include 文が使えるようになった.
include して必要な部分だけ直す,
ということができるわけです.
- えーと,
あとは樹種ごとに呼び出して gnuplot 呼び出して,
EPS で出させて,
型ワクになる TeX ファイル生成して
……
簡単なことばかりなんだけど面倒.
もう 1730 すぎたし帰ることにしようっと.
- 1745 研究所発.
モノレイル定期券売場,
この時刻でも長い行列.
しょうがないんで私もその末端につく.
定期代一月 10300 円.
1814 東京モノレイル浜松町発.
1850 帰宅.
- う.
晩飯食ったら意識が途切れたみたいに
2 時間寝てしまった.
- 今日の朗読
``Analytical Population Dynamics'' (Royama, 1992)
Preface
Part I Theoretical bases of population dynamics
Chapter 1 Basic properties
and structure of population processes
- 1.1 Introduction
- さて今日は先の章に進む前に本の最初に戻って,
そこから読み直すことにする.
Part I はこの個体群生態学本の理論篇たる部分なんだけど,
著者はまっとうなヒトなので
preface の最初に堂々と明記されてるように,
この本は読者が自分のモデルを使って
データを解析する方法論を提供するものであり,
Chapter 1-4 の数式に満ちた章もまた
当然それに従うのである.
とくに最初の章は蝋山個体群生態学に特有な概念や用語が
いろいろと出て来るんで,
ゆっくりと読んでいくことにしよう.
- 今日の食卓
- 朝 (0715):
米 0.6 合.
昨晩の残りで雑炊.
- 昼 (1230):
弁当.
米 0.8 合.
昨晩の残りの八宝菜ふうなモノ.
- 晩 (1920):
米 0.7 合.
よくわからぬ雑炊.
ハクサイ・ネギ・エノキダケ・麸.
昆布だし味噌味.