図1に、実施例1に係る科学データ分析システムの機能構成例を示す。科学データ分析システムには、実験や数値計算のデータを管理するためのデータベースサーバ(101)と、それを可視化するためのクライアントコンピュータ(111)が含まれており、両者はネットワーク(110)によって接続されている。なお、クライアントコンピュータ(111)は、単数でも複数あってもよく、複数あれば複数人で同一のデータの分析をそれぞれ同時並行的に行えるという利点がある。
データベースサーバ(101)は、画像を生成するための画像生成部(102)と、クライアントコンピュータとの通信を行う表示情報送受信部(103)、科学データを検索するための時空間検索部(104)、科学データを格納する時空間DB(105)、時空間DB(105)に科学データを登録する登録部(106)を有する。時空間DB(105)は、時空間検索部(104)から検索要求を受け付けて、検索要求に指定されている検索条件に該当するデータを記憶装置(図2の記憶装置(207))から読み出して時空間検索部(104)に返却する。なお、時空間DB(105)は、複数の装置から構成されるシステムであってもよいし、あるいはネットワーク越しに外部のシステムへデータを保存するように構成されていてもよい。
クライアントコンピュータ(111)は、ネットワーク(110)を介して情報を閲覧するためのユーザインタフェースを提供するWebブラウザ(112)をもっており、当該Webブラウザ(112)は、3D表示を行うための3D表示部(113)や、表示条件設定部(114)を有する。
図2に実施例1に係る科学データ分析システムのハードウェア構成例を示す。データベースサーバ(101)、クライアントコンピュータ(111)はそれぞれ、演算機能を持ったプロセッサ(205)、高速に読み書きが可能な揮発性一時記憶領域であるDRAM(208)、HDDやフラッシュメモリなどを利用した永続的な記憶領域である記憶装置(207)、通信を行うためのネットワークインタフェースカードであるNIC(206)、情報を表示するためのディスプレイデバイスであるモニタ(209)、コンピュータの操作を行うためのマウスやキーボード等の入力装置(210)を備えている。
データベースサーバ(101)の記憶装置(207)には、時空間DB(105)によって管理される科学データが格納されるほか、データベースサーバ(101)のプロセッサ(205)で実行されるプログラム(以下では「サーバプログラム」と呼ぶ)、クライアントコンピュータ(111)で実行されるプログラム(以下ではこれを「クライアントプログラム」と呼ぶ)が格納されている。データベースサーバ(101)のプロセッサ(205)は、記憶装置(207)からDRAM(208)にサーバプログラムを読み出して実行することで、データベースサーバ(101)を、画像生成部(102)、表示情報送受信部(103)、時空間検索部(104)、時空間DB(105)、登録部(106)等の各機能ブロックを有する装置として動作させる。
なお、以下では、データベースサーバ(101)で実行される各種処理の内容を説明する際、時空間検索部(104)等の機能ブロックを処理の主体として説明することがある。先に述べたとおり、時空間検索部(104)等は、サーバプログラムがデータベースサーバ(101)のプロセッサ(205)で実行されることによって実現された機能ブロックである。そのため以下の説明において、機能ブロックを主語にして記述されている処理は、実際にはデータベースサーバ(101)のプロセッサ(205)がその処理を行うことを意味する。ただし説明が冗長になることを避けるため、本実施例では、時空間検索部(104)等の機能ブロックを処理の主体として、各種処理の内容を説明する。
一方クライアントコンピュータ(111)の記憶装置(207)には、クライアントコンピュータ(111)で実行されるプログラム(以下では「ブラウザプログラム」と呼ぶ)が格納され、クライアントコンピュータ(111)のプロセッサ(205)は、記憶装置(207)からブラウザプログラムを読み出して実行することで、Webブラウザ(112)を備えた装置としてクライアントコンピュータ(111)を動作させる。また、3D表示部(113)と表示条件設定部(114)は、クライアントプログラムによって実現される機能ブロックである。具体的には、Webブラウザ(112)は、クライアントプログラムをデータベースサーバ(101)からダウンロードし、クライアントコンピュータ(111)のプロセッサ(205)に実行させることで、Webブラウザ(112)は、3D表示部(113)と表示条件設定部(114)を備えたブラウザとして機能することになる。
なお、以下では、クライアントコンピュータ(111)で実行される各種処理の内容を説明する際、表示条件設定部(114)等の機能ブロックを処理の主体として説明することがある。先に述べたとおり、表示条件設定部(114)等は、クライアントコンピュータ(111)のプロセッサ(205)でクライアントプログラム等が実行されることによって実現された機能ブロックである。そのため以下の説明において、機能ブロックを主語にして記述されている処理は、実際にはクライアントコンピュータ(111)のプロセッサ(205)がその処理を行うことを意味する。
図3にクライアントコンピュータ(111)のWebブラウザ(112)が、クライアントコンピュータ(111)のモニタ(209)に表示する表示画面(300)の例を示す。この画面の中央には、表示対象データ群(301)が三次元表示されている。ユーザが、クライアントコンピュータ(111)の入力装置(210)として接続されたマウス等の装置を操作することにより、画面上のカーソル(302)を動かし、例えば画面上をドラッグすると図形が回転する等、様々な視点からの可視化が容易に行える。視点については、(303)の視点変更ウインドウにも視点の方向についての数値が表示されており、カーソル(302)を用いた変更結果についてもこれに反映されるとともに、(303)に直接設定することで視点を移動することもできてもよい。
また、ユーザは、表示条件を設定するコントロールウインドウ(304)を用いて、表示対象のデータを指定することができる。データベースサーバ(101)には事前に多数のデータが格納されており、ユーザはどのデータを表示対象とするかをドロップダウンボックス(305)によって設定できる。表示対象のデータは、互いに直交するx軸、y軸、z軸によって定まる、三次元空間の直交座標系上の微細な格子状のデータであるため、表面にないデータは他の要素に隠れて表示されない。
そこで、実施例1に係る科学データ分析システムでは、ユーザは表示範囲としてx軸、y軸、z軸のそれぞれの範囲を指定可能とし、指定された範囲で特定される平面によって構成される断面上の、各座標の属性値(後述する物理量)を可視化することが容易に可能な機能を持つようになっている。この設定は(306)のスライドバーを操作することによって行える。たとえばx軸の範囲として、12から120の範囲が指定された場合、x=12の平面とx=120の平面による断面が表示画面(300)に表示される。なお、x軸、y軸、z軸の範囲の上限と下限に指定可能な値(ユーザがスライドバー(306)を用いて設定可能な値)は、三次元空間上の格子点の座標値と等しいものとする。
またx軸、y軸、またはz軸の範囲が指定されなかった場合には、あらかじめ定められた最小値と最大値で特定される平面によって構成される断面が、表示画面(300)に表示される。本明細書では、あらかじめ定められているx軸の最小値、x軸の最大値、y軸の最小値、y軸の最大値、z軸の最小値、z軸の最大値をそれぞれ、Xmin, Xmax, Ymin, Ymax, Zmin, Zmaxと表記する。
また、この表示画面(300)には、表示対象のデータ種(たとえば温度、エネルギー、密度、磁化や、波動関数の値や流体の流速、電場などの物理量である)を指定できるインタフェースであるドロップダウンボックス(307)も設けられている。ユーザがドロップダウンボックス(307)を操作することで指定された種類のデータが、表示画面(300)上の平面(断面)上に表示される。データを表示する際、データは色情報(画素値)に変換され、変換された色を持つ点として、平面(断面)上に表示される。たとえばある座標値のデータの値が大きいほど、その座標は明るい色を持つ点として表示され、逆にデータの値が小さいほどその座標は暗い色を持つ点として表示されるとよい。
コントロールウインドウ(304)を用いて指定された各種条件の設定内容は、ユーザが画面上に配置された更新ボタン(308)を押下することによって確定し、設定内容に基づいて表示画面(300)に表示される内容が更新される。
なお、もし科学データ分析システムが十分な性能を有している場合、更新ボタン(308)を押すまでもなく、ユーザが(306)や(307)を操作した直後に、自動的に表示画面(300)上に表示される断面の設定を行って、表示内容の更新を行うようにしても良い。また、例えばユーザが表示画面(300)上に表示されている断面などをカーソル(302)を用いてクリックした時に、クリックされた座標の物理量を表示するためのウインドウ(309)を用意するなど、様々な観点から科学データを可視化、集計等を行うことができる機能を備えてもよい。
ここで、ユーザが更新ボタン(308)を押下したときの、科学データ分析システムの処理手順について、図4を用いて説明する。更新ボタン(308)が押下されると、表示条件送受信処理(401)が実行され、クライアントコンピュータ(111)からデータベースサーバ(101)に対して更新の要求が行われる。それをうけて、データベースサーバ(101)では、検索条件生成処理(402)および画像生成処理(404)が実行され、その結果は表示更新処理(405)においてクライアントコンピュータ(111)に転送され、画面に反映される。
図5に表示条件送受信処理(401)の処理フローを示す。まず、表示条件設定部(114)は、画面上のコントロールウインドウ(304)上で設定されている表示対象範囲を取得する(501)。次に表示条件設定部(114)は、その値をもとに表示条件データ(601)を作成し、データベースサーバ(101)の表示情報送受信部(103)へと送付する(502)。表示情報送受信部(103)は、この表示条件データ(601)を受け取る(503)と、それをもとに画像生成条件データ(602)を生成し、画像生成部(102)に送付する(504)。
図6に表示条件データ(601)およびこれから生成される画像生成条件データ(602)のデータの構成例を示す。表示条件データ(601)は、クライアントコンピュータ(111)の画面上のコントロールウインドウ(304)上で設定されている値から生成されるデータである。
表示条件ID(603)は、クライアントコンピュータ(111)が結果の返送を受け取った際に対応関係を見失わないように付与される識別子であり、クライアントコンピュータ(111)内で適時自動的に生成される。例えばクライアントコンピュータ(111)は、操作時刻とクライアントコンピュータ(111)のネットワークアドレスの対などを、表示条件ID(603)として用いることができる。
対象データID(604)は、コントロールウインドウ(304)上の対象データを指定するドロップダウンボックス(305)で指定されたものである。なお、科学データ分析システムが、ドロップダウンボックス(305)に表示される一覧を生成するために、別途、クライアントコンピュータ(111)とデータベースサーバ(101)とで通信を行うことで、その一覧情報を送受信するなどの機能を有しているとよい。科学データ分析システムがこのような機能を有することで、データの追加が容易になるという利点がある。
X表示範囲(605)、Y表示範囲(606)、Z表示範囲(607)の3つは、座標の表示範囲を意味する情報であり、例えば1≦x≦178、50≦y≦199、60≦z≦80などのように各座標の上限と下限が設定される。X表示範囲(605)、Y表示範囲(606)、Z表示範囲(607)に設定される情報は、クライアントコンピュータ(111)の画面上の座標コントロール用スライドバー(306)によって設定された値(範囲)である。
最後に、表示対象属性(608)には、クライアントコンピュータ(111)の画面上の表示対象物理量のドロップダウンボックス(307)に指定された属性(たとえば物理量の種類である)が、描画(色分け)に用いる情報として格納される。なお、これについても、事前にクライアントコンピュータ(111)とデータベースサーバ(101)とで通信を行い、表示対象属性(608)に表示される属性情報の一覧を送受信するなどの機能が設けられていると、データ構成の変更が容易になるという利点がある。
画像生成条件データ(602)は、この表示条件データ(601)をもとに、表示情報送受信部(103)によって生成されるデータである。表示条件データ(601)は表示画面(300)上でユーザによって設定された要求であるが、実際に画面に表示するのは図3に示されるような直方体であり、直方体の各面に貼り付ける画像が必要とされる。
そこで、表示情報送受信部(103)は、表示条件データ(601)を個々の画像(本例では6枚の画像)の生成要求へと細分化する。画像生成条件データ(602)は細分化された画像の生成要求一つ一つを意味する。したがって、画像生成部(102)に送付する処理(504)において、画像生成条件データ(602)は複数(実施例1では6つ)送付される。ただし処理効率を考慮して、表示情報送受信部(103)は複数の画像生成条件データ(602)の組をまとめて1回で送付してもよいし、あるいはソフトウェア実装の理由(機能の単純化など)により単数の画像生成条件データ(602)の送付を複数回行ってもよい。
次に画像生成条件データ(602)に含まれる要素それぞれの内容を説明する。画像生成条件ID(609)は、結果を受け取った際の対応関係を維持するための識別子であり、データベースサーバ(101)内で適時自動的に生成される。例えばデータベースサーバ(101)は、表示条件ID(603)の末尾に連番を付与したものを、画像生成条件ID(609)としてもよい。
表示条件ID(610)には、画像生成条件データ(602)の元となった表示条件データ(601)の表示条件ID(603)がそのまま格納される。これにより、画像生成条件データ(602)と表示条件データ(601)の対応関係が失われないようになっている。
表示対象属性名(614)についても同様に、表示対象属性(608)に格納されていた情報がそのまま引き継がれる。対象断面(611)は、当該画像生成条件データ(602)に基づいて生成される画像がどの面に貼り付けられるべきものであるかを指定するための情報である。実施例1では、画面に表示される断面はx軸、y軸、z軸のいずれかの軸に垂直な平面(つまりx=一定、y=一定、z=一定のいずれかの条件で特定される面)であるため、実施例1では対象断面(611)にはx=一定、y=一定、z=一定のいずれかが格納される。ただし、実施形態によっては様々な断面を表示させることがありうる(例えば、球面や円筒など)。その場合は各々に適した情報が格納される。指定位置(612)には、対象断面(611)で特定された面の値が格納される。一方表示範囲(613)には、対象断面で特定されなかった軸の表示範囲が格納される。
実施例1においては、対象断面(611)、指定位置(612)及び表示範囲(613)に格納される情報は、表示条件データ(601)のX表示範囲(605)、Y表示範囲(606)、そしてZ表示範囲(607)の値から生成される。例えばこれらに50≦X≦150および5≦Y≦15が設定されているときは、xの条件による断面はx=50の面とx=150の面、yの条件による断面はy=5およびy=15の面、zは条件がないため最大・最小値を条件と指定したこととなる。
したがってこの表示条件データ(601)からは、対象断面(611)がx=一定、指定位置(612)がx=50、表示範囲(613)が5≦y≦15の画像生成条件データ(602)と、対象断面(611)がx=一定、指定位置(612)がx=150、表示範囲(613)が5≦y≦15の画像生成条件データ(602)が、また対象断面(611)がy=一定、指定位置(612)がy=5、表示範囲(613)が50≦X≦150の画像生成条件データ(602)と、対象断面(611)がy=一定、指定位置(612)がy=15、表示範囲(613)が50≦x≦150の画像生成条件データ(602)が生成される。
zの条件については特に指定されていないため、対象断面(611)がz=一定、表示範囲(613)が50≦x≦150および5≦y≦15の画像生成条件データ(602)が2つ生成される(具体的には、指定位置(612)がz=Zmin(z軸の最小値)、z= Zmax(z軸の最大値)である、二つの画像生成条件データ(602)が生成される)。すべてあわせると、6つの画像生成条件データ(602)が生成されることとなる。
図7に検索条件生成処理(402)の手順を示す。検索条件生成処理(402)では、画像生成部(102)が表示情報送受信部(103)から受け取った画像生成条件データ(602)をもとに、検索条件文を生成する(701)。一般的に、データベースシステムにおける検索要求はSQL等の特定言語で記述されるが、この処理では検索条件文として、画像生成条件データ(602)で指定されている条件に該当するデータ(後述する物理量データ(901))を検索するためのSQL文等が生成される。ここで生成された検索条件文は時空間検索部(104)に送付される(702)。
図8に時空間検索処理(403)の手順を示す。時空間検索処理(403)は複雑な条件文を処理する場合に検索条件文を加工するための処理であるが、実施例1では単純に、時空間検索部(104)は検索条件文を時空間DB(105)に送付し(801)、その結果を受け取る(802)だけでよい。あるいは時空間検索部(104)は、処理を高速化するための最適化を行ってもよい。
図9に時空間DB(105)に格納されている物理量データ(901)の構成を示す。物理量データ(901)は本システムが扱う対象となるデータの本体であり、科学計算や実験の結果が格納されている。
科学データID(902)はある一連のデータに振られた一意の識別子である。例えば、時空間DB(105)に物理量データ(901)が登録される際に、実験の試行や、数値計算の開始から終了までの一連の動作など、科学データを区切る単位ごとに一意の値が付与される。言葉を変えると、同一の科学データID(902)をもつデータを集めることにより、元の科学データが復元できる。なお、この科学データID(902)は対象データID(604)と対応づいており、対象データID(604)を指定することは科学データID(902)を指定することと等価である(より具体的には、対象データID(604)として科学データID(902)そのものが用いられてもよい)。
物理量(906)は科学データの実体となる単数ないし複数の物理量であり、たとえば温度、エネルギー、密度、磁化や、波動関数の値や流体の流速、電場など様々なものが格納されうる。X(903),Y(904),Z(905)には、物理量(906)が計測された(または算出された)位置の座標値が格納されている。1つの物理量データ(901)の中には、複数種類の物理量が格納されてもよい。複数種類の物理量が格納されている場合、画像生成時には表示対象属性名(614)で指定されている種類の物理量が選択され、選択された物理量が画像として表示される。本明細書では、この選択された物理量のことを「属性値」と呼ぶことがある。
時空間DB(105)はこのデータに対し、検索条件文で指定されている検索を行い、その結果を時空間検索部(104)に返すように構成されている。図10にこの検索についての模式図(簡単のため2次元化した)を示す。図中の破線(1001)が格子を意味しており、時空間DB(105)には破線(1001)同士の交点に該当する座標と、その座標において、実験により測定された(または数値計算などで算出された)物理量(906)が格納されている。
実施例1では、このデータに対し、太線(1002),(1003),(1004),(1005)で示されたx、y、zに関する条件で検索が行われる。例えば(1002),(1003)はz=一定の条件を意味することとなるが、実際に検索により抽出されるべき座標は、太線(1002),(1003)上の格子のうち、yの範囲(太線(1004)と(1005))で挟まれた線分(1006)の上に位置する格子の座標となる。
なお、本図は簡単のため2次元で記載したが、実際には3次元のためxの条件でも挟まれるため、y軸の範囲とx軸の範囲によって囲まれた面上に位置する格子の座標が検索対象データになる。この検索は、多数のデータに対する検索となるため、一般的に長い処理時間を要することになる。そこで、登録部(106)は、時空間DB(105)に物理量データ(901)を登録する際に、x座標の値、y座標の値、そしてz座標の値をキーとする索引をそれぞれ構築する。これにより時空間DB(105)は、たとえばz=a(aは定数)のが指定された場合、索引を参照することにより、z=aの物理量データ(901)の物理格納位置(記憶装置(207)上のアドレス等)を直接特定できる。つまり時空間DB(105)は、記憶装置(207)上の全データを読み出すことなく、z=aの物理量データ(901)だけを読み出すことができる。
検索結果は図11(1101)に示すように、物理量データ(901)と同様の構成で、ただしデータが表示対象になりうるもののみ限定されたものが得られることになる。
画像生成部(102)は、この検索結果を受け取り、検索条件生成処理(402)で受け取った画像生成条件データ(602)と対応付けて、画像生成処理(404)を実行する。この手順を図12に示す。
画像生成部(102)は検索結果(1101)の物理量(1102)の中から、表示対象属性名(614)に合致するものを選定し、所定のルールに基づいて色情報に変換し(値の異なるものは他の色を用いる、値の大きさに応じて濃さを変える、など)、画像データを生成する(1201)。ここで生成される画像データのフォーマットは、たとえばBMPフォーマットなどの公知のフォーマットでよい。生成された画像データは、表示情報送受信部(103)に受け渡される(1202)。
図13に表示更新処理(405)を示す。この処理では、まず表示情報送受信部(103)が前記の画像生成処理(404)で生成された画像データを受け取り(1301)、3D表示部(113)に送信する処理を行う。
表示情報送受信部(103)が3D表示部(113)に画像データを送信する際に用いる表示用画像データ(1401)の構成を図14に示す。前記の通り、データベースサーバ(101)はクライアントコンピュータ(111)から受け取った表示条件データ(601)から複数の画像生成条件データ(602)を生成し、各画像生成条件データ(602)に対応する画像を生成する。これらの画像はそれぞれ複数の画像生成条件データ(602)のいずれかに対応しているため、結果的には表示条件データ(601)一つに対して複数の画像が対応づくこともありえる。表示用画像データ(1401)はこの画像一つ一つに相当するデータである。したがって、表示条件データ(601)に対する応答は複数の表示用画像データ(1401)からなることがある。
表示用画像データ(1401)には、表示条件ID(1402)が付与されており、それぞれの表示用画像データ(1401)がどの表示条件データ(601)に対応するかが表示条件ID(603または610)との比較によって判別できる。
対象断面(1403)、指定位置(1404)についてはその画像の生成時の元となった画像生成条件データ(602)の情報が格納されており、それぞれ(611)、(612)が引き継がれている。(1201)で生成された画像データは画像(1405)に格納される。なお、表示画面の属性表示ウインドウ(309)への属性値の表示が行われる場合には、画像の画素夫々に対応する属性値(1406)も、表示用画像データ(1401)に付与される。
複数の表示用画像データ(1401)のうち、一連のもの(表示条件ID(1402)が共通のもの)を束ねたものがクライアントコンピュータ(111)の3D表示部(113)に送信される(1302)。3D表示部(113)はそれを受け取り(1304)、画面に反映する(1305)。画面への反映にあたっては、受け取った画像を単一直方体の対応する面に貼り付ける公知のテクスチャマッピングの方法を適用することで、非力なクライアントコンピュータ(111)であっても、軽快な動作が可能となる。
実施例1に係る科学データ分析システムは、以上の処理を行うので、画面に表示されるデータのみが記憶装置(207)から読み出され、また画面表示に必要なデータだけがデータベースサーバ(101)からクライアントコンピュータ(111)へと送信される。つまり実施例1に係る科学データ分析システムは科学データ全体を送受信する必要がないため、データベースサーバ(101)とクライアントコンピュータ(111)の間の通信量を削減でき、また、クライアントコンピュータ(111)上での動作を軽快にすることができる。また、このような軽快さを実現するにあたっては、通常、表示範囲等を変更することをできないようにすることで高速化が図られることが多いが、実施例1では表示する断面を変更するなどの処理を画面上で簡単、高速に行える利点がある。
続いて実施例2に係る科学データ分析システムについて説明する。実施例2に係る科学データ分析システムのハードウェア構成は、実施例1に係る科学データ分析システムと同じであるため、図示は略す。
図15に実施例2に係る科学データ分析システムにおける、Webブラウザ(112)の表示画面(300’)の例を示す。実施例1に係るWebブラウザ(112)では、x軸、y軸、z軸のいずれかに対して垂直な切断面を可視化可能であった。一方実施例2に係るWebブラウザ(112)では、切断面が斜めであってもよい点が、実施例1に係る科学データ分析システムと異なる。
ユーザが切断面を指定する時、表示画面(300’)上でカーソル(302)を用いて切断面をドラッグすることで、切断面の向きを調整可能である。入力された切断面は画面上に面(1501)として表示され、それをドラッグするとその位置や傾斜を変更することができる。ユーザが切断面を指定し、更新ボタン(1502)を押下することによって、その結果が画面に反映される点は、実施例1と同様である。
なお、切断面の指定方法には、上で述べた方法以外のものが用いられてもよい。たとえば平面は以下に述べる(式1)のような数式で表現可能である。そのためWebブラウザ(112)(の表示条件設定部(114))は、ユーザが切断面を表す数式を入力可能なインタフェースを提供できるように構成されていてもよい。
また、実施例2に係る科学データ分析システムでは、実施例1で説明したような断面(x軸、y軸、z軸のいずれかに対して垂直な切断面)も可視化可能である。しかし以下では説明が複雑になることを避けるため、x軸、y軸、z軸のいずれかに対して垂直な切断面はユーザからは指定されず、ユーザは(式1)で表現される平面を1つだけ切断面として指定する場合の例を説明する。この場合Webブラウザ(112)の表示画面(300’)には、x=Xmin、x= Xmax、y= Ymin、y= Ymax、z= Zmin、z= Zmaxの式で特定される平面(実施例1で説明した、x軸、y軸、z軸の何れかに垂直な面)と、(式1)で表現される平面が、切断面として表示される。また、以下の説明では、(式1)で表現される平面による断面を、「斜めの断面」または「斜め切断面」と呼ぶ。
更新ボタン(1502)押下後は、実施例1の手順(400)と同様の処理が実行される。ただし実施例2では、表示条件送受信処理(401)によってクライアントコンピュータ(111)とデータベースサーバ(101)の間で送受信される表示条件データの内容が、実施例1で説明したものとは異なる。図16に実施例2の表示条件データ(1601)を示す。表示条件データ(1601)は、実施例1と同様の表示条件ID(1603)、表示対象属性(1605)を含むが、断面式(1604)を含む点が異なる。実施例1では、x軸、y軸、z軸のいずれかに直交する平面のみが断面として指定可能であったため、それに適した切断面の形式が記録されていたが、実施例2では斜め方向も記述できるように、数式の情報が断面式(1604)に格納される。具体的には
ax+by+cz=1 (式1)
(ただし係数a,b,cのうち少なくとも2つの係数は、ゼロでない値である)
によって平面が同定できることから、断面式(1604)には、(式1)の3つの係数a,b,cの値が格納される。
また、この表示条件データ(1601)から生成される画像生成条件データ(1602)も実施例1の画像生成条件データ(602)とは異なる。画像生成条件ID(1606)、表示条件ID(1607)は実施例1と同様であるが、対象断面式(1608)には表示条件データ(1601)の断面式(1604)の情報が格納される。実施例1では、表示条件データ(601)一つに対して6つの画像生成条件データ(602)が生成されていたが、実施例2では必ずしも6つとは限らない。たとえば、実施例1で説明したように、表示範囲としてx軸、y軸、z軸のそれぞれの範囲を指定され、さらに上に述べた(式1)で表現される平面が1つ、切断面として指定される場合、6つないし7つの画像生成条件データ(1602)が生成される。ただしユーザが、切断面として(式1)で表現される平面を複数設定できる場合には、それに応じてより多くの画像生成条件データ(1602)が生成される。
画像生成条件データ(1602)を受け取った画像生成部(102)は、実施例1と同様に検索条件文を構築し、時空間検索部(104)に引き渡す。すると、検索条件文を受け取った時空間検索部(104)は、時空間検索処理(403)を実行する。なお、x軸、y軸、z軸の何れかに垂直な面への画像表示手順は、実施例1で説明したものと同じであるため、以下では主に、斜め切断面への画像表示手順を説明し、x軸、y軸、z軸の何れかに垂直な面への画像表示方法の説明は略す。
実施例2における時空間検索処理(403)を図17に示す。実施例2に係る時空間検索部(104)は、斜めの断面上の座標に定義されている物理量の検索を行う必要があるが、斜めの断面上の座標の物理量データが必ずしも時空間DB(105)に格納されている保証はない。そのため時空間検索部(104)は、斜め切断面上の座標の近傍に位置する座標の物理量データを検索する必要があるが、これは単純なB−Tree等では処理時間がかかるという問題がある。
そのため、実施例2に係る科学データ分析システムでは、時空間DB(105)に格納する物理量データに時空間コードと呼ばれる区画番号を付与して格納する。そして時空間検索処理(403)では、時空間コードを用いた検索を行う。この時空間コードは、空間を一定の幅の区画に区切ることにより生成される領域に割り振ったコード値である。空間を一定の幅の区画に区切ることにより生成される領域のことを、「時空間分割領域」と呼ぶ。
図18に実施例2における時空間DB(105)が格納する物理量データ(1801)を示す。物理量データ(1801)には、時空間DB(105)に登録される際に前記の時空間コード(1802)が付与される。物理量データ(1801)に含まれるそれ以外の情報(科学データID(902)、x(903)、y(904)、z(905)、物理量(906))は、実施例1で説明した物理量データ(901)と同じである。検索時には、時空間コード(1802)を条件に含めて検索を行うことにより、候補の絞込みが高速に行え、処理が高速になるという利点がある。
図21を用いて、座標空間上領域と、この座標空間上領域に割り当てられる時空間コードとの関係を概説する。なお、説明の簡単化のため、二次元空間の座標系(たとえばxy座標系)を用いて説明する。本実施例に係る時空間DB(105)は、図21中の水平な破線(2802)と垂直な破線(2801)との交点(図21中の黒丸部分。本明細書ではこれを格子点と呼ぶこともある)の座標ごとに物理量データ(1801)が格納されている。なお、複数の破線(2801または2802)同士の間隔は水平方向(x軸方向)、垂直方向(y軸方向)ともに0.5とし、図21に記載の例では、一番左下の格子点の座標は(0.25, 0.25)、一番右上の格子点の座標は(3.75, 3.75)とする。
一方、太線で囲まれた領域が時空間分割領域である。図21の例では、時空間分割領域の幅と高さはいずれも1とする。各時空間分割領域の左隅に記載されている4桁の数値(2進数表記)が時空間コードである。図21の例では、左下の時空間分割領域の時空間コードを0000としてあり、時空間コードの上位2桁には、図21に示された二次元空間上領域を4分割した枠の左下、右下、左上、右上が上位の2桁に相当し、それぞれ0000、0100、1000、1100台のコードが各4分割の枠内に存在する区画に付与される。同様に各枠内を4分割すると、例えば右上の枠内では、左下、右下、左上、右上では、1000、1001、1010、1011がそれぞれ割り振られる。
図21に示された例では、1つの時空間分割領域に4つの格子点が存在する。たとえば時空間コードが0101の時空間分割領域(左下の座標値が(3,0)の領域)の中の4つの座標((3.25, 0.25), (3.75, 0.25), (3.25, 0.75), (3.75, 0.75))が格子点である。ただし1つの時空間分割領域に存在する格子点の数は4つより多くても(あるいは少なくても)よい。
登録部(106)が時空間DB(105)に物理量データ(1801)を登録する際、座標値を用いて時空間コードを割り出す。図21に示された例の場合、時空間分割領域に割り当てられている時空間コードと、時空間分割領域の左下の座標値の間には、以下の関係がある。4桁の時空間コード(”pqrs”と表記する。p,q,r,sはいずれも0または1の値である)の中から、最左ビット(最上位ビット)と右から2番目のビットで構成される2桁の二進数”pr”は、時空間分割領域の左下のy座標値に等しい。一方4桁の時空間コードのうち、左から2番目のビットと最右ビット(最下位ビット)から構成される2桁の二進数”qs”は、時空間分割領域の左下のx座標値に等しい。
時空間分割領域に割り当てられている時空間コードと、時空間分割領域の左下の座標値の間にはこのような関係があるため、座標値からその座標が属する時空間分割領域に割り当てられている時空間コードは容易に算出可能である。ここでは二次元空間上領域における、座標値と時空間コードの関係を説明したが、三次元空間上領域においても、座標値から時空間コードを容易に算出できるように、座標値と時空間コードの関係を定義する事ができる。
また登録部(106)が時空間DB(105)に物理量データ(1801)を登録する際、時空間コード(1802)の同じ物理量データ(1801)を記憶装置(207)上の連続領域に格納する。さらに登録部(106)は、時空間コードをキーとする索引を作成する。具体的には登録部(106)は、ある時空間コードを有する物理量データ(1801)の格納されている、記憶装置(207)のアドレス範囲の情報を記録した索引を作成する。これにより検索時に時空間コードを検索キーとして指定されると、時空間DB(105)は記憶装置(207)内の全てのデータを読み出す必要はなく、指定された時空間コードが付与された物理量データ(1801)だけを記憶装置(207)から読み出すことができる。
また登録部(106)は、時空間コード(1802)の小さい物理量データ(1801)から順に、記憶装置(207)にシーケンシャルに格納してもよい。このような格納態様が採用された場合、時空間DB(105)は、時空間コードが0000の物理量データ(1801)の格納されている記憶装置(207)の先頭アドレスだけを記憶しておけば、時空間DB(105)は指定された時空間コードが割り当てられた物理量データの記憶されているアドレスを容易に特定できる。
斜め切断面が通過する時空間分割領域を特定する手順の概要を、図19に示す。図19(a)において、直方体(1901)の上を斜めに通る3つの辺(1900-1,1900-2,1900-3)から構成される面が、斜め切断面である。そして斜め切断面によって切断された直方体(1901)が表示対象である。斜め切断面が通る要素(物理量データ(1801)の1レコード)は、斜め切断面の外接直方体(1902)と接触する。逆に、直方体(1901)に含まれる座標のうち、斜め切断面の外接直方体(1902)に含まれない座標は、斜め切断面が通過しないことは明らかであるため、時空間検索部(104)が検索を行う時、斜め切断面の外接直方体(1902)の(8つの)頂点の座標値を求め、続いて求められた座標値の範囲をもとに、外接直方体に含まれる時空間分割領域の時空間コードを求めることで、読み出すべき時空間分割領域を特定する。これにより、読み出し対象の時空間分割領域を少なくできる。
ただし、それでもなお、不必要な時空間分割領域が読み出されることがある。これを効率的にするためには、切断面を細かく分割する(1903)ことが有効である。図19のとおり、斜め切断面を、x軸、y軸、z軸の何れかに垂直な面によって細かく分割し、分割された斜め切断面ごとに外接直方体を求めると、読み出し対象のデータをより絞り込むことが可能になる。図19の例では、図19(a)に示された斜め切断面を、x軸に垂直な面で4分割し、またy軸に垂直な面で2分割した場合の例を示している。この場合、分割された斜め切断面ごとの外接直方体(1903)は、分割前(図19(a))の外接直方体(1902)よりも小さくなるため、読み出すべき時空間分割領域が少なくなる。たとえば図19(b)の、一点鎖線で囲まれた領域(1904)は、分割された斜め切断面ごとの外接直方体に含まれないため、読み出し不要と判断できる。このように分割することにより、読み出すべき時空間分割領域の量を削減でき、高速化に繋がる。なお、斜め切断面の分割数は、科学データ分析システムが自動的に決定してもよいし、ユーザが指定した数で分割するように構成されていてもよい。
図20にその概念図を示す。ここでは簡単のため2次元面で表示した。太線で示された各要素をまとめた時空間分割領域には、時空間コード(2001)が付与されている。
これに対し、斜め切断面(2002)が通るとする。図20において、一点鎖線で記載した矩形(2005)は、この斜め切断面(2002)の外接矩形である。この外接矩形(2005)を含む時空間分割領域のなかには、斜め切断面(2002)が交差しないものも含まれる(たとえば時空間コードが0010,1100,1101の時空間分割領域)。
ここで、この斜め切断面(2002)がちょうど本データの全体の中央で2分割されるとすると、左半分の外接矩形(2003)、右半分の外接矩形(2004)の2つの外接矩形が構築できる。このように、斜め切断面(2002)を分割して、分割された斜め切断面それぞれについて外接矩形を構築すると、たとえば時空間コードが1100,1101の時空間分割領域は外接矩形に含まれなくなり、不要なデータが読み出されにくくなる。この外接矩形のそれぞれについて、四隅の座標値の大小関係を判定すれば、どの区画と交差するかは容易に判定できる。
ここで、斜め切断面になりうる要素が持ちうる時空間コードは、外接矩形(2003)と外接矩形(2004)が交差する区画の時空間コードのいずれかと一致するはずである。したがって、外接矩形(2003)と外接矩形(2004)が交差する区画の時空間コードを検索条件文の条件に追加することにより、不要な区画に含まれる要素との判定を省略でき、結果的に高速に処理ができる。
図17の説明に戻る。時空間検索部(104)は検索条件文の条件(斜め切断面を指定している条件)を、分割された斜め切断面を特定する複数の検索条件文に書き換え(1701)、上で述べた要領(外接直方体(外接矩形)に含まれる時空間分割領域の時空間コードを求める)で、書き替えた複数の条件をさらに時空間コードを用いた条件に変換して時空間DB(105)に送信する(1702)。それぞれの条件について、時空間DB(105)から検索結果を受け取ると(1703)、時空間検索部(104)はそれぞれの結果を統合し(1704)、画像生成部へ統合したデータを返送する。
時空間検索部(104)で生成されたデータを受け取った画像生成部(102)は、受け取ったデータを一旦DRAM(208)に記憶し、DRAM(208)に記憶したデータをもとに断面画像を生成し、表示情報送受信部(103)へ返答する。図21を用いて、この画像生成の方法の概念を説明する。まず、実施例2に係る画像生成部(102)による、各座標の色の決定方法を説明する。図21において、細い実線で記載された正方形(各格子点を中心とし、一辺の長さが0.5の正方形)のことを「格子領域」と呼ぶこととする(たとえば図21において、格子点(2804)を含む格子領域は、3.5≦x<4, 1≦y<1.5の範囲の正方形である)。
実施例2に係る画像生成部(102)は、斜め切断面(2803)上の各点の座標の色(画素値)を決定する必要があるが、以下の方法で色情報を求める。図21において、斜め切断面(2803)上の点(2805)の色を決定する場合の例を説明する。図21の点(2805)は、格子点(2804)を含む格子領域を通過する。この場合画像生成部(102)は、点(2805)の物理量がこの点(2805)が含まれる格子領域の格子点(2804)の物理量と同じと見做して、色を決定する。つまり格子点(2804)を含む格子領域上の全ての座標の物理量は同じとみなされる。
以上の方法で画像生成部(102)は、斜め切断面(2803)上の各点(2805等)の座標の色を決定する。まず画像生成部(102)は、斜め切断面(2803)上で、色(画素値)を決定すべき点を抽出する。たとえば画像生成部(102)は、斜め切断面(2803)の点のうち、x座標の値が0.1の整数倍の座標を選択する等の方法で、一定間隔で点を選択するとよい。続いて画像生成部(102)は、選択した点が通過する格子領域に含まれる格子点の座標を特定する。格子点の物理量データ(1801)は、先の処理(時空間検索処理(403))で記憶装置(207)からDRAM(208)に読み出されているため、画像生成部(102)はDRAM(208)上の複数の物理量データ(1801)の中から、特定された格子点の物理量データ(1801)を探しだし、物理量(906)を特定する。そして画像生成部(102)は特定された格子点の物理量の値を色情報に変換することで、斜め切断面上の点の色を決定する。
生成された画像は、実施例1と同様に、表示情報送受信部(103)によって表示用画像データ(2201)に変換されクライアントコンピュータ(111)へと送付される。実施例2における表示用画像データ(2201)について、図22に示す。これも基本的には実施例1と同様であるが、断面(2202)の表現が異なる。
実施例2では、クライアントコンピュータ(111)から送られてきた表示条件データ(1601)に対応する断面を特定するために、表示対象となる全ての断面について、形状を座標列で送付する形態をとる。断面(2202)には表示対象の座標値のリストが記述されており、画像(2203)には断面(2202)に記述されている座標値に対応した画素値(色情報)のリストが格納される。これにより、クライアントコンピュータ(111)側では単に3次元形状を表示するだけで適切な三次元表示が実行できる。この形態をとることによりクライアントコンピュータ(111)側での三次元計算を削減でき、比較的非力なクライアントコンピュータ(111)であっても三次元表示が可能となる。
ただし、一般的な三次元表示では面の向き等についても注意を払う必要があるため、その場合は適切な情報を付与するか、面の座標の記述方向(右回り、左回り)をもって向きを特定するようにしてもよい。なお、この計算についてはクライアントコンピュータ(111)側で実施してもよく、その場合は、切断面に一意の番号を振るなどして貼り付け面を特定することが必要となるが、通信量は実施例2よりも少なくできる。
図23に実施例2でWebブラウザ(112)上に断面を表示した結果を示す。斜めに切断された図形が表示される。
以上の構成により、x軸、y軸、またはz軸に垂直な断面だけでなく、任意の向きの断面が三次元表示可能となり、科学データの分析が短時間で行えるようになる。なお、上では斜め切断面上への画像表示方法について説明したが、上で説明した画像表示方法は、x軸、y軸、またはz軸に垂直な断面に画像を表示する際に用いられてもよい。
続いて実施例3に係る科学データ分析システムについて説明する。実施例3に係る科学データ分析システムのハードウェア構成は、実施例1または2に係る科学データ分析システムと同じであるため、図示は略す。実施例3に係る科学データ分析システムは、実施例2で説明した科学データ分析システムと同様、斜め切断面の表示が可能であることに加え、時間の経過に伴い値が変化する物理量の表示が可能である。図24に、実施例3に係る科学データ分析システムがWebブラウザ(112)上に表示する、表示画面(300’’)の例を示す。実施例3では、表示画面(300’’)上に時間表示範囲の設定コントロール(2401)と、アニメーション用のスライドバー(2402)が付与されている。ユーザがこのスライドバー(2402)を動かすことにより、表示されている図形上の画像が切り替わるので、ユーザは時間とともに物理量がどのように変化しているかを視覚的に確認できる。
図25に実施例3に係る科学データ分析システムで用いられる、表示条件データ(2501)と画像生成条件データ(2503)を示す。実施例3では、表示条件データ(2501)に時間範囲(2502)が加わる点が、実施例2で説明した表示条件データ(1601)と異なる。この時間範囲(2502)には、画面上の設定コントロール(2401)に設定された値が格納される。
表示情報送受信部(103)はこれを元に画像生成条件データ(2503)を生成する。実施例3では、表示情報送受信部(103)は表示条件データ(2501)の、時間範囲(2502)を一コマ(一例として1秒)ごとにわけて画像生成条件データ(2503)を生成する。そのため、図25に示されているように、画像生成条件データ(2503)には時刻(2504)が含まれる。結果的に、実施例2では6〜7枚の画像生成が行われていたところが、実施例3に係る科学データ分析システムでは、時間コマ数倍の画像生成が行われることになる。たとえば時間範囲(2502)として、0時0分から0時1分が指定された時、1秒毎の画像(0時0分0秒、0時0分1秒、0時0分2秒、…0時0分59秒、0時1分0秒の画像)が生成される。
画像生成条件データ(2503)を用いて画像を生成するまでの手順は、実施例2とほぼ同様である。ただし、時刻の条件が入っているため、時空間コードに時刻(または時間帯)を表すコードが含まれる。例えば時間的に前半、後半にデータを分割して先頭に0、1を付与し、それぞれを更に半分にして00、01、10、11とコードが割り振れる。すると、例えば、右上の枠内で後半の前半のデータで左下、右下、左上、右上を示すコードは、101000、101001、101010、101011とそれぞれ割り振られる。
このような計算で割り振られた時空間コードを用いて検索できるように、時空間DB(105)に格納されているデータが構築されている。図26に実施例3の物理量データ(2601)を示す。この構成では、実施例2の構成に加えて時刻t(2602)が加わっているとともに、時空間コード(1802’)についても前述の時間的な枠の桁を加えたコードを格納する。なお、実施例2と同じく、実施例3に係る科学データ分析システムにおいても、登録部(106)が時空間DB(105)に物理量データ(2601)を登録する際、時空間コード(1802’)の同じ物理量データ(2601)を記憶装置上の連続領域に格納する。検索の際には、実施例2と同様に、実施例3に係る時空間検索部は、検索条件文の条件を時空間コードを用いた条件に変換するが、その際時空間検索部は座標値に加えて、画像生成条件データ(2503)に含まれている時刻(2504)も用いて時空間コードを算出するとよい。
前記手順により、各時刻の各断面の画像が生成された後、それらは表示用画像データに変換されてクライアントコンピュータ(111)に送付される。図27に実施例3の表示用画像データ(2701)を示す。実施例3では、各画像に対応する時刻(2504)が存在するため、表示用画像データ(2701)には画像に対応する時刻(2702)が格納される。3D表示部(113)はこれを受け取り、アニメーション用のスライドバー(2402)の操作に応じて表示する画像を切り替える。これにより、時間変化をアニメーションの形で表示できる。なお、このスライドバーを自動で進めるなどの機能を追加し、自動でアニメーションが進むようにしてもよい。
実施例3に係る科学データ分析システムは、上で述べた機能を有することにより、時間的に変化する物理量についても、任意の条件でデータを可視化できるため、さらに科学データの分析が加速できるようになる。
以上、本発明のいくつかの実施例を説明してきたが、これらは、本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施する事が可能である。
たとえば上で述べた実施例では、時空間検索部等の機能ブロックが、汎用的な計算機のプロセッサでプログラムが実行されることにより実現されるものである例を説明した。ただし別の実施形態として、実施例で説明した一部または全ての機能ブロックは、FPGAやASIC等のハードウェアで実装されていてもよい。
また、データベースサーバやクライアントコンピュータで実行される(1または複数の)プログラムは、プログラム配布サーバや記憶メディアを介して提供され、プログラムを実行する装置にインストールされてもよい。なお、ここでの記憶メディアとは、データを非一時的に記憶するコンピュータ可読媒体を意味し、例えばICカード、SDカード、DVD等の不揮発性記憶媒体である。
また上で述べた実施例では、科学データ分析システムは、データベースサーバとクライアントコンピュータという、少なくとも2台の計算機から構成される例を説明した。ただし別の実施形態として、1台の計算機で科学データ分析システムが構成されてもよい。たとえばデータベースサーバが、画像生成部(102)、表示情報送受信部(103)、時空間検索部(104)、時空間DB(105)、登録部(106)に加えて、上で述べた実施例ではクライアントコンピュータが有していたWebブラウザ(112)や3D表示部(113)と表示条件設定部(114)等を有していてもよい。