@enervance/insight-cim-model 0.0.30 → 0.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/dist/analysis/analysis-neplan/digi-ons.d.ts +48 -1
  2. package/dist/analysis/analysis-neplan/digi-ons.js +268 -70
  3. package/dist/analysis/analysis-neplan/digi-ons.js.map +1 -1
  4. package/dist/constants/cim-class-definition.js +25 -0
  5. package/dist/constants/cim-class-definition.js.map +1 -1
  6. package/dist/constants/cim-class-names.d.ts +13 -0
  7. package/dist/constants/cim-class-names.js +13 -0
  8. package/dist/constants/cim-class-names.js.map +1 -1
  9. package/dist/constants/rdf-xml.d.ts +2 -2
  10. package/dist/constants/rdf-xml.js +2 -2
  11. package/dist/converter/integral7/ConverterIntegral7.d.ts +54 -56
  12. package/dist/converter/integral7/ConverterIntegral7.js +2470 -1837
  13. package/dist/converter/integral7/ConverterIntegral7.js.map +1 -1
  14. package/dist/converter/integral7/config/integral-prefix.d.ts +6 -1
  15. package/dist/converter/integral7/config/integral-prefix.js +7 -2
  16. package/dist/converter/integral7/config/integral-prefix.js.map +1 -1
  17. package/dist/converter/integral7/converter-i7.d.ts +29 -61
  18. package/dist/converter/integral7/converter-i7.js +1231 -545
  19. package/dist/converter/integral7/converter-i7.js.map +1 -1
  20. package/dist/converter/integral7/interface-i7/IDefaultValuesConfig.d.ts +22 -0
  21. package/dist/converter/integral7/interface-i7/IObjectMappingConfig.d.ts +3 -0
  22. package/dist/converter/integral7/interface-i7/data-structures-i7.d.ts +62 -5
  23. package/dist/converter/integral7/interface-i7/data-structures-i7.js +6 -0
  24. package/dist/converter/integral7/interface-i7/data-structures-i7.js.map +1 -1
  25. package/dist/converter/integral7/interface-i7/export-frame-i7.d.ts +52 -4
  26. package/dist/converter/integral7/interface-i7/export-frame-i7.js +117 -14
  27. package/dist/converter/integral7/interface-i7/export-frame-i7.js.map +1 -1
  28. package/dist/converter/integral7/model/interfaces.d.ts +14 -0
  29. package/dist/converter/integral7/sql/integral.sql.d.ts +8 -0
  30. package/dist/converter/integral7/sql/integral.sql.js +41 -4
  31. package/dist/converter/integral7/sql/integral.sql.js.map +1 -1
  32. package/dist/converter/integral7/utils-cgmes-export.js +17 -3
  33. package/dist/converter/integral7/utils-cgmes-export.js.map +1 -1
  34. package/dist/converter/integral7/utils-trafo3w.js +51 -21
  35. package/dist/converter/integral7/utils-trafo3w.js.map +1 -1
  36. package/dist/converter/integral7/utils.d.ts +5 -3
  37. package/dist/converter/integral7/utils.js +194 -106
  38. package/dist/converter/integral7/utils.js.map +1 -1
  39. package/dist/index.d.ts +21 -1
  40. package/dist/index.js +42 -2
  41. package/dist/index.js.map +1 -1
  42. package/dist/interfaces/model/core/IPowerSystemResource.d.ts +2 -0
  43. package/dist/interfaces/model/core/ITerminal.d.ts +2 -0
  44. package/dist/model/assetinfo/SwitchInfo.d.ts +10 -0
  45. package/dist/model/assetinfo/SwitchInfo.js +51 -0
  46. package/dist/model/assetinfo/SwitchInfo.js.map +1 -0
  47. package/dist/model/assets/Asset.js +4 -2
  48. package/dist/model/assets/Asset.js.map +1 -1
  49. package/dist/model/common/Location.js +22 -22
  50. package/dist/model/core/ConductingEquipment.d.ts +2 -0
  51. package/dist/model/core/ConductingEquipment.js +9 -0
  52. package/dist/model/core/ConductingEquipment.js.map +1 -1
  53. package/dist/model/core/ConnectivityNode.d.ts +7 -2
  54. package/dist/model/core/ConnectivityNode.js +71 -0
  55. package/dist/model/core/ConnectivityNode.js.map +1 -1
  56. package/dist/model/core/GeographicalRegion.d.ts +1 -0
  57. package/dist/model/core/GeographicalRegion.js +5 -0
  58. package/dist/model/core/GeographicalRegion.js.map +1 -1
  59. package/dist/model/core/IdentifiedObject.js +13 -9
  60. package/dist/model/core/IdentifiedObject.js.map +1 -1
  61. package/dist/model/core/PowerSystemResource.d.ts +1 -0
  62. package/dist/model/core/PowerSystemResource.js +7 -0
  63. package/dist/model/core/PowerSystemResource.js.map +1 -1
  64. package/dist/model/core/Substation.js +1 -0
  65. package/dist/model/core/Substation.js.map +1 -1
  66. package/dist/model/core/Terminal.d.ts +1 -1
  67. package/dist/model/core/Terminal.js +50 -33
  68. package/dist/model/core/Terminal.js.map +1 -1
  69. package/dist/model/dc/ACDCConverter.js +1 -2
  70. package/dist/model/dc/ACDCConverter.js.map +1 -1
  71. package/dist/model/dc/DCConductingEquipment.d.ts +2 -2
  72. package/dist/model/dc/DCConductingEquipment.js +2 -2
  73. package/dist/model/dc/DCConductingEquipment.js.map +1 -1
  74. package/dist/model/dc/DCEquipmentContainer.js.map +1 -1
  75. package/dist/model/extensions/amprion/assets/AMPRIONAssetCommunicationEquipment.d.ts +8 -0
  76. package/dist/model/extensions/amprion/assets/AMPRIONAssetCommunicationEquipment.js +48 -0
  77. package/dist/model/extensions/amprion/assets/AMPRIONAssetCommunicationEquipment.js.map +1 -0
  78. package/dist/model/extensions/amprion/assets/AMPRIONAssetConstructionMaintenance.d.ts +8 -0
  79. package/dist/model/extensions/amprion/assets/AMPRIONAssetConstructionMaintenance.js +48 -0
  80. package/dist/model/extensions/amprion/assets/AMPRIONAssetConstructionMaintenance.js.map +1 -0
  81. package/dist/model/extensions/amprion/assets/AMPRIONAssetPrimaryEquipment.d.ts +8 -0
  82. package/dist/model/extensions/amprion/assets/AMPRIONAssetPrimaryEquipment.js +48 -0
  83. package/dist/model/extensions/amprion/assets/AMPRIONAssetPrimaryEquipment.js.map +1 -0
  84. package/dist/model/extensions/amprion/assets/AMPRIONAssetSecondaryEquipment.d.ts +8 -0
  85. package/dist/model/extensions/amprion/assets/AMPRIONAssetSecondaryEquipment.js +48 -0
  86. package/dist/model/extensions/amprion/assets/AMPRIONAssetSecondaryEquipment.js.map +1 -0
  87. package/dist/model/extensions/amprion/assets/AMPRIONContractingAuthority.d.ts +8 -0
  88. package/dist/model/extensions/amprion/assets/AMPRIONContractingAuthority.js +48 -0
  89. package/dist/model/extensions/amprion/assets/AMPRIONContractingAuthority.js.map +1 -0
  90. package/dist/model/extensions/amprion/assets/AMPRIONCountry.d.ts +11 -0
  91. package/dist/model/extensions/amprion/assets/AMPRIONCountry.js +49 -0
  92. package/dist/model/extensions/amprion/assets/AMPRIONCountry.js.map +1 -0
  93. package/dist/model/extensions/amprion/assets/AMPRIONFacility.d.ts +3 -0
  94. package/dist/model/extensions/amprion/assets/AMPRIONFacility.js +16 -4
  95. package/dist/model/extensions/amprion/assets/AMPRIONFacility.js.map +1 -1
  96. package/dist/model/extensions/amprion/assets/AMPRIONLeaseholder.d.ts +8 -0
  97. package/dist/model/extensions/amprion/assets/AMPRIONLeaseholder.js +48 -0
  98. package/dist/model/extensions/amprion/assets/AMPRIONLeaseholder.js.map +1 -0
  99. package/dist/model/extensions/amprion/assets/AMPRIONLineDistrict.d.ts +8 -0
  100. package/dist/model/extensions/amprion/assets/AMPRIONLineDistrict.js +48 -0
  101. package/dist/model/extensions/amprion/assets/AMPRIONLineDistrict.js.map +1 -0
  102. package/dist/model/extensions/amprion/assets/AMPRIONServiceProvider.d.ts +8 -0
  103. package/dist/model/extensions/amprion/assets/AMPRIONServiceProvider.js +48 -0
  104. package/dist/model/extensions/amprion/assets/AMPRIONServiceProvider.js.map +1 -0
  105. package/dist/model/extensions/amprion/assets/AMPRIONState.d.ts +13 -0
  106. package/dist/model/extensions/amprion/assets/AMPRIONState.js +58 -0
  107. package/dist/model/extensions/amprion/assets/AMPRIONState.js.map +1 -0
  108. package/dist/model/extensions/amprion/core/AMPRIONBay.d.ts +3 -2
  109. package/dist/model/extensions/amprion/core/AMPRIONBay.js +7 -4
  110. package/dist/model/extensions/amprion/core/AMPRIONBay.js.map +1 -1
  111. package/dist/model/extensions/amprion/core/AMPRIONLine.d.ts +8 -1
  112. package/dist/model/extensions/amprion/core/AMPRIONLine.js +38 -1
  113. package/dist/model/extensions/amprion/core/AMPRIONLine.js.map +1 -1
  114. package/dist/model/extensions/amprion/core/AMPRIONSubstation.d.ts +5 -2
  115. package/dist/model/extensions/amprion/core/AMPRIONSubstation.js +18 -12
  116. package/dist/model/extensions/amprion/core/AMPRIONSubstation.js.map +1 -1
  117. package/dist/model/extensions/amprion/model/AMPRIONModel.d.ts +31 -0
  118. package/dist/model/extensions/amprion/model/AMPRIONModel.js +65 -3
  119. package/dist/model/extensions/amprion/model/AMPRIONModel.js.map +1 -1
  120. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js.map +1 -1
  121. package/dist/model/meas/Analog.d.ts +7 -0
  122. package/dist/model/meas/Analog.js +8 -0
  123. package/dist/model/meas/Analog.js.map +1 -0
  124. package/dist/model/meas/Measurement.d.ts +8 -0
  125. package/dist/model/meas/Measurement.js +8 -0
  126. package/dist/model/meas/Measurement.js.map +1 -0
  127. package/dist/model/model/Model.d.ts +11 -1
  128. package/dist/model/model/Model.js +23 -6
  129. package/dist/model/model/Model.js.map +1 -1
  130. package/dist/model/operationallimits/CurrentLimit.d.ts +2 -1
  131. package/dist/model/operationallimits/CurrentLimit.js +13 -0
  132. package/dist/model/operationallimits/CurrentLimit.js.map +1 -1
  133. package/dist/model/operationallimits/OperationalLimit.js +1 -1
  134. package/dist/model/operationallimits/OperationalLimit.js.map +1 -1
  135. package/dist/model/operations/ControlArea.d.ts +9 -0
  136. package/dist/model/operations/ControlArea.js +37 -0
  137. package/dist/model/operations/ControlArea.js.map +1 -0
  138. package/dist/model/operations/ControlAreaTypeKind.d.ts +5 -0
  139. package/dist/model/operations/ControlAreaTypeKind.js +10 -0
  140. package/dist/model/operations/ControlAreaTypeKind.js.map +1 -0
  141. package/dist/model/wires/ACLineSegment.js +1 -1
  142. package/dist/model/wires/Breaker.js +4 -2
  143. package/dist/model/wires/Breaker.js.map +1 -1
  144. package/dist/model/wires/EnergyConnection.d.ts +7 -0
  145. package/dist/model/wires/EnergyConnection.js +20 -0
  146. package/dist/model/wires/EnergyConnection.js.map +1 -0
  147. package/dist/model/wires/EnergyConsumer.d.ts +4 -4
  148. package/dist/model/wires/EnergyConsumer.js +5 -5
  149. package/dist/model/wires/EnergyConsumer.js.map +1 -1
  150. package/dist/model/wires/EnergySource.d.ts +5 -2
  151. package/dist/model/wires/EnergySource.js +26 -4
  152. package/dist/model/wires/EnergySource.js.map +1 -1
  153. package/dist/model/wires/Line.js +2 -6
  154. package/dist/model/wires/Line.js.map +1 -1
  155. package/dist/model/wires/PhaseTapChanger.js.map +1 -1
  156. package/dist/model/wires/PowerTransformer.js +1 -1
  157. package/dist/model/wires/PowerTransformer.js.map +1 -1
  158. package/dist/model/wires/RotatingMachine.d.ts +2 -0
  159. package/dist/model/wires/RotatingMachine.js +6 -0
  160. package/dist/model/wires/RotatingMachine.js.map +1 -1
  161. package/dist/model/wires/TapChanger.d.ts +2 -0
  162. package/dist/model/wires/TapChanger.js +36 -8
  163. package/dist/model/wires/TapChanger.js.map +1 -1
  164. package/dist/util/collection/util-excel.js +35 -19
  165. package/dist/util/collection/util-excel.js.map +1 -1
  166. package/dist/util/collection/util-graph.d.ts +8 -1
  167. package/dist/util/collection/util-graph.js +8 -2
  168. package/dist/util/collection/util-graph.js.map +1 -1
  169. package/dist/util/collection/util-graph2tree.js +69 -1
  170. package/dist/util/collection/util-graph2tree.js.map +1 -1
  171. package/dist/util/collection/util-tree.d.ts +0 -34
  172. package/dist/util/collection/util-tree.js +1 -179
  173. package/dist/util/collection/util-tree.js.map +1 -1
  174. package/dist/util/util-create.d.ts +3 -1
  175. package/dist/util/util-create.js +51 -8
  176. package/dist/util/util-create.js.map +1 -1
  177. package/dist/util/utils.d.ts +10 -0
  178. package/dist/util/utils.js +17 -1
  179. package/dist/util/utils.js.map +1 -1
  180. package/dist/util/xml/xml.serializer.d.ts +1 -0
  181. package/dist/util/xml/xml.serializer.js +9 -9
  182. package/dist/util/xml/xml.serializer.js.map +1 -1
  183. package/package.json +2 -1
  184. package/dist/converter/integral7/interface-i7/IUkzExportConfig.d.ts +0 -5
  185. package/dist/converter/integral7/interface-i7/IUkzExportConfig.js +0 -3
  186. package/dist/converter/integral7/interface-i7/IUkzExportConfig.js.map +0 -1
@@ -1,9 +1,12 @@
1
1
  import { Model } from '../../model/model/Model';
2
2
  import { GraphTree } from '../../data-structures/tree/GraphTree';
3
+ import { WNFeeder } from '../../model/extensions/neplan-westnetz/core/WNFeeder';
3
4
  import { IFeeder } from '../../interfaces/model/core/IFeeder';
4
5
  import { VoltageLevel } from '../../model/core/VoltageLevel';
6
+ import { IIdentifiedObject } from "../../interfaces/model/core/IIdentifiedObject";
7
+ import { BFSCalltime, LeafNodeCalltime, TreeNode } from "../../util/collection/util-tree";
5
8
  export declare function rateDigiONS(cimModel: Model, anbindungsdata: IStationanbindung[], valuationVector: IDigiOnsValuationVector): IDigiOnsResult[];
6
- export declare function rateFeederDigiONS(ifeeder: IFeeder, anbindungsdata: IStationanbindung[], valuationVector: IDigiOnsValuationVector): Map<string, IDigiOnsValuation>;
9
+ export declare function rateFeederDigiONS(ifeeder: IFeeder, anbindungsdata: IStationanbindung[], valuationVector: IDigiOnsValuationVector, overallStations: number, overallPower: number): Map<string, IDigiOnsValuation>;
7
10
  export declare function isDigiONS(voltageLevel: VoltageLevel): boolean;
8
11
  export declare function getFeederTreeData(cimModel: Model, ifeeder: IFeeder): GraphTree;
9
12
  export interface IDigiOnsValuation {
@@ -21,8 +24,13 @@ export interface IDigiOnsValuation {
21
24
  kpmScore: number;
22
25
  cabelToOverheadLineScore: number;
23
26
  digiOnsRating: number;
27
+ minDistStations: number;
28
+ sumStations: number;
29
+ minDistPower: number;
30
+ sumPower: number;
24
31
  }
25
32
  export interface IDigiOnsValuationVector {
33
+ digitalizationCount: number;
26
34
  usedBaysWeight: number;
27
35
  openedSwitchesWeight: number;
28
36
  feederFailureWeight: number;
@@ -37,6 +45,7 @@ export interface IDigiOnsValuationVector {
37
45
  }
38
46
  export interface IDigiOnsResult {
39
47
  voltageLevelUUID: string;
48
+ rz: string;
40
49
  connectivityNodeUUID: string;
41
50
  usedBaysValue: number;
42
51
  openedSwitchesValue: number;
@@ -56,3 +65,41 @@ export interface IStationanbindung {
56
65
  uuid: string;
57
66
  type: string;
58
67
  }
68
+ export interface ShortestPathContext {
69
+ stationResult: number;
70
+ powerResult: number;
71
+ headNode: IIdentifiedObject;
72
+ shortestPathFound: boolean;
73
+ }
74
+ export declare function shortestPathCallbackFunc(treeNode: Readonly<TreeNode>, context: ShortestPathContext, calltime: Readonly<BFSCalltime>): void;
75
+ export interface OverallPowerContext {
76
+ nodesVisited: Set<IIdentifiedObject>;
77
+ overallPower: number;
78
+ }
79
+ export declare function overallPowerCallbackFunc(treeNode: Readonly<TreeNode>, context: OverallPowerContext, calltime: Readonly<LeafNodeCalltime>): void;
80
+ export interface OverallValueDetermineContext {
81
+ wnFeeder: WNFeeder;
82
+ crtWayStack: TreeNode[];
83
+ distances: Map<string, number>;
84
+ mridTreeNodeMap: Map<string, TreeNode>;
85
+ nodesVisitedWay: Map<string, TreeNode>;
86
+ rootNodes: Set<TreeNode>;
87
+ overallStations: number;
88
+ overallPower: number;
89
+ isBranchRelevant: boolean;
90
+ }
91
+ export declare function overallValueDetermineCallbackFunc(treeNode: Readonly<TreeNode>, context: OverallValueDetermineContext, calltime: Readonly<LeafNodeCalltime>): void;
92
+ export interface CalculateDigiONSValuesContext {
93
+ wnFeeder: WNFeeder;
94
+ resultStationsValue: number;
95
+ resultPowerValue: number;
96
+ overallStations: number;
97
+ overallPower: number;
98
+ allBranchesStations: number[];
99
+ allBranchesPower: number[];
100
+ branchStations: number;
101
+ branchPower: number;
102
+ isBranchRelevant: boolean;
103
+ ignoreValues: boolean;
104
+ }
105
+ export declare function calculateDigiONSValuesCallbackFunc(treeNode: Readonly<TreeNode>, context: CalculateDigiONSValuesContext, calltime: Readonly<LeafNodeCalltime>): void;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFeederTreeData = exports.isDigiONS = exports.rateFeederDigiONS = exports.rateDigiONS = void 0;
3
+ exports.calculateDigiONSValuesCallbackFunc = exports.overallValueDetermineCallbackFunc = exports.overallPowerCallbackFunc = exports.shortestPathCallbackFunc = exports.getFeederTreeData = exports.isDigiONS = exports.rateFeederDigiONS = exports.rateDigiONS = void 0;
4
+ const WNConnectivityNode_1 = require("../../model/extensions/neplan-westnetz/core/WNConnectivityNode");
4
5
  const graph_1 = require("../../data-structures/graph/graph");
5
6
  const Switch_1 = require("../../model/wires/Switch");
6
7
  const Types_1 = require("../../data-structures/graph/Types");
@@ -11,16 +12,18 @@ const ConductingEquipment_1 = require("../../model/core/ConductingEquipment");
11
12
  const EnergyConsumer_1 = require("../../model/wires/EnergyConsumer");
12
13
  const VoltageLevel_1 = require("../../model/core/VoltageLevel");
13
14
  const ACLineSegment_1 = require("../../model/wires/ACLineSegment");
15
+ const ConnectivityNode_1 = require("../../model/core/ConnectivityNode");
14
16
  const WNFacilityKind_1 = require("../../model/extensions/neplan-westnetz/assets/WNFacilityKind");
15
17
  const util_graph2tree_1 = require("../../util/collection/util-graph2tree");
16
18
  const util_tree_1 = require("../../util/collection/util-tree");
17
19
  const util_excel_1 = require("../../util/collection/util-excel");
18
20
  const cim_asset_types_1 = require("../../constants/cim-asset-types");
21
+ const util_graph_1 = require("../../util/collection/util-graph");
19
22
  function chooseDigiONS(digiOnsResultsMap) {
20
- const filterMustCriteriaResults = Array.from(digiOnsResultsMap.values()).filter((arg) => arg.openedSwitchesValue > 0);
23
+ const sortedDigiOnsResults = Array.from(digiOnsResultsMap.values()).sort((a, b) => (a.digiOnsRating > b.digiOnsRating) ? 1 : (a.digiOnsRating < b.digiOnsRating) ? -1 : 0);
24
+ const filterMustCriteriaResults = sortedDigiOnsResults.filter((arg) => arg.openedSwitchesValue > 0);
21
25
  let digiOnsResult = filterMustCriteriaResults.pop();
22
26
  if (digiOnsResult === undefined) {
23
- const sortedDigiOnsResults = Array.from(digiOnsResultsMap.values()).sort((a, b) => (a.digiOnsRating > b.digiOnsRating) ? 1 : (a.digiOnsRating < b.digiOnsRating) ? -1 : 0);
24
27
  digiOnsResult = sortedDigiOnsResults.pop();
25
28
  }
26
29
  let choosenDigiONS = undefined;
@@ -44,13 +47,32 @@ function rateDigiONS(cimModel, anbindungsdata, valuationVector) {
44
47
  var _a;
45
48
  const result = [];
46
49
  for (const ifeeder of cimModel.feeders.values()) {
50
+ let trunkLineContextWrapper = {
51
+ context: { trunkLineLines: [], trunkLineNodes: [], onTrunkLine: false, uniqueTrunkNodes: new Set() },
52
+ callbackFunc: util_graph_1.markAsTrunkLineCallbackFunc
53
+ };
54
+ let overallPowerWrapper = {
55
+ context: { nodesVisited: new Set(), overallPower: 0 },
56
+ callbackFunc: overallPowerCallbackFunc
57
+ };
58
+ let feederTreeContext = util_graph2tree_1.convertFeederIntoTree(ifeeder);
59
+ util_tree_1.leafNodeTraversal(feederTreeContext.leafNodes, trunkLineContextWrapper, overallPowerWrapper);
60
+ let overallStations = 0;
61
+ for (const node of trunkLineContextWrapper.context.uniqueTrunkNodes) {
62
+ if (node instanceof ConnectivityNode_1.ConnectivityNode) {
63
+ overallStations++;
64
+ }
65
+ }
66
+ const overallPower = overallPowerWrapper.context.overallPower;
47
67
  let choosenDigiOns = [];
48
- let digiOnsValuationFeeder = rateFeederDigiONS(ifeeder, anbindungsdata, valuationVector);
68
+ let digiOnsValuationFeeder = rateFeederDigiONS(ifeeder, anbindungsdata, valuationVector, overallStations, overallPower);
49
69
  let initialFeederRateResults = digiOnsValuationFeeder;
50
70
  for (const value of initialFeederRateResults.values()) {
71
+ const wnConnectivityNode = value.model.connectivityNodes.find(elem => elem);
51
72
  result.push({
52
73
  voltageLevelUUID: value.model.mrid,
53
- connectivityNodeUUID: (_a = value.model.connectivityNodes.find(elem => elem)) === null || _a === void 0 ? void 0 : _a.mrid,
74
+ rz: (_a = wnConnectivityNode === null || wnConnectivityNode === void 0 ? void 0 : wnConnectivityNode.getAssetUser()) === null || _a === void 0 ? void 0 : _a.name,
75
+ connectivityNodeUUID: wnConnectivityNode === null || wnConnectivityNode === void 0 ? void 0 : wnConnectivityNode.mrid,
54
76
  usedBaysValue: value.usedBaysValue,
55
77
  openedSwitchesValue: value.openedSwitchesValue,
56
78
  feederFailureValue: value.feederFailureValue,
@@ -63,36 +85,42 @@ function rateDigiONS(cimModel, anbindungsdata, valuationVector) {
63
85
  kpmValue: value.kpmScore,
64
86
  cabelToOverheadLineValue: value.cabelToOverheadLineScore,
65
87
  digiOnsRatingValue: value.digiOnsRating,
66
- digiOnsPlacementOrder: -1
88
+ digiOnsPlacementOrder: undefined
67
89
  });
68
90
  }
69
91
  const excelExportEnabled = false;
70
- const feederEndsWith = "016";
71
- const exportIterationAmount = 7;
72
92
  let excelSheetNames = [];
73
93
  let excelSheetValues = [];
74
- while (digiOnsValuationFeeder.size > 0) {
94
+ let chooseAmount = valuationVector.digitalizationCount;
95
+ if (chooseAmount === -1) {
96
+ chooseAmount = digiOnsValuationFeeder.size;
97
+ }
98
+ while (chooseAmount > 0 && digiOnsValuationFeeder.size > 0) {
75
99
  const chooseResult = chooseDigiONS(digiOnsValuationFeeder);
76
100
  const placementOrder = choosenDigiOns.push(chooseResult);
77
- if (excelExportEnabled && ifeeder.name.endsWith(feederEndsWith)) {
78
- if (placementOrder <= exportIterationAmount) {
79
- const values = util_excel_1.convertDigiOnsValuationsToRowwiseValues(digiOnsValuationFeeder);
80
- values.unshift(util_excel_1.createDigiOnsValuationTableHeader());
81
- excelSheetValues.push(values);
82
- excelSheetNames.push(`Iteration ${placementOrder}`);
83
- }
101
+ if (excelExportEnabled) {
102
+ const values = util_excel_1.convertDigiOnsValuationsToRowwiseValues(digiOnsValuationFeeder);
103
+ values.unshift(util_excel_1.createDigiOnsValuationTableHeader());
104
+ values.push([""]);
105
+ let choosenResultExcel = [];
106
+ choosenResultExcel.push("Ausgewählte Station:");
107
+ choosenResultExcel.push(chooseResult.name);
108
+ values.push(choosenResultExcel);
109
+ excelSheetValues.push(values);
110
+ excelSheetNames.push(`Iteration ${placementOrder}`);
84
111
  }
85
112
  result.find(a => a.voltageLevelUUID === chooseResult.getVoltageLevel().mrid).digiOnsPlacementOrder = placementOrder;
86
- digiOnsValuationFeeder = rateFeederDigiONS(ifeeder, anbindungsdata, valuationVector);
113
+ digiOnsValuationFeeder = rateFeederDigiONS(ifeeder, anbindungsdata, valuationVector, overallStations, overallPower);
114
+ chooseAmount--;
87
115
  }
88
- if (excelExportEnabled && ifeeder.name.endsWith(feederEndsWith)) {
89
- util_excel_1.exportDataAsXLSX({ filepath: "example.xlsx", sheetNames: excelSheetNames, sheetValues: excelSheetValues });
116
+ if (excelExportEnabled) {
117
+ util_excel_1.exportDataAsXLSX({ filepath: `${ifeeder.name}`, sheetNames: excelSheetNames, sheetValues: excelSheetValues });
90
118
  }
91
119
  }
92
120
  return result;
93
121
  }
94
122
  exports.rateDigiONS = rateDigiONS;
95
- function rateFeederDigiONS(ifeeder, anbindungsdata, valuationVector) {
123
+ function rateFeederDigiONS(ifeeder, anbindungsdata, valuationVector, overallStations, overallPower) {
96
124
  var _a;
97
125
  const digiOnsValuation = new Map();
98
126
  const feeder = ifeeder;
@@ -105,55 +133,27 @@ function rateFeederDigiONS(ifeeder, anbindungsdata, valuationVector) {
105
133
  const cnName = voltageLevel.connectivityNodes.find(elem => { var _a; return ((_a = elem.name) === null || _a === void 0 ? void 0 : _a.length) === 21; });
106
134
  if (!cnName)
107
135
  continue;
136
+ const failureRate = cn.getFailureRate();
108
137
  if (isDigiONS(voltageLevel))
109
138
  continue;
110
- let calculatedValues = { sumStation: 0, sumPower: 0 };
139
+ let calculatedValues = { resultStations: 0, resultPower: 0, minDistStations: 0, minDistPower: 0 };
111
140
  for (const cn of voltageLevel.connectivityNodes) {
112
141
  let completeTreeContext = util_graph2tree_1.convertAnyFeederNodeIntoTree(cn, feeder);
113
- let calculatedValuesContext = {
114
- wnFeeder: feeder,
115
- resultStationsValue: 0, resultPowerValue: 0,
116
- overallStations: 0, overallPower: 0,
117
- allBranchesStations: [], allBranchesPower: [],
118
- branchStations: 0, branchPower: 0,
119
- isBranchRelevant: false, ignoreValues: false,
120
- };
121
- let calculatedValuesWrapper = {
122
- context: calculatedValuesContext,
123
- callbackFunc: util_tree_1.calculateDigiONSValuesCallbackFunc
124
- };
125
- let overallValueDetermineContext = {
126
- wnFeeder: feeder,
127
- crtWayStack: [],
128
- distances: new Map(),
129
- mridTreeNodeMap: new Map(),
130
- nodesVisitedWay: new Map(),
131
- rootNodes: new Set(),
132
- overallStations: 0, overallPower: 0,
133
- isBranchRelevant: false,
134
- };
135
- let overallValueDetermineWrapper = {
136
- context: overallValueDetermineContext,
137
- callbackFunc: util_tree_1.overallValueDetermineCallbackFunc
138
- };
139
- util_tree_1.leafNodeTraversal(completeTreeContext.leafNodes, calculatedValuesWrapper, overallValueDetermineWrapper);
140
142
  let distanceContext = {
141
- context: { distanceToNode: 0, power: 0, shortestPathFound: false, headNode: feeder.getHeadNode() },
142
- callbackFunc: util_tree_1.shortestPathCallbackFunc
143
+ context: { stationResult: 0, powerResult: 0, shortestPathFound: false, headNode: feeder.getHeadNode() },
144
+ callbackFunc: shortestPathCallbackFunc
143
145
  };
144
146
  util_tree_1.breadthFirstTreeTraversal(completeTreeContext.rootNode, distanceContext);
145
- calculatedValues.sumStation = calculatedValuesContext.resultStationsValue;
146
- calculatedValues.sumPower = calculatedValuesContext.resultPowerValue;
147
- if (distanceContext.context.shortestPathFound) {
148
- calculatedValues.sumStation =
149
- (distanceContext.context.distanceToNode) / (0.5 * overallValueDetermineWrapper.context.overallStations);
150
- calculatedValues.sumPower =
151
- (distanceContext.context.power) / (0.5 * overallValueDetermineWrapper.context.overallPower);
152
- }
153
- if (!isFinite(calculatedValues.sumStation))
154
- calculatedValues.sumStation = 0;
155
- if (!isFinite(calculatedValues.sumPower))
156
- calculatedValues.sumPower = 0;
147
+ calculatedValues.minDistStations = distanceContext.context.stationResult;
148
+ calculatedValues.minDistPower = distanceContext.context.powerResult;
149
+ calculatedValues.resultStations =
150
+ (distanceContext.context.stationResult) / (0.5 * overallStations);
151
+ calculatedValues.resultPower =
152
+ (distanceContext.context.powerResult) / (0.5 * overallPower);
153
+ if (!isFinite(calculatedValues.resultStations))
154
+ calculatedValues.resultStations = 0;
155
+ if (!isFinite(calculatedValues.resultPower))
156
+ calculatedValues.resultPower = 0;
157
157
  }
158
158
  if (!digiOnsValuation.has(voltageLevel.getUUID())) {
159
159
  const obj = {
@@ -161,16 +161,20 @@ function rateFeederDigiONS(ifeeder, anbindungsdata, valuationVector) {
161
161
  model: voltageLevel,
162
162
  usedBaysValue: getUsedBaysValue(voltageLevel),
163
163
  openedSwitchesValue: getOpenedSwitchesValue(voltageLevel),
164
- feederFailureValue: getFailureRateValue(feeder.getFailureProbability()),
164
+ feederFailureValue: isFinite(failureRate) ? failureRate : 0,
165
165
  importanceScore: getImportanceScore(voltageLevel),
166
166
  healthScore: getHealthScore(voltageLevel),
167
167
  geographicalPositionScore: 0,
168
- schematicPositionScore: calculatedValues.sumStation,
169
- powerPositionScore: calculatedValues.sumPower,
168
+ schematicPositionScore: calculatedValues.resultStations,
169
+ powerPositionScore: calculatedValues.resultPower,
170
170
  operationScore: 0,
171
171
  kpmScore: 0,
172
172
  cabelToOverheadLineScore: getCabelToOverheadLineValue(voltageLevel),
173
- digiOnsRating: 0
173
+ digiOnsRating: 0,
174
+ minDistStations: calculatedValues.minDistStations,
175
+ sumStations: overallStations,
176
+ minDistPower: calculatedValues.minDistPower,
177
+ sumPower: overallPower,
174
178
  };
175
179
  obj.digiOnsRating =
176
180
  obj.usedBaysValue * valuationVector.usedBaysWeight +
@@ -178,9 +182,12 @@ function rateFeederDigiONS(ifeeder, anbindungsdata, valuationVector) {
178
182
  obj.feederFailureValue * valuationVector.feederFailureWeight +
179
183
  obj.importanceScore * valuationVector.importanceWeight +
180
184
  obj.healthScore * valuationVector.healthWeight +
185
+ obj.geographicalPositionScore * valuationVector.geographicalPositionWeight +
181
186
  obj.schematicPositionScore * valuationVector.schematicPositionWeight +
182
- obj.cabelToOverheadLineScore * valuationVector.cabelToOverheadLineWeight +
183
- obj.powerPositionScore * valuationVector.powerPositionWeight;
187
+ obj.powerPositionScore * valuationVector.powerPositionWeight +
188
+ obj.operationScore * valuationVector.operationWeight +
189
+ obj.kpmScore * valuationVector.kpmWeight +
190
+ obj.cabelToOverheadLineScore * valuationVector.cabelToOverheadLineWeight;
184
191
  digiOnsValuation.set(voltageLevel.getUUID(), obj);
185
192
  }
186
193
  }
@@ -188,13 +195,14 @@ function rateFeederDigiONS(ifeeder, anbindungsdata, valuationVector) {
188
195
  }
189
196
  exports.rateFeederDigiONS = rateFeederDigiONS;
190
197
  function getCabelToOverheadLineValue(voltageLevel) {
198
+ var _a;
191
199
  let overheadLinesCount = 0;
192
200
  let cabelCount = 0;
193
201
  for (const cn of voltageLevel.connectivityNodes) {
194
202
  for (const terminal of cn.terminals.values()) {
195
203
  if (terminal.conductingEquipment instanceof ACLineSegment_1.ACLineSegment) {
196
204
  const acLineSegment = terminal.conductingEquipment;
197
- switch (acLineSegment.psrType.name) {
205
+ switch ((_a = acLineSegment.psrType) === null || _a === void 0 ? void 0 : _a.name) {
198
206
  case cim_asset_types_1.CIM_ASSET_NAMES.OverHeadLine: {
199
207
  overheadLinesCount++;
200
208
  break;
@@ -207,7 +215,7 @@ function getCabelToOverheadLineValue(voltageLevel) {
207
215
  }
208
216
  }
209
217
  }
210
- return overheadLinesCount * cabelCount;
218
+ return (overheadLinesCount * cabelCount > 0) ? 1 : 0;
211
219
  }
212
220
  function isDigiONS(voltageLevel) {
213
221
  for (const cn of voltageLevel.connectivityNodes) {
@@ -358,4 +366,194 @@ function getFeederTreeData(cimModel, ifeeder) {
358
366
  return graph.createTreeBFS(headNode.mrid);
359
367
  }
360
368
  exports.getFeederTreeData = getFeederTreeData;
369
+ function shortestPathCallbackFunc(treeNode, context, calltime) {
370
+ var _a;
371
+ if (context.shortestPathFound)
372
+ return;
373
+ if (calltime === util_tree_1.BFSCalltime.BFS_NEXT_NODE) {
374
+ if (treeNode.cimObject instanceof WNConnectivityNode_1.WNConnectivityNode) {
375
+ const wnNode = treeNode.cimObject;
376
+ if (wnNode.name === ((_a = context.headNode) === null || _a === void 0 ? void 0 : _a.name) || wnNode.getKind() === WNFacilityKind_1.WNFacilityKind.DIGIONS) {
377
+ let crtTreeNode = treeNode;
378
+ let ignoreValues = true;
379
+ while (crtTreeNode) {
380
+ if (crtTreeNode.cimObject instanceof WNConnectivityNode_1.WNConnectivityNode) {
381
+ if (!ignoreValues) {
382
+ context.stationResult += 1;
383
+ for (const terminal of crtTreeNode.cimObject.terminals.values()) {
384
+ const condEquip = terminal.conductingEquipment;
385
+ if (condEquip instanceof EnergyConsumer_1.EnergyConsumer) {
386
+ context.powerResult += condEquip.getApparentPower();
387
+ }
388
+ }
389
+ }
390
+ else {
391
+ ignoreValues = false;
392
+ }
393
+ }
394
+ crtTreeNode = crtTreeNode.parent;
395
+ }
396
+ context.shortestPathFound = true;
397
+ return;
398
+ }
399
+ }
400
+ }
401
+ }
402
+ exports.shortestPathCallbackFunc = shortestPathCallbackFunc;
403
+ function overallPowerCallbackFunc(treeNode, context, calltime) {
404
+ if (calltime === util_tree_1.LeafNodeCalltime.LEAF_NODE_LOOP_TO_ROOT) {
405
+ if (!context.nodesVisited.has(treeNode.cimObject)) {
406
+ context.nodesVisited.add(treeNode.cimObject);
407
+ if (treeNode.cimObject instanceof ConnectivityNode_1.ConnectivityNode) {
408
+ for (const terminal of treeNode.cimObject.terminals.values()) {
409
+ const condEquip = terminal.conductingEquipment;
410
+ if (condEquip instanceof EnergyConsumer_1.EnergyConsumer) {
411
+ context.overallPower += condEquip.getApparentPower();
412
+ }
413
+ }
414
+ }
415
+ }
416
+ }
417
+ }
418
+ exports.overallPowerCallbackFunc = overallPowerCallbackFunc;
419
+ function overallValueDetermineCallbackFunc(treeNode, context, calltime) {
420
+ var _a;
421
+ if (calltime === util_tree_1.LeafNodeCalltime.LEAF_NODE_PRE_NEXT) {
422
+ context.crtWayStack = [];
423
+ context.isBranchRelevant = false;
424
+ }
425
+ else if (calltime === util_tree_1.LeafNodeCalltime.LEAF_NODE_POST_NEXT) {
426
+ if (context.isBranchRelevant) {
427
+ context.crtWayStack.pop();
428
+ let crtStackElem = undefined;
429
+ let first = true;
430
+ while (crtStackElem = context.crtWayStack.pop()) {
431
+ if (first) {
432
+ first = false;
433
+ context.rootNodes.add(crtStackElem);
434
+ }
435
+ if (!context.distances.has(crtStackElem.cimObject.mrid)) {
436
+ context.distances.set(crtStackElem.cimObject.mrid, context.crtWayStack.length);
437
+ context.mridTreeNodeMap.set(crtStackElem.cimObject.mrid, crtStackElem);
438
+ if (context.crtWayStack.length > 0) {
439
+ context.nodesVisitedWay.set(crtStackElem.cimObject.mrid, context.crtWayStack[context.crtWayStack.length - 1]);
440
+ }
441
+ }
442
+ else {
443
+ const crtDistance = context.distances.get(crtStackElem.cimObject.mrid);
444
+ if (context.crtWayStack.length < crtDistance) {
445
+ context.distances.set(crtStackElem.cimObject.mrid, context.crtWayStack.length);
446
+ context.mridTreeNodeMap.set(crtStackElem.cimObject.mrid, crtStackElem);
447
+ if (context.crtWayStack.length > 0) {
448
+ context.nodesVisitedWay.set(crtStackElem.cimObject.mrid, context.crtWayStack[context.crtWayStack.length - 1]);
449
+ }
450
+ }
451
+ }
452
+ }
453
+ }
454
+ }
455
+ else if (calltime === util_tree_1.LeafNodeCalltime.LEAF_NODE_LOOP_TO_ROOT) {
456
+ if (treeNode.cimObject instanceof ConnectivityNode_1.ConnectivityNode) {
457
+ const cNode = treeNode.cimObject;
458
+ let resetValues = cNode.name === context.wnFeeder.getHeadNode().name;
459
+ if (cNode instanceof WNConnectivityNode_1.WNConnectivityNode) {
460
+ const wnCNode = cNode;
461
+ if (wnCNode.getKind() === WNFacilityKind_1.WNFacilityKind.DIGIONS) {
462
+ resetValues = true;
463
+ }
464
+ }
465
+ if (resetValues) {
466
+ context.isBranchRelevant = true;
467
+ context.crtWayStack = [];
468
+ }
469
+ if (context.isBranchRelevant) {
470
+ context.crtWayStack.push(treeNode);
471
+ }
472
+ }
473
+ }
474
+ else if (calltime === util_tree_1.LeafNodeCalltime.END) {
475
+ for (const rootChildNode of context.rootNodes) {
476
+ if (context.mridTreeNodeMap.has(rootChildNode.cimObject.mrid)) {
477
+ let crtElem = context.mridTreeNodeMap.get(rootChildNode.cimObject.mrid);
478
+ while (crtElem) {
479
+ const cNode = crtElem.cimObject;
480
+ if (!(cNode.name === ((_a = context.wnFeeder.getHeadNode()) === null || _a === void 0 ? void 0 : _a.name) || cNode.getKind() === WNFacilityKind_1.WNFacilityKind.DIGIONS)) {
481
+ for (const terminal of cNode.terminals.values()) {
482
+ const condEquip = terminal.conductingEquipment;
483
+ if (condEquip instanceof EnergyConsumer_1.EnergyConsumer) {
484
+ context.overallPower += condEquip.getApparentPower();
485
+ }
486
+ }
487
+ context.overallStations += 1;
488
+ }
489
+ crtElem = context.nodesVisitedWay.get(crtElem.cimObject.mrid);
490
+ }
491
+ }
492
+ else {
493
+ }
494
+ }
495
+ }
496
+ }
497
+ exports.overallValueDetermineCallbackFunc = overallValueDetermineCallbackFunc;
498
+ function calculateDigiONSValuesCallbackFunc(treeNode, context, calltime) {
499
+ if (calltime === util_tree_1.LeafNodeCalltime.LEAF_NODE_PRE_NEXT) {
500
+ context.branchStations = 0;
501
+ context.branchPower = 0;
502
+ context.isBranchRelevant = false;
503
+ }
504
+ else if (calltime === util_tree_1.LeafNodeCalltime.LEAF_NODE_POST_NEXT) {
505
+ if (context.isBranchRelevant) {
506
+ context.allBranchesStations.push(context.branchStations);
507
+ context.allBranchesPower.push(context.branchPower);
508
+ context.overallStations += context.branchStations;
509
+ context.overallPower += context.branchPower;
510
+ }
511
+ }
512
+ else if (calltime === util_tree_1.LeafNodeCalltime.LEAF_NODE_LOOP_TO_ROOT) {
513
+ context.ignoreValues = false;
514
+ if (treeNode.cimObject instanceof ConnectivityNode_1.ConnectivityNode) {
515
+ const cNode = treeNode.cimObject;
516
+ let resetValues = cNode.name === context.wnFeeder.getHeadNode().name;
517
+ if (cNode instanceof WNConnectivityNode_1.WNConnectivityNode) {
518
+ const wnCNode = cNode;
519
+ if (wnCNode.getKind() === WNFacilityKind_1.WNFacilityKind.DIGIONS) {
520
+ resetValues = true;
521
+ }
522
+ }
523
+ if (resetValues) {
524
+ context.branchStations = 0;
525
+ context.branchPower = 0;
526
+ context.isBranchRelevant = true;
527
+ context.ignoreValues = true;
528
+ }
529
+ for (const terminal of cNode.terminals.values()) {
530
+ const condEquip = terminal.conductingEquipment;
531
+ if (!context.ignoreValues) {
532
+ if (condEquip instanceof EnergyConsumer_1.EnergyConsumer) {
533
+ context.branchPower += condEquip.getApparentPower();
534
+ }
535
+ }
536
+ }
537
+ if (!context.ignoreValues && treeNode.parent)
538
+ context.branchStations += 1;
539
+ }
540
+ }
541
+ else if (calltime === util_tree_1.LeafNodeCalltime.END) {
542
+ context.resultStationsValue = 0;
543
+ context.resultPowerValue = 0;
544
+ for (const branchStationsValue of context.allBranchesStations) {
545
+ context.resultStationsValue += branchStationsValue / (0.5 * context.overallStations);
546
+ }
547
+ context.resultStationsValue /= context.allBranchesStations.length;
548
+ for (const branchPowerValue of context.allBranchesPower) {
549
+ context.resultPowerValue += branchPowerValue / (0.5 * context.overallPower);
550
+ }
551
+ context.resultPowerValue /= context.allBranchesPower.length;
552
+ if (!isFinite(context.resultStationsValue))
553
+ context.resultStationsValue = 0;
554
+ if (!isFinite(context.resultPowerValue))
555
+ context.resultPowerValue = 0;
556
+ }
557
+ }
558
+ exports.calculateDigiONSValuesCallbackFunc = calculateDigiONSValuesCallbackFunc;
361
559
  //# sourceMappingURL=digi-ons.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"digi-ons.js","sourceRoot":"","sources":["../../../src/analysis/analysis-neplan/digi-ons.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"digi-ons.js","sourceRoot":"","sources":["../../../src/analysis/analysis-neplan/digi-ons.ts"],"names":[],"mappings":"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"}