@enervance/insight-cim-model 0.0.105 → 0.0.106

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.
@@ -14,6 +14,7 @@ import { INTEGRALModelContainer } from '../../model-container/model/INTEGRALMode
14
14
  import { DLConverterI7 } from './dl-convert/dl-converter-i7.js';
15
15
  import { ModelContainer } from '../../model-container/model/ModelContainer.js';
16
16
  import { DCGround } from '../../model/dc/DCGround.js';
17
+ import { IEnergySourceTypeMapping } from './interface-i7/energy-source.type.mapping.js';
17
18
  export declare class ConverterIntegral7 {
18
19
  logger: ILogger;
19
20
  /** Verbindung zur MySQL DB */
@@ -58,8 +59,8 @@ export declare class ConverterIntegral7 {
58
59
  * @param energyTypesConfig Mapping von I7-Multiplikationsfaktoren auf CIM Klassen
59
60
  * @param tempDirPath temporäres Verzeichnis zum Speichern der Zwischenergebnisse
60
61
  * @return ein Promise mit Statusangabe */
61
- convert(objectMappingConfig: IObjectMappingConfig, defaultValuesConfig: IDefaultValuesConfig, energyTypesConfig: any, exportConfig: IExportConfig[], tempDirPath: string): Promise<ConverterStatus>;
62
- convertFrame(frame: I7ExportFrame, geoRegion: GeographicalRegion, objectMappingConfig: IObjectMappingConfig, energyTypesConfig: any, defaultValuesConfig: IDefaultValuesConfig): Promise<void>;
62
+ convert(objectMappingConfig: IObjectMappingConfig, defaultValuesConfig: IDefaultValuesConfig, energyTypesConfig: any, exportConfig: IExportConfig[], energySourceTypeMappingConfig: IEnergySourceTypeMapping[], tempDirPath: string): Promise<ConverterStatus>;
63
+ convertFrame(frame: I7ExportFrame, geoRegion: GeographicalRegion, objectMappingConfig: IObjectMappingConfig, energyTypesConfig: any, defaultValuesConfig: IDefaultValuesConfig, energySourceTypeMappingConfig: IEnergySourceTypeMapping[]): Promise<void>;
63
64
  private assignTerminalSequenceNumber;
64
65
  convertGeoRegionen(): Promise<GeographicalRegion[]>;
65
66
  convertRegelzone(cimModel: ModelContainer, defaultValuesConfig: IDefaultValuesConfig): Promise<void>;
@@ -76,7 +77,7 @@ export declare class ConverterIntegral7 {
76
77
  convertKnotenLk(cimModel: ModelContainer, laengskupplungIDs: number[]): Promise<void>;
77
78
  convertSchlaufen(cimModel: ModelContainer, integral7: Integral7Model, knotenSoIDs: number[]): Promise<void>;
78
79
  convertBelastungen(cimModel: INTEGRALModelContainer, knotenSfIDs: number[], defaultValuesConfig: IDefaultValuesConfig, targetClass: string): Promise<any>;
79
- convertEinspeisungen(cimModel: INTEGRALModelContainer, knotenSfIDs: number[], objectMappingConfig: IObjectMappingConfig): Promise<void>;
80
+ convertEinspeisungen(cimModel: INTEGRALModelContainer, knotenSfIDs: number[], objectMappingConfig: IObjectMappingConfig, energySourceTypeMappingConfig: IEnergySourceTypeMapping[]): Promise<void>;
80
81
  convertErsatzQuerZweige(cimModel: INTEGRALModelContainer, knotenSfIDs: number[], targetClass: string): Promise<void>;
81
82
  convertGeneratoren(cimModel: INTEGRALModelContainer, knotenSfIDs: number[], energyTypesConfig: any): Promise<void>;
82
83
  convertAsynchronmotor(cimModel: INTEGRALModelContainer, knotenSfIDs: number[], defaultValuesConfig: IDefaultValuesConfig): Promise<void>;
@@ -96,7 +97,7 @@ export declare class ConverterIntegral7 {
96
97
  convertSVC(cimModel: ModelContainer, knotenSfIDs: number[]): Promise<void>;
97
98
  convertCsConverterDC(cimModel: ModelContainer, integral7: Integral7Model, knotenSfIDs: number[]): Promise<void>;
98
99
  convertVsConverterDC(cimModel: ModelContainer, integral7: Integral7Model, knotenSfIDs: number[]): Promise<void>;
99
- convertEinspeisungen2EnergySource(cimModel: ModelContainer, result: Einspeisung[]): Promise<void>;
100
+ convertEinspeisungen2EnergySource(cimModel: ModelContainer, result: Einspeisung[], energySourceTypeMappingConfig: IEnergySourceTypeMapping[]): Promise<void>;
100
101
  private convertEnergySourceToExternalNetworkInjection;
101
102
  private convertEinspeisungen2EquivalentInjection;
102
103
  private convertEinspeisungen2ExternalNetworkInjection;
@@ -171,7 +171,7 @@ class ConverterIntegral7 {
171
171
  * @param energyTypesConfig Mapping von I7-Multiplikationsfaktoren auf CIM Klassen
172
172
  * @param tempDirPath temporäres Verzeichnis zum Speichern der Zwischenergebnisse
173
173
  * @return ein Promise mit Statusangabe */
174
- convert(objectMappingConfig, defaultValuesConfig, energyTypesConfig, exportConfig, tempDirPath) {
174
+ convert(objectMappingConfig, defaultValuesConfig, energyTypesConfig, exportConfig, energySourceTypeMappingConfig, tempDirPath) {
175
175
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
176
176
  try {
177
177
  yield this.createColumnIndex();
@@ -199,7 +199,7 @@ class ConverterIntegral7 {
199
199
  const geoRegion = frame.cimModel.getGeographicalRegion(geoRegionUUID);
200
200
  if (!geoRegion)
201
201
  continue;
202
- yield this.convertFrame(frame, geoRegion, objectMappingConfig, energyTypesConfig, defaultValuesConfig);
202
+ yield this.convertFrame(frame, geoRegion, objectMappingConfig, energyTypesConfig, defaultValuesConfig, energySourceTypeMappingConfig);
203
203
  }
204
204
  console.log('Convert MAS Profiles');
205
205
  for (const entry of this.exportFrames.entries()) {
@@ -210,7 +210,7 @@ class ConverterIntegral7 {
210
210
  continue;
211
211
  // frame.addDependentModel(RDF_XML.PROFILE_EQ_BD, this.exportFramesBoundary.entries().next()?.value[1].getModelUUID(RDF_XML.PROFILE_EQ_BD));
212
212
  console.log(`Convert MAS profile: ${frame.mas}`);
213
- yield this.convertFrame(frame, geoRegion, objectMappingConfig, energyTypesConfig, defaultValuesConfig);
213
+ yield this.convertFrame(frame, geoRegion, objectMappingConfig, energyTypesConfig, defaultValuesConfig, energySourceTypeMappingConfig);
214
214
  if (boundaryEqUUId) {
215
215
  frame.addDependentModel(rdf_xml_1.RDF_XML.PROFILE_EQ, boundaryEqUUId);
216
216
  }
@@ -266,7 +266,7 @@ class ConverterIntegral7 {
266
266
  }
267
267
  });
268
268
  }
269
- convertFrame(frame, geoRegion, objectMappingConfig, energyTypesConfig, defaultValuesConfig) {
269
+ convertFrame(frame, geoRegion, objectMappingConfig, energyTypesConfig, defaultValuesConfig, energySourceTypeMappingConfig) {
270
270
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
271
271
  const integral7Modell = frame.getI7Model();
272
272
  const cimModel = frame.cimModel;
@@ -413,7 +413,7 @@ class ConverterIntegral7 {
413
413
  /** Einspeisungen -> EnergySources */
414
414
  if (knotenSoIDs.length > 0 || integral7Modell.knotenSfIDs.length > 0) {
415
415
  startTime = perf_hooks.performance.now();
416
- yield this.convertEinspeisungen(cimModel, soSfKnoten, objectMappingConfig);
416
+ yield this.convertEinspeisungen(cimModel, soSfKnoten, objectMappingConfig, energySourceTypeMappingConfig);
417
417
  logExecutionTime(this.logger, startTime, `convertEinspeisungen`);
418
418
  }
419
419
  /** Generatoren -> SynchronousMachine */
@@ -1090,7 +1090,7 @@ class ConverterIntegral7 {
1090
1090
  }
1091
1091
  });
1092
1092
  }
1093
- convertEinspeisungen(cimModel, knotenSfIDs, objectMappingConfig) {
1093
+ convertEinspeisungen(cimModel, knotenSfIDs, objectMappingConfig, energySourceTypeMappingConfig) {
1094
1094
  var _a;
1095
1095
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
1096
1096
  const targetConfig = objectMappingConfig.Einspeisung;
@@ -1111,11 +1111,11 @@ class ConverterIntegral7 {
1111
1111
  // Westnetz Hochspannungsheuristik
1112
1112
  const i7SlacksResults = result.filter(it => it.spannungsgeregelt);
1113
1113
  const i7EnergySourceResults = result.filter(it => !it.spannungsgeregelt);
1114
- yield this.convertEinspeisungen2EnergySource(cimModel, i7EnergySourceResults);
1114
+ yield this.convertEinspeisungen2EnergySource(cimModel, i7EnergySourceResults, energySourceTypeMappingConfig);
1115
1115
  yield this.convertEinspeisungen2ExternalNetworkInjection(cimModel, i7SlacksResults);
1116
1116
  }
1117
1117
  else {
1118
- yield this.convertEinspeisungen2EnergySource(cimModel, result);
1118
+ yield this.convertEinspeisungen2EnergySource(cimModel, result, energySourceTypeMappingConfig);
1119
1119
  }
1120
1120
  }
1121
1121
  }
@@ -2633,28 +2633,47 @@ class ConverterIntegral7 {
2633
2633
  }
2634
2634
  });
2635
2635
  }
2636
- convertEinspeisungen2EnergySource(cimModel, result) {
2637
- var _a, _b, _c;
2636
+ convertEinspeisungen2EnergySource(cimModel, result, energySourceTypeMappingConfig) {
2637
+ var _a, _b, _c, _d;
2638
2638
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
2639
2639
  for (const i7Data of result) {
2640
2640
  try {
2641
+ if (i7Data.guid === '_c962ec9f-6d05-4f80-a0fc-6f11e430baaa') {
2642
+ console.log();
2643
+ }
2641
2644
  const prio = i7Data.einspprio;
2642
2645
  const inBetrieb = (0, parser_utils_1.isBooleanI7)(i7Data.betrieb) ? (0, parser_utils_1.convertToBooleanI7)(i7Data.betrieb) : false;
2643
- if (prio > 0) {
2644
- this.convertEnergySourceToExternalNetworkInjection(cimModel, i7Data, prio, inBetrieb);
2645
- }
2646
- else {
2647
- const rdfid = (0, parser_utils_1.getUUID)(i7Data.guid);
2648
- const energySource = new EnergySource_1.EnergySource(rdfid, (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), rdfid.substring(0, 8), '_ES'], 32, true), i7Data.kurzname);
2649
- energySource.nominalVoltage = (_c = (_b = (_a = energySource.equipmentContainer) === null || _a === void 0 ? void 0 : _a.baseVoltage) === null || _b === void 0 ? void 0 : _b.nominalVoltage) === null || _c === void 0 ? void 0 : _c.value;
2650
- const powerData = (0, utils_2.getActiveReactivePower)(i7Data);
2651
- energySource.activePower = powerData[0];
2652
- energySource.reactivePower = powerData[1];
2653
- this.setTopologyEnergySourceConsumerObject(cimModel, energySource, i7Data);
2654
- // ToDo PSRType
2655
- cimModel.addEnergySource(energySource);
2656
- this.addIdMapping(i7Data.id, energySource.mrid, integral_sql_1.Integral7TableNames.EINSPEISUNG);
2657
- }
2646
+ const rdfid = (0, parser_utils_1.getUUID)(i7Data.guid);
2647
+ const energySource = new EnergySource_1.EnergySource(rdfid, (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), rdfid.substring(0, 8), '_ES'], 32, true), i7Data.kurzname);
2648
+ energySource.nominalVoltage = (_c = (_b = (_a = energySource.equipmentContainer) === null || _a === void 0 ? void 0 : _a.baseVoltage) === null || _b === void 0 ? void 0 : _b.nominalVoltage) === null || _c === void 0 ? void 0 : _c.value;
2649
+ energySource.normallyInService = inBetrieb;
2650
+ const powerData = (0, utils_2.getActiveReactivePower)(i7Data);
2651
+ energySource.activePower = powerData[0];
2652
+ energySource.reactivePower = powerData[1];
2653
+ this.setTopologyEnergySourceConsumerObject(cimModel, energySource, i7Data);
2654
+ // PSRType
2655
+ /** 1 Primärergie-Angabe */
2656
+ let typeName = (_d = energySourceTypeMappingConfig.find(it => it.i7Name === i7Data.nameprimaertyp)) === null || _d === void 0 ? void 0 : _d.ePlanningType;
2657
+ /** 2 Anhand des Namens vom Objekt */
2658
+ if (!typeName) {
2659
+ typeName = (0, utils_1.getTypeNameFromStringByRegEx)(i7Data.bezeichner, energySourceTypeMappingConfig);
2660
+ }
2661
+ /** 3 Anhand des Names vom Multiplikationsfaktor */
2662
+ if (!typeName) {
2663
+ const mf = this.cimModelDefault.multiplierFactors.get(this.integralID2UUID.get(i7Data.multfaktor));
2664
+ if (mf)
2665
+ typeName = (0, utils_1.getTypeNameFromStringByRegEx)(mf.name, energySourceTypeMappingConfig);
2666
+ }
2667
+ if (typeName) {
2668
+ const psrType = (0, utils_1.createIfNotExitsPSRType)(cimModel, typeName);
2669
+ energySource.psrTypeUUID = psrType.mrid;
2670
+ }
2671
+ if (typeName === 'Wasserkraft') {
2672
+ energySource.activePower = 0;
2673
+ energySource.reactivePower = 0;
2674
+ }
2675
+ cimModel.addEnergySource(energySource);
2676
+ this.addIdMapping(i7Data.id, energySource.mrid, integral_sql_1.Integral7TableNames.EINSPEISUNG);
2658
2677
  }
2659
2678
  catch (err) {
2660
2679
  this.logger.error(`Err convertEinspeisungen2EnergySource ${i7Data.id} ${err}`);