Class CIMImporter


  • public class CIMImporter
    extends java.lang.Object

    This class builds a GridLAB-D or OpenDSS model by running SQARQL queries against Blazegraph triple-store

    Invoke as a console-mode program

    See Also:
    main(java.lang.String[])
    • Constructor Summary

      Constructors 
      Constructor Description
      CIMImporter()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean ApplyCurrentLimits()  
      boolean CheckMaps()  
      void generateDictionaryFile​(gov.pnnl.gridappsd.cimhub.queryhandler.QueryHandler queryHandler, java.io.PrintWriter out, boolean useHouses, gov.pnnl.gridappsd.cimhub.dto.ModelState modelState)  
      void generateDictionaryFile​(gov.pnnl.gridappsd.cimhub.queryhandler.QueryHandler queryHandler, java.io.PrintWriter out, int maxMeasurements, boolean useHouses, gov.pnnl.gridappsd.cimhub.dto.ModelState ms)  
      void generateDSSCoordinates​(gov.pnnl.gridappsd.cimhub.queryhandler.QueryHandler queryHandler, java.io.PrintWriter out)  
      void generateDSSFile​(gov.pnnl.gridappsd.cimhub.queryhandler.QueryHandler queryHandler, java.io.PrintWriter out, java.io.PrintWriter outID, java.lang.String fXY, java.lang.String fID, double load_scale, boolean bWantSched, java.lang.String fSched, boolean bWantZIP, double Zcoeff, double Icoeff, double Pcoeff, java.lang.String fEarth)  
      void generateFeederIndexFile​(gov.pnnl.gridappsd.cimhub.queryhandler.QueryHandler queryHandler, java.io.PrintWriter out)  
      void generateGLMFile​(gov.pnnl.gridappsd.cimhub.queryhandler.QueryHandler queryHandler, CIMQuerySetter querySetter, java.io.PrintWriter out, java.lang.String fSched, double load_scale, boolean bWantSched, boolean bWantZIP, boolean randomZIP, boolean useHouses, double Zcoeff, double Icoeff, double Pcoeff, boolean bHaveEventGen, boolean bLoadMeters)  
      void generateJSONSymbolFile​(gov.pnnl.gridappsd.cimhub.queryhandler.QueryHandler queryHandler, java.io.PrintWriter out)  
      void LoadAllMaps()  
      void LoadAllMaps​(boolean useHouses)  
      static void main​(java.lang.String[] args)  
      protected void MakeLineMap()  
      protected void MakeSwitchMap()  
      protected void MakeTerminalMap()  
      void PrintAllCountMaps()  
      void PrintAllMaps()  
      void PrintGldNodeMap​(java.util.HashMap<java.lang.String,​GldNode> map, java.lang.String label)  
      void PrintOneCountMap​(java.util.HashMap<java.lang.String,​java.lang.Integer> map, java.lang.String label)  
      void PrintOneMap​(java.util.HashMap<java.lang.String,​? extends gov.pnnl.gridappsd.cimhub.components.DistComponent> map, java.lang.String label)  
      void PrintTerminalMap​(java.util.HashMap<java.lang.String,​CIMTerminal> map, java.lang.String label)  
      void start​(gov.pnnl.gridappsd.cimhub.queryhandler.QueryHandler queryHandler, CIMQuerySetter querySetter, java.lang.String fTarget, java.lang.String fRoot, java.lang.String fSched, double load_scale, boolean bWantSched, boolean bWantZIP, boolean randomZIP, boolean useHouses, double Zcoeff, double Icoeff, double Pcoeff, boolean bHaveEventGen, gov.pnnl.gridappsd.cimhub.dto.ModelState ms, boolean bTiming, java.lang.String fEarth, boolean bLoadMeters)  
      void start​(gov.pnnl.gridappsd.cimhub.queryhandler.QueryHandler queryHandler, CIMQuerySetter querySetter, java.lang.String fTarget, java.lang.String fRoot, java.lang.String fSched, double load_scale, boolean bWantSched, boolean bWantZIP, boolean randomZIP, boolean useHouses, double Zcoeff, double Icoeff, double Pcoeff, int maxMeasurements, boolean bHaveEventGen, gov.pnnl.gridappsd.cimhub.dto.ModelState ms, boolean bTiming, java.lang.String fEarth, boolean bLoadMeters)  
      protected void UpdateModelState​(gov.pnnl.gridappsd.cimhub.dto.ModelState ms)  
      protected java.lang.String UUIDfromCIMmRID​(java.lang.String id)  
      protected void WriteCsvFiles​(java.lang.String fRoot)  
      void WriteDictionaryFile​(java.io.PrintWriter out, int maxMeasurements)  
      protected void WriteDSSCoordinates​(java.io.PrintWriter out)  
      protected void WriteDSSFile​(java.io.PrintWriter out, java.io.PrintWriter outID, java.lang.String fXY, java.lang.String fID, double load_scale, boolean bWantSched, java.lang.String fSched, boolean bWantZIP, double Zcoeff, double Icoeff, double Pcoeff, java.lang.String fEarth)  
      protected void WriteGLMFile​(java.io.PrintWriter out, double load_scale, boolean bWantSched, java.lang.String fSched, boolean bWantZIP, boolean randomZIP, boolean useHouses, double Zcoeff, double Icoeff, double Pcoeff, boolean bHaveEventGen, boolean bLoadMeters)  
      protected void WriteIndexFile​(java.io.PrintWriter out)  
      void WriteJSONSymbolFile​(java.io.PrintWriter out)  
      void WriteLimitsFile​(java.io.PrintWriter out)  
      void WriteMapDictionary​(java.util.HashMap<java.lang.String,​? extends gov.pnnl.gridappsd.cimhub.components.DistComponent> map, java.lang.String label, boolean bLast, java.io.PrintWriter out)  
      void WriteMapDictionary​(java.util.HashMap<java.lang.String,​? extends gov.pnnl.gridappsd.cimhub.components.DistComponent> map, java.lang.String label, boolean bLast, java.io.PrintWriter out, int maxMeasurements)  
      void WriteMapSymbols​(java.util.HashMap<java.lang.String,​? extends gov.pnnl.gridappsd.cimhub.components.DistComponent> map, java.lang.String label, boolean bLast, java.io.PrintWriter out)  
      void WriteRegulatorMapSymbols​(boolean bLast, java.io.PrintWriter out)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • CIMImporter

        public CIMImporter()
    • Method Detail

      • PrintOneMap

        public void PrintOneMap​(java.util.HashMap<java.lang.String,​? extends gov.pnnl.gridappsd.cimhub.components.DistComponent> map,
                                java.lang.String label)
      • PrintOneCountMap

        public void PrintOneCountMap​(java.util.HashMap<java.lang.String,​java.lang.Integer> map,
                                     java.lang.String label)
      • PrintGldNodeMap

        public void PrintGldNodeMap​(java.util.HashMap<java.lang.String,​GldNode> map,
                                    java.lang.String label)
      • PrintTerminalMap

        public void PrintTerminalMap​(java.util.HashMap<java.lang.String,​CIMTerminal> map,
                                     java.lang.String label)
      • PrintAllCountMaps

        public void PrintAllCountMaps()
      • PrintAllMaps

        public void PrintAllMaps()
      • LoadAllMaps

        public void LoadAllMaps()
      • LoadAllMaps

        public void LoadAllMaps​(boolean useHouses)
      • CheckMaps

        public boolean CheckMaps()
      • ApplyCurrentLimits

        public boolean ApplyCurrentLimits()
      • WriteMapDictionary

        public void WriteMapDictionary​(java.util.HashMap<java.lang.String,​? extends gov.pnnl.gridappsd.cimhub.components.DistComponent> map,
                                       java.lang.String label,
                                       boolean bLast,
                                       java.io.PrintWriter out)
      • WriteMapDictionary

        public void WriteMapDictionary​(java.util.HashMap<java.lang.String,​? extends gov.pnnl.gridappsd.cimhub.components.DistComponent> map,
                                       java.lang.String label,
                                       boolean bLast,
                                       java.io.PrintWriter out,
                                       int maxMeasurements)
      • WriteLimitsFile

        public void WriteLimitsFile​(java.io.PrintWriter out)
      • WriteDictionaryFile

        public void WriteDictionaryFile​(java.io.PrintWriter out,
                                        int maxMeasurements)
      • WriteMapSymbols

        public void WriteMapSymbols​(java.util.HashMap<java.lang.String,​? extends gov.pnnl.gridappsd.cimhub.components.DistComponent> map,
                                    java.lang.String label,
                                    boolean bLast,
                                    java.io.PrintWriter out)
      • WriteRegulatorMapSymbols

        public void WriteRegulatorMapSymbols​(boolean bLast,
                                             java.io.PrintWriter out)
      • WriteJSONSymbolFile

        public void WriteJSONSymbolFile​(java.io.PrintWriter out)
      • MakeSwitchMap

        protected void MakeSwitchMap()
      • MakeLineMap

        protected void MakeLineMap()
      • MakeTerminalMap

        protected void MakeTerminalMap()
      • WriteGLMFile

        protected void WriteGLMFile​(java.io.PrintWriter out,
                                    double load_scale,
                                    boolean bWantSched,
                                    java.lang.String fSched,
                                    boolean bWantZIP,
                                    boolean randomZIP,
                                    boolean useHouses,
                                    double Zcoeff,
                                    double Icoeff,
                                    double Pcoeff,
                                    boolean bHaveEventGen,
                                    boolean bLoadMeters)
      • WriteDSSCoordinates

        protected void WriteDSSCoordinates​(java.io.PrintWriter out)
      • UUIDfromCIMmRID

        protected java.lang.String UUIDfromCIMmRID​(java.lang.String id)
      • WriteDSSFile

        protected void WriteDSSFile​(java.io.PrintWriter out,
                                    java.io.PrintWriter outID,
                                    java.lang.String fXY,
                                    java.lang.String fID,
                                    double load_scale,
                                    boolean bWantSched,
                                    java.lang.String fSched,
                                    boolean bWantZIP,
                                    double Zcoeff,
                                    double Icoeff,
                                    double Pcoeff,
                                    java.lang.String fEarth)
      • WriteIndexFile

        protected void WriteIndexFile​(java.io.PrintWriter out)
      • WriteCsvFiles

        protected void WriteCsvFiles​(java.lang.String fRoot)
                              throws java.io.FileNotFoundException
        Throws:
        java.io.FileNotFoundException
      • start

        public void start​(gov.pnnl.gridappsd.cimhub.queryhandler.QueryHandler queryHandler,
                          CIMQuerySetter querySetter,
                          java.lang.String fTarget,
                          java.lang.String fRoot,
                          java.lang.String fSched,
                          double load_scale,
                          boolean bWantSched,
                          boolean bWantZIP,
                          boolean randomZIP,
                          boolean useHouses,
                          double Zcoeff,
                          double Icoeff,
                          double Pcoeff,
                          boolean bHaveEventGen,
                          gov.pnnl.gridappsd.cimhub.dto.ModelState ms,
                          boolean bTiming,
                          java.lang.String fEarth,
                          boolean bLoadMeters)
                   throws java.io.FileNotFoundException
        Throws:
        java.io.FileNotFoundException
      • start

        public void start​(gov.pnnl.gridappsd.cimhub.queryhandler.QueryHandler queryHandler,
                          CIMQuerySetter querySetter,
                          java.lang.String fTarget,
                          java.lang.String fRoot,
                          java.lang.String fSched,
                          double load_scale,
                          boolean bWantSched,
                          boolean bWantZIP,
                          boolean randomZIP,
                          boolean useHouses,
                          double Zcoeff,
                          double Icoeff,
                          double Pcoeff,
                          int maxMeasurements,
                          boolean bHaveEventGen,
                          gov.pnnl.gridappsd.cimhub.dto.ModelState ms,
                          boolean bTiming,
                          java.lang.String fEarth,
                          boolean bLoadMeters)
                   throws java.io.FileNotFoundException
        Parameters:
        queryHandler - sends queries to Blazegraph and gets results
        querySetter - manages the SPARQL for model components
        fTarget - glm, dss, both(glm+dss), csv, idx, cim
        fRoot - root name for model output files
        fSched - name of a GridLAB-D schedule file for loads
        load_scale - multiplier on the nominal or peak loads
        bWantSched - true to use a time schedule for GridLAB-D loads
        bWantZIP - true if using Zcoeff, Icoeff, Pcoeff
        randomZIP - true to randomize Zcoeff, Icoeff, Pcoeff
        useHouses - true for houses to replace triplex loads
        Zcoeff - fixed portion of constant-impedance load
        Icoeff - fixed portion of constant-current load
        Pcoeff - fixed portion of constant-power load
        maxMeasurements - postive number to limit the number of measurements created
        bHaveEventGen - true if the GridLAB-D export won't need it's own fault_check and eventgen objects for electrical islands
        ms - used only for testing switch operations
        bTiming - true for logging SPARQL query times
        fEarth - Deri, Carson, FullCarson for OpenDSS
        bLoadMeters - true for metering each GridLAB-D load
        Throws:
        java.io.FileNotFoundException - may occur if a file cannot be opened in the specified directory for writing
      • UpdateModelState

        protected void UpdateModelState​(gov.pnnl.gridappsd.cimhub.dto.ModelState ms)
      • generateGLMFile

        public void generateGLMFile​(gov.pnnl.gridappsd.cimhub.queryhandler.QueryHandler queryHandler,
                                    CIMQuerySetter querySetter,
                                    java.io.PrintWriter out,
                                    java.lang.String fSched,
                                    double load_scale,
                                    boolean bWantSched,
                                    boolean bWantZIP,
                                    boolean randomZIP,
                                    boolean useHouses,
                                    double Zcoeff,
                                    double Icoeff,
                                    double Pcoeff,
                                    boolean bHaveEventGen,
                                    boolean bLoadMeters)
        Parameters:
        queryHandler - sends queries to Blazegraph and gets results
        out - for file output streaming
        querySetter - manages the SPARQL for model components
        fSched - name of a GridLAB-D schedule file for loads
        load_scale - multiplier on the nominal or peak loads
        bWantSched - true to use a time schedule for GridLAB-D loads
        bWantZIP - true if using Zcoeff, Icoeff, Pcoeff
        randomZIP - true to randomize Zcoeff, Icoeff, Pcoeff
        useHouses - true for houses to replace triplex loads
        Zcoeff - fixed portion of constant-impedance load
        Icoeff - fixed portion of constant-current load
        Pcoeff - fixed portion of constant-power load
        bHaveEventGen - true if the GridLAB-D export won't need it's own fault_check and eventgen objects for electrical islands
        bLoadMeters - true for metering each GridLAB-D load
      • generateJSONSymbolFile

        public void generateJSONSymbolFile​(gov.pnnl.gridappsd.cimhub.queryhandler.QueryHandler queryHandler,
                                           java.io.PrintWriter out)
        Parameters:
        queryHandler - sends queries to Blazegraph and gets results
        out - stream for the OpenDSS components
      • generateDictionaryFile

        public void generateDictionaryFile​(gov.pnnl.gridappsd.cimhub.queryhandler.QueryHandler queryHandler,
                                           java.io.PrintWriter out,
                                           boolean useHouses,
                                           gov.pnnl.gridappsd.cimhub.dto.ModelState modelState)
      • generateDictionaryFile

        public void generateDictionaryFile​(gov.pnnl.gridappsd.cimhub.queryhandler.QueryHandler queryHandler,
                                           java.io.PrintWriter out,
                                           int maxMeasurements,
                                           boolean useHouses,
                                           gov.pnnl.gridappsd.cimhub.dto.ModelState ms)
        Parameters:
        queryHandler - sends queries to Blazegraph and gets results
        out - stream for the OpenDSS components
        useHouses - true for houses to replace triplex loads
        maxMeasurements - postive number to limit the number of measurements created
        ms - used only for testing switch operations
      • generateDSSFile

        public void generateDSSFile​(gov.pnnl.gridappsd.cimhub.queryhandler.QueryHandler queryHandler,
                                    java.io.PrintWriter out,
                                    java.io.PrintWriter outID,
                                    java.lang.String fXY,
                                    java.lang.String fID,
                                    double load_scale,
                                    boolean bWantSched,
                                    java.lang.String fSched,
                                    boolean bWantZIP,
                                    double Zcoeff,
                                    double Icoeff,
                                    double Pcoeff,
                                    java.lang.String fEarth)
        Parameters:
        queryHandler - sends queries to Blazegraph and gets results
        out - stream for the OpenDSS components
        outID - stream for the OpenDSS UUID values
        fXY - name of output file for XY coordinates, to call from master OpenDSS file
        fID - name of output file for UUID / mRID values, to call from the master OpenDSS file
        fSched - name of a GridLAB-D schedule file for loads (not implemented for OpenDSS?)
        load_scale - multiplier on the nominal or peak loads
        bWantSched - true to use a time schedule for GridLAB-D loads (not implemented for OpenDSS?)
        bWantZIP - true if using Zcoeff, Icoeff, Pcoeff
        Zcoeff - fixed portion of constant-impedance load
        Icoeff - fixed portion of constant-current load
        Pcoeff - fixed portion of constant-power load
        fEarth - Deri, Carson, FullCarson for OpenDSS
      • generateDSSCoordinates

        public void generateDSSCoordinates​(gov.pnnl.gridappsd.cimhub.queryhandler.QueryHandler queryHandler,
                                           java.io.PrintWriter out)
        Parameters:
        queryHandler - sends queries to Blazegraph and gets results
        out - stream for the OpenDSS components
      • generateFeederIndexFile

        public void generateFeederIndexFile​(gov.pnnl.gridappsd.cimhub.queryhandler.QueryHandler queryHandler,
                                            java.io.PrintWriter out)
        Parameters:
        queryHandler - sends queries to Blazegraph and gets results
        out - stream for the OpenDSS components
      • main

        public static void main​(java.lang.String[] args)
                         throws java.io.FileNotFoundException
        Throws:
        java.io.FileNotFoundException