# dot-raw-to-saint

**URL:** <https://forum.encoord.com/t/dot-raw-to-saint/447>\
**Category:** Plugins\
**Tags:** latest-version\
**Created:** [October 2, 2025, 4:42pm UTC](https://forum.encoord.com/t/dot-raw-to-saint/447 "2025-10-02T16:42:22Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![jacob](https://forum.encoord.com/user_avatar/forum.encoord.com/jacob/32/11_2.png) [@jacob](https://forum.encoord.com/u/jacob)\
**Post date:** [October 2, 2025, 4:42pm UTC](https://forum.encoord.com/t/dot-raw-to-saint/447/1 "2025-10-02T16:42:22Z")

</div>

## Overview

The dot-raw to SAInt translation plugin translates power system data from `.raw` files to SAInt format.

## Versions Compatible with SAInt 3.9

- [0.4.26](https://forum.encoord.com/uploads/short-url/7lTpvdHxFtjOGbG9oUT5EwzgmiW.plugin) (97.2 MB)
- 0.4.24
- 0.4.20
- 0.4.19

## Versions Compatible with SAInt 3.8

- 0.4.12

## Versions Compatible with SAInt 3.7

- v0.3.3
- v0.1.0

Screenshot:

 ![screenshot](https://forum.encoord.com/uploads/default/original/1X/1200583df66ee12ae59801246948d85c9b111b11.jpeg)

- **Multi-Component Translation** : Supports translation of major power system components:

- Version Compatibility: Supports DOT-RAW file versions 33, 34 and 35.

- Validation & Reporting: Generates an HTML translation report and optional `reference.json` mapping for validation.

## Inputs

- **Path to RAW File**  
Full path to the `*.raw` file.

## Advanced Inputs (Optional)

- **Translated Network Name**  
Name for the translated SAInt network. Default is `"DOT_RAW_NETWORK"`.

- **SAInt API DLL Path**  
Full path to the SAInt API DLL. Defaults to `{SAIntInstallPath}//SAInt-API.dll`.

- **Output Directory**  
Full path to the directory where the translated SAInt network, scenario, and condition files will be saved.  
If the network converges, validation plots will also be saved here. Defaults to `{SAIntDocPath}//PluginOutput`.

- **Parse Raw File**  
Set to `True` to parse the `.raw` data into readable CSV files. Defaults to `True`.

- **Translate Data**  
Set to `True` to convert parsed data into SAInt-compatible Excel import files. Defaults to `True`.

- **Generate Reference JSON**  
Set to `True` to generate a `reference.json` file mapping source identifiers to translated SAInt objects. Defaults to `True`.

- **Create SAInt MRD**  
Set to `True` to generate native SAInt network and scenario files (MRD). Defaults to `True`.

- **Execute SteadyACPF Scenario**  
Set to `True` to execute the SAInt SteadyACPF scenario for validation. Only relevant when **Create SAInt MRD** is `True`. Defaults to `True`.

- **Generate Translation Report**  
Set to `True` to generate an HTML translation report summarising pipeline stage status. Defaults to `True`.

- **Save Files**  
Set to `True` to save all generated files. Defaults to `True`.

- **Write JSON Network**  
Set to `True` to write the SAInt network as a JSON file alongside the Excel import file. Note: this is slower for large networks. Defaults to `False`.

## Installation

### What You Need

- The latest version of SAInt installed.
- The packaged DOT-RAW to SAInt plugin.

A packaged plugin will typically contain:

```auto
dot-raw-to-saint.plugin/
├── main.exe
├── form.yaml
├── icon.svg
└── _internal/

```

### Installing or Selecting the Plugin in SAInt

1. Open the SAInt GUI.
2. Go to **Tools → Plugin Settings → Install Plugin**.
3. Select the DOT-RAW to SAInt plugin file.
4. Select **Apply & Exit**.

### Running the Plugin

1. Open the SAInt GUI.
2. Go to **Tools** and select the installed DOT-RAW to SAInt plugin.
3. Complete the plugin form:
  - Select the required `.raw` file.
  - Optionally configure advanced settings (translated network name, output directory, pipeline stages, and related options).

4. Execute the plugin.

## Example with IEEE 118 Bus System

The following is an example of running the plugin with the IEEE 118 Bus System.

### What You Will Need

- The latest version of **SAInt**.
- The packaged **DOT-RAW to SAInt** plugin (see [Installation](#installation)).
- The **IEEE 118-Bus System** `.raw` dataset, downloadable from: [here](https://electricgrids.engr.tamu.edu/electric-grid-test-cases/ieee-118-bus-system/)

### Running the Example

After installing the plugin, open it from **Tools** and fill out the form:

- **Path to RAW File** : path to your IEEE 118 `.raw` file
- **Output Directory (Advanced Input)**: path to your output directory
- **Translated Network Name (Advanced Input)**: `IEEE_118`

Then execute the plugin.

### Understanding the Output

With the default advanced settings enabled, the specified output directory will typically contain:

```auto
output_folder/
├── IEEE_118.enet # SAInt network file
├── acpf.esce # SteadyACPF scenario file
├── acpf.econ # Scenario condition file (if simulation succeeds)
├── network.xlsx # SAInt-compatible network import file
├── reference.json # Source identifier → SAInt object mapping
├── info.log # Translation operation logs
├── translation_report.html # Translation report (pipeline stage status)
└── data/
    └── parsed/ # Parsed .raw section data
        ├── BUS.csv
        ├── BRANCH.csv
        ├── GENERATOR.csv
        ├── LOAD.csv
        ├── TRANSFORMER.csv
        ├── parsing_metadata.yml
        └── ...

```

Optional output (when **Write JSON Network** is `True`):

```auto
output_folder/
└── network.json # SAInt network as JSON (alongside network.xlsx)

```

### File Descriptions

| File/Folder | Description |
| --- | --- |
| `{network_name}.enet` | SAInt native network file |
| `acpf.esce` | SAInt SteadyACPF scenario file |
| `acpf.econ` | SAInt scenario condition file (created only if scenario execution succeeds) |
| `network.xlsx` | SAInt-compatible Excel network import file |
| `network.json` | Optional JSON export of the SAInt network (disabled by default) |
| `reference.json` | Mapping of dot-raw source identifiers to translated SAInt objects |
| `info.log` | Log file recording translation operations |
| `translation_report.html` | HTML translation report with pipeline stage status, findings, and captured logs |
| `data/parsed/` | Folder containing `.csv` representations of parsed `.raw` sections, plus `parsing_metadata.yml` |

## Changelog

### v0.4.26

- **Line Naming** : Changed the `LI` name prefix from `BRANCH` to `LI`.
- **Switch Ratings** : Added translation of switch ratings.
- **RAW Parsing** : Improved section-boundary detection, missing-delimiter repair, and duplicate-name handling for inconsistent dot-raw files.
- **Transformer Improvements** :
  - Tightened TAP property translation so tap limits, step size, and setpoints are derived consistently from winding ratios and translated to valid SAInt tap positions.
  - Fixed translation failures caused by non-finite transformer tap data reaching integer property calculations.
  - Fixed `TRF` `VMSETDEF` so voltage-regulating two-winding transformers use the midpoint of the dot-raw voltage band (`(VMA + VMI) / 2`).
  - Fixed `TAPSETDEF` derivation from the current winding value and added `TAPN` translation for the unity-ratio tap position used by SAInt.
  - Corrected transformer impedance base conversion for secondary taps.
  - Corrected voltage and reactive-power deadband calculations and Mvar/per-unit conversion for reactive-power control (`D`/`QSETDEF`).

- **Reference JSON** :
  - Restored missing fixed and switched shunt (`SHT`) objects in `reference.json`.
  - Added EPS objects for VSC DC Line and TWO-TERMINAL DC Line.
  - Removed out-of-service transformers from `reference.json`.
  - Added off-nominal tap ratio to reference data.
  - Corrected tap normalization in transformer power-flow calculations for `CW = 2`, preventing excessively large reference values.

### v0.4.24

- **Load Translation** : Added support for constant current and constant impedance load components by converting them to constant-power equivalents.
- **Pipeline Controls** :
  - Split the previous `execute_scenarios` stage into separate `Import` and `Execute_Scenario` stages.

- **Substation Data** : Added handling for substation-level data during translation.
- **Switched Shunts** :
  - Fixed switched shunts with `MODSW = 0` so they are translated with `CTRLMODE = FIXED`.
  - Updated switched-shunt active-power validation references to include the voltage-squared calculation.

- **Transformer and Base Voltage Fixes** : Corrected transformer `RATEDV` and electrical node `BaseV` handling.
- **Plugin UI** : Enforced consistent table row heights.

### v0.4.20

- **Constant Reference File Generation** : Fixed bug preventing reference file from being generated on failed simulations.

### v0.4.19

- **Validation Accuracy** : Migrated validation to `translation-validator` and fixed comparison issues for switched shunt active power, load-as-generator reactive power, and shunt reactive power.
- **Reference JSON** :
  - Added `reference.json` generation during translation.
  - Added missing result and reference properties for translated objects.
  - Normalized dot-raw voltage angles in generated reference data.

- **Emergency Ratings** : Added translation of RATE2 and RATE3 values for lines and transformers.
- **Shunts and FACTS Devices** :
  - Translated shunt FACTS devices as switched shunts.
  - Aligned switched shunt translation with the updated SAInt functionality.
  - Preserved line charging B values on `DUMMY_TRF_BRANCH` entries and created transformer/dummy-transformer shunts from positive charging values.

- **Generator and Load Limits** : Corrected QMAX/QMIN translation and generator control-mode handling for reactive power limits.
- **Transformer Improvements** :
  - Aligned tap setting derivation from dot-raw data.
  - Corrected transformer rated voltage derivation.
  - Updated source identifiers for virtual star nodes.

- **HVDC and Grouping** : Fixed duplicate EGRP creation for a single HVDC device and aligned HVDC group/member naming.
- **Metadata** :
  - Saved the `dot-raw-to-saint` version in ENET metadata.
  - Added relevant dot-raw source information to reference properties and ENET metadata.

- **Plugin UI and Reports** : Updated the plugin form and translation report to meet current UI/UX standards.

### v0.4.12

- **HVDC Support** : Added support for VSC DC and Two Terminal DC devices with updated implementation to use two prosumers
- **Switched Shunts** : Full support for switched shunt devices translation
- **Enhanced Information Fields** :
  - Info3 column now contains dot-raw object type for unique identification
  - Info property populated with relevant information from dot-raw
  - Identifying information moved to Info3 field

- **Negative Generator Translation** : Generators with negative “PB” values are now correctly translated into SAInt EPS
- **Line Shunt Translation** : Line G/B ij values are now translated to additional shunt devices
- **Dummy Transformers** : Added support for dummy transformers to accommodate unequal BaseVs from .raw files
- **Intertie Groups** : SAInt EGRPs are now created for interties between .raw Areas
- **Transformer Improvements** :
  - Translation logic updated to use star configuration for 3-winding transformers
  - TRANSFORMER ANG properties translated to SAInt TRF PHISETDEF

- **Validation & Reporting** :
  - HTML translation report
  - Standardized pipeline structure with notifications for zero impedance lines during validation
  - Dot-raw results integrated into SAInt constants

- **Remote Voltage Control** : Support for remote node voltage control for generators
- **Default Naming** : Updated default naming convention
- **Zone Reference Nodes** : ReferenceNodeName for zone objects now contains reference node name
- **Duplicate Zones** : Fixed duplicate zones being generated for each Area
- **Duplicate Columns** : Fixed duplicate inservice columns for lines
- **Duplicate Shunt Devices** : Resolved issue with duplicate shunt devices
- **Transformer Ratings** : Dummy transformers now capture correct ratings
- **EPS Power Limits** : Fixed negative PGMAXDEF for EPS (now correctly set as PDMINDEF)
- **Intertie Groups** : Transformers are now correctly captured in intertie groups
- **Three-Winding Transformers** :
  - Fixed star-node RatedV issues
  - Updated equivalencing logic
  - Fixed GGDEF/BBDEF values (now properly set for all windings, not just winding 1)

- **Impedance Translation** :
  - Fixed transformer impedance translation when CZ = 3
  - Updated CZ = 2 implementation
  - Use bus BaseV when nominal voltage is 0 for converting TRF impedances

- **Control Logic** :
  - Fixed RemoteName field handling when COD{1,2,3} = 0 (No Control)
  - Updated CM = 1 and CM = 2 implementations

- **Power Flow Settings** :
  - Updated PFSETDEF implementation
  - Fixed EPS PDMAXDEF values being set to negative

- **Bus Handling** : Fixed Bus IDE = 4 being ignored
- **Polarity Issues** :
  - Fixed polarity handling for branch shunt conductance (G)
  - Fixed polarity handling for GENERATOR (PB) value

- **Validation Plots** : Removed out of service branches from branch comparison plots
- **Q Comparison** : Fixed Q comparison for SHT (shunt devices)
- **Parsing** : Fixed incorrect parsing when properties contain commas and slashes within values
- **SAInt Compatibility** : Removed “Press any key to continue” prompt (no longer supported by SAInt)

### v0.3.0

- **System data parsing** : Properties like version, network frequency are now _automatically parsed_.
- **Version 34 support** : Files with version 34 can now be translated!
- **Group Translation Logic** : SAInt `EGRP` objects are now created from raw `zone` objects!
- **Bug Fixes** : Various bug fixes like fixing translation failures for switched shunt objects.

### v0.1.0

- **Robust Translation** : Translate from dot-raw files to SAInt files.
- **Automated Validation** : Perform basic validation to ensure accurate translation.
