@powercalc/power-router 1.2.1 → 1.2.2

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.
@@ -13,6 +13,7 @@ export interface TimeSeries {
13
13
  Period: EntsoePeriod[];
14
14
  MktPSRType?: MktPSRType[];
15
15
  'outBiddingZone_Domain.mRID': string;
16
+ 'classificationSequence_AttributeInstanceComponent.position': string[];
16
17
  }
17
18
  export interface EntsoePeriod {
18
19
  Point: EntsoePoint[];
@@ -1,4 +1,4 @@
1
- import { Entsoe, TimeSeries } from '../interfaces/entsoe';
1
+ import { Entsoe, EntsoePeriod, TimeSeries } from '../interfaces/entsoe';
2
2
  import { Types } from '../interfaces/types';
3
3
  import { AllEntsoe } from './Loader';
4
4
  export interface DataPoint {
@@ -18,6 +18,7 @@ export declare class EdifactParser {
18
18
  parseAll(all: AllEntsoe): AllInResulotions;
19
19
  parse(json: Entsoe, key: string): AllInResulotions | undefined;
20
20
  parseTimeSeries(timeSerie: TimeSeries, name: string): [string, DataPoint[]];
21
+ transformData(data: EntsoePeriod[]): DataPoint[];
21
22
  makeTimeArray(startIsoString: string, endIsoString: string, resolution: string, timeSerie: TimeSeries): number[];
22
23
  getStartEndResolution(timeSeries: TimeSeries[] | TimeSeries): {
23
24
  startIsoString: any;
@@ -11,6 +11,7 @@ class EdifactParser {
11
11
  }
12
12
  }
13
13
  parseAll(all) {
14
+ // console.log('all', all)
14
15
  const flat = {};
15
16
  Object.keys(all).forEach((key) => {
16
17
  const parsed = this.parse(all[key], key);
@@ -42,7 +43,12 @@ class EdifactParser {
42
43
  return 0
43
44
  })
44
45
  */
45
- timeSeries.forEach((timeSerie, i) => {
46
+ timeSeries
47
+ .filter((item) => {
48
+ var _a;
49
+ return ((_a = item['classificationSequence_AttributeInstanceComponent.position']) === null || _a === void 0 ? void 0 : _a[0]) !== '2';
50
+ })
51
+ .forEach((timeSerie, i) => {
46
52
  var _a, _b;
47
53
  const psrType = ((_b = (_a = timeSerie === null || timeSerie === void 0 ? void 0 : timeSerie.MktPSRType) === null || _a === void 0 ? void 0 : _a[0].psrType) === null || _b === void 0 ? void 0 : _b[0]) || 'unknow';
48
54
  name = this.psrName[psrType] || key;
@@ -80,14 +86,19 @@ class EdifactParser {
80
86
  }
81
87
  const startEndResolution = this.getStartEndResolution(timeSerie);
82
88
  const timeArray = this.makeTimeArray(startEndResolution.startIsoString, startEndResolution.endIsoString, startEndResolution.resolution, timeSerie);
89
+ /*
83
90
  const points = timeSerie.Period[0].Point;
84
- const l = parseInt(points[points.length - 1].position[0]);
91
+ const l= parseInt(points[points.length -1].position[0]);
92
+ console.log ('tt', name,timeArray.length , l, startEndResolution) ;
85
93
  if (timeArray.length > l) {
86
- timeArray.length = l; //winter, summer time workaround
94
+ timeArray.length = l; //winter, summer time workaround
87
95
  }
88
96
  if (timeArray.length !== l) {
89
- throw new Error(`${name}: time array length: ${timeArray.length}, points length: ${points.length}`);
97
+ throw new Error(
98
+ `${name}: time array length: ${timeArray.length}, points length: ${points.length}`
99
+ );
90
100
  }
101
+ */
91
102
  let sign = 1;
92
103
  if (timeSerie['outBiddingZone_Domain.mRID']) {
93
104
  sign = -1;
@@ -98,19 +109,42 @@ class EdifactParser {
98
109
  if (name === 'other' && sign < 0) {
99
110
  sign = 0; //workaround Austria Nov 2015
100
111
  }
101
- const result = [];
112
+ /*
113
+ const result: DataPoint[] = [];
102
114
  points.forEach((point, i) => {
103
- var _a, _b;
104
- const pos = parseInt(point.position[0]) - 1;
105
- const val = parseFloat(((_a = point.quantity) === null || _a === void 0 ? void 0 : _a[0]) || ((_b = point['price.amount']) === null || _b === void 0 ? void 0 : _b[0]) || '0') ||
106
- 0;
107
- result.push({
108
- time: timeArray[pos],
109
- value: val * sign,
110
- });
115
+ const pos = parseInt(point.position[0]) - 1;
116
+ const val =
117
+ parseFloat(point.quantity?.[0] || point['price.amount']?.[0] || '0') ||
118
+ 0;
119
+ result.push({
120
+ time: timeArray[pos],
121
+ value: val * sign,
122
+ });
123
+ });
124
+ */
125
+ const result = this.transformData(timeSerie.Period).map((item) => {
126
+ return {
127
+ time: item.time,
128
+ value: item.value * sign,
129
+ };
111
130
  });
112
131
  return [startEndResolution.resolution, result];
113
132
  }
133
+ transformData(data) {
134
+ const result = [];
135
+ data.forEach((segment) => {
136
+ const startTime = luxon_1.DateTime.fromISO(segment.timeInterval[0].start[0]);
137
+ const resolution = luxon_1.Duration.fromISO(segment.resolution[0]).toMillis();
138
+ segment.Point.forEach((point) => {
139
+ var _a, _b;
140
+ const position = parseInt(point.position[0], 10);
141
+ const quantity = parseFloat(((_a = point.quantity) === null || _a === void 0 ? void 0 : _a[0]) || ((_b = point === null || point === void 0 ? void 0 : point['price.amount']) === null || _b === void 0 ? void 0 : _b[0]) || '0');
142
+ const time = startTime.plus(resolution * position).toMillis();
143
+ result.push({ time, value: quantity });
144
+ });
145
+ });
146
+ return result;
147
+ }
114
148
  makeTimeArray(startIsoString, endIsoString, resolution, timeSerie) {
115
149
  const duration = luxon_1.Duration.fromISO(resolution).toMillis();
116
150
  const localStartTime = luxon_1.DateTime.fromISO(startIsoString);
@@ -1 +1 @@
1
- {"version":3,"file":"ParseEdifact.js","sourceRoot":"","sources":["../../src/router/services/ParseEdifact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ParseEdifact.js","sourceRoot":"","sources":["../../src/router/services/ParseEdifact.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@powercalc/power-router",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "a",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -15,6 +15,7 @@ export interface TimeSeries {
15
15
  Period: EntsoePeriod[]
16
16
  MktPSRType?: MktPSRType[]
17
17
  'outBiddingZone_Domain.mRID':string
18
+ 'classificationSequence_AttributeInstanceComponent.position':string[]
18
19
  }
19
20
  export interface EntsoePeriod {
20
21
  Point: EntsoePoint[]
@@ -1,4 +1,4 @@
1
- import { Entsoe, TimeSeries } from '../interfaces/entsoe';
1
+ import { Entsoe, EntsoePeriod, TimeSeries } from '../interfaces/entsoe';
2
2
  import { Types } from '../interfaces/types';
3
3
  import { DateTime, Duration } from 'luxon';
4
4
  import { AllEntsoe } from './Loader';
@@ -24,6 +24,7 @@ export class EdifactParser {
24
24
  }
25
25
  }
26
26
  parseAll(all: AllEntsoe): AllInResulotions {
27
+ // console.log('all', all)
27
28
  const flat: AllInResulotions = {};
28
29
  Object.keys(all).forEach((key) => {
29
30
  const parsed = this.parse(all[key], key);
@@ -41,8 +42,8 @@ export class EdifactParser {
41
42
  json.GL_MarketDocument?.TimeSeries ||
42
43
  json.Publication_MarketDocument?.TimeSeries;
43
44
  if (!timeSeries) {
44
- const reason =json.Acknowledgement_MarketDocument?.Reason[0]
45
- console.debug(reason?.text[0])
45
+ const reason = json.Acknowledgement_MarketDocument?.Reason[0];
46
+ console.debug(reason?.text[0]);
46
47
  return;
47
48
  }
48
49
  let name = 'what';
@@ -56,19 +57,26 @@ export class EdifactParser {
56
57
  return 0
57
58
  })
58
59
  */
59
- timeSeries.forEach((timeSerie, i) => {
60
- const psrType = timeSerie?.MktPSRType?.[0].psrType?.[0] || 'unknow';
61
- name = this.psrName[psrType] || key;
62
- const parsed = this.parseTimeSeries(timeSerie, name);
63
- const resolution = parsed[0];
64
- if (!all[name]) {
65
- all[name] = {};
66
- }
67
- if (!all[name][resolution]) {
68
- all[name][resolution] = [];
69
- }
70
- all[name][resolution] = all[name][resolution].concat(parsed[1]);
71
- });
60
+ timeSeries
61
+ .filter(
62
+ (item) =>
63
+ item[
64
+ 'classificationSequence_AttributeInstanceComponent.position'
65
+ ]?.[0] !== '2'
66
+ )
67
+ .forEach((timeSerie, i) => {
68
+ const psrType = timeSerie?.MktPSRType?.[0].psrType?.[0] || 'unknow';
69
+ name = this.psrName[psrType] || key;
70
+ const parsed = this.parseTimeSeries(timeSerie, name);
71
+ const resolution = parsed[0];
72
+ if (!all[name]) {
73
+ all[name] = {};
74
+ }
75
+ if (!all[name][resolution]) {
76
+ all[name][resolution] = [];
77
+ }
78
+ all[name][resolution] = all[name][resolution].concat(parsed[1]);
79
+ });
72
80
  const result: AllInResulotions = {};
73
81
  Object.keys(all).forEach((type) => {
74
82
  Object.keys(all[type]).forEach((res) => {
@@ -98,8 +106,10 @@ export class EdifactParser {
98
106
  startEndResolution.resolution,
99
107
  timeSerie
100
108
  );
109
+ /*
101
110
  const points = timeSerie.Period[0].Point;
102
111
  const l= parseInt(points[points.length -1].position[0]);
112
+ console.log ('tt', name,timeArray.length , l, startEndResolution) ;
103
113
  if (timeArray.length > l) {
104
114
  timeArray.length = l; //winter, summer time workaround
105
115
  }
@@ -108,6 +118,7 @@ export class EdifactParser {
108
118
  `${name}: time array length: ${timeArray.length}, points length: ${points.length}`
109
119
  );
110
120
  }
121
+ */
111
122
  let sign = 1;
112
123
  if (timeSerie['outBiddingZone_Domain.mRID']) {
113
124
  sign = -1;
@@ -115,9 +126,10 @@ export class EdifactParser {
115
126
  if (name === 'consumption') {
116
127
  sign = 1;
117
128
  }
118
- if(name === 'other' && sign < 0){
129
+ if (name === 'other' && sign < 0) {
119
130
  sign = 0; //workaround Austria Nov 2015
120
131
  }
132
+ /*
121
133
  const result: DataPoint[] = [];
122
134
  points.forEach((point, i) => {
123
135
  const pos = parseInt(point.position[0]) - 1;
@@ -129,8 +141,38 @@ export class EdifactParser {
129
141
  value: val * sign,
130
142
  });
131
143
  });
144
+ */
145
+ const result = this.transformData(timeSerie.Period).map((item) => {
146
+ return {
147
+ time: item.time,
148
+ value: item.value * sign,
149
+ };
150
+ });
132
151
  return [startEndResolution.resolution, result];
133
152
  }
153
+
154
+ transformData(data: EntsoePeriod[]): DataPoint[] {
155
+ const result: DataPoint[] = [];
156
+
157
+ data.forEach((segment) => {
158
+ const startTime = DateTime.fromISO(segment.timeInterval[0].start[0]);
159
+ const resolution = Duration.fromISO(segment.resolution[0]).toMillis();
160
+
161
+ segment.Point.forEach((point) => {
162
+ const position = parseInt(point.position[0], 10);
163
+ const quantity = parseFloat(
164
+ point.quantity?.[0] || point?.['price.amount']?.[0] || '0'
165
+ );
166
+
167
+ const time = startTime.plus(resolution * position).toMillis();
168
+
169
+ result.push({ time, value: quantity });
170
+ });
171
+ });
172
+
173
+ return result;
174
+ }
175
+
134
176
  makeTimeArray(
135
177
  startIsoString: string,
136
178
  endIsoString: string,