【问题标题】:Axibase Time Series Database - filter out negative values on time chartAxibase 时间序列数据库 - 过滤掉时间图表上的负值
【发布时间】:2015-09-18 17:12:25
【问题描述】:

我正在使用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

这是我目前实际看到的截图:

这是 Chart Lab 中的一个示例:

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

【问题讨论】:

    标签: graph charts time-series axibase


    【解决方案1】:

    好问题。

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

    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/

    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/

    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/

    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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-11
      • 2021-12-11
      • 2010-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多