raain-model 2.6.10 → 2.6.11

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 (210) hide show
  1. package/README.md +2 -12
  2. package/RELEASE_PROCESS.md +11 -6
  3. package/cartesian/CartesianMeasureValue.d.ts +40 -0
  4. package/{src/cartesian/CartesianMeasureValue.ts → cartesian/CartesianMeasureValue.js} +41 -73
  5. package/cartesian/CartesianMeasureValue.js.map +1 -0
  6. package/cartesian/CartesianTools.d.ts +32 -0
  7. package/{src/cartesian/CartesianTools.ts → cartesian/CartesianTools.js} +69 -130
  8. package/cartesian/CartesianTools.js.map +1 -0
  9. package/cartesian/CartesianValue.d.ts +14 -0
  10. package/cartesian/CartesianValue.js +17 -0
  11. package/cartesian/CartesianValue.js.map +1 -0
  12. package/cartesian/EarthMap.d.ts +5 -0
  13. package/cartesian/EarthMap.js +3 -0
  14. package/cartesian/EarthMap.js.map +1 -0
  15. package/cartesian/ICartesianMeasureValue.d.ts +23 -0
  16. package/cartesian/ICartesianMeasureValue.js +3 -0
  17. package/cartesian/ICartesianMeasureValue.js.map +1 -0
  18. package/cartesian/LatLng.d.ts +16 -0
  19. package/cartesian/LatLng.js +34 -0
  20. package/cartesian/LatLng.js.map +1 -0
  21. package/cartesian/RadarCartesianMeasureValue.d.ts +17 -0
  22. package/cartesian/RadarCartesianMeasureValue.js +22 -0
  23. package/cartesian/RadarCartesianMeasureValue.js.map +1 -0
  24. package/cartesian/RainCartesianMeasureValue.d.ts +17 -0
  25. package/cartesian/RainCartesianMeasureValue.js +23 -0
  26. package/cartesian/RainCartesianMeasureValue.js.map +1 -0
  27. package/cartesian/index.js +25 -0
  28. package/cartesian/index.js.map +1 -0
  29. package/gauge/GaugeMeasure.d.ts +20 -0
  30. package/gauge/GaugeMeasure.js +30 -0
  31. package/gauge/GaugeMeasure.js.map +1 -0
  32. package/gauge/GaugeNode.d.ts +85 -0
  33. package/{src/gauge/GaugeNode.ts → gauge/GaugeNode.js} +20 -48
  34. package/gauge/GaugeNode.js.map +1 -0
  35. package/gauge/GaugeNodeMap.d.ts +24 -0
  36. package/gauge/GaugeNodeMap.js +40 -0
  37. package/gauge/GaugeNodeMap.js.map +1 -0
  38. package/gauge/index.js +20 -0
  39. package/gauge/index.js.map +1 -0
  40. package/index.js +24 -0
  41. package/index.js.map +1 -0
  42. package/organization/EventNode.d.ts +22 -0
  43. package/organization/EventNode.js +30 -0
  44. package/organization/EventNode.js.map +1 -0
  45. package/organization/IVersion.js +3 -0
  46. package/organization/IVersion.js.map +1 -0
  47. package/organization/Link.d.ts +16 -0
  48. package/{src/organization/Link.ts → organization/Link.js} +15 -15
  49. package/organization/Link.js.map +1 -0
  50. package/organization/Measure.d.ts +22 -0
  51. package/organization/Measure.js +45 -0
  52. package/organization/Measure.js.map +1 -0
  53. package/organization/PeopleNode.d.ts +18 -0
  54. package/{src/organization/PeopleNode.ts → organization/PeopleNode.js} +10 -20
  55. package/organization/PeopleNode.js.map +1 -0
  56. package/organization/RaainNode.d.ts +91 -0
  57. package/{src/organization/RaainNode.ts → organization/RaainNode.js} +38 -63
  58. package/organization/RaainNode.js.map +1 -0
  59. package/organization/TeamNode.d.ts +63 -0
  60. package/{src/organization/TeamNode.ts → organization/TeamNode.js} +13 -36
  61. package/organization/TeamNode.js.map +1 -0
  62. package/organization/index.js +24 -0
  63. package/organization/index.js.map +1 -0
  64. package/package.json +1 -1
  65. package/polar/AbstractPolarMeasureValue.d.ts +29 -0
  66. package/{src/polar/AbstractPolarMeasureValue.ts → polar/AbstractPolarMeasureValue.js} +32 -58
  67. package/polar/AbstractPolarMeasureValue.js.map +1 -0
  68. package/polar/IPolarMeasureValue.d.ts +19 -0
  69. package/polar/IPolarMeasureValue.js +3 -0
  70. package/polar/IPolarMeasureValue.js.map +1 -0
  71. package/polar/MeasureValuePolarContainer.d.ts +19 -0
  72. package/{src/polar/MeasureValuePolarContainer.ts → polar/MeasureValuePolarContainer.js} +13 -29
  73. package/polar/MeasureValuePolarContainer.js.map +1 -0
  74. package/polar/PolarFilter.d.ts +16 -0
  75. package/polar/PolarFilter.js +45 -0
  76. package/polar/PolarFilter.js.map +1 -0
  77. package/polar/PolarMeasureValue.d.ts +51 -0
  78. package/{src/polar/PolarMeasureValue.ts → polar/PolarMeasureValue.js} +62 -125
  79. package/polar/PolarMeasureValue.js.map +1 -0
  80. package/polar/PolarMeasureValueMap.d.ts +45 -0
  81. package/{src/polar/PolarMeasureValueMap.ts → polar/PolarMeasureValueMap.js} +88 -165
  82. package/polar/PolarMeasureValueMap.js.map +1 -0
  83. package/polar/PolarValue.d.ts +10 -0
  84. package/polar/PolarValue.js +12 -0
  85. package/polar/PolarValue.js.map +1 -0
  86. package/polar/RadarPolarMeasureValue.d.ts +27 -0
  87. package/{src/polar/RadarPolarMeasureValue.ts → polar/RadarPolarMeasureValue.js} +21 -34
  88. package/polar/RadarPolarMeasureValue.js.map +1 -0
  89. package/polar/RainPolarMeasureValue.d.ts +20 -0
  90. package/polar/RainPolarMeasureValue.js +42 -0
  91. package/polar/RainPolarMeasureValue.js.map +1 -0
  92. package/polar/index.js +25 -0
  93. package/polar/index.js.map +1 -0
  94. package/quality/QualityPoint.d.ts +37 -0
  95. package/{src/quality/QualityPoint.ts → quality/QualityPoint.js} +33 -56
  96. package/quality/QualityPoint.js.map +1 -0
  97. package/quality/SpeedMatrix.d.ts +83 -0
  98. package/{src/quality/SpeedMatrix.ts → quality/SpeedMatrix.js} +76 -117
  99. package/quality/SpeedMatrix.js.map +1 -0
  100. package/quality/SpeedMatrixContainer.d.ts +102 -0
  101. package/{src/quality/SpeedMatrixContainer.ts → quality/SpeedMatrixContainer.js} +103 -210
  102. package/quality/SpeedMatrixContainer.js.map +1 -0
  103. package/quality/history/CartesianGaugeHistory.d.ts +15 -0
  104. package/quality/history/CartesianGaugeHistory.js +14 -0
  105. package/quality/history/CartesianGaugeHistory.js.map +1 -0
  106. package/quality/history/CartesianRainHistory.d.ts +9 -0
  107. package/quality/history/CartesianRainHistory.js +11 -0
  108. package/quality/history/CartesianRainHistory.js.map +1 -0
  109. package/quality/history/PositionHistory.d.ts +20 -0
  110. package/quality/history/PositionHistory.js +17 -0
  111. package/quality/history/PositionHistory.js.map +1 -0
  112. package/{src/quality/index.ts → quality/index.d.ts} +0 -3
  113. package/quality/index.js +26 -0
  114. package/quality/index.js.map +1 -0
  115. package/quality/position/Position.d.ts +22 -0
  116. package/quality/position/Position.js +50 -0
  117. package/quality/position/Position.js.map +1 -0
  118. package/quality/position/PositionValue.d.ts +9 -0
  119. package/quality/position/PositionValue.js +12 -0
  120. package/quality/position/PositionValue.js.map +1 -0
  121. package/quality/tools/QualityTools.d.ts +9 -0
  122. package/{src/quality/tools/QualityTools.ts → quality/tools/QualityTools.js} +17 -18
  123. package/quality/tools/QualityTools.js.map +1 -0
  124. package/radar/RadarMeasure.d.ts +19 -0
  125. package/radar/RadarMeasure.js +30 -0
  126. package/radar/RadarMeasure.js.map +1 -0
  127. package/radar/RadarNode.d.ts +30 -0
  128. package/{src/radar/RadarNode.ts → radar/RadarNode.js} +19 -41
  129. package/radar/RadarNode.js.map +1 -0
  130. package/radar/RadarNodeMap.d.ts +26 -0
  131. package/radar/RadarNodeMap.js +44 -0
  132. package/radar/RadarNodeMap.js.map +1 -0
  133. package/radar/index.js +20 -0
  134. package/radar/index.js.map +1 -0
  135. package/rain/MergeStrategy.d.ts +13 -0
  136. package/rain/MergeStrategy.js +11 -0
  137. package/rain/MergeStrategy.js.map +1 -0
  138. package/rain/RainComputation.d.ts +42 -0
  139. package/rain/RainComputation.js +65 -0
  140. package/rain/RainComputation.js.map +1 -0
  141. package/rain/RainComputationAbstract.d.ts +73 -0
  142. package/{src/rain/RainComputationAbstract.ts → rain/RainComputationAbstract.js} +69 -135
  143. package/rain/RainComputationAbstract.js.map +1 -0
  144. package/rain/RainComputationMap.d.ts +97 -0
  145. package/{src/rain/RainComputationMap.ts → rain/RainComputationMap.js} +22 -55
  146. package/rain/RainComputationMap.js.map +1 -0
  147. package/rain/RainComputationQuality.d.ts +40 -0
  148. package/{src/rain/RainComputationQuality.ts → rain/RainComputationQuality.js} +42 -80
  149. package/rain/RainComputationQuality.js.map +1 -0
  150. package/rain/RainMeasure.d.ts +17 -0
  151. package/rain/RainMeasure.js +18 -0
  152. package/rain/RainMeasure.js.map +1 -0
  153. package/rain/RainNode.d.ts +46 -0
  154. package/{src/rain/RainNode.ts → rain/RainNode.js} +72 -117
  155. package/rain/RainNode.js.map +1 -0
  156. package/rain/index.js +23 -0
  157. package/rain/index.js.map +1 -0
  158. package/.cursorignore +0 -10
  159. package/.github/workflows/ci.yml +0 -29
  160. package/LICENSE +0 -21
  161. package/RELEASE.md +0 -19
  162. package/specs/REQUIREMENTS.md +0 -42
  163. package/specs/TECHNICAL.md +0 -57
  164. package/specs/cartesian/Cartesian.spec.ts +0 -82
  165. package/specs/cartesian/CartesianTools.spec.ts +0 -121
  166. package/specs/gauge/Gauge.spec.ts +0 -39
  167. package/specs/organization/Organization.spec.ts +0 -38
  168. package/specs/polar/Polar.spec.ts +0 -267
  169. package/specs/quality/Position.spec.ts +0 -18
  170. package/specs/quality/QualityPointEdgeCases.spec.ts +0 -215
  171. package/specs/quality/QualityTools.spec.ts +0 -67
  172. package/specs/quality/SpeedMatrix.spec.ts +0 -214
  173. package/specs/radar/Radar.spec.ts +0 -129
  174. package/specs/rain/Rain.spec.ts +0 -334
  175. package/specs/tsconfig.json +0 -12
  176. package/src/cartesian/CartesianValue.ts +0 -26
  177. package/src/cartesian/EarthMap.ts +0 -5
  178. package/src/cartesian/ICartesianMeasureValue.ts +0 -22
  179. package/src/cartesian/LatLng.ts +0 -43
  180. package/src/cartesian/RadarCartesianMeasureValue.ts +0 -32
  181. package/src/cartesian/RainCartesianMeasureValue.ts +0 -32
  182. package/src/gauge/GaugeMeasure.ts +0 -42
  183. package/src/gauge/GaugeNodeMap.ts +0 -55
  184. package/src/organization/EventNode.ts +0 -43
  185. package/src/organization/Measure.ts +0 -61
  186. package/src/polar/IPolarMeasureValue.ts +0 -21
  187. package/src/polar/PolarFilter.ts +0 -46
  188. package/src/polar/PolarValue.ts +0 -16
  189. package/src/polar/RainPolarMeasureValue.ts +0 -57
  190. package/src/quality/history/CartesianGaugeHistory.ts +0 -23
  191. package/src/quality/history/CartesianRainHistory.ts +0 -15
  192. package/src/quality/history/PositionHistory.ts +0 -31
  193. package/src/quality/position/Position.ts +0 -59
  194. package/src/quality/position/PositionValue.ts +0 -15
  195. package/src/radar/RadarMeasure.ts +0 -41
  196. package/src/radar/RadarNodeMap.ts +0 -61
  197. package/src/rain/MergeStrategy.ts +0 -15
  198. package/src/rain/RainComputation.ts +0 -96
  199. package/src/rain/RainMeasure.ts +0 -25
  200. package/tsconfig.json +0 -17
  201. package/tslint.json +0 -79
  202. package/typedoc.json +0 -31
  203. /package/{src/cartesian/index.ts → cartesian/index.d.ts} +0 -0
  204. /package/{src/gauge/index.ts → gauge/index.d.ts} +0 -0
  205. /package/{src/index.ts → index.d.ts} +0 -0
  206. /package/{src/organization/IVersion.ts → organization/IVersion.d.ts} +0 -0
  207. /package/{src/organization/index.ts → organization/index.d.ts} +0 -0
  208. /package/{src/polar/index.ts → polar/index.d.ts} +0 -0
  209. /package/{src/radar/index.ts → radar/index.d.ts} +0 -0
  210. /package/{src/rain/index.ts → rain/index.d.ts} +0 -0
@@ -1,57 +1,41 @@
1
- import {PositionHistory} from './history/PositionHistory';
2
- import {PositionValue} from './position/PositionValue';
3
- import {QualityTools} from './tools/QualityTools';
4
- import {Position} from './position/Position';
5
- import {QualityPoint} from './QualityPoint';
6
- import {CartesianValue} from '../cartesian/CartesianValue';
7
- import {CartesianTools} from '../cartesian/CartesianTools';
8
-
9
- export class SpeedMatrix {
10
-
11
- public static DEFAULT_MATRIX_RANGE = 16;
12
- public static DEFAULT_TRUSTED_INDICATOR = 1;
13
-
14
- protected flattenPositionHistory: number[][];
15
-
16
- constructor(
17
- public name: string,
18
- public remarks: string,
19
- protected qualityPoints: QualityPoint[],
20
- protected speed: { angleInDegrees: number, pixelsPerPeriod: number } = {angleInDegrees: 0, pixelsPerPeriod: 0},
21
- protected trustedTechnicalIndicator = SpeedMatrix.DEFAULT_TRUSTED_INDICATOR,
22
- protected flattenPositionRange: { xMin: number, xMax: number, yMin: number, yMax: number } = {
23
- xMin: -SpeedMatrix.DEFAULT_MATRIX_RANGE,
24
- xMax: SpeedMatrix.DEFAULT_MATRIX_RANGE,
25
- yMin: -SpeedMatrix.DEFAULT_MATRIX_RANGE,
26
- yMax: SpeedMatrix.DEFAULT_MATRIX_RANGE
27
- },
28
- public roundScale: Position = new Position({x: CartesianTools.DEFAULT_SCALE, y: CartesianTools.DEFAULT_SCALE})
29
- ) {
30
- }
31
-
32
- public static CreateFromJson(json: any | SpeedMatrix): SpeedMatrix {
33
- const created = new SpeedMatrix(
34
- json.name,
35
- json.remarks,
36
- json.qualityPoints,
37
- json.speed,
38
- json.trustedTechnicalIndicator,
39
- json.flattenPositionRange,
40
- json.roundScale);
41
-
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SpeedMatrix = void 0;
4
+ const PositionHistory_1 = require("./history/PositionHistory");
5
+ const PositionValue_1 = require("./position/PositionValue");
6
+ const QualityTools_1 = require("./tools/QualityTools");
7
+ const Position_1 = require("./position/Position");
8
+ const QualityPoint_1 = require("./QualityPoint");
9
+ const CartesianValue_1 = require("../cartesian/CartesianValue");
10
+ const CartesianTools_1 = require("../cartesian/CartesianTools");
11
+ class SpeedMatrix {
12
+ constructor(name, remarks, qualityPoints, speed = { angleInDegrees: 0, pixelsPerPeriod: 0 }, trustedTechnicalIndicator = SpeedMatrix.DEFAULT_TRUSTED_INDICATOR, flattenPositionRange = {
13
+ xMin: -SpeedMatrix.DEFAULT_MATRIX_RANGE,
14
+ xMax: SpeedMatrix.DEFAULT_MATRIX_RANGE,
15
+ yMin: -SpeedMatrix.DEFAULT_MATRIX_RANGE,
16
+ yMax: SpeedMatrix.DEFAULT_MATRIX_RANGE
17
+ }, roundScale = new Position_1.Position({ x: CartesianTools_1.CartesianTools.DEFAULT_SCALE, y: CartesianTools_1.CartesianTools.DEFAULT_SCALE })) {
18
+ this.name = name;
19
+ this.remarks = remarks;
20
+ this.qualityPoints = qualityPoints;
21
+ this.speed = speed;
22
+ this.trustedTechnicalIndicator = trustedTechnicalIndicator;
23
+ this.flattenPositionRange = flattenPositionRange;
24
+ this.roundScale = roundScale;
25
+ }
26
+ static CreateFromJson(json) {
27
+ const created = new SpeedMatrix(json.name, json.remarks, json.qualityPoints, json.speed, json.trustedTechnicalIndicator, json.flattenPositionRange, json.roundScale);
42
28
  if (json.flattenPositionHistory) {
43
29
  created.flattenPositionHistory = json.flattenPositionHistory;
44
30
  }
45
-
46
31
  return created;
47
32
  }
48
-
49
33
  /**
50
34
  * Get quality indicator based on delta from computed vs reality
51
35
  * 0 is ideal
52
36
  * 2.56 (for example) is not ideal => can be improved :)
53
37
  */
54
- public static ComputeQualityIndicator(points: QualityPoint[]): number {
38
+ static ComputeQualityIndicator(points) {
55
39
  let indicator = 0;
56
40
  for (const point of points) {
57
41
  indicator += point.getDelta();
@@ -59,40 +43,34 @@ export class SpeedMatrix {
59
43
  if (points.length > 0) {
60
44
  indicator = indicator / points.length;
61
45
  }
62
-
63
46
  return indicator;
64
47
  }
65
-
66
- static LogPositionValues(positionValues: PositionHistory[],
67
- valueDisplayFn: (v: PositionHistory) => string,
68
- flattenPositionRange: { xMin: number, xMax: number, yMin: number, yMax: number } = {
69
- xMin: -SpeedMatrix.DEFAULT_MATRIX_RANGE,
70
- xMax: SpeedMatrix.DEFAULT_MATRIX_RANGE,
71
- yMin: -SpeedMatrix.DEFAULT_MATRIX_RANGE,
72
- yMax: SpeedMatrix.DEFAULT_MATRIX_RANGE
73
- },
74
- logger = console) {
75
-
76
- const labelWithSign = (val: number) => {
48
+ static LogPositionValues(positionValues, valueDisplayFn, flattenPositionRange = {
49
+ xMin: -SpeedMatrix.DEFAULT_MATRIX_RANGE,
50
+ xMax: SpeedMatrix.DEFAULT_MATRIX_RANGE,
51
+ yMin: -SpeedMatrix.DEFAULT_MATRIX_RANGE,
52
+ yMax: SpeedMatrix.DEFAULT_MATRIX_RANGE
53
+ }, logger = console) {
54
+ const labelWithSign = (val) => {
77
55
  if (val < 0) {
78
56
  return '' + val;
79
- } else if (val === 0) {
57
+ }
58
+ else if (val === 0) {
80
59
  return ' ' + 0;
81
60
  }
82
61
  return '+' + val;
83
- }
84
- const labelX = (x: number) => {
62
+ };
63
+ const labelX = (x) => {
85
64
  return 'x' + labelWithSign(x - flattenPositionRange.xMax);
86
65
  };
87
- const labelY = (y: number) => {
66
+ const labelY = (y) => {
88
67
  return 'y' + labelWithSign(y - flattenPositionRange.yMax);
89
68
  };
90
-
91
69
  const matrixToRender = {};
92
70
  for (let y = flattenPositionRange.yMax - flattenPositionRange.yMin; y >= 0; y--) {
93
71
  const xObject = {};
94
72
  for (let x = 0; x <= flattenPositionRange.xMax - flattenPositionRange.xMin; x++) {
95
- xObject[labelX(x)] = valueDisplayFn(new PositionHistory({
73
+ xObject[labelX(x)] = valueDisplayFn(new PositionHistory_1.PositionHistory({
96
74
  id: 'id',
97
75
  label: 'label',
98
76
  date: new Date(),
@@ -113,65 +91,54 @@ export class SpeedMatrix {
113
91
  matrixToRender[labelY(yOfMatrix)][labelX(xOfMatrix)] = valueDisplayFn(value);
114
92
  }
115
93
  }
116
-
117
- logger?.table(matrixToRender);
94
+ logger === null || logger === void 0 ? void 0 : logger.table(matrixToRender);
118
95
  }
119
-
120
-
121
- public static Normalize(values: PositionValue[]): PositionValue[] {
122
- const built: PositionValue[] = [];
96
+ static Normalize(values) {
97
+ const built = [];
123
98
  let maxValue = Number.EPSILON;
124
99
  for (const pos of values) {
125
100
  maxValue = Math.max(maxValue, pos.value);
126
101
  }
127
102
  for (const pos of values) {
128
103
  const normalizedValue = pos.value / maxValue;
129
- built.push(new PositionValue({x: pos.x, y: pos.y, value: normalizedValue}));
104
+ built.push(new PositionValue_1.PositionValue({ x: pos.x, y: pos.y, value: normalizedValue }));
130
105
  }
131
106
  return built;
132
107
  }
133
-
134
- renderFlatten(options: { normalize: boolean }): PositionValue[] {
135
-
108
+ renderFlatten(options) {
136
109
  const positionMatrix = this.getFlatten();
137
110
  if (positionMatrix.length === 0) {
138
111
  return [];
139
112
  }
140
-
141
- const positionHistories: PositionValue[] = [];
113
+ const positionHistories = [];
142
114
  let maxValue = 0;
143
115
  for (const [iX, posX] of positionMatrix.entries()) {
144
116
  for (const [iY, value] of posX.entries()) {
145
117
  const x = iX + this.flattenPositionRange.xMin;
146
118
  const y = iY + this.flattenPositionRange.yMin;
147
119
  maxValue = Math.max(maxValue, value);
148
- positionHistories.push(new PositionValue({x, y, value}));
120
+ positionHistories.push(new PositionValue_1.PositionValue({ x, y, value }));
149
121
  }
150
122
  }
151
-
152
123
  // Normalize
153
124
  if (maxValue && options.normalize) {
154
125
  positionHistories.forEach(p => {
155
126
  p.value = p.value / maxValue;
156
127
  });
157
128
  }
158
-
159
129
  return positionHistories;
160
130
  }
161
-
162
- getGaugeIdRelatedValues(id: string): QualityPoint {
131
+ getGaugeIdRelatedValues(id) {
163
132
  const points = this.qualityPoints.filter(p => p.gaugeId === id);
164
133
  if (points.length === 1) {
165
134
  return points[0];
166
135
  }
167
136
  return null;
168
137
  }
169
-
170
- getQualityPoints(): QualityPoint[] {
171
- return this.qualityPoints.map(p => new QualityPoint(p));
138
+ getQualityPoints() {
139
+ return this.qualityPoints.map(p => new QualityPoint_1.QualityPoint(p));
172
140
  }
173
-
174
- getMaxRain(): number {
141
+ getMaxRain() {
175
142
  const qualityPoints = this.getQualityPoints();
176
143
  let max = -1;
177
144
  for (const p of qualityPoints) {
@@ -179,8 +146,7 @@ export class SpeedMatrix {
179
146
  }
180
147
  return max;
181
148
  }
182
-
183
- getMaxGauge(): number {
149
+ getMaxGauge() {
184
150
  const qualityPoints = this.getQualityPoints();
185
151
  let max = -1;
186
152
  for (const p of qualityPoints) {
@@ -188,15 +154,12 @@ export class SpeedMatrix {
188
154
  }
189
155
  return max;
190
156
  }
191
-
192
- getTrustedTechnicalIndicator(): number {
157
+ getTrustedTechnicalIndicator() {
193
158
  return this.trustedTechnicalIndicator;
194
159
  }
195
-
196
- isConsistent(): boolean {
160
+ isConsistent() {
197
161
  return this.trustedTechnicalIndicator > SpeedMatrix.DEFAULT_TRUSTED_INDICATOR / 2;
198
162
  }
199
-
200
163
  toJSON() {
201
164
  return {
202
165
  name: this.name,
@@ -209,13 +172,10 @@ export class SpeedMatrix {
209
172
  roundScale: this.roundScale,
210
173
  };
211
174
  }
212
-
213
- logFlatten(options: { logger: any, simplify: boolean }
214
- = {logger: console, simplify: false}) {
175
+ logFlatten(options = { logger: console, simplify: false }) {
215
176
  const logger = options.logger;
216
-
217
- const flatten = this.renderFlatten({normalize: false});
218
- const positionHistories = flatten.map(pv => new PositionHistory({
177
+ const flatten = this.renderFlatten({ normalize: false });
178
+ const positionHistories = flatten.map(pv => new PositionHistory_1.PositionHistory({
219
179
  id: '-',
220
180
  label: '-',
221
181
  date: null,
@@ -225,64 +185,63 @@ export class SpeedMatrix {
225
185
  valueFromGauge: -1,
226
186
  valueFromRain: -1
227
187
  }));
228
-
229
- const valueDisplay = (pv: PositionValue): string => {
188
+ const valueDisplay = (pv) => {
230
189
  const v = pv.value;
231
190
  if (options.simplify) {
232
191
  if (v === 1) {
233
192
  return '##';
234
- } else if (v >= 0.8) {
193
+ }
194
+ else if (v >= 0.8) {
235
195
  return '#';
236
- } else if (v >= 0.5) {
196
+ }
197
+ else if (v >= 0.5) {
237
198
  return '=';
238
- } else if (v >= 0.2) {
199
+ }
200
+ else if (v >= 0.2) {
239
201
  return '_';
240
202
  }
241
203
  return ' ';
242
204
  }
243
205
  return '' + Math.round(v * 1000) / 1000;
244
- }
245
-
206
+ };
246
207
  SpeedMatrix.LogPositionValues(positionHistories, valueDisplay, this.flattenPositionRange, logger);
247
208
  }
248
-
249
209
  getSpeed() {
250
210
  if (!this.speed) {
251
- return {angleInDegrees: 0, pixelsPerPeriod: 0};
211
+ return { angleInDegrees: 0, pixelsPerPeriod: 0 };
252
212
  }
253
213
  return this.speed;
254
214
  }
255
-
256
- protected getFlatten(): number[][] {
215
+ getFlatten() {
257
216
  if (this.flattenPositionHistory) {
258
217
  return this.flattenPositionHistory;
259
218
  }
260
-
261
219
  this.flattenPositionHistory = [];
262
220
  const yWidth = this.flattenPositionRange.yMax - this.flattenPositionRange.yMin + 1;
263
221
  const xWidth = this.flattenPositionRange.xMax - this.flattenPositionRange.xMin + 1;
264
222
  for (let y = 0; y < yWidth; y++) {
265
223
  this.flattenPositionHistory.push(new Array(xWidth).fill(0));
266
224
  }
267
-
268
225
  // same position => add value
269
226
  for (const qualityPoint of this.qualityPoints) {
270
227
  const value = qualityPoint.getRatio();
271
228
  const lat = qualityPoint.getRainLat() - qualityPoint.gaugeCartesianValue.lat;
272
229
  const lng = qualityPoint.getRainLng() - qualityPoint.gaugeCartesianValue.lng;
273
- const cartesianValue = new CartesianValue({value, lat, lng});
274
- const position = QualityTools.MapLatLngToPosition(cartesianValue);
275
-
230
+ const cartesianValue = new CartesianValue_1.CartesianValue({ value, lat, lng });
231
+ const position = QualityTools_1.QualityTools.MapLatLngToPosition(cartesianValue);
276
232
  const positionX = Math.round((position.x / this.roundScale.x) - this.flattenPositionRange.xMin);
277
233
  const positionY = Math.round((position.y / this.roundScale.y) - this.flattenPositionRange.yMin);
278
-
279
234
  if (0 <= positionX && positionX < xWidth && 0 <= positionY && positionY < yWidth) {
280
235
  this.flattenPositionHistory[positionX][positionY] += cartesianValue.value;
281
- } else {
236
+ }
237
+ else {
282
238
  throw new Error('Matrix ranges and positions are not consistent.');
283
239
  }
284
240
  }
285
-
286
241
  return this.flattenPositionHistory;
287
242
  }
288
243
  }
244
+ exports.SpeedMatrix = SpeedMatrix;
245
+ SpeedMatrix.DEFAULT_MATRIX_RANGE = 16;
246
+ SpeedMatrix.DEFAULT_TRUSTED_INDICATOR = 1;
247
+ //# sourceMappingURL=SpeedMatrix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpeedMatrix.js","sourceRoot":"","sources":["../../src/quality/SpeedMatrix.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ import { SpeedMatrix } from './SpeedMatrix';
2
+ import { PositionValue } from './position/PositionValue';
3
+ import { QualityPoint } from './QualityPoint';
4
+ import { RainComputationQuality } from '../rain/RainComputationQuality';
5
+ export interface ICompares {
6
+ comparesPerDate: IComparePerDate[];
7
+ compareCumulative: ICompare;
8
+ }
9
+ export interface IComparePerDate {
10
+ date: Date;
11
+ rainComputationQuality: RainComputationQuality;
12
+ compareTimeline: ICompare[];
13
+ }
14
+ export interface ICompare {
15
+ name: string;
16
+ date: Date;
17
+ qualityPointsLegacy: QualityPoint[];
18
+ qualityPoints: QualityPoint[];
19
+ maxValue: number;
20
+ remarks: string;
21
+ }
22
+ export declare class SpeedMatrixContainer {
23
+ protected qualityPoints: any;
24
+ protected trustedIndicators: number[];
25
+ protected flattenMatrices: PositionValue[][];
26
+ protected matrices: SpeedMatrix[];
27
+ constructor(json: {
28
+ matrices: SpeedMatrix[];
29
+ });
30
+ static CreateFromJson(json: any): SpeedMatrixContainer;
31
+ static BuildCompares(qualities: RainComputationQuality[], removeDuplicates?: boolean): ICompares;
32
+ static BuildCompareTimeline(currentQuality: RainComputationQuality, dateMin: Date, dateMax: Date): ICompare[];
33
+ protected static mergeStillComputed(v1: any, v2: any): any;
34
+ protected static mergeDateMin(d1: Date, d2: Date): Date;
35
+ protected static mergeDateMax(d1: Date, d2: Date): Date;
36
+ protected static mergeAvg(v1: number, v2: number): number;
37
+ protected static mergeMin(v1: number, v2: number): number;
38
+ protected static mergeConcat(a1: Array<any>, a2: Array<any>): Array<any>;
39
+ protected static mergeReduce(a1: Array<QualityPoint>, a2: Array<QualityPoint>): Array<QualityPoint>;
40
+ getMatrix(index?: number): SpeedMatrix;
41
+ getMatrixByName(name: string): SpeedMatrix;
42
+ getMatrices(): SpeedMatrix[];
43
+ getQualityPoints(matrixName?: string): QualityPoint[];
44
+ getQualityPointsByHistoricalPosition(position?: number): QualityPoint[];
45
+ getMaxGauge(matrixName?: string): number;
46
+ getMaxRain(matrixName?: string): number;
47
+ /**
48
+ * Get summed quality indicator (0 ideally)
49
+ * @link SpeedMatrix.ComputeQualityIndicator
50
+ */
51
+ getQuality(matrixName?: string): number;
52
+ getTrustedIndicators(): number[];
53
+ getSpeed(): {
54
+ angleInDegrees: number;
55
+ pixelsPerPeriod: number;
56
+ };
57
+ isConsistent(): boolean;
58
+ getFlattenMatrixCount(): number;
59
+ renderFlattenMatrix(index?: number, options?: {
60
+ normalize?: boolean;
61
+ }): PositionValue[];
62
+ renderMergedMatrix(options?: {
63
+ normalize?: boolean;
64
+ }): PositionValue[];
65
+ toJSON(options?: {
66
+ removeFlatten?: boolean;
67
+ removeMatrices?: boolean;
68
+ removeIndicators?: boolean;
69
+ }): {
70
+ qualityPoints: QualityPoint[];
71
+ trustedIndicators: number[];
72
+ flattenMatrices: PositionValue[][];
73
+ speed: {
74
+ angleInDegrees: number;
75
+ pixelsPerPeriod: number;
76
+ };
77
+ matrices: {
78
+ name: string;
79
+ remarks: string;
80
+ flattenPositionHistory: number[][];
81
+ flattenPositionRange: {
82
+ xMin: number;
83
+ xMax: number;
84
+ yMin: number;
85
+ yMax: number;
86
+ };
87
+ speed: {
88
+ angleInDegrees: number;
89
+ pixelsPerPeriod: number;
90
+ };
91
+ qualityPoints: QualityPoint[];
92
+ trustedTechnicalIndicator: number;
93
+ roundScale: import(".").Position;
94
+ }[];
95
+ };
96
+ merge(speedMatrixContainerToMergeIn: SpeedMatrixContainer): this;
97
+ logMergedMatrix(options?: {
98
+ normalize: boolean;
99
+ logger: any;
100
+ }): void;
101
+ protected storeFlattenMatrices(): PositionValue[][];
102
+ }