坑井データの分析にリレーショナルデーターベースが大活躍
会社が社内で本格的に3次元地震探査データ解釈、地質モデル構築、油層シミュレーションを行うためにワークステーションを導入し始めたのは1990年代の初めごろでした。
当時、個人的にはパソコンなどを購入していろいろといじっていましたが、私が本格的に仕事でコンピューターを利用するようになったのもこの頃からだと思います。
ワークステーション導入に合わせて、世界で開発され始めた様々な専用ソフトウェアも導入し、利用し始めました。
まだまだ利用者も限られる専用ソフトウェアは、バグを修正したり、ユーザーの声に合わせていろいろな機能が次々と追加されたりしていましたが、私が地質モデリングでやりたいことが、専用ソフトウェア上で実現できないということがよくありました。
専用ソフトウェア開発会社に希望を伝えれば、フレキシブルに対応してくれて次のバージョンアップの時にその機能を追加してもらえることもありました。
しかし、例えば地質モデルを構築するためのデータ分析や、パラメータを3次分布させるためのアルゴリズムなど、いろいろなアイディアがあるのに、市販の専用ソフトウェアにその機能が無ければすぐには試せないというのは何か違うだろうということで、専用ソフトウェアに頼らず自力でできるような工夫をいろいろと試みました。
本格的に1からプログラミング言語でプログラムを書いてしまえばよいのかもしれませんが、そこまでの知識と根性の無かった私は、比較的自分でとっつきやすい方法でやってみました。
まず思いつくのは Microsoft Excel などのオフィス系汎用ソフトを利用することです。当時から様々な関数や複数のワークシートを組み合わせて、かなり複雑なことを実現できました。しかし、大量の坑井ログデータを扱うには、当時の Excelなどでは厳しすぎました。
次にトライしたのが、UNIXとよばれるOS (オペレーティングシステム) 上で開発された、AWK (オーク) と呼ばれる、テキストファイルを加工・処理するスクリプト (簡易なプログラム) を比較的簡単に記述できるプログラミング言語です。
こちらはプログラム言語と言ってもなんとか私の頭でも追いつくことができました。工夫次第でかなりいろいろなことができて、大量の数値データをバッチ処理するのに大変重宝しました。今でもときどきテキストデータの処理などに利用させてもらっています。
ただ、私の使い方が悪いのか、テキストファイルの中間生成物も大量にできてしまい、また、いろいろなパラメータの感度分析を行うのもなかなか容易ではありませんでした。
そんな中で、威力を発揮したのが、Microsoft Access などのリレーショナルデータベースソフトです。本来のデータベース、データ管理の使い方とはちょっと違うかもしれませんが、Microsoft Access の機能を使ってデータ処理を行い、処理したデータをテキストファイルに吐き出して、専用ソフトに読み込んで、ビジュアライゼーションさせたりしていました。
当時、Microsoft Access は、Excel に比べるとずっと大量のデータを扱えました。
たとえば、坑井データは、坑井の名前、坑口の位置や標高情報、坑跡情報、井戸に沿った地層や油層の深度情報、検層 (ログ) データ、コア分析データなど様々な情報があります。これらの情報を複数のテーブルでお互いのテーブルをキーとなるデータで関連付けながらデータを管理することができます。
データの種類ごとにテーブルを分けておいて、クエリと呼ばれる簡単なコマンドの組み合わせで、複数のテーブルのデータを組み合わせて、加工して取り出すことができるのです。
データのタイプごとにテーブルを分けておけば、同じデータを重複して持つ必要が無いので、データの修正なども一つのテーブル上で行えば、クエリによるデータ抽出結果にも反映されるので、こっちのテーブルでは修正したのにこっちのテーブルでは修正し忘れたなどの混乱が防げます。
リレーショナルデータベースソフトを利用することによって、自分の好きなように大量のデータを処理し、分析することができるようになったので、本当に助かりました。
地質モデル専用ソフトウェア開発会社の人とディスカッションしていると、「どうやってそのようにデータを処理することができたのか」と聞かれることもありました。役に立つ機能やデータ分析方法は専用ソフトウェアにも反映してもらって、いっしょにソフトウェアを良くしていくようなおおらかな時代でした。
今は専用ソフトウェアのユーザーも増え、開発・アップデート速度も格段に速くなり、ソフトウェアのすべての機能を把握するのが大変です。私の方がソフトウェアに追いついていけないような状況ですが、今でも、ソフトウェアの機能に仕事をコントロールされるのではなく、アイディアを実現することを優先してツールを工夫するということが大切だと思います。
まあ、私のたいていの思い付きやアイディアは、専用ソフトウェアのサポートに聞けば、「こうすれば実現できますよ」と言われることが多くなりましたが。。。