我正在使用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中的示例:
好问题。
有几种方法可以隐藏或过滤掉负值:
[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/
[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/
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/
[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'))
方程创建一个没有负值的新计算系列。