AFSearch.Histogram(TBin) Method
- Last UpdatedNov 18, 2025
- 3 minute read
- PI System
- AF SDK 2024 R2
- Developer
Generates a histogram using the specified weighting for items matching this search.
Namespace: OSIsoft.AF.Search
Assembly: OSIsoft.AFSDK (in OSIsoft.AFSDK.dll) Version: 3.1.1.1182
Syntax
public AFBinnedResult<TBin> Histogram<TBin>( string field, IEnumerable<TBin> bins, UOM binUOM ) where TBin : Object, IComparable<TBin>
Public Function Histogram(Of TBin As {Object, IComparable(Of TBin)}) ( field As String, bins As IEnumerable(Of TBin), binUOM As UOM ) As AFBinnedResult(Of TBin) Dim instance As AFSearch Dim field As String Dim bins As IEnumerable(Of TBin) Dim binUOM As UOM Dim returnValue As AFBinnedResult(Of TBin) returnValue = instance.Histogram(field, bins, binUOM)
public: generic<typename TBin> where TBin : Object, IComparable<TBin> AFBinnedResult<TBin>^ Histogram( String^ field, IEnumerable<TBin>^ bins, UOM^ binUOM )
member Histogram : field : string * bins : IEnumerable<'TBin> * binUOM : UOM -> AFBinnedResult<'TBin> when 'TBin : Object and IComparable<'TBin>
Parameters
- field
- Type: SystemString
The field whose value should be binned. - bins
- Type: System.Collections.GenericIEnumerableTBin
The bins the field should be sorted into. - binUOM
- Type: OSIsoft.AF.UnitsOfMeasureUOM
The unit of measure associated with bin values.
Type Parameters
- TBin
- The type of the histogram bins.
Return Value
Type: AFBinnedResultTBinA result containing the requested histogram or an error if the summaries could not be performed.
Examples
// Get the Database PISystems myPISystems = new PISystems(); PISystem myPISystem = myPISystems.DefaultPISystem; if (myPISystem == null) throw new InvalidOperationException("Default PISystem was not found."); AFDatabase myDB = myPISystem.Databases[dbName]; if (myDB == null) throw new InvalidOperationException("Database was not found."); // Create a search to find all the event frames created from the 'Event' // template in the last year. using (AFEventFrameSearch eventSearch = new AFEventFrameSearch(myDB, "EventFrameSearch", @"Template:'Event' Start:>'t-1y'")) { eventSearch.CacheTimeout = TimeSpan.FromMinutes(10); // Generate a histogram by start month AFBinnedResult<AFTime> histogram = eventSearch.Histogram("StartTime", new AFTimeSpan(months: 1).GetIntervalTimes(new AFTimeRange("1-1y", "1+1mo")), binUOM: null); foreach (var bin in histogram.BinnedResults) { Console.WriteLine("Month: {0}, Count: {1}", bin.Key, bin.Value[AFSummaryTypes.Count]); } }
' Get the Database Dim myPISystems As New PISystems() Dim myPISystem As PISystem = myPISystems.DefaultPISystem If myPISystem Is Nothing Then Throw New InvalidOperationException("Default PISystem was not found.") End If Dim myDB As AFDatabase = myPISystem.Databases(dbName) If myDB Is Nothing Then Throw New InvalidOperationException("Database was not found.") End If ' Create a search to find all the event frames created from the 'Event' ' template in the last year. Using eventSearch As New AFEventFrameSearch(myDB, "EventFrameSearch", "Template:'Event' Start:>'t-1y'") eventSearch.CacheTimeout = TimeSpan.FromMinutes(10) ' Generate a histogram by start month Dim histogram As AFBinnedResult(Of AFTime) = eventSearch.Histogram("StartTime", New AFTimeSpan(months:=1).GetIntervalTimes(New AFTimeRange("1-1y", "1+1mo")), binUOM:=Nothing) For Each bin As KeyValuePair(Of AFRange(Of AFTime), IReadOnlyDictionary(Of AFSummaryTypes, AFValue)) In histogram.BinnedResults Console.WriteLine("Month: {0}, Count: {1}", bin.Key, bin.Value(AFSummaryTypes.Count)) Next End Using
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.