Using scalable open source software for electric distribution network intelligence.




Using international standard file formats and open source software, electric utilities can convert their network, spatial, meter and asset data into engineering and business intelligence.


The system can be broken down into the following steps.



Proprietary data formats are converted into published standard formats.

Network model data is extracted to Common Information Model (CIM) format preserving electrical, topological, spatial, and asset information.

Meter readings are converted to Metered Services Consumption Report (MSCONS) or plain .CSV files.

Cluster Computing


The normalized files are ingested into clusters of computers hosted on platforms such as Amazon Elastic Container Service (ECS) or Microsoft Azure Kubernetes Service (AKS).

Processing can be roughly separated into the following forms:

Visualization and reporting


Aggregated and summarized information is displayed either spatially on a map using MapBox, as charts of time series using HighCharts, or exported to legacy formats such as SQLite, PDF or spreadsheets.

Value add

9code provides open source software (the Magic Sauce) to tie all these technologies together. The mandate is to craft performant, scalable components that flexibly convert data into useful information from which users can extract actionable intelligence. The individual components are bundled into the following deliverable assemblies.


The CIMReader comfortably ingests gigabytes of electric network model data in CIM format and exposes it as Spark RDD structures. This is used to initialize a Spark environment for use either interactively in an ad-hoc analysis or as the first step in a programatic batch computation. The features are:

  • elements are hierarchically organized just as in the CIM UML model
  • elements are exposed as Spark SQL DataFrame structures
  • provides network topology processing
  • includes normalize and de-duplicate operations among others
  • is available as a Maven artifact for easy inclusion in user programs


CIMSpace is a browser based client-side visualization and editing tool suitable for electric distribution networks up to a few hundred megabytes in size in CIM format. The features are:

  • displays spatially referenced electric components on a map
  • can edit (insert, update, delete) elements, often with assisted workflows, and a connectivity editor
  • saves complete or difference model (just changes) CIM files
  • includes some preset visualization themes for nominal voltage, topology and service status
  • provides trace and search operations


The ShortCircuit assembly provides utility operators with various metrics for each customer (EnergyConsumer) connection. The process uses both static analysis and load-flow analysis and hence is suitable for both radial and mesh networks. It generates a SQLite database for use in downstream applications. Included metrics are:

  • short-circuit current
  • maximum inrush current
  • fuse specificity
  • fuse sizing

Maximum Feed-In

The Einspeiseleistung assembly provides an estimate of the maximum feed-in power for new photo-voltaic installations at each customer location. The process uses static and load-flow analysis to find the limiting factor (voltage rise, cable current, transformer rating) and hence the maximum installable power at each customer location - assuming no network reinforcement. It generates a SQLite database for use in downstream applications.


The Simulation assembly is the mechanism to convert customer meter data into network values (currents, voltages, losses, power etc.). Each transformer service area is separately extracted and simulated using GridLAB-D using measurement values (e.g. 15 minute intervals) for each customer location. All source and simulated data is contained in a Cassandra database which can be accessed by downstream applications. In addition to raw simulated data, aggregations (min, max, average) over hourly, 3 hour and daily periods are computed. Various summary metrics are calculated for each element and the transformer area as a whole, such as:

  • utilization
  • load factor
  • coincidence factor
  • responsibility factor
  • voltage quality
  • losses


CIMApplication is a J2EE server based user interface to all of the above functionality as well as providing a RESTful programmatic interface for consumption by other web services.

Running with the Spark/Cassandra cluster, it provides a graphical user interface to launch and view the results of analysis and simulation with the following functionality.

  • file management - to upload and download files to/from the cluster, and to prime Spark with data
  • map view - to visualize the results of analysis and simulations by theme
  • analysis - to specify and launch short-circuit and maximum feed-in computations
  • simulation - to specify and launch network simulations
  • export - to download CIM and GridLAB model (.glm) files of a subset of a larger dataset
  • query - to perform ad-hoc SQL queries on Spark and Cassandra


Software project implementation

9code can provide valuable project experience in the areas of electric distribution, computer aided design, GIS, and manufacturing, to ensure a successful project. We can assist in all phases from start to finish:

  • analysis
  • requirements
  • design
  • programming
  • debugging
  • documentation
  • testing
  • deployment

Software development

With over 35 years of software expertise, 9code offers development resources for short or long term contracts with skills in:

  • Languages: Scala, Javascript, Java, C#, C++, Go, SQL
  • Platforms: cloud, android, web, desktop
  • Operating Systems: Linux, *nix, Windows
  • Database: Cassandra, Oracle, SQLite, CouchDB, MySQL

Support & troubleshooting

The complexity of todays integrated systems requires dedicated resources - and not finger pointing. 9code provides:

  • problem root cause diagnosis
  • suggested resolutions
  • implementation of choosen solution
  • health monitoring
  • on-call emergency service


9code GmbH

Belpstrasse 7
Muri bei Bern

+41 76 700 35 30