BlueM.Wave: Difference between revisions
(→Edit & Analyze: Added analysis function Autocorrelation and LinearRegression (Wave v1.13)) |
(→link= Import time series: restructure and add HYBNAT) |
||
(24 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
<div style="float:right; margin:0.5em 0 0.5em 0.5em;">__TOC__</div> | <div style="float:right; margin:0.5em 0 0.5em 0.5em;">__TOC__</div> | ||
[[Bild:Wave_screenshot.png|thumb|Screenshot]] | [[Bild:Wave_screenshot.png|thumb|Screenshot]] | ||
==Description== | ==Description== | ||
Wave is a tool for displaying, analyzing and importing and exporting time series. | Wave is a tool for displaying, analyzing and importing and exporting time series. | ||
Line 11: | Line 8: | ||
==Features== | ==Features== | ||
=== | ===[[File:Icon_chart_line_add.png|link=]] Import time series=== | ||
* [[WEL- | '''Supported file formats:''' | ||
* [[ | * [[WEL-Format_(BlueM)|BlueM.Sim result files]]: <code>*.WEL</code>, <code>*.KWL</code> | ||
* | * [[DFS0-Format | DHI MIKE DFS0 format]]: <code>*.DFS0</code> | ||
* [[HYDRO_AS-2D result files]] | * [[WEL-Format (GISMO)|GISMO result files]]: <code>*.WEL</code> | ||
* [[Hystem-Extran file formats]]: | * [[HYBNAT result files]]: <code>*.WEL</code>, <code>*.BCS</code> | ||
* [[PRMS result files]] | * [[HYDRO_AS-2D result files]]: <code>*.DAT</code> | ||
* [[SMUSI file formats]]: ASC result files and REG files | * [[Hystem-Extran file formats]]: Regendatei (<code>*.REG</code>, <code>*.DAT</code>) and Wellendatei (<code>*.WEL</code>) | ||
* [[SWMM file formats]]: SWMM5 binary output format, routing interface files, LID report files, DAT | * [[JAMS result files]]: JAMS/J2000/J2K/J2000g timeseries results (<code>*.DAT</code>) | ||
* [[SMB-Format | SMB]] | * [[PRMS result files]]: annual summary, monthly summary, DPOUT (<code>*.OUT</code>) and statistic variables result file (<code>*.DAT</code>) | ||
* [[UVF-Format | UVF]] | * [[SMUSI file formats]]: <code>*.ASC</code> result files and <code>*.REG</code> input files | ||
* [[ZRE-Format | ZRE format]] | * [[SWMM file formats]]: SWMM5 binary output format (<code>*.OUT</code>), routing interface files (<code>*.TXT</code>), LID report files (<code>*.TXT</code>), SWMM time series files (<code>*.DAT</code>) | ||
* [[ZRXP-Format | ZRXP format]] | * [[SMB-Format | SIMBA file format]]: <code>*.SMB</code> | ||
* and generic text files (e.g. | * [[Talsim-NG file formats]]: time series results (<code>*.WEL</code>, <code>*.WBL</code>) and binary input time series (<code>*.BIN</code>) | ||
* [[UVF-Format | UVF format]]: Universelles Variables Format (<code>*.UVF</code>) | |||
* [[ZRE-Format | ZRE format]]: <code>*.ZRE</code> | |||
* [[ZRXP-Format | ZRXP format]]: <code>*.ZRX</code>, <code>*.ZRXP</code> | |||
* and [[CSV-Format|generic text files]] (e.g. <code>*.CSV</code>, <code>*.TXT</code>) | |||
Use a '''[[Wave project file]]''' (<code>*. | [[File:Icon_chart_curve_link.png|link=]] Use a '''[[Wave project file]]''' (<code>*.WVP</code>) to quickly import multiple series from multiple files at once. | ||
'''Drag&Drop''' files onto Wave to import them quickly. | '''Drag&Drop''' files onto Wave to import them quickly. | ||
It is also possible to manually | It is also possible to manually [[File:Icon_chart_line_edit.png|link=]] '''enter time series''', or [[File:Icon_page_paste.png|link=]] '''paste clipboard data''' from Excel and [http://www.talsim.de Talsim-NG]. | ||
===Visualization & Navigation=== | ===Visualization & Navigation=== | ||
Display time series in a highly customizable | Display time series in a highly [[File:Icon_chart_curve_edit.png|link=]] '''customizable chart''' (provided by [http://www.steema.com/products/teechart/overview.html TeeChart]) | ||
* ''' | [[Image:TimeSeriesValues.png|thumb|Time series values and markers ([[Media:TimeSeriesValues_animation.gif|animation]])]] | ||
* | * [[File:Icon_application_split.png|link=]] An '''overview''' chart shows you the full extent of the time series and the period currently displayed in the main chart. | ||
* [[File:Icons_zoom.png|link=]] Use the toolbar buttons or the mouse to '''zoom or pan''' either in the main chart or the overview chart. Use the left mouse button or the mouse scroll wheel to zoom, hold the right mouse button to pan. | |||
* ''' | * [[File:Icon_controller.png|link=]] Use the '''navigation bar''' to set a custom display period and to navigate by a fixed time period or to the start/end [[File:Icons_navigate.png|link=]]. | ||
* Quickly switch time series on and off using the '''check boxes''' in the legend. | * [[File:Icon_table.png|link=]] Display tabular '''time series values''' and optionally show markers [[File:Icon_comments.png|link=]] for selected rows in the main chart | ||
* Display | |||
===Series management=== | |||
[[File:Wave TimeSeries Properties.png|thumb|right|Time series properties]] | |||
* [[File:Icon_accept_split.png|link=]] Quickly switch time series on and off using the '''check boxes''' in the legend or activate/deactivate all series at once using the button in the toolbar. | |||
* [[File:Icon_table_edit.png|link=]] Display and edit '''time series properties''' in a table with optional statistics. | |||
* [[File:Icon_shape_align_bottom.png|link=]] '''Manage axes''': When importing time series, series are automatically assigned to different axes depending on their unit. | |||
===Save & Export=== | ===Save & Export=== | ||
'''Save | [[File:Icon_chart_curve_link.png|link=]] '''Save [[Wave project file|project files]]''' (<code>*.wvp</code>) with references to time series from file sources. | ||
''' | [[File:Icon_chart_pie.png|link=]] '''Save charts''' to the native TeeChart format (TEN-File) to preserve all data and formatting (for exceptions, see known issues below). | ||
'''Export time series''' to the following formats: | [[File:Icon_chart_pie.png|link=]] '''Export charts''' as image files (PNG, JPG, BMP). | ||
[[File:Icon page copy.png|link=]] '''Copy''' the chart to the clipboard as a PNG image. | |||
'''[[File:Icon_page_white_go.png|link=]] Export time series''' to the following formats: | |||
* [[CSV-Format | CSV]] | * [[CSV-Format | CSV]] | ||
* [[ | * [[BIN-Format | BIN]] | ||
* [[DFS0-Format | DFS0]] | |||
* [[SWMM file formats|SWMM routing interface and time series files]] | |||
* [[SMUSI REG-Format | SMUSI REG]] | * [[SMUSI REG-Format | SMUSI REG]] | ||
* [[UVF-Format | UVF]] | * [[UVF-Format | UVF]] | ||
* | * [[ZRE-Format | ZRE]] | ||
* [[ZRXP-Format | ZRXP]] | |||
===Edit & Analyze=== | ===Edit & Analyze=== | ||
Editing functions: | Editing functions: | ||
* '''Cut''' time series to a specified time period or to another series' extent | * [[File:Icon_cut.png|link=]] '''Cut''' time series to a specified time period or to another series' extent | ||
* '''Convert error values''' of a time series | * [[File:Icon_error_convert.png|link=]] '''Convert error values''' of a time series | ||
* '''Merge''' multiple time series into one while respecting priorities | * [[File:Icon_arrow_join_right.png|link=]] '''Merge''' multiple time series into one while respecting priorities | ||
'''Analysis functions:''' | '''[[File:Icon_calculator.png|link=]] Analysis functions:''' | ||
* [[Wave:Accumulate|Accumulate]]: Compute a new time series that contains the cumulative values of the original series | |||
* [[Wave:Autocorrelation|Autocorrelation]]: Autocorrelation analysis for analyzing time series periodicity | * [[Wave:Autocorrelation|Autocorrelation]]: Autocorrelation analysis for analyzing time series periodicity | ||
* [[Wave:AnnualRecurrenceProbability|Annual recurrence probability]]: Annual recurrence probability of annual maxima using plotting position | |||
* [[Wave:AnnualStatistics|Annual statistics]]: Compute various statistical parameters (min, max, average) of a time series | * [[Wave:AnnualStatistics|Annual statistics]]: Compute various statistical parameters (min, max, average) of a time series | ||
* [[Wave:Calculator|Calculator]]: Performs a mathematical operation on one or more time series | * [[Wave:Calculator|Calculator]]: Performs a mathematical operation on one or more time series | ||
* [[Wave:ChangeTimestep| | * [[Wave:ChangeTimestep|Change timestep]]: Make a time series equidistant with a user-specified timestep | ||
* [[Wave: | * [[Wave:Comparison|Comparison]]: Plot two time series against each other and compute a linear regression line | ||
* [[Wave: | * [[Wave:Decumulate|Decumulate]]: Compute a new time series that consists of the decumulated values of the original series | ||
* [[Wave:DoubleSumCurve|Double sum curve]] | * [[Wave:DoubleSumCurve|Double sum curve]] | ||
* [[Wave:GoodnessOfFit|Goodness of fit]] (volume error, sum of squares error, Nash-Sutcliffe efficiency, etc.) | * [[Wave:GoodnessOfFit|Goodness of fit]] (volume error, sum of squares error, Nash-Sutcliffe efficiency, etc.) | ||
* [[Wave:Histogram|Histogram]] | * [[Wave:Histogram|Histogram]] | ||
* [[Wave:LinearRegression| | * [[Wave:LinearRegression|Linear regression]]: Fills gaps (NaN values and missing timestamps) in one time series by applying a linear regression relationship with a second time series | ||
* [[Wave:MonthlyStatistics|Monthly statistics]] | * [[Wave:MonthlyStatistics|Monthly statistics]] | ||
* [[Wave:TimestepAnalysis|Timestep analysis]]: Calculate the timestep between nodes in a user-specified unit | * [[Wave:TimestepAnalysis|Timestep analysis]]: Calculate the timestep between nodes in a user-specified unit | ||
<gallery mode="packed-hover"> | |||
File:Wave Cumulative.png|Accumulate|link=Wave:Accumulate | |||
File:Wave Autocorrelation.png|Autocorrelation|link=Wave:Autocorrelation | |||
File:Wave AnnualRecurrenceProbability.png|Annual recurrence probability|link=Wave:AnnualRecurrenceProbability | |||
File:Wave AnnualStatistics BoundingBoxes.png|Annual statistics|link=Wave:AnnualStatistics | |||
File:Wave Calculator.png|Calculator|link=Wave:Calculator | |||
File:Wave ChangeTimestep Instantaneous.png|Change timestep | |||
File:Wave Comparison.png|Comparison|link=Wave:ChangeTimestep | |||
File:Wave Decumulate.png|Decumulate|link=Wave:Decumulate | |||
File:Doppelsummenanalyse.png|Double sum curve|link=Wave:DoubleSumCurve | |||
File:GoodnessOfFit ResultChart.png|Goodness of fit|link=Wave:GoodnessOfFit | |||
File:Wave_Statistik.png|Histogram|link=Wave:Histogram | |||
File:Wave LinearRegression.png|Linear regression|link=Wave:LinearRegression | |||
File:Monatsauswertung.png|Monthly statistics|link=Wave:MonthlyStatistics | |||
</gallery> | |||
==Comandline interface== | ==Comandline interface== | ||
Line 81: | Line 111: | ||
The '''API''' is used e.g. by [[BlueM.Opt]] and [[BlueM.Win]] but allows using Wave from within any .NET project. | The '''API''' is used e.g. by [[BlueM.Opt]] and [[BlueM.Win]] but allows using Wave from within any .NET project. | ||
See the | See the API docs here: https://bluemodel.github.io/BlueM.Wave/api/ | ||
==Notes== | ==Notes== | ||
Line 90: | Line 120: | ||
* If a file format has a specified error value (e.g. -777 for [[ZRXP]] and [[UVF]]), then any corresponding entries are also converted to NaN. | * If a file format has a specified error value (e.g. -777 for [[ZRXP]] and [[UVF]]), then any corresponding entries are also converted to NaN. | ||
* NaN values are displayed as gaps in the chart and are ignored when performing analysis functions. | * NaN values are displayed as gaps in the chart and are ignored when performing analysis functions. | ||
* Custom, user-specified values can be converted to NaN after import. | * Custom, user-specified values can be converted to NaN [[File:Icon_error_convert.png|link=]] after import. | ||
* NaN values can be visualized in the chart by pressing a button (see screenshot | * NaN values can be visualized in the chart by pressing a [[File:Icon_chart_line_error.png|link=]] button (see screenshot). | ||
===Volume property=== | ===Volume property=== | ||
Wave calculates and displays the | Wave calculates and displays the Volume property of a time series (e.g. for [[Wave:GoodnessOfFit|GoodnessOfFit]] analysis or in the properties window), if a time series' unit ends with "/s", "/min", "/h" or "/d" (e.g. "m³/s", "mm/h", etc.) and its interpretation is either Instantaneous, BlockLeft or BlockRight, by integrating the values over time while respecting the interpretation. Time series with other units or interpretations only have the Sum property. NaN nodes cause the adjacent timesteps to not contribute to the volume (depends on the interpretation). | ||
===Supported date range=== | |||
Wave supports dates between 01.01.0001 and 31.12.9999. | Wave supports dates between 01.01.0001 and 31.12.9999. | ||
The chart display can only show dates between 01.01.0100 and 31.12.9000. Time series with dates before 01.01.0100 and after 31.12.9000 are cut for display purposes, but all nodes are still available for analysis and export and are shown in the properties and time series values dialogs. (# | The chart display can only show dates between 01.01.0100 and 31.12.9000. Time series with dates before 01.01.0100 and after 31.12.9000 are cut for display purposes, but all nodes are still available for analysis and export and are shown in the properties and time series values dialogs. (#68) | ||
==Downloads== | ==Downloads== | ||
Download BlueM.Wave from GitHub: https://github.com/bluemodel/BlueM.Wave/releases/latest | |||
==Known Issues== | ==Known Issues== | ||
* When saving a chart to the native TEN format of TeeChart, certain Timeseries properties such as Interpretation, Datasource and sometimes Unit are lost. | |||
* <s>When saving a chart to the native TEN format of TeeChart, any NaN values contained in the series are lost (i.e. the nodes with the NaN values are omitted from the series).</s> ''fixed in v1.9.1'' | * <s>When saving a chart to the native TEN format of TeeChart, any NaN values contained in the series are lost (i.e. the nodes with the NaN values are omitted from the series).</s> ''fixed in v1.9.1'' | ||
* more issues: https://github.com/bluemodel/BlueM.Wave/issues | |||
==Development== | ==Development== | ||
* [https:// | * [https://github.com/bluemodel/BlueM.Wave/blob/master/source/CHANGELOG.md Changelog] | ||
* [[Wave:Development|Development]] | * [[Wave:Development|Development]] | ||
[[Category:BlueM.Wave]] | [[Category:BlueM.Wave]] |
Latest revision as of 11:10, 11 December 2023
Wave | Download | Development
Description
Wave is a tool for displaying, analyzing and importing and exporting time series.
Features
Import time series
Supported file formats:
- BlueM.Sim result files:
*.WEL
,*.KWL
- DHI MIKE DFS0 format:
*.DFS0
- GISMO result files:
*.WEL
- HYBNAT result files:
*.WEL
,*.BCS
- HYDRO_AS-2D result files:
*.DAT
- Hystem-Extran file formats: Regendatei (
*.REG
,*.DAT
) and Wellendatei (*.WEL
) - JAMS result files: JAMS/J2000/J2K/J2000g timeseries results (
*.DAT
) - PRMS result files: annual summary, monthly summary, DPOUT (
*.OUT
) and statistic variables result file (*.DAT
) - SMUSI file formats:
*.ASC
result files and*.REG
input files - SWMM file formats: SWMM5 binary output format (
*.OUT
), routing interface files (*.TXT
), LID report files (*.TXT
), SWMM time series files (*.DAT
) - SIMBA file format:
*.SMB
- Talsim-NG file formats: time series results (
*.WEL
,*.WBL
) and binary input time series (*.BIN
) - UVF format: Universelles Variables Format (
*.UVF
) - ZRE format:
*.ZRE
- ZRXP format:
*.ZRX
,*.ZRXP
- and generic text files (e.g.
*.CSV
,*.TXT
)
Use a Wave project file (*.WVP
) to quickly import multiple series from multiple files at once.
Drag&Drop files onto Wave to import them quickly.
It is also possible to manually enter time series, or paste clipboard data from Excel and Talsim-NG.
Display time series in a highly customizable chart (provided by TeeChart)
- An overview chart shows you the full extent of the time series and the period currently displayed in the main chart.
- Use the toolbar buttons or the mouse to zoom or pan either in the main chart or the overview chart. Use the left mouse button or the mouse scroll wheel to zoom, hold the right mouse button to pan.
- Use the navigation bar to set a custom display period and to navigate by a fixed time period or to the start/end .
- Display tabular time series values and optionally show markers for selected rows in the main chart
Series management
- Quickly switch time series on and off using the check boxes in the legend or activate/deactivate all series at once using the button in the toolbar.
- Display and edit time series properties in a table with optional statistics.
- Manage axes: When importing time series, series are automatically assigned to different axes depending on their unit.
Save & Export
Save project files (*.wvp
) with references to time series from file sources.
Save charts to the native TeeChart format (TEN-File) to preserve all data and formatting (for exceptions, see known issues below).
Export charts as image files (PNG, JPG, BMP).
Copy the chart to the clipboard as a PNG image.
Export time series to the following formats:
Edit & Analyze
Editing functions:
- Cut time series to a specified time period or to another series' extent
- Convert error values of a time series
- Merge multiple time series into one while respecting priorities
Analysis functions:
- Accumulate: Compute a new time series that contains the cumulative values of the original series
- Autocorrelation: Autocorrelation analysis for analyzing time series periodicity
- Annual recurrence probability: Annual recurrence probability of annual maxima using plotting position
- Annual statistics: Compute various statistical parameters (min, max, average) of a time series
- Calculator: Performs a mathematical operation on one or more time series
- Change timestep: Make a time series equidistant with a user-specified timestep
- Comparison: Plot two time series against each other and compute a linear regression line
- Decumulate: Compute a new time series that consists of the decumulated values of the original series
- Double sum curve
- Goodness of fit (volume error, sum of squares error, Nash-Sutcliffe efficiency, etc.)
- Histogram
- Linear regression: Fills gaps (NaN values and missing timestamps) in one time series by applying a linear regression relationship with a second time series
- Monthly statistics
- Timestep analysis: Calculate the timestep between nodes in a user-specified unit
Comandline interface
Wave has a commandline interface for importing and converting time series, see Wave:CLI for details.
API
The API is used e.g. by BlueM.Opt and BlueM.Win but allows using Wave from within any .NET project.
See the API docs here: https://bluemodel.github.io/BlueM.Wave/api/
Notes
Error values
- "NaN", "Infinity" and "-Infinity" in import files are recognized and accepted.
- Unreadable values are converted to NaN during import.
- If a file format has a specified error value (e.g. -777 for ZRXP and UVF), then any corresponding entries are also converted to NaN.
- NaN values are displayed as gaps in the chart and are ignored when performing analysis functions.
- Custom, user-specified values can be converted to NaN after import.
- NaN values can be visualized in the chart by pressing a button (see screenshot).
Volume property
Wave calculates and displays the Volume property of a time series (e.g. for GoodnessOfFit analysis or in the properties window), if a time series' unit ends with "/s", "/min", "/h" or "/d" (e.g. "m³/s", "mm/h", etc.) and its interpretation is either Instantaneous, BlockLeft or BlockRight, by integrating the values over time while respecting the interpretation. Time series with other units or interpretations only have the Sum property. NaN nodes cause the adjacent timesteps to not contribute to the volume (depends on the interpretation).
Supported date range
Wave supports dates between 01.01.0001 and 31.12.9999.
The chart display can only show dates between 01.01.0100 and 31.12.9000. Time series with dates before 01.01.0100 and after 31.12.9000 are cut for display purposes, but all nodes are still available for analysis and export and are shown in the properties and time series values dialogs. (#68)
Downloads
Download BlueM.Wave from GitHub: https://github.com/bluemodel/BlueM.Wave/releases/latest
Known Issues
- When saving a chart to the native TEN format of TeeChart, certain Timeseries properties such as Interpretation, Datasource and sometimes Unit are lost.
When saving a chart to the native TEN format of TeeChart, any NaN values contained in the series are lost (i.e. the nodes with the NaN values are omitted from the series).fixed in v1.9.1- more issues: https://github.com/bluemodel/BlueM.Wave/issues