使用 InfluxDB Cloud 全新地图图形可视化地理空间时间序列数据

导航至

我们最近在 InfluxDB Cloud 中引入了一种新的地图图形类型,以帮助用户可视化包含位置信息的时间序列数据。

Map graph type - InfluxDB Cloud

上图显示了加利福尼亚州最近发生的地震,其中标记的颜色表示其震级。

在这篇文章中,我将介绍将地理空间时间序列数据摄取到 InfluxDB Cloud 的方法,以及如何使用新的地图可视化类型。

在我们继续之前,如果您还没有注册,则需要注册一个 免费的 InfluxDB Cloud 帐户

摄取地理空间时间序列数据

将地理空间时间序列数据摄取到 InfluxDB Cloud 的方法有很多种,但有一些推荐的模式设计注意事项需要考虑。

如果您要摄取随时间变化的经纬度信息数据,我们建议将这些值存储为 InfluxDB 中的字段,这样就不会持续增加您的基数。这还可以更轻松地跟踪随时间移动的同一对象,因为您可以按对象名称进行分组,对象名称存储为由一个或多个标签(如传感器名称、设备 ID、MAC 地址等)定义的标签。

即使经纬度值永远不会改变,并且与您的其他标签(如传感器名称)具有相同的基数,我们仍然建议您将信息存储为字段,这样您就不必担心在进行计算时转换值,因为所有标签都存储为字符串。

如果您执行许多需要按数据坐标分组的查询,那么我们建议您使用 S2 Geometry 对经纬度值进行编码。S2 将地球划分为可自定义大小的单元格(称为级别),这样您在处理数据时就有一组有界值。这样,单元格标识符(通常标记为 s2_cell_id)可以作为标签添加到数据集中,而不会导致基数失控。

Flux geo 包和新的地图图形类型旨在与存储为字段的经纬度或存储为数据集中标签的 S2 单元格配合使用。添加 s2_cell_id 作为单个标签可以在处理地理空间时间序列数据时提供性能提升,因为所有标签值都被索引。在摄取数据时,您可以使用 Telegraf 中的 s2geo 处理器预先计算 S2 单元格 ID,并将其与数据集一起存储。

如果您没有使用 Telegraf,Flux geo 包提供了动态计算 s2_cell_id 的能力,但由此产生的查询性能会稍慢一些。如果您已经一直在摄取没有此 s2 单元格信息的地理空间时间序列数据,请不要担心。您还可以利用任务来定义一个后台进程,该进程将在不同级别预先计算 s2 单元格,并将其与您的数据集一起存储。

为了使用地图类型进行实验,我们提供了几个不同的示例数据集供您使用。您可以利用 USGS 地震数据集 (usgs) 或 NOAA 国家浮标数据中心数据集 (noaa)。您可以使用 新的 Sample data Flux 包访问它们。

import "influxdata/influxdb/sample"

sample.data(set: "usgs")

使用地图绘制数据图形

一旦数据被摄取到 InfluxDB Cloud 中,您就可以在构建可视化效果时开始使用该数据。

只需选择您感兴趣的序列,确保您已在数据中选择了经纬度字段,或者选择了 s2_cell_id 标签,然后从图形选项下拉列表中选择地图可视化类型。

Data Explorer-Graphing the data with the maps

如果一切顺利,您应该会看到一个地图显示,其中显示了您的点。如果您的字段未命名为 lat 和 lon,或者您的标签未命名为 s2_cell_id,您可能会看到错误。没关系。您可以打开图形类型的配置选项,并选择正确的列或字段用于显示。

Data Explorer -Map options

更改地图标记颜色

地图图形类型允许您配置一个值,用于更改地图上标记的颜色。为了使其工作,数据需要使用 s2_cell_id 标签作为坐标,以便您可以使用特定的字段值来设置标记颜色。

如果您的数据已包含 s2_cell_id 列,您可以直接使用它。如果您只有经纬度值作为字段,您可以利用 Geo 包中的 shapeData 函数来计算您需要的 s2_cell_id。最后,您可以将您想要在阈值中使用的值列映射回 _value 列。下面的示例提供了一个使用此方法的示例查询。

Data Explorer-sample query

一旦您的数据格式正确,您就可以配置阈值来调整图形上标记的颜色。

以下是使用地震的震级字段来更改地图标记颜色的示例。

An example of using the magnitude field of the earthquake

结论

我们希望您喜欢使用新的地图图形类型分析数据的这项新功能。从地理角度查看数据可以解锁新的见解,或者让您找到可能被忽略的模式。

我们一直在寻找关于您如何使用我们产品的功能或我们如何改进的反馈。请加入我们的 社区 Slack 工作区或直接在 GitHub 中打开 功能请求,让我们知道您感兴趣的内容。