Wave:API: Difference between revisions

From BlueM
Jump to navigation Jump to search
m (→‎Example2: updated function name)
(updated for v1.8.0 (r621))
Line 20: Line 20:
Dim Wave1 As New BlueM.Wave.Wave()
Dim Wave1 As New BlueM.Wave.Wave()
Dim myFile As BlueM.Wave.FileFormatBase
Dim myFile As BlueM.Wave.FileFormatBase
Dim ts as BlueM.Wave.TimeSeries
Dim ts As BlueM.Wave.TimeSeries


'read a file
'read a file
myFile = BlueM.Wave.FileFactory.getFileInstance("path\to\file")
myFile = BlueM.Wave.FileFactory.getFileInstance(Me.FileName)
'check the available time series
'check the available time series
For Each c As BlueM.Wave.FileFormatBase.ColumnInfo In myFile.Columns
For Each c As BlueM.Wave.FileFormatBase.SeriesInfo In myFile.SeriesList
    Console.WriteLine(c.Name)
Console.WriteLine(c.Name)
Next
Next
'select all columns (series) for import
'select all series for import
myFile.selectAllColumns()
myFile.selectAllSeries()
'read the selected time series from the file
'read the selected time series from the file
myFile.read_File()
myFile.readFile()


'loop over all series and print some information about them
'loop over all series read from the file and print some information about them
For Each ts in myFile.TimeSeries
For Each ts In myFile.FileTimeSeries.Values
    Console.WriteLine("Series title: " & ts.Title)
Console.WriteLine("Series title: " & ts.Title)
    Console.WriteLine("Extent: " & ts.StartDate & " - " & ts.EndDate)
Console.WriteLine("Extent: " & ts.StartDate & " - " & ts.EndDate)
    Console.WriteLine("Max value: " & ts.Maximum)
Console.WriteLine("Max value: " & ts.Maximum)
    Console.WriteLine("Min value: " & ts.Minimum)
Console.WriteLine("Min value: " & ts.Minimum)
Next
Next


'get one particular time series
'get one particular time series
ts = myFile.getTimeSeries("SeriesTitle")
ts = myFile.getTimeSeries("S1  _1AB")


'cut the time series
'cut the time series
ts.Cut(New DateTime(2000, 01, 01), New DateTime(2010, 1, 1))
ts.Cut(New DateTime(1959, 1, 1), New DateTime(1960, 1, 1))


'loop over the nodes of the time series
'loop over the nodes of the time series
Line 51: Line 51:
Dim v As Double
Dim v As Double
For Each node As KeyValuePair(Of DateTime, Double) In ts.Nodes
For Each node As KeyValuePair(Of DateTime, Double) In ts.Nodes
    d = node.Key
d = node.Key
    v = node.Value
v = node.Value
Next
Next


Line 66: Line 66:
'create a new time series
'create a new time series
Dim ts As New BlueM.Wave.TimeSeries("my series")
Dim ts As New BlueM.Wave.TimeSeries("my series")
ts.Unit = "m3/s"
ts.Interpretation = Wave.TimeSeries.InterpretationEnum.BlockRight
'add some nodes to the time series
'add some nodes to the time series
ts.AddNode(New DateTime(2000, 1, 1), 10.)
ts.AddNode(New DateTime(2000, 1, 1), 10)
ts.AddNode(New DateTime(2000, 1, 2), 20.)
ts.AddNode(New DateTime(2000, 1, 2), 20)
ts.AddNode(New DateTime(2000, 1, 3), 30.)
ts.AddNode(New DateTime(2000, 1, 3), 30)
ts.AddNode(New DateTime(2000, 1, 4), 15.)
ts.AddNode(New DateTime(2000, 1, 4), 15)
'display the series in Wave
'Display the series in Wave
Wave1.Import_Series(ts)
Wave1.Import_Series(ts)
Wave1.Show()
Wave1.Show()

Revision as of 05:42, 11 June 2020

Wave.png Wave | Development

The Wave API provides a few methods for reading time series from files, manipulating and displaying them.

To access the API, include a reference to Wave.exe (or to the Wave project if you have the source code) in your .NET project.

Below are some examples.

Example1

'Load a time series file and display it in Wave
Dim Wave1 As New BlueM.Wave.Wave()
Wave1.Import_File("path\to\file") 'depending on the file format, this may display an import dialog
Wave1.Show()

Example2

'More complex example showcasing some more advanced techniques
Dim Wave1 As New BlueM.Wave.Wave()
Dim myFile As BlueM.Wave.FileFormatBase
Dim ts As BlueM.Wave.TimeSeries

'read a file
myFile = BlueM.Wave.FileFactory.getFileInstance(Me.FileName)
'check the available time series
For Each c As BlueM.Wave.FileFormatBase.SeriesInfo In myFile.SeriesList
	Console.WriteLine(c.Name)
Next
'select all series for import
myFile.selectAllSeries()
'read the selected time series from the file
myFile.readFile()

'loop over all series read from the file and print some information about them
For Each ts In myFile.FileTimeSeries.Values
	Console.WriteLine("Series title: " & ts.Title)
	Console.WriteLine("Extent: " & ts.StartDate & " - " & ts.EndDate)
	Console.WriteLine("Max value: " & ts.Maximum)
	Console.WriteLine("Min value: " & ts.Minimum)
Next

'get one particular time series
ts = myFile.getTimeSeries("S1  _1AB")

'cut the time series
ts.Cut(New DateTime(1959, 1, 1), New DateTime(1960, 1, 1))

'loop over the nodes of the time series
Dim d As DateTime
Dim v As Double
For Each node As KeyValuePair(Of DateTime, Double) In ts.Nodes
	d = node.Key
	v = node.Value
Next

'Display the series in Wave
Wave1.Import_Series(ts)
Wave1.Show()

Example3

'Create your own time series and display it in Wave
Dim Wave1 As New BlueM.Wave.Wave()
'create a new time series
Dim ts As New BlueM.Wave.TimeSeries("my series")
ts.Unit = "m3/s"
ts.Interpretation = Wave.TimeSeries.InterpretationEnum.BlockRight
'add some nodes to the time series
ts.AddNode(New DateTime(2000, 1, 1), 10)
ts.AddNode(New DateTime(2000, 1, 2), 20)
ts.AddNode(New DateTime(2000, 1, 3), 30)
ts.AddNode(New DateTime(2000, 1, 4), 15)
'Display the series in Wave
Wave1.Import_Series(ts)
Wave1.Show()