使用InfluxDB Cloud的新地图图形可视化地理时间数据
作者:Russ Savage / 用例,产品,开发者
2021年8月2日
导航至
我们最近将新的地图图形类型引入InfluxDB Cloud,以帮助用户可视化包含位置的时间序列数据。
上图显示的是加利福尼亚州最近发生的地震图,其中标记的颜色表示它们的震级。
在这篇文章中,我将介绍如何将地理时间数据导入InfluxDB Cloud,以及如何使用新的地图可视化类型。
在继续之前,如果您还没有,需要注册一个免费的InfluxDB Cloud帐户。
导入地理时间数据
将地理时间数据导入InfluxDB Cloud的方法有很多,但有一些推荐的架构设计考虑因素。
如果您正在导入包含随时间变化纬度和经度信息的数据,我们建议将这些值存储为InfluxDB中的字段,以避免不断增加基数。这也可以使跟踪同一物体随时间移动变得更容易,因为您可以根据定义一个或多个标签(如传感器名称、设备ID、MAC地址等)存储的对象名称进行分组。
即使纬度和经度值永远不会改变,并且具有与传感器名称等其他标签相同的基数,我们仍然建议您将这些信息存储为字段,这样在计算时就不需要担心转换值,因为所有标签都存储为字符串。
如果您进行了许多需要按数据坐标分组的查询,我们建议您使用S2几何形状对纬度和经度值进行编码。S2将地球分成可自定义大小(称为级别)的单元,这样在处理数据时您就有了一个有界值集。这样,单元标识符(通常标记为s2_cell_id
)可以作为标签添加到数据集中,而不会导致基数过载。
Flux地理包和新的地图图形类型都设计为与存储为字段或数据集中标签的S2单元一起工作。将s2_cell_id
添加为单个标签,在处理地理时间数据时提供性能提升,因为所有标签值都是索引的。在导入数据时,您可以使用Telegraf中的s2geo处理器预先计算S2单元ID,并将其与数据集一起存储。
如果您没有使用 Telegraf,Flux 地理包提供了在飞行中计算 s2_cell_id
的能力,但由此产生的查询性能会略微变慢。如果您已经在使用没有此 s2 单元信息的地时数据,请放心。您还可以利用任务来定义一个后台进程,在多个级别预先计算 s2 单元并将其与您的数据集一起存储。
为了尝试 Map 类型,我们提供了一些不同的示例数据集供您使用。您可以使用美国地质调查局地震数据集(usgs)或美国国家海洋和大气管理局国家浮标数据中心数据集(noaa)。您可以通过 新的示例数据 Flux 包 访问它们。
import "influxdata/influxdb/sample"
sample.data(set: "usgs")
使用地图绘制数据
一旦数据被导入 InfluxDB 云,您就可以在构建可视化时开始使用这些数据。
只需选择您感兴趣的序列,确保您已选择数据中的纬度和经度字段,或 s2_cell_id
标签,然后从图形选项下拉菜单中选择地图可视化类型。
如果一切顺利,您应该会看到一个带有您的点的地图显示。如果您的字段不是以 lat 和 lon 命名或您的标签不是 s2_cell_id
命名,您可能会看到错误。没关系。您可以打开图形类型的配置选项,并选择用于显示的正确列或字段。
更改地图标记颜色
地图图形类型允许您配置一个值来更改地图上标记的颜色。为了使此功能正常工作,数据需要使用 s2_cell_id
标签来表示坐标,这样您就可以使用特定的字段值来设置标记颜色。
如果您的数据已经包含 s2_cell_id
列,您可以直接使用它。如果您只有纬度和经度值作为字段,您可以使用地理包中的 shapeData
函数来计算所需的 s2_cell_id
。最后,您可以将您要在阈值中使用的值列映射回 _value
列。下面的示例提供了一个使用此方法的示例查询。
一旦您的数据格式正确,您就可以配置阈值值来调整图形上标记的颜色。
以下是一个使用地震强度字段来更改地图标记颜色的示例。
结论
我们希望您喜欢使用地图图形类型分析数据的新功能。从地理上查看数据可以揭示新的见解或帮助您找到可能错过的模式。
我们一直在寻找有关您如何使用我们的产品功能的反馈,或我们如何改进的反馈。请加入我们的 社区 Slack 工作空间 或在 GitHub 上直接打开 功能请求 来告诉我们您的兴趣所在。