Eclipse の BIRT (Business Intelligence and Reporting Tool) は、その名前からわかるように、ビジネス・レポートを作成するためのツールです。しかし、だからといって BIRT が科学データのプロット用に使えないということはありません。試してみるとわかるように、BIRT は、さまざまなデータ・ソース (SQL やプレーンテキスト・ファイルなど) からの時系列データを素早くプロ並みに 2 次元 (2-D) プロットできる素晴らしいツールなのです。この記事では以下の内容を実行するための方法を説明します。
- インターネットからデータのソースを見つける
- プレーンテキスト・ファイルのデータを利用して変光星の光度の時系列プロットを作成する
- データベースからデータを取得して年ごとの黒点数のプロットを作成する
最近、アポロの月着陸から 40 周年が祝われ、また Eclipse の新しいリリースの名前が Galileo (ガリレオ) であることから、私は宇宙科学に関する何かをプロットしようという誘惑を抑えられませんでした。
データを取得する
どのような種類のデータを視覚化したいかによりますが、データ・ソースの選択肢は無数にあります。例えば、NOAA (National Oceanic and Atmospheric Administration: 米国海洋大気庁)、NAIC (National Astronomy and Ionosphere Center: 米国天文学電離層センター)、EISCAT (European Incoherent Scatter Scientific Association: 欧州非干渉散乱科学協会)、IAU Minor Planet Center (国際天文学連合小惑星センター) などのデータを使用することができます。多くの場合、これらのデータはバイナリー・フォーマットであり、データを抽出するためにサードパーティーのライブラリーが必要な場合があります。この記事では、単純なプレーンテキスト・ファイル形式のデータを使ってプロットを生成する方法を説明します。
ここでは Time Series Data Library のデータを使います。このサイトには無数の分野のデータ・セットが用意されており、そのすべてがテキスト・フォーマットです。
セットアップ
まだ Eclipse をダウンロードしていなければ、まず Eclipse をダウンロードします (「参考文献」を参照)。最新バージョンの Eclipse、つまり Galileo を使用している場合には、いくつかの問題を避けるために新しいワークスペースを作成する必要があります。この記事のレポート・ファイルは最新バージョンの Eclipse と BIRT を使って作成し、テストしましたが、これまでのバージョンを使っても同じレポートを作成できるはずです。BIRT は Eclipse のプラグインであり、以下の依存関係を持っています。
- DTP — Data Tools Platform
- EMF — Eclipse Modeling Framework
- GEF — Graphical Editor Framework
- WTP — Web Tools Platform
幸いなことに、すべてが含まれた一括ダウンロードがあり、その中に Eclipseと、BIRT の依存関係のすべて、そして BIRT そのものが含まれています (「参考文献」を参照)。BIRT を取得してインストールしたら、Eclipse を起動して以下の内容を実行します。
- Eclipse メニューから「File (ファイル)」 > 「New (新規)」 > 「Other (その他)」 の順にクリックします。
- 表示されるウィンドウで、「Business Intelligence and Reporting Tools (ビジネス・インテリジェンスおよびレポート・ツール)」 > 「Report Project (レポートプロジェクト)」の順にクリックします。
- プロジェクトの名前を入力して「OK」をクリックします。この例では「birtPlotting」という名前にします。
- ウィンドウが表示され、「Report Design Perspective (レポート・デザイン パースペクティブ)」に切り換えるように促されます。「Yes (はい)」をクリックします。
- 「Navigator (ナビゲーター)」タブで「birtPlotting」フォルダーを右クリックし、「New (新規)」 > 「Report (レポート)」の順にクリックします。
- 新しいレポートの名前として「
starmag.rptdesign
」と入力し、「Next (次へ)」をクリックします。 - 表示されるウィンドウで「Blank Report (空のレポート)」を選択し、「Finish (完了)」をクリックします。
フラット・ファイルのデータ・ソースを利用して星の光度をプロットする
最初は変光星の光度 (明るさ) の変化をプロットします。ウィキペディアによれば、「地球から見た見かけ上の明るさが時間と共に変化する星は変光星に分類されます。」この記事では、変光星の光度の時間による変化 (具体的には 600 日間にわたって観測されたデータ) を単純に 2 次元 (2-D) プロットします。(このデータ・ファイル starmagnitudetimeseries.ssv は「ダウンロード」セクションで入手することができます。)
棒グラフを作成する
左側の「Palette (パレット)」の「Report Items (レポート項目)」タブをクリックし、そこから「Chart (グラフ)」を「Designer (デザイナー)」にドラッグします。折れ線グラフを使いたいと思うかもしれませんが、棒グラフの方が適切です。データ・ポイントの数が増えると、すべてのデータを表示できるように棒のサイズが小さくなります。「Next (次へ)」をクリックします。
データ・ソースを追加する
データはスペース区切りフォーマット (SSV) です。以下の手順でデータ・ソースを追加します。
- 「Use Data From」を選択し、次にドロップダウン・リストから「<New Data Set> (<新規データ・セット>)」を選択します。
- 新しいデータ・ソースを追加するように促されたら、「Yes (はい)」をクリックします。
- 表示されるウィンドウの中で「Flat File Data Source (フラット・ファイル・データ・ソース)」を選択します。このデータ・ソースに名前を付け、「Next (次へ)」をクリックします。この例では「starMagDataSource」という名前を付けます。
- 次のウィンドウでは、「Flatfile Style (フラットファイル・スタイルの選択)」で「SSV」を選択します。他の選択肢としては、カンマ区切り (CSV)、パイプ区切り (PSV)、タブ区切り (TSV) があります。
- チェックボックス「Use first line as column name indicator (1 行目を列名インジケーターとして使用する)」のチェックを外します。
- このステップは実行しなくても構いませんが、「Test Connection (接続のテスト)」をクリックし、BIRT が SSV ファイルを発見できることを確認します。
- 「Finish (完了)」をクリックして続けます。
ウィンドウが表示され、データ・ソースを選択するように促されます。先ほど作成したデータ・ソースが「Flat File Data Source (フラット・ファイル・データ・ソース)」の下に表示されているはずです。このデータ・セットに例えば「starMagDataSet」のような名前を付け、「Next (次へ)」をクリックします。その次のページに 2 つのリストがあります。左側のリストはデータ・セットの中にある列を表し、右側のリストはグラフで使用するために選択された列を表します。左側には 1 つの列しかないはずです。その列を選択し、右矢印をクリックします。列名を「magnitude」に変更し、「Integer Type (Integer 型)」を選択し、「Finish (完了)」をクリックします。最後に「OK」をクリックします。
カテゴリー用の整数を作成する
この時点では、棒グラフ・ウィザードに戻っているはずです。以下の手順でカテゴリー用の整数を作成します。
- 「Select Data (データの選択)」領域で、カスタムで作成した「starMagDataSet」を選択します。プレビュー領域を見ると、「magnitude」という名前の列と、いくつかの整数値が表示されているはずです。
- 「Category(X) Series (カテゴリー系列 (X))」の近くで、関数記号の付いたボタンをクリックして 「Expression Builder (計算式ビルダー)」を呼び出します。
- 「Expression Builder (計算式ビルダー)」のウィンドウ「Available Column Bindings (使用可能なカラムバインド)」を選択し、サブカテゴリーとして「Chart (グラフ)」を選択します。
- 「RowNum」をダブルクリックします。
- エディターの中に「row.__rownum」が表示されているはずです。「OK」をクリックします。
同じ手順を「Y Series (値系列 (Y))」に対して繰り返しますが、この場合は「RowNum」ではなく「magnitude」をダブルクリックします。
グラフをカスタマイズする
オプションとして、少しグラフの見栄えを良くするために、「Format Chart (グラフの書式設定)」タブをクリックします。ここでは、グラフのタイトルの変更、右側にある凡例の削除、X 軸と Y 軸のタイトルの変更、色の変更、さらにはプロットのスケールの変更まで行うことができます。例えば、デフォルトのスケールはリニアですが、対数スケールに変更することもできます。このプロットでは、タイトルを「Variable Star Magnitude Time Series (変光星光度の時系列)」にします。X 軸の「Title (タイトル)」を「Period (nights)
」に、Y 軸の「Title (タイトル)」を「Magnitude
」にします。それが終わったら「Finish (完了)」をクリックします。
「Report Designer (レポート・デザイナー)」で、グラフ・オブジェクトをレポートの幅いっぱいに拡大し、高さは 3 インチを少し超える程度にします。このプロットのプレビューを表示するためには、「Preview (プレビュー)」タブをクリックするか、あるいはメニューから「Page (ページ)」 > 「Preview (プレビュー)」の順にクリックします。
600 日間のすべてのデータがグラフ上にあるわけではないことに気付くと思います。プロットの先頭には、「Note: Current maximum number of data rows is..., (注: データ行の現在の最大数は・・・)」のような表示と、それに続いて「(Click to change Preview Preferences (注: プレビューの設定を変更するにはクリックしてください))」のような表示があります。このメッセージをクリックし、それによって開かれるウィンドウで「No limits of the number of rows to display (表示する行数を制限しない)」をクリックし、「OK」をクリックします。するとページ・ビューを更新するように促されるので、「Yes (はい)」をクリックします。これで 600 個のポイントがすべてプロットに表示されるはずです。図 1 は最終的なグラフを示しています。
図 1. 変光星の光度の時系列
このプロットを保存するためには、「Run (実行)」 > 「View Report (レポートの表示)」 > 「As PDF (PDF として)」の順にクリックするか、あるいはグラフをプレビューするための何れかの書式をクリックします。そしてディスクに保存します。
データベースを使って黒点の数をプロットする
次のプロットでは、リレーショナル・データベースにデータを入力し、レポートを作成し、Java 技術のプログラムを使って最終的なグラフを生成します。ここでは選択された期間内の黒点の数をプロットします。
まず、H2 データベースをダウンロードします (「参考文献」を参照)。H2 は Pure Java で実装された小規模なデータベースです。ダウンロードしたらファイルを解凍し、「bin」ディレクトリーまでナビゲートします。「bin」ディレクトリーには、「h2-<バージョン番号>」という名前の JAR ファイルがあるはずです (私のマシンの場合は、「h2-1.1.114.jar」です)。「java -jar h2-1.1.114.jar
」と入力するか、.sh ファイルまたは .bat ファイルを実行します (これは実行中のマシンが POSIX マシンであるか Windows® マシンであるかに依存します)。
これでサーバーが実行されるようになったので、このサーバーにデータを追加します。必要な黒点データは「ダウンロード」セクションからダウンロードしたファイルの中にあります。コンソールで「Tools (ツール)」 > 「Run Script (スクリプトの実行)」の順にクリックします。「Target Database URL (ターゲットデータベース URL)」フィールドに「jdbc:h2:~/sunspots.db」と入力します。このデータベースはまだ存在していないため、このデータベースを H2 が作成してくれます。「Source Script File Name (ソーススクリプトファイル名)」フィールドに sunspots.sql ファイルへのフル・パスを入力し、「Run (実行)」をクリックします。
Eclipse に戻って以下の内容を実行します。
- 「birtPlotting」プロジェクトを右クリックし、「New (新規)」 > 「Report (レポート)」をクリックします。
- 新しいレポートの名前を「
sunspots.rptdesign
」に変更し、「Finish (完了)」をクリックします。データ・ソースとデータ・セットを追加するには、先ほど説明した方法以外にも、メニューを使って追加する方法があります。 - メニュー・バーから「Data (データ)」 > 「New Data Source (新規データ・ソース)」の順にクリックします。
- 表示されるウィンドウの中で、「JDBC Data Source (JDBC データ・ソース)」を選択し、このデータ・ソースに名前を付け、「Next (次へ)」をクリックします。
- 「Manage Drivers (ドライバーの管理)」をクリックし、続いて「Add (追加)」をクリックすることで H2 jdbc ドライバーを追加します。
- ファイルを選択する画面の中で H2 システムまでナビゲートします。「h2 JAR」ファイルを選択し、「OK」をクリックします。すると H2 jdbc が「Driver Class (ドライバー・クラス)」のドロップ・ダウン・リストに表示されるはずです。
- H2 jdbc ドライバーを選択し、ドライバーの URL として
「jdbc:h2:/path/to/sunspot.db」
と入力します。 - 「User Name (ユーザー名)」フィールドに「
sa
」と入力します。 - 「Test Connection (接続テスト)」をクリックして Eclipse が sunspot データベースを見つけられることを確認し、「Finish (完了)」をクリックします。先ほどと同じように、これでデータ・ソースが得られたので、今度はデータ・セットが必要です。
- メニュー・バーから「Data (データ)」 > 「New Data Set (新規データ・セット)」 > 「New Data Set (新規データ・セット)」の順にクリックします。
- 「New Data Set (新規データ・セット)」ウィンドウの中で、先ほど作成した「sunspot」データ・ソースを選択し、このデータ・セットを「SQL Select Query (SQL Select クエリー)」に設定し、名前を入力し、「Next (次へ)」をクリックします。
- クエリー・テキストの領域に下記のクエリーを入力し、「Finish (完了)」をクリックします。
select * from sunspots where year between 1900 and 1980;
ここで、新規のグラフ・オブジェクトをレイアウトまでドラッグします。この場合も棒グラフを使います。「Chart (グラフ)」ウィンドウで「Next (次へ)」をクリックします。「Use Data From」オプションを選択してから、「sunSpotsDataSet」を選択します。「Category(X) Series (カテゴリー系列 (X))」で、「Expression Builder (計算式ビルダー)」ボタンをクリックし、「Available Column Bindings (使用可能なカラムバインド)」 > 「Chart (グラフ)」の順に選択し、「YEAR (年)」をダブルクリックします。「OK」をクリックします。
次に「Y Series (値系列 (Y))」で、「Expression Builder (計算式ビルダー)」を呼び出します。「Available Column Bindings (使用可能なカラムバインド)」 > 「Chart (グラフ)」の順に選択し、「NUM」をダブルクリックし、「OK」をクリックします。望んでいるフォーマットに変更し、「Finish (完了)」をクリックします。プロットのプレビューを見ると、非常に見やすい時系列になっています。最初に気付くことは、黒点の数が下記のように一定の周期に従っていることです (見事なものだと思いませんか)。
図 2. 年ごとの黒点数のプロット
データベースの中にデータがあることによる明らかなメリットとして、クエリーによってデータを操作することができます。クエリーを「select * from sunspots
」に変更すると、すべてのデータを表示することができます。
まとめ
この記事では、ビジネス・インテリジェンス・ツールを使って科学データのレポートを作成する方法を説明しました。優れた品質で素早く視覚化するために高価なプラットフォームを購入する必要はありません。この記事のポイントは、このビジネス・ツールが元々の目的とは異なる目的に使用できることを示すことです。ここで説明した内容は他のタイプのデータにも容易に適用することができます。
ダウンロード
内容 | ファイル名 | サイズ |
---|---|---|
SSV and SQL data sources | os-eclipse-scala-Converter.zip | 2KB |
参考文献
学ぶために
- データ・ソースとして Time Series Data Library を調べてみてください。
- BIRT プロジェクトのページを訪れてください。
- National Oceanic and Atmospheric Administration (米国海洋大気庁) のサイトを調べてみてください。
- National Astronomy and Ionosphere Center (米国天文学電離層センター) のサイトで、プエルトリコにある Arecibo 天文台について調べてみてください。
- European Incoherent Scatter Scientific Association (欧州非干渉散乱科学協会) のサイトを調べてみてください。
- Harvard University のIAU Minor Planet Center (国際天文学連合小惑星センター) も忘れないでください。
- 「Eclipse の推奨読み物リスト」を調べてみてください。
- developerWorks には他にも Eclipse に関する資料が豊富に用意されています。
- developerWorks を Twitter でフォローしてください。
- Eclipse が初めての人は、developerWorks の記事「Eclipse Platform 入門」を読んでください。Eclipse の起源やアーキテクチャー、またプラグインを使って Eclipse を拡張する方法などを学ぶことができます。
- IBM developerWorks の Eclipse project resources を利用して Eclipse のスキルを磨いてください。
- developerWorks podcasts ではソフトウェア開発者のための興味深いインタビューや議論を聞くことができます。
- developerWorks の Technical events and webcasts で最新情報を入手してください。
- IBM とオープンソース技術、そして製品機能を調べ、学ぶために、無料の developerWorks On demand demos をご覧ください。
- IBM オープンソース開発者にとって関心のある、世界中で今後開催される会議や業界展示会、ウェブキャスト、その他のイベントについて調べてみてください。
- developerWorks の Open source ゾーンをご覧ください。オープンソース技術を使った開発や、IBM 製品でオープンソース技術を使用するためのハウ・ツー情報やツール、プロジェクトの更新情報など、豊富な情報が用意されています。
製品や技術を入手するために
- BIRT をダウンロードしてください。この記事の執筆時点で最新のビルドは V2_2_2 です。
- H2 データベース・エンジンをダウンロードしてください。
- IBM alphaWorks に用意された最新の Eclipse technology downloads を調べてください。
- Eclipse Foundation から Eclipse Platform やその他のプロジェクトをダウンロードしてください。
- IBM 製品の試用版をダウンロードするか、あるいは IBM SOA Sandbox のオンライン試用版を試し、DB2®、Lotus®、Rational®、Tivoli®、WebSphere® などが提供するアプリケーション開発ツールやミドルウェア製品を試してみてください。
- 皆さんの次期オープンソース開発プロジェクトを IBM ソフトウェアの試用版を使って革新してください。ダウンロード、あるいは DVD で入手することができます。
議論するために
- Eclipse に関する質問を議論するための最初の場所として、Eclipse Platform newsgroups があります (このリンクをクリックすると、デフォルトの Usenet ニュース・リーダー・アプリケーションが起動し、eclipse.platform が開きます)。
- Eclipse newsgroupsには、Eclipse を利用し、拡張することに関心を持つ人達のために、さまざまなリソースが用意されています。
- developerWorks blogs から developerWorks のコミュニティーに加わってください。
コメント
IBM PureSystems
IBM がどのように IT に革命をもたらしているのかをご自身でお確かめください
Knowledge path
developerWorks の Knowledge path シリーズでは、テーマ別の学習資料をご提供しています
ソフトウェア評価版: ダウンロード
developerWorksでIBM製品をお試しください!