当前位置: 首页>>代码示例>>C#>>正文


C# Statistics.Calculate方法代码示例

本文整理汇总了C#中Statistics.Calculate方法的典型用法代码示例。如果您正苦于以下问题:C# Statistics.Calculate方法的具体用法?C# Statistics.Calculate怎么用?C# Statistics.Calculate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Statistics的用法示例。


在下文中一共展示了Statistics.Calculate方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GetStatistics

        /// <summary>
        /// Returns the calculated <see cref="Statistics"/> from buffered data of the specified <paramref name="export"/>.
        /// </summary>
        /// <param name="export"><see cref="Export"/> for which statistical values are to be calculated.</param>
        /// <returns>The calculated <see cref="Statistics"/> from buffered data of the specified <paramref name="export"/>.</returns>
        protected virtual Statistics GetStatistics(Export export)
        {
            Statistics stats = new Statistics();
            DataSet rawData = GetBufferedData(export.Name);
            ExportSetting filterClauseSetting = export.FindSetting("FilterClause");
            ExportSetting slopeThresholdSetting = export.FindSetting("SlopeThreshold");
            if (rawData != null)
            {
                // Buffered data is available for the export, so calculate the statistics.
                if (slopeThresholdSetting != null)
                {
                    // Slope-based data elimination is to be employed.
                    double slopeThreshold = Convert.ToDouble(slopeThresholdSetting.Value);
                    lock (rawData)
                    {
                        foreach (ExportRecord record in export.Records)
                        {
                            // Run data for each record against the slope-based data elimination algorithm.
                            double slope = 0;
                            bool delete = false;
                            DataRow[] records = rawData.Tables[0].Select(string.Format("Instance=\'{0}\' And ID={1}", record.Instance, record.Identifier), "TimeTag");
                            if (records.Length > 0)
                            {
                                for (int i = 0; i < records.Length - 1; i++)
                                {
                                    // Calculate slope for the data using standard slope formula.
                                    slope = Math.Abs((((float)records[i]["Value"]) - (float)records[i + 1]["Value"]) / (Ticks.ToSeconds((Convert.ToDateTime(records[i]["TimeTag"])).Ticks) - Ticks.ToSeconds((Convert.ToDateTime(records[i + 1]["TimeTag"])).Ticks)));
                                    if (slope > slopeThreshold)
                                    {
                                        // Data for the point has slope that exceeds the specified slope threshold.
                                        delete = true;
                                        break;
                                    }
                                }

                                if (delete)
                                {
                                    // Data for the record is to be excluded from the calculation.
                                    for (int i = 0; i < records.Length; i++)
                                    {
                                        records[i].Delete();
                                    }
                                    OnStatusUpdate(string.Format("{0}:{1} data eliminated (Slope={2}; Threshold={3})", record.Instance, record.Identifier, slope, slopeThreshold));
                                }
                            }
                        }
                    }
                }

                if (filterClauseSetting == null)
                {
                    // No filter clause setting exist for the export.
                    stats.Calculate(rawData, string.Empty);
                }
                else
                {
                    // Filter clause setting exists for the export so use it.
                    stats.Calculate(rawData, filterClauseSetting.Value);
                }
            }

            return stats;
        }
开发者ID:rmc00,项目名称:gsf,代码行数:68,代码来源:StatisticsExporter.cs


注:本文中的Statistics.Calculate方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。