Documentation ¶
Overview ¶
statistic
Index ¶
- func SelectValueFromStatisticData(v StatisticData, keyword string) float64
- func StructFormatPrint(msg interface{}, names ...string)
- func TimeParse(s string, loc ...*time.Location) (time.Time, error)
- type PeakValleyPeriodValue
- type PeakValleySelector
- type StatisticData
- type TimeSeriesData
- type TimeSeriesDataI
- type TimeSeriesDataS
- type Tsds
- func (tsds Tsds) ButterFilter(N int, Wn interface{}, btype string, fs ...float64) error
- func (tsds Tsds) Copy() Tsds
- func (tsds Tsds) FillOutliersByExtremum()
- func (tsds Tsds) FillOutliersByMidean()
- func (tsds Tsds) GetDataArray() numgo.Array
- func (tsds Tsds) MoveWindowFilter(n int, fillvlue ...string)
- func (tsds Tsds) PutArray2Data(arr numgo.Array) error
- func (tsds Tsds) Quartiles(group ...int) (Lower, Q1, Q2, Q3, Upper, IQR float64)
- func (tsds Tsds) ReplaceLowValue(lowlimit, newvalue float64)
- func (tsds Tsds) SortByTime(desc ...bool)
- func (tsds Tsds) Statistics(cfg int, group ...int) StatisticData
- func (tsds Tsds) ToTimeSeriesDataS() []TimeSeriesDataS
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SelectValueFromStatisticData ¶
func SelectValueFromStatisticData(v StatisticData, keyword string) float64
*********************************************************** 功能:根据需要的数据指令从历史统计结构体中返回相应的数据 输入:历史统计结构体,数据类型指令 输出:浮点数 时间:2019年12月23日 编辑:wang_jp ***********************************************************
func StructFormatPrint ¶ added in v1.0.2201
func StructFormatPrint(msg interface{}, names ...string)
Json格式打印输出结构体
Types ¶
type PeakValleyPeriodValue ¶
type PeakValleyPeriodValue struct { Peak TimeSeriesData //峰值数据 Valley TimeSeriesData //谷值数据 PVDiff float64 //峰谷值之差 }
type PeakValleySelector ¶
type PeakValleySelector struct { InflectionIncrement float64 //拐点增量 SteadyValue float64 //稳态判据值 ContinuePoint int //连续稳定的数据点数 NegativeAsZero int //如果为0,保留负数;如果为1,将负数作为0处理 PeakSum float64 //峰之和 ValleySum float64 //谷之和 PVDiffSum float64 //峰谷差之和 PeriodCnt int //周期数 PvDatas []PeakValleyPeriodValue //峰谷周期值 // contains filtered or unexported fields }
func (*PeakValleySelector) DataFillter ¶
func (pvs *PeakValleySelector) DataFillter(input Tsds, inflectionIncrement float64, negativeAsZero int)
*********************************************************** 功能:数据筛选 输入:
input []TimeSeriesData:输入的数据结构 inflectionIncrement float64:拐点增量 negativeAsZero int64:如果为0,保留负数;如果为1,将负数作为0处理
输出:无 时间:2020年2月14日 编辑:wang_jp ***********************************************************
func (*PeakValleySelector) New ¶
func (pvs *PeakValleySelector) New(stdv float64, cp int)
*********************************************************** 功能:新建峰谷数据选择器 输入:
stdv float64:稳态判据值 cp int:连续稳定的数据点数
输出:无 时间:2020年2月14日 编辑:wang_jp ***********************************************************
type StatisticData ¶
type StatisticData struct { Min float64 //最小值(基本) Max float64 //最大值(基本) Range float64 //数据范围(Max-Min)(基本) Total float64 //表示统计时间段内的累计值,结果的单位为标签点的工程单位(面积,值*时间(s))(基本) Sum float64 //统计时间段内的算术累积值(值相加)(基本) Mean float64 //统计时间段内的算术平均值(Mean = Sum/PointCnt)(基本) PowerAvg float64 //统计时间段内的加权平均值,对BOOL量而言是ON率(Total/Duration)(基本) Diff float64 //统计时间段内的差值(最后一个值减去第一个值)(基本) PlusDiff float64 //正差值,用于累计值求差,可以削除清零对值的影响(统计周期内只可以有一次清零动作) Duration int64 //统计时间段内的秒数(EndTime - BeginTime)(基本) PointCnt int //统计时间段内的数据点数(基本) RisingCnt int //统计时间段内数据上升的次数(基本) FallingCnt int //统计时间段内数据下降的次数(基本) LtzCnt int //小于0的次数 GtzCnt int //大于0的次数 EzCnt int //等于0的次数 OutliersCnt int //离群异常点数(小于Lower和大于Upper的点数) Lower float64 //箱型图(盒须图)下边界,lower: Q1 - 1.5 * Qd Q1 float64 //下四分位 Q3 float64 //上四分位 Qd float64 //四分位差,亦写为IQR Upper float64 //箱型图(盒须图)上边界,upper: Q3 + 1.5 * Qd BeginTime string //开始时间(基本) EndTime string //结束时间(基本) SD float64 //总体标准偏差(高级) STDDEV float64 //样本标准偏差(高级) SE float64 //标准误差(SE = STDDEV / PointCnt)(高级) Ske float64 //偏度(高级) Kur float64 //峰度(高级) Mode float64 //众数(高级) Median float64 //中位数(高级) GroupDist float64 //组距GroupDistance(高级),DataGroup中两组数之间的距离 DataGroup map[string]float64 //数据分布组(高级),绘制出图形后是近似正态分布的草帽图 Increment map[string]float64 //相邻量数之间的增量,string是时间(基本) RawData []TimeSeriesDataS //原始数据 }
type TimeSeriesData ¶
type TimeSeriesDataI ¶
type TimeSeriesDataS ¶
type Tsds ¶
type Tsds []TimeSeriesData
时间序列数据数组
func ParseFromTimeValueMap ¶
*********************************************************** 功能:将时间、数值键值对类型的时间序列数据转换为时序数据 输入:tvm map[string]float64:key为时间字符串,value为浮点型数值 输出:error:错误信息 说明: 时间:2020年8月26日 编辑:wang_jp ***********************************************************
func Tsdi2Tsdt ¶
func Tsdi2Tsdt(tsdi []TimeSeriesDataI) Tsds
*********************************************************** 功能:Unix毫秒时间格式的时序数据转换为时间类时间格式的时序数据 输入:[]TimeSeriesDataS 输出:[]TimeSeriesData,error 时间:2020年5月17日 编辑:wang_jp ***********************************************************
func Tsds2Tsdt ¶
func Tsds2Tsdt(tsds []TimeSeriesDataS) (Tsds, error)
*********************************************************** 功能:字符串时间格式的时序数据转换为时间类时间格式的时序数据 输入:[]TimeSeriesDataS 输出:[]TimeSeriesData,error 时间:2020年5月17日 编辑:wang_jp ***********************************************************
func (Tsds) ButterFilter ¶
*********************************************************** 功能: 对数据进行Butterworth滤波 输入: N int: 滤波阶数
Wn float/[2]float:自然频率数组,也称归一化的截止频率,与fs具有相同的单位 fcf=截止频率*2/采样频率; 如果是低通,高通滤波,fcf只有一个元素,范围:0.0-1.0 如果是带通,带阻滤波,fcf数组有两个元素,分别是滤波带的起始频率和阶数频率,范围:0.0-fs/2.0 btype string:滤波类型,字符串;lp:表示低通;hp:表示高通;bp:表示带通;bs:表示带阻; fs float64:数字系统的采样频率,可选。 默认情况下,fs是2.0,表示每个周期采样2次
输出: 错误信息 说明: 编辑: wangjp 时间: 2020年10月22日 ***********************************************************
func (Tsds) Copy ¶
*********************************************************** 功能: 复制一个相同的数组 输入: 无 输出: Tsds数组 说明: 编辑: wangjp 时间: 2020年10月14日 ***********************************************************
func (Tsds) FillOutliersByExtremum ¶
func (tsds Tsds) FillOutliersByExtremum()
*********************************************************** 功能:用四分位Lower或者Upper填充离群点 输入:无 输出:无 说明:超出Lower和Upper范围的数为离群点 时间:2020年8月26日 编辑:wang_jp ***********************************************************
func (Tsds) FillOutliersByMidean ¶
func (tsds Tsds) FillOutliersByMidean()
*********************************************************** 功能:用中位数填充离群点 输入:无 输出:无 说明:超出Lower和Upper范围的数为离群点 时间:2020年8月26日 编辑:wang_jp ***********************************************************
func (Tsds) GetDataArray ¶
*********************************************************** 功能:获取时间序列数组中的数值 输入:无 输出:numgo.Array 时间:2020年8月26日 编辑:wang_jp ***********************************************************
func (Tsds) MoveWindowFilter ¶
*********************************************************** 功能: 移动窗口滤波 输入: n:int,滤波窗口长度,1<n<len(data)
fillvalue:string, 填充值方法{"mean","median","mode"},省略时为"mean"
输出: 说明: n<=1或者n>len(tsds)时,不进行滤波,直接返回原数据
"median"时,n必须大于2,否则用"mean"方法
编辑: wangjp 时间: 2020年10月14日 ***********************************************************
func (Tsds) PutArray2Data ¶
*********************************************************** 功能:将数组传回时序数据 输入:numgo.Array 输出: 时间:2020年10月22日 编辑:wang_jp ***********************************************************
func (Tsds) Quartiles ¶
*********************************************************** 功能:获取四分位数(quartiles) 输入:[group ...int] 可选的分组数,不选时采用数组长度自然分组 输出:
Lower:箱型图最小值,lower=Q1-1.5*Qd Q1:下四分位值 Q2:等于Median Q3:上四分位值 Upper:箱型图的最大值,upper=Q3+1.5*Qd IQR:四分位差,IQR=Q3-Q1,亦写为Qd
说明: 编辑:wang_jp 时间:2020年8月26日 ***********************************************************
func (Tsds) ReplaceLowValue ¶
*********************************************************** 功能: 替换低于给定值的数据 输入: lowlimit:float64:底限值,小于等于该值的数据都将被替换
newvalue:float64:替换超限值的新值
输出: 说明: 编辑: wangjp 时间: 2020年10月14日 ***********************************************************
func (Tsds) SortByTime ¶
*********************************************************** 功能:对时序数据按时间排序 输入:[desc] 顺序,false:从小到大(默认),true:从大到小 输出:无 时间:2020年8月26日 编辑:wang_jp ***********************************************************
func (Tsds) Statistics ¶
func (tsds Tsds) Statistics(cfg int, group ...int) StatisticData
*********************************************************** 功能:对时序数据统计计算 输入:data []TimeSeriesData:历史数据数组
cfg int:0=仅基础统计,1=需要高级统计,2=需要原始数据 group int:高级计算时的分组数量,默认0=100
返回:统计计算结果 编辑:wang_jp 时间:2019年12月7日 ***********************************************************
func (Tsds) ToTimeSeriesDataS ¶
func (tsds Tsds) ToTimeSeriesDataS() []TimeSeriesDataS
*********************************************************** 功能:将时间序列数据中的时间值转换为字符串格式 输入:无 输出:[]TimeSeriesDataS 说明: 时间:2020年8月26日 编辑:wang_jp ***********************************************************