我正在使用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中的示例:
答案 0 :(得分:2)
好问题。
有几种方法可以隐藏或过滤掉负值:
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
此表达式将过滤掉系列中小于0的所有值。
结果:https://axibase.com/chartlab/3170e35d/3/
min-range-force设置可用于设置y轴的最小范围:
Math.max
结果:https://axibase.com/chartlab/3170e35d/4/
如果您使用脚本计算太阳高度,则可以使用[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
结果:https://axibase.com/chartlab/3170e35d/5/
value equation可用于创建计算系列,不包括负值:
value = Math.max(0, value('sun_alt'))
在这种情况下,我们隐藏原始系列并指定别名,然后我们使用{{1}}等式创建一个没有负值的新计算系列。