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

时间:2015-09-18 17:12:26

标签: graph charts time-series axibase

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

1 个答案:

答案 0 :(得分:2)

好问题。

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

  1. replace-value设置使用表达式修改或过滤系列值:

    [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
    
  2. 此表达式将过滤掉系列中小于0的所有值。

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

    replace-value

    1. min-range-force设置可用于设置y轴的最小范围:

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

      enter image description here

      1. 如果您使用脚本计算太阳高度,则可以使用[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 函数:

        [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
        
      2. 结果:https://axibase.com/chartlab/3170e35d/5/

        enter image description here

        1. value equation可用于创建计算系列,不包括负值:

          value = Math.max(0, value('sun_alt'))
        2. 在这种情况下,我们隐藏原始系列并指定别名,然后我们使用{{1}}等式创建一个没有负值的新计算系列。

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

          enter image description here