BIRT 是为商业报告设计的,但您同样可以使用它创建科学数据图。通过创建以下两个图,我们将学习如何将 BIRT 用于科学研究:变星的亮度图;每年的太阳黑子数量图。
顾名思义,Eclipse Business Intelligence and Reporting Tool (BIRT) 是用于创建商业报告的工具。但您同样可以使用它为科学数据绘图。实践表明,BIRT 很适合通过不同的数据源(例如,SQL 或纯文本文件)创建快速、专家级别的二维时间序列数据图。本文将介绍如何:
最近是阿波罗登月的周年纪念,最新版的 Eclipse 又称为 Galileo,于是我无法抗拒绘制航天科学图的念头。
您 有许多数据源可以选择,具体取决于您想可视化的数据种类。例如,您可以使用 National Oceanic 和 Atmospheric Administration (NOAA)、National Astronomy、Ionosphere Center (NAIC)、European Incoherent Scatter Scientific Association (EISCAT) 或者 IAU Minor Planet Center。一般情况下,您找到的数据是二进制格式的,您需要使用第三方库来提取数据。本文主要介绍如何使用简单的纯文本文件中的数据绘图。
您可以使用 Time Series Data Library 中的数据。该站点包含许多领域的数据集,而且都是文本格式。
首先,如果没有下载 Eclipse 请先下载它(参见 参考资料)。 如果使用最新版的 Eclipse — Galileo,您也需要新建工作空间以避免某些问题。文本的报告文件是使用最新版的 Eclipse 和 BIRT 创建和测试的,但使用以前的版本也应该可以创建相同的报告。BIRT 是一个 Eclipse 插件,具有以下依赖关系:
幸运的是,有一个一体化的下载文件包含了 Eclipse、BIRT 的所有依赖关系以及 BIRT 本身(参见 参考资料)。获取并安装 BIRT 之后,启动 Eclipse:
starmag.rptdesign
作为新报告的名称,然后单击 Next。第 一个图是变星的亮度的变化图。根据 Wikipedia,“如果一颗星的亮度从地球看是随时变化的,那么这种星称为变星”。绘制的图将是一个简单的二维图,显示变星的亮度随时间的变化 — 具体来说,是 600 个夜晚的观测图。(数据文件 starmagnitudetimeseries.ssv 可从 下载 处获取)。
在左边,单击 Report Items 选项卡。从这里将图表拖动到设计器。尽管您可能想使用线形图,但条形图更加合适。随着数据点数量的增加,条的大小将变小以适应空间。单击 Next。
数据的格式是以空格分隔的值(SSV)。要添加数据源:
将出现一个窗口,提示数据源选择:您之前创建的数据源应该出现在 Flat file data source 下。给数据集命名,比如 starMagDataSet 并单击 Next。在以下页面,有两个列表:左边显示数据集的可变列,右边显示选择好在图标中使用的列。左边应该只有一列。选择并单击右箭头。将列名更改为 magnitude
,选择整数类型,然后单击 Finish。最后,单击 OK。
现在应该回到条形图向导。执行以下步骤创建类别整数:
对类别 Y 序列重复该过程,但这时双击的是 magnitude 而不是 rowNum。
可以让图标变得更加漂亮,单击 Format Chart 选项卡。从这里可以更改图表标题,移除右边的标签,更改 X 轴和 Y 轴的标题,更改颜色,甚至可以更改图形缩放比例。例如,默认缩放比例是线形的,但您可以将其更改为对数缩放比例。对于该图,使用标题 Variable Star Magnitude Time Series。标记 X 轴 Period (nights)
和 Y 轴 Magnitude
。完成这一点之后,单击 Finish。
在报告设计器中,展开图表对象以填满报告的宽度,让高度增加 3 英寸。要预览图,请单击 Preview 选项卡或者从菜单中单击 Page > Preview。
您可能会注意到,并非所有 600 个夜晚都出现在图表中。在图的最上方,写有:“Note: Current maximum number of data rows is...”,后跟 “Note: (Click to change Preview Preferences)” 之类的字样。单击该信息。在得到的窗口中,单击 No limits of the number of rows to display,然后单击 OK。将提示刷新页面视图:单击 Yes。您应该在图上看到所有 600 个点。图 1 展示完整的图表。
要保存图,单击 Run > View Report > As PDF 或其他您希望预览图表的格式。然后保存到磁盘。
在下一个图中,您将数据输入关系数据库,创建报告,并使用 Java 技术程序生成最终产品。该图表示选定时间跨度内的太阳黑子数量。
首先,下载 H2 数据库(参见 参考资料)。H2 实现为纯 Java 数据,大小较小。下载之后,解压文件并导航到 bin 目录。应该有一个名为 h2-version-number 的 JAR 文件(我的机器上是 h2-1.1.114.jar)。您可以输入 java -jar h2-1.1.114.jar
或者运行 .sh 或 .bat 文件(取决于运行的是 POSIX 还是 Windows® 机器)。
现在服务器已经运行,可以向其填充数据。需要的太阳黑子数据位于从 下载 处下载的文件中。在控制台中,单击 Tools > Run Script。在 Target database URL 文件中,输入 jdbc:h2:~/sunspots.db
。因为数据库尚未存在,因此 H2 将为您创建一个。在 Source script file name 字段,输入到 sunspots.sql 文件的完整路径,然后单击 Run。
返回 Eclipse:
sunspots.rptdesign
,然后单击 Finish。除了之前提到的添加数据源和数据集合的方法外,您还可以使用菜单添加。jdbc:h2:/path/to/sunspot.db
。sa
。 select * from sunspots where year between 1900 and 1980; |
现在,将新的图表对象拖动到布局区。您将再次使用条形图。单击图标窗口的 Next。选择 Use Data From 选项,然后选择 sunSpotsDataSet。单击类别 X 序列的表达式构建器按钮,然后选择 Available column bindings > Chart 并双击 YEAR。单击 OK。
接下来,调用类别 Y 序列的表达式构建器。选择 Available column bindings > Chart,双击 NUM 然后单击 OK。更改您想要的格式,然后单击 Finish。预览图时,您将看到非常整洁的时间序列。要注意的第一件事情是,太阳黑子的数量遵循一个周期,如下所示。
使用数据库中的数据有一个明显的优势,能够通过查询操作数据。将查询更改为 select * from sunspots
可以看到所有数据。
在本文中,您将看到如何使用商业智能工具为科学数据创建报告。您不需要购买昂贵的平台就可以获得高质量的快速可视化。本文的重点是演示如何通过另一种方式使用该商业工具。您还可以轻松地将其用于其他类型的数据。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。