使用 wview

作者:Mark Teel

您是否对天气着迷?您是否经常发现自己在查看当地天气状况?天气是否是您最喜欢的新闻广播部分?如果是这样,您可能是一个天气迷,而 wview 可能就是适合您的应用程序。

wview 是一款开源天气应用程序,可从气象站检索传感器读数。传感器数据存储在 SQLite3 数据库中。聚合数据,例如最小值、最大值和平均值,会被计算并存储在数据库后端。存储数据的可选用途包括:生成天气网站;为外部应用程序生成通用文件;向第三方组织提交数据,包括公民天气观测计划 (CWOP) 和 Weather Underground;以及存储转发到远程数据收集中心。提供了一个用户友好的 HTML 界面,用于配置您的气象站以及可选功能。

要设置您的气象站并使用 wview 发布您的数据,您需要一个气象站。支持的气象站包括 Davis Vantage Pro/Pro2(图 1)或 Vantage Vue、Texas Weather Instruments、Vaisala WXT510/520、Oregon Scientific WMR9X8 和 La Crosse WS-23XX。接下来,您需要一个平台来托管 wview 应用程序。任何老旧的台式电脑都可以很好地工作,但通常希望在低功耗、无人值守的系统上托管 wview。现已停产的 Linksys NSLU2 曾是一个受欢迎的选择。新型 SheevaPlug 也迅速流行起来,成为 wview 主机。勤劳的人们甚至使用 Western Digital Worldbook NAS 作为他们的 wview 主机。由于 wview 是模块化的,并且专为嵌入式应用程序而设计,因此它可以托管在低性能系统上。

接下来,您需要安装您选择的 Linux 发行版。Debian(及其衍生版本)wview 软件包提供了最傻瓜式的安装路径,但对于任何 Linux 发行版,从源代码安装也很简单。

最后,您需要一根接口电缆。这可能是一根简单的 9 针串行电缆,或者如果您的主机没有串行端口,则可能是 USB 转串行适配器。

Using wview

图 1. Dave Vantage Pro2 气象站

配置

要配置 wview,请打开您喜欢的浏览器,并将它指向 wview 管理网站,通常是 http://[您的_wview_服务器]/wviewmgmt/login.php。wview 主机上需要一个 HTTP 服务器(如果您使用 APT 软件包,这将自动安装)。使用默认管理密码“wview”(您可以稍后更改此密码)。成功登录后,将显示“系统状态”页面(图 2)。“系统状态”页面显示所有 wview 服务的当前状态以及其他状态信息。

Using wview

图 2. 系统状态

配置分为逻辑部分,将鼠标悬停在配置项目上即可获得上下文相关的帮助。单击“站点”选项卡以配置站点参数(图 3)。

Using wview

图 3. 站点配置

这里的关键参数是站点类型和接口特性。完成后选择“保存更改”。接下来,单击“服务”选项卡(图 4)。

Using wview

图 4. 服务配置

此页面提供了 wview 服务的配置、服务的日志详细程度以及电子邮件警报。可用的服务包括:文件生成、警报、CWOP、HTTP(Weather Underground 和 Weatherforyou)、文件导出(SSH 或 FTP)和进程监控。现在,在我们确认您的站点接口之前,暂且不要启用任何其他服务。

站点确认

现在,让我们继续进行站点接口验证。在运行 wview 的系统上打开一个 shell,以便您可以跟踪系统日志的更新。在提示符下,输入以下内容

$ sudo tail -f /var/log/syslog

这会显示新生成的系统日志消息。在这里,您将监控 wview 启动和状态消息。打开另一个 shell,并执行以下命令

$ sudo /etc/init.d/wview stop
$ sudo /etc/init.d/wview start

您将看到系统日志中来自 wview 进程的大量活动,因为它们正在启动。最好熟悉这些 wview 日志消息,因为其中包含大量有用的详细信息。

返回“系统状态”页面,并观察站点接口和文件生成的状态。如果两者都不是“绿色”和“正在运行”状态,则需要在系统日志文件中进一步调查,以查找任何配置或站点接口问题。

默认网站

如果一切顺利,您现在可以查看默认的 wview 天气网站。这通常位于 http://[您的_服务器_url]/weather/index.html(图 5)。

Using wview

图 5. 默认网站

当前状况在左侧的表格中给出,并在中心和右侧的仪表盘中显示。这些值在每次站点数据轮询时都会更新(默认值为 30 秒)。天气网站页面每 60 秒重新生成一次(可配置)。观察当前状况的变化是确认站点接口正常运行的简单方法。

过去 24 小时的历史数据以图形形式呈现。其他站点页面上提供了过去 24 小时、过去 7 天、过去 28 天和过去 365 天的图形。

公民天气观测计划 (CWOP)

CWOP 是一个系统,通过该系统,拥有气象站和适当软件的个人可以将其天气数据提交到基于 APRS 的数据存储系统,以便包括 NOAA(国家海洋和大气管理局)在内的其他人可以随意使用这些数据。有一些非常棒的站点显示网站,包括一些 Java 应用程序,用于查找站点数据、位置、地图等等。有关示例气象站,请参阅 www.findu.com/cgi-bin/wxpage.cgi?call=CW4097

参与 CWOP 需要注册 APRS 呼号。在您正确配置 wview 以用于 CWOP 并在线确认您的数据后,您必须通过电子邮件联系维护人员以确认您的注册。然后,您的数据将可供任何人查看,并可能用于 NOAA 预报模型等。

当 CWOP 支持启用并正确配置后,wview 会每十分钟向 APRS 服务器发送一个新的 WX 数据包,具体时间取决于您的呼号的最后一位数字。

wview 通过强制定义三个 APRS-IS 服务器:端口对来支持 APRS-IS 滚动(自动数据包报告系统-互联网服务)功能。目的是避免因连接错误而导致 CWOP 系统的数据丢失。从 www.wxqa.com/activecwd.html 的列表中选择三个不同的服务器。

单击“服务”选项卡,并启用 CWOP 提交和 CWOP 详细日志记录。单击“保存更改”。接下来,单击“CWOP”选项卡,并输入您的呼号、纬度和经度(有关格式详细信息,请参阅鼠标悬停帮助)、CWOP 服务器(应输入三个)和端口号。继续并启用“记录 CWOP 数据包?”;在确认提交后,您可以禁用它。单击“保存更改”。

现在,重启 wview

$ sudo /etc/init.d/wview restart

您可以在系统日志(和 CWOP 状态页面上)监控 CWOP 数据包提交。

Weather Underground

Weather Underground (Wunderground) 是一家私营组织,提供许多天气服务——有些是免费的,有些则不是。在免费服务中,您可以注册您的气象站并将您的数据提交给他们,这样您就可以从 Wunderground 网站访问您的数据和一些漂亮的图表。Weatherforyou.com 也是一家私营机构,其功能与 Wunderground 类似。

www.wunderground.com/weatherstation/usersignup.asp 注册 Weather Underground 站点 ID(除非您已经拥有一个)。确定您的准确纬度和经度:www.topozone.com/viewmaps.asp

单击“服务”选项卡并启用 HTTP 服务。单击“HTTP 服务”并配置 Weather Underground 设置。单击“保存更改”。

在系统日志中查找类似于以下内容的信息

"WUNDERGROUND: configured to submit \
               station KTXCOLLI1 data to wunderground.com"

在 Wunderground 服务器上确认您的数据:http://www.wunderground.com/weatherstation/WXDailyHistory.asp?ID=XXXXXXX,其中 XXXXXXX 是您的 Wunderground 站点 ID。这应该开始以图形方式和数据包列表形式显示您的天气数据。

数据存档和外部应用程序

许多简单的开源气象站应用程序可供使用,它们的功能仅限于从气象站提取数据并将其存档,以供以后进行后期处理或由另一个服务器检索以进行多站点分析。研究人员希望收集天气数据以用于自己的目的,就是这种实现的一个例子。

人们经常(错误地)断言 wview 对于简单的存档目的来说是“过度应用”。事实上,wview 允许对它为您执行“多少”操作进行大量配置。wview 被设计为一系列松散耦合的 UNIX 进程,可以轻松地配置为仅存档服务器。也可以轻松地将 CWOP 和/或 Wunderground/Weatherforyou 添加到存档服务器——所有这些都无需任何“花哨”的 HTML 或其他文件生成。如果您不想生成网站,则不必拥有网站!

安装和典型配置后,禁用所有 wview 进程(在 wviewmgmt 的“服务”选项卡下)。站点接口进程始终处于启用状态,因此不可配置。像往常一样启动 wview。只有 wviewd_<station> 守护进程会运行,从站点收集数据并将记录和 HILOW 值存档到存档数据库中。

由于 wview 将存档数据存储在 SQLite3 数据库中,因此实现通过 SQL 访问数据的脚本或应用程序非常简单。许多 wview 用户为他们的天气数据创建了自己的自定义 Perl/PHP/Java/WordPress 应用程序。

天气网站自定义

wview 的默认生成模型是基于一系列 HTML 文件模板和图像生成天气网站。对于 html-templates.conf 中列出的任何名为 example.[ext]x 的模板文件,wview 将生成一个名为 example.[ext] 的文件。因此,在 html-templates.conf 中列出并在 $prefix/var/wview/html 中找到的 myscript.phpx 将替换所有 wview 标签,并且生成的文件将命名为 myscript.php。对于 html-templates.conf 中列出的任何名为 example.htmx 的模板文件,wview 将生成一个名为 example.htm 的文件。生成的文件存储在 wviewmgmt “文件生成”页面上指定的位置:“生成目标路径”。

更改 $prefix/etc/wview/html 中的 HTML 模板不需要您重启 wview。您所做的更改将在下一个 htmlgend(HTML 生成守护进程)生成周期生效。更改配置文件 images.conf、html-templates.conf 和(如果支持)forecast.conf 不需要重启 wview,但确实需要向 htmlgend 发送 HUP 信号以使这些文件被重新读取。执行以下操作:(这也将切换日志详细程度)

$ sudo kill -s HUP `cat $prefix/var/wview/htmlgend.pid`

wview 支持在模板文件中包含模板宏文件。元标记是 <!--include filename.xxx-->。任何要包含在一个或多个模板文件中的模板宏文件都应在 $prefix/etc/wview/html-templates.conf 配置文件中 任何包含它的模板之前列出。对包含级别没有限制,只需确保您在 html-templates.conf 文件中尽早指定宏模板即可。wview 默认网站模板利用了多个标头宏文件。

HTML 模板文件(在 $prefix/etc/wview/html 中)可以根据您的语言和设计偏好进行自定义。配置文件 html-templates.conf 指定要用于生成的模板文件。您可以根据需要从此列表中添加或删除。天气图像标题可以在 $prefix/etc/wview/images.conf 文件中进行编辑,以满足您的语言偏好。“文件生成”页面上的配置参数“启用公制单位生成?”允许配置公制单位。如果设置为“是”,它将导致 wview 输出所有图像(桶形图和图表)以及 HTML 标签的所有值,单位均为公制单位。可以编辑 images.conf 文件,将英语标签、标题和单位翻译成任何语言。通过编辑此文件和 HTML 模板文件,wview 可以支持任何语言。事实上,您可以通过切换此配置参数并重启 wview,轻松地在美国单位和公制单位之间来回切换。

高级功能

wview 提供了许多功能,允许高级使用从您的气象站收集的天气数据。可以定义警报,这样,如果超出上限或下限,将执行用户定义的脚本。这些脚本可以发送通知电子邮件或触发外部应用程序。也可以通过 TCP/IP 套接字连接到 wview 服务器,并接收天气数据的未经请求的定期数据馈送。通过使用“虚拟”站点类型,您可以远程连接到另一个 wview 服务器,并接收站点数据,就好像它直接连接到站点硬件一样。

资源

wview 主页和在线用户手册:www.wviewweather.com

wview Google 用户群组:groups.google.com/group/wview

公民天气观测计划 (CWOP):www.wxqa.com

Weather Underground (Wunderground):www.wunderground.com

Mark Teel 是大型公共交通和商业航空公司系统显示和控制系统的主要供应商的软件工程经理。他也是开源软件开发的倡导者,并为多个项目做出了贡献,包括 CodeAnalyzer(一个基于 Java 的源代码分析器)、radlib(快速应用程序开发库)和 wview。

加载 Disqus 评论