-
Notifications
You must be signed in to change notification settings - Fork 19
4. Quickstart Guide Plotter
The MTB Plotter is a tool that allows plotting of the generated RMS and EMT results.
The tool is located in the folder "plotter" which includes the main script "plotter.py", subscripts, a figure setup file and a configuration file.
Before running the main script, you should configure both the figure setup file and the configuration file itself.
The plotter configuration file, config.ini,
contains the following modifiable parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
| [config] | |||
| resultsDir | string | results | The relative path for plotter results directory |
| genHTML | boolean | True | Whether or not to generate HTML plot result files |
| genlmage | boolean | True | Whether or not to generate image plot result files |
| genCursorPDF | boolean | True | Whether or not to generated PDF cursor output files |
| imageFormat | string | png | Plot image format, either png or jpeg |
| htmlColumns | integer | 2 | Number of HTML columns produced |
| imageColumns | integer | 3 | Number of image columns produced |
| htmlCursorColumns | integer | 2 | Number of HTML columns produced |
| threads | integer | 10 | Number of Python threads for producing result files |
| testcaseSheet | string | -- | Path to testcases.xlsx (mandatory) |
| [Simulation data paths] | |||
| PathlLegendName | string | ..\export\MTB_XXX | Path1 for RMS or EMT data directory, e.g. RMS |
| Path2LegendName | string | ..\export\MTB_YYY | Path2 for RMS or EMT data directory, e.g. EMT |
| Path3LegendName | string | -- | Path3 for RMS or EMT data directory |
| etc. |
Note
If htmlColumns > 3, the HTML output will be a "subplot" with a common legend on the righthand side instead of each plot figure having its own legend.
Note
The paths under the section header [Simulation data paths] can be appended to compare additional results from multiple models. Simply add a new line matching the folder containing the data one wants to plot.
The strings Path1LegendName, Path2LegendName, etc. used for each data path will be appended in front of all the signals names from that specified data path. It could be as simple as e.g.
- EMT
- RMS
or more elaborate if different versions of RMS and EMT results are being plotted to compare results from different versions, e.g.
- RMS_V04,
- RMS_V05,
- EMT_V04,
- EMT_V05,
- etc.
The plotter tool automatically categorizes results found in the paths of the [Simulation data paths] section header. An RMS result file is defined as a .csv file with the leftmost column named b:tnow in s and an EMT_INF result file (metafile) is defined as an .inf file with the first line starting with PGB(1). _EMT_INF_datafiles (*.csv) are assumed to be in the same folder as the .inf metafile. All files with extension .psout are assumed to be of type EMT_PSOUT, the new binary-based PSCAD output.
Note
The plotter tool also supports .csv and compressed .csv output generated by the psout_to_csv.py script
| Type | Enum | Description |
|---|---|---|
| RMS | 0 | PowerFactory standard .csv output |
| EMT_INF | 1 | PSCAD legacy .inf/.csv output |
| EMT_PSOUT | 2 | PSCAD new style .psout output |
| EMT_CSV | 3 | PSCAD .psout -> .csv support |
| EMT_ZIP | 4 | PSCAD .psout -> .zip, .gz, .bz2 and .xz support |
The figure setup file, figureSetup.csv, is used to configure individual plot figures. A maximum of three EMT signals per EMT result file, and three RMS signals per result file can be specified for each plot figure.
| Column | Description |
|---|---|
| figure | Figure number (currently not used) |
| title | Figure title to be used for each plot figure |
| units | Units to be displayed on the y-axis for each plot figure |
| emt_signal_1 | Name of first EMT signal to be plotted for each figure |
| emt_signal_2 | Name of second EMT signal to be plotted for each figure |
| emt_signal_3 | Name of third EMT signal to be plotted for each figure |
| rms_signal_1 | Name of first RMS signal to be plotted for each figure |
| rms_signal_2 | Name of second RMS signal to be plotted for each figure |
| rms_signal_3 | Name of third RMS signal to be plotted for each figure |
| down_sampling_method | Down sampling method to use [gradient (default) | amount | no_down_sampling ] |
| gradient_threshold | Only valid if down_sampling_method = gradient was selected (default = 0.5) |
| include_in_case | Comma separated list of values of all the cases the specific plot figure should be included in |
| exclude_in_case | Comma separated list of values of all the cases the specific plot figure should be excluded from |
Note
If more than two result files are specified in the config.ini file, e.g. (say) two EMT result files and (say) two RMS result files, the plot figure legend could have up to twelve signals in the plot figure legend, and the plot itself could have up to six EMT signals and six RMS signals
Note
If down_sampling_method = no_down_sampling is selected, the HTML files can become quite large and might take quite a long time to load.
Note
If include_in_case is left blank, the figure plot will be included in all cases/ranks
Note
If exclude_in_case is left blank, the figure plot will not be excluded from all cases/ranks
The default figureSetup.csv can be easier edited using Microsoft Excel,
Note
The CSV file used Danish regional settings which implies ';' as field seperator
The default setup contains:
- Phase-phase voltages at POC
- Phase-ground voltages at POC
- Positive- and Negative-sequence voltages at POC
- Total currents at POC
- Id current at POC
- Iq current at POC
- Active power at POC
- Reactive power at POC
- Frequency at POC
- Id current at POC measured by pll
- Iq component current at POC measured by pll
- Id and Iq currents, and positive-sequence voltage at a terminal
- Instantaneous Voltage from the EMT model
- Instantaneous Current from the EMT model
For adding additional plots, append a row and add a figure number and a title. Three EMT signals, emt_signal_1, emt_signal_2 and emt_signal_3 and three RMS signals, rms_signal_1, rms_signal_2 and rms_signal_3 are per figure, per simulation data path.
The down_sampling_method and gradient_threshold are set by default to "gradient" and "0.5" respectively.
Certain plots can be included or excluded from certain cases, simply the comma-seperated case numbers under include_in_case or exclude_in_case.
Execute the "plotter.py" script after config.ini and figureSetup.csv have been configured. The results will be output to the default path of the config.ini file. This is set as "results" meaning a folder is created from the location of the script named "results" that will contain the files that are created by the script.
The results should look similar to the examples below. Keep in mind, that project-data is paired and plotted by the Case Rank, in this example Case Rank 07 is shown plotted, with all paths defined in the config.ini file under the "[Simulation data paths]" section header containing the ID 07 is plotted together. You must manually include only the relevant data in the "[Simulation data paths]" that you want to plot together.
For the HTML results, note that you are able to navigate between the hmtl results by utilizing the buttons at the top, either navigating to the previous or the next rank number in relation to the testcases.xlsx sheet. To enable quicker navigation between results further away from eachother in terms of rank number, make use of the "More Ranks" drop-down menu, this includes a list of every fifth plot that can be navigated to.
Additionally, shortcuts are added to navigate through HTML result ranks:
- Alt + Page Up = Navigates to previous rank.
- Alt + Page Down = Navigates to next rank.
- Alt + H = Displays help message.
For further questions or help, please check if the README or the Quickstart Guides contains the answer.
Otherwise, please contact the Energinet simulation model team: simuleringsmodeller@energinet.dk