Axibase时间序列数据库 - 在时间图表上过滤掉负值

问题描述 投票:1回答:1

我正在使用Axibase Time Series Database Community Edition,版本10552来存储我的光伏和太阳高度数据。太阳高度值在夜间是负的,我不想在我的图表上看到它们。

我怎样才能只查看正值?任何人都知道可以实现这一点的设置或技巧吗?

这是我目前的Time Chart widget配置:

[widget]
  type = chart
  title = PV power
  timespan = 3 day
  entity = pvout.25630

[series]
  label = Sun Altitude at (-35.3089, 149.2004)
  metric = sun_altitude
  color = orange
   [tags]
    lat = -35.3089 
    lon = 149.2004

这是我实际看到的内容的屏幕截图:

enter image description here

以下是Chart Lab中的示例:

https://axibase.com/chartlab/3170e35d/2/

graph charts time-series axibase
1个回答
2
投票

好问题。

有几种方法可以隐藏或过滤掉负值:

  1. replace-value设置使用表达式来修改或过滤系列值: [widget] type = chart title = PV power timespan = 3 day entity = pvout.25630 [series] label = Sun Altitude at (-35.3089, 149.2004) metric = sun_altitude color = orange replace-value = value < 0 ? null : value [tags] lat=-35.3089 lon=149.2004

此表达式将过滤掉系列中小于0的所有值。

结果:https://axibase.com/chartlab/3170e35d/3/

replace-value

  1. min-range-force设置可用于设置y轴的最小范围: [widget] type = chart title = PV power timespan = 3 day entity = pvout.25630 min-range-force = 0 [series] label = Sun Altitude at (-35.3089, 149.2004) metric = sun_altitude color = orange [tags] lat=-35.3089 lon=149.2004

结果:https://axibase.com/chartlab/3170e35d/4/

enter image description here

  1. 如果您使用脚本来计算太阳高度,那么您可以使用Math.max函数: [widget] type = chart title = PV power timespan = 3 day [series] label = Altitude #API: SunCalc.getPosition = function (date, lat, lng) value = var pos = SunCalc.getPosition(new Date(time), -35.3089, 149.2004); value = return Math.max(0, pos.altitude) frequency = 30 minute color = orange

结果:https://axibase.com/chartlab/3170e35d/5/

enter image description here

  1. value equation可用于创建计算系列,不包括负值: [widget] type = chart title = PV power timespan = 3 day entity = pvout.25630 [series] metric = sun_altitude display = false alias = sun_alt [tags] lat=-35.3089 lon=149.2004 [series] label = Sun Altitude at (-35.3089, 149.2004) value = Math.max(0, value('sun_alt')) color = orange

在这种情况下,我们隐藏原始系列并分配别名,然后我们使用value = Math.max(0, value('sun_alt'))方程创建一个没有负值的新计算系列。

结果:https://axibase.com/chartlab/3170e35d/6/

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.