Skip to main content
Version: 1.2.0

PoF Simplified Extractor

A tool for pulling out the specified elements from a PowerOn Fusion database.

Extracting

Before you run the extractor, please make sure you have completed the configuration and are familiar with the command line arguments. You need to install java 11 (or higher) in order to run the PoF simplified extractor.

java [jvm options] -jar pof-simplified-extractor-current.jar [command line arguments]

example:

java -Xmx16g -Xms16g -Dfile.encoding=UTF-8 -jar pof-simplified-extractor-current.jar -s enmacdb -ewb \ewb\data -f
parameterexplanation
-Xmx16g -Xms16ggive the JVM 16GB of memory
-Dfile.encoding=UTF-8tell the JVM to use UTF-8 encoding
-s enmacdbchange the enmac database server to enmacdb
-ewb \ewb\datachange the ewb data path to /ewb/data
-fforce override any existing database for today

Command Line Arguments

usage: pof-simplified-extractor [-c <CONFIGURATION>] [-cdg] [-d <DATE>]
[-dl] [-dt <DATABASE_TYPE>] [-ewb <PATH>] [-f] [-h] [-i <instance>]
[-is] [-p <port>] [-s <SERVER>]

Extracts the simplified model out of a PowerOn Fusion server.

-c,--conf <CONFIGURATION> use the specified configuration
file (DEFAULT: ./config.json).
-cdg,--create-debug-geo create a debug view of the
schematic in the geo world
(DEFAULT: false).
-d,--date <DATE> use the specified date(yyyy-MM-dd)
for the output extract directory
structure (DEFAULT: Current local
date).
-dl,--detailed-log used to show a detailed messages
for each warning collected in the
summary outputs (DEFAULT: false).
-dt,--database-type <DATABASE_TYPE> the PowerOn Fusion database type
(DEFAULT: ORACLE). One of [ORACLE,
SQLSERVER].
-ewb,--ewb-data-path <PATH> export the EWB database into the
specified data store (DEFAULT:
./data).
-f,--force-data-overwrite Overwrites any data found in the
output extract path (DEFAULT:
Program fails and warns you of the
presence of files in the output
path).
-h,--help shows this help message.
-i,--instance <instance> the instance/database name to use
for the network extraction
(DEFAULT: nms for ORACLE, none for
SQLSERVER).
-is,--integrated-security enable integrated security for the
database connection. (DEFAULT:
false).
-p,--port <port> the port number used to connect to
the database (DEFAULT: 1521 for
ORACLE, 1433 for SQLSERVER).
-s,--server <SERVER> the PowerOn Fusion server to use
for the network extraction
(DEFAULT: localhost).

NOTE:

To use integrated security with SQLServer you need to have a copy of the Microsoft authentication DLL mssql-jdbc_auth-#.#.#.x64.dll installed on your system, or in the same directory as the JAR. If you do not have a copy you can download it from Maven Central.

Configuration

PoF Attributes

You will need to create four scalar attributes on each node you wish to include in the final extract:

TypePurposeExample Name
LogicalControls if the node is included in the extractInclude in Model
Char 32Defines the CIM class used to represent the nodeCIM Class
Char 32Defines the diagram styling of the nodeDiagram Object Style
Int 32Defines the standard types lookup id used for configuration data for the node if required.Sincal Element ID

The CIM class attribute should be configured to be a lookup with the following values:

  • AcLineSegment
  • Breaker
  • Disconnector
  • EnergyConsumer
  • EnergySource
  • Fuse
  • Jumper
  • Junction
  • LinearShuntCompensator
  • LoadBreakSwitch
  • PowerTransformer
  • Recloser
  • Substation
  • SubGeographicalRegion
  • GeographicalRegion

The diagram object style attribute should be configured to be a lookup with the following values:

  • ARC_CHUTE
  • BRIDGE
  • CB
  • DISCONNECTOR
  • DIST_TRANSFORMER
  • ENERGY_SOURCE
  • FEEDER_CB
  • FLICKER_BLADE
  • FUSE
  • GAS_INSULATED
  • JUMPER
  • JUNCTION
  • ISO_TRANSFORMER
  • LIVE_LINE_CLAMP
  • NON_REVERSIBLE_REGULATOR
  • NONE
  • RECLOSER
  • REVERSIBLE_REGULATOR
  • SHUNT_COMPENSATOR
  • SWITCH
  • USAGE_POINT
  • ZONE_TRANSFORMER

PoF Classes

You will need to have three distinct classes (new or existing):

PurposeRequirements
To control the detection of busbarsMust be connected inline as part of the busbar section
To control the detection of linesMust be connected inline as part of the line and be placed beyond the last included node of the substation.
To control the placement of equivalent injection points for energising the modelMust be connected to the network, either inline or on a spur

Database User

If integrated security is not enabled, the username and password for the database connection are provided by two environment variables:

Environment VariableDefault
ENMAC_USERenmac
ENMAC_PASSWORDpassword

These can either be set permanently or injected via a script.

Configuration File

Specification:

{
"ewbDataDirectory": string, // path to ewb data directory
"worlds": [int], // array of world indexes
"includeAttribute": string, // attribute name which controls if nodes are included
"cimClassAttribute": string, //attribute name mapping the node to a CIM class
"diagramObjectStyleAttribute": string, //attribute name mapping a node to a diagram object style
"sincalMappingAttribute": string, //attribute name mapping to the std types lookup
"useAliasAsName": bool, // OPTIONAL - indicates if the component alias should be used as the name rather than the component pathname [default false].
"cimNameAttribute": string, //attribute name to use instead of component pathname
"excludeVoltage": int, // voltage to exclude from in volts
"busbarClass": { // defines the special class used to detect busbars
"componentClass": int, // class index
"nameAttribute": string // OPTIONAL - attribute name
},
"equivalentInjectionClass": { // defines the special class used to detect injection points
"componentClass": int, // class index
"nameAttribute": string // OPTIONAL - attribute name
},
"lineClass": { // defines the special class used to detect lines between substations
"componentClass": int, // class index
"nameAttribute": string // OPTIONAL - attribute name
},
"stdTypesDatabase": string, // path to mdb or sqlite file
"pofTableNames": { // OPTIONAL - allows overriding table names to specify schema/database names if required (e.g. SQLServer connections).
"componentHeader": string, // OPTIONAL - default "COMPONENT_HEADER"
"componentAttributes": string, // OPTIONAL - default "COMPONENT_ATTRIBUTES"
"hotSpotPositions": string, // OPTIONAL - default "HOT_SPOT_POSITIONS"
"connections": string // OPTIONAL - default "CONNECTIONS"
}
}

Example:

{
"ewbDataDirectory": "../ewb/data",
"worlds": [101],
"includeAttribute": "Include in Model",
"cimClassAttribute": "CIM Class",
"diagramObjectStyleAttribute": "Diagram Object Style",
"sincalMappingAttribute": "Sincal Element ID",
"useAliasAsName": false,
"cimNameAttribute": "CIM Name",
"excludeVoltage": 330000,
"busbarClass": {
"componentClass": 577,
"nameAttribute": "Busbar Number"
},
"equivalentInjectionClass": {
"componentClass": 1011
},
"lineClass": {
"componentClass": 1009,
"nameAttribute": "Line Name"
},
"stdTypesDatabase": "./Local line types Version 16.mdb",
"pofTableNames": {
"componentHeader": "DB.ENMAC.COMPONENT_HEADER",
"componentAttributes": "DB.ENMAC.COMPONENT_ATTRIBUTES",
"hotSpotPositions": "DB.ENMAC.HOT_SPOT_POSITIONS",
"connections": "DB.ENMAC.CONNECTIONS"
}
}