macroscope

( はてなダイアリーから移動しました)

(わたしの)データマネジメントがなってない事例

このところえらそうな主張を書いてきたが、自分の仕事ぶりにはいろいろなさけないことがある。これはその一例にすぎない。

元同僚から、わたしが昔計算した結果のデータを使いたいという相談を受けた。昔というのは13年前から6年前にかけてで、大学に所属していたときと今の所属組織に移ってからにまたがる。

わたしのこれまでの仕事のスタイルは個人研究型だった。所属組織が確保した計算機などの設備や気象データなどの材料を使いはするが、どんな計算をしてどんな結果を得たかは自分だけが知っている。(組織での仕事のしかたがこれではまずいことは今ではわかっている。しかしなかなか改善できないでまわりの人々に迷惑をかけてしまっている。)

コンピュータを使って計算をしているのだが、その正面の目的は科学的知見を得ることだ。ここで話題にする研究は、現在の所属に移って以後、いくつかの学会発表はしたものの、論文に至っていないというのも(ほかの作業を始めてしまったからではあるが)なさけない話だが。

その研究のための中間結果のデータなのだが、公共のお金をもらってやっている研究だし、自分の研究以外にも役にたつと思うので,ほしい人には提供しようと思った。しかし他方、大気のエネルギー保存と水蒸気の質量保存という専門家にとってはあたりまえの式にもとづいた集計をしただけなので、そこまでの結果を研究組織の成果物として位置づけることは考えなかった。研究者どうしの個人的情報交換の一部としておりにふれて提供するという形で来た。

6年前に、データをまとめてある媒体に入れてグループ共通の場所に置かせてもらったのだが、中身を知っているのは自分だけだった。その後忘れていて、今回さがした。見つかったが、全部ではない。一部の期間の計算値がどこかに消えてしまった。しかし月ごとの集計値に限れば大部分の期間のものが残っていて、元同僚の目的にはそれでよく、再計算する必要はないということになった。(再計算が必要ならば、昔のように必死にならなくてもできる。しかし手間はかかる。)

(なお、この記録媒体を読む装置があるうちに見なおすことになってよかった。別の話だが媒体が読めなくなって困っている件もある。)

ただし、月ごとの計算値をさらに空間内挿する工程は、一部の期間についてやりなおす必要があった。その作業をしたプログラムは残っているが、自分が使うことしか考えていなかったので説明文書はない。プログラムを読みかえして、バグがあることに気づいた。Fortran (GNUのg77など)の「順アクセス書式なし」で書き出したデータを、「直接アクセス書式なし」で読んでいる。書いたのとバイト順(endian)が違う機種で読むために意識的にこのようにしたのだが、それならば、順アクセス書式なしで書き出したデータには最初と最後にレコード長を表わす4バイト整数がついているので、少なくともその最初のほうをデータ内容と分けて読みこむ必要があったのだ。

このプログラムで空間内挿された結果は、材料を1ますずれた形で読みこんで処理したものだということになる。結果は現実的に見えるが、大まかに言えば空間位置が200 kmほどずれたもので、きびしく言えばまったく無意味な計算だった。保存されていた内挿ずみのデータがこのバージョンのプログラムによる結果かどうかはファイルのタイムスタンプから推測するしかなくなっているが、バグを訂正して計算しなおしてみた結果は保存されたものと違う。

とりあえず元同僚には訂正ずみの結果を渡したのだが、ファイル名が同じでタイムスタンプが違い内容も微妙に違うデータセットができてしまったままだ。次に使うときまでに、材料、プログラム、結果の関係を文書化しておかないといけない。