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
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MergeStrategy = void 0;
4
+ var MergeStrategy;
5
+ (function (MergeStrategy) {
6
+ MergeStrategy["NONE"] = "none";
7
+ MergeStrategy["SUM"] = "sum";
8
+ MergeStrategy["AVERAGE"] = "average";
9
+ MergeStrategy["MAX"] = "max";
10
+ })(MergeStrategy || (exports.MergeStrategy = MergeStrategy = {}));
11
+ //# sourceMappingURL=MergeStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MergeStrategy.js","sourceRoot":"","sources":["../../src/rain/MergeStrategy.ts"],"names":[],"mappings":";;;AAEA,IAAY,aAKX;AALD,WAAY,aAAa;IACrB,8BAAa,CAAA;IACb,4BAAW,CAAA;IACX,oCAAmB,CAAA;IACnB,4BAAW,CAAA;AACf,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB"}
@@ -0,0 +1,42 @@
1
+ import { Link, RaainNode } from '../organization';
2
+ import { RainPolarMeasureValue } from '../polar';
3
+ import { CartesianTools, LatLng, RainCartesianMeasureValue } from '../cartesian';
4
+ import { RainComputationAbstract } from './RainComputationAbstract';
5
+ import { RainMeasure } from './RainMeasure';
6
+ import { MergeStrategy } from './MergeStrategy';
7
+ /**
8
+ * api/rains/:rainId/computations/:computationId
9
+ * or as an array on
10
+ * api/rains/:id/computations?format=id&begin=...
11
+ */
12
+ export declare class RainComputation extends RainComputationAbstract {
13
+ static TYPE: string;
14
+ results: RainPolarMeasureValue[] | RainCartesianMeasureValue[];
15
+ constructor(json: {
16
+ id: string;
17
+ date: Date;
18
+ isReady: boolean;
19
+ results: RainPolarMeasureValue[] | RainCartesianMeasureValue[];
20
+ links?: Link[] | RaainNode[];
21
+ version?: string;
22
+ quality?: number;
23
+ progressIngest?: number;
24
+ progressComputing?: number;
25
+ timeSpentInMs?: number;
26
+ isDoneDate?: Date;
27
+ launchedBy?: string;
28
+ rain?: Link | RaainNode;
29
+ radars?: Link[] | RaainNode[];
30
+ });
31
+ toJSON(options?: {
32
+ stringify: boolean;
33
+ }): any;
34
+ mergeCartesianResults(options: {
35
+ mergeStrategy: MergeStrategy;
36
+ mergeLimitPoints: [LatLng, LatLng];
37
+ cartesianTools: CartesianTools;
38
+ removeNullValues?: boolean;
39
+ }): RainMeasure[];
40
+ protected getLinkType(): string;
41
+ private setResults;
42
+ }
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RainComputation = void 0;
4
+ const polar_1 = require("../polar");
5
+ const cartesian_1 = require("../cartesian");
6
+ const RainComputationAbstract_1 = require("./RainComputationAbstract");
7
+ const RainMeasure_1 = require("./RainMeasure");
8
+ /**
9
+ * api/rains/:rainId/computations/:computationId
10
+ * or as an array on
11
+ * api/rains/:id/computations?format=id&begin=...
12
+ */
13
+ class RainComputation extends RainComputationAbstract_1.RainComputationAbstract {
14
+ constructor(json) {
15
+ super(json);
16
+ this.setResults(json.results);
17
+ }
18
+ toJSON(options = {
19
+ stringify: false
20
+ }) {
21
+ const json = super.toJSON();
22
+ json['results'] = this.results.map(r => r.toJSON(options));
23
+ return json;
24
+ }
25
+ mergeCartesianResults(options) {
26
+ this.buildLatLngMatrix(options);
27
+ return this.mergeRainMeasures([new RainMeasure_1.RainMeasure({
28
+ id: this.id,
29
+ values: this.results,
30
+ date: this.date
31
+ })], options);
32
+ }
33
+ getLinkType() {
34
+ return RainComputation.TYPE;
35
+ }
36
+ setResults(results) {
37
+ if (typeof results === 'string') {
38
+ results = JSON.parse(results);
39
+ }
40
+ if (!results || results.length === 0 || !Array.isArray(results)) {
41
+ this.results = [];
42
+ return;
43
+ }
44
+ this.results = results.map(r => {
45
+ if (typeof r === 'string' && r.indexOf('polarMeasureValue') >= 0) {
46
+ return new polar_1.RainPolarMeasureValue(JSON.parse(r));
47
+ }
48
+ else if (r.polarMeasureValue) {
49
+ return new polar_1.RainPolarMeasureValue(r);
50
+ }
51
+ if (typeof r === 'string' && r.indexOf('cartesian') >= 0) {
52
+ return new cartesian_1.RainCartesianMeasureValue(JSON.parse(r));
53
+ }
54
+ else if (r.cartesianValues) {
55
+ return new cartesian_1.RainCartesianMeasureValue(r);
56
+ }
57
+ else {
58
+ return r;
59
+ }
60
+ });
61
+ }
62
+ }
63
+ exports.RainComputation = RainComputation;
64
+ RainComputation.TYPE = 'rain-computation';
65
+ //# sourceMappingURL=RainComputation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RainComputation.js","sourceRoot":"","sources":["../../src/rain/RainComputation.ts"],"names":[],"mappings":";;;AACA,oCAA+C;AAC/C,4CAA+E;AAC/E,uEAAkE;AAClE,+CAA0C;AAG1C;;;;GAIG;AACH,MAAa,eAAgB,SAAQ,iDAAuB;IAQxD,YAAY,IAgBX;QACG,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAEM,MAAM,CAAC,OAAO,GAAG;QACpB,SAAS,EAAE,KAAK;KACnB;QACG,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,qBAAqB,CAAC,OAKrB;QAEG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAEhC,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,yBAAW,CAAC;gBAC3C,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,IAAI,EAAE,IAAI,CAAC,IAAI;aAClB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAClB,CAAC;IAES,WAAW;QACjB,OAAO,eAAe,CAAC,IAAI,CAAC;IAChC,CAAC;IAEO,UAAU,CAAC,OAAyE;QACxF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,OAAO;QACX,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC3B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/D,OAAO,IAAI,6BAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,CAAC;iBAAM,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC;gBAC7B,OAAO,IAAI,6BAAqB,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,OAAO,IAAI,qCAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,CAAC;iBAAM,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;gBAC3B,OAAO,IAAI,qCAAyB,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,CAAC;YACb,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;;AAjFL,0CAmFC;AAjFiB,oBAAI,GAAG,kBAAkB,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { Link, RaainNode } from '../organization';
2
+ import { CartesianTools, CartesianValue, LatLng } from '../cartesian';
3
+ import { RainMeasure } from './RainMeasure';
4
+ import { MergeLatLng, MergeStrategy } from './MergeStrategy';
5
+ /**
6
+ * not used directly
7
+ */
8
+ export declare class RainComputationAbstract extends RaainNode {
9
+ quality: number;
10
+ progressIngest: number;
11
+ progressComputing: number;
12
+ timeSpentInMs: number;
13
+ date: Date;
14
+ isReady: boolean;
15
+ isDoneDate: Date;
16
+ launchedBy: string;
17
+ name: string;
18
+ protected mergeTools: {
19
+ cartesianTools: CartesianTools;
20
+ latsLngs: MergeLatLng[][];
21
+ limitPoints: LatLng[];
22
+ };
23
+ constructor(json: {
24
+ id: string;
25
+ date: Date;
26
+ isReady: boolean;
27
+ links?: Link[] | RaainNode[];
28
+ version?: string;
29
+ quality?: number;
30
+ progressIngest?: number;
31
+ progressComputing?: number;
32
+ timeSpentInMs?: number;
33
+ isDoneDate?: Date;
34
+ launchedBy?: string;
35
+ rain?: Link | RaainNode;
36
+ radars?: Link[] | RaainNode[];
37
+ });
38
+ private static _getRadarLinks;
39
+ private static _getRadarMeasureLinks;
40
+ private static _getRainLink;
41
+ toJSON(): any;
42
+ addRadarLinks(linksToAdd: Link[] | RaainNode[]): void;
43
+ replaceRainLink(linksToAdd: Link | RaainNode | any): void;
44
+ addRadarMeasureLinks(linksToAdd: Link[] | any[]): void;
45
+ getBuiltMergeTools(rainMeasures: RainMeasure[], options: {
46
+ cartesianTools: CartesianTools;
47
+ mergeLimitPoints: LatLng[];
48
+ }): {
49
+ cartesianTools: CartesianTools;
50
+ latsLngs: MergeLatLng[][];
51
+ limitPoints: LatLng[];
52
+ };
53
+ getMergeLatLngIndex(cartesianValue: CartesianValue): {
54
+ index: number[];
55
+ latLng: LatLng;
56
+ };
57
+ protected buildLatLngMatrix(options: {
58
+ cartesianTools: CartesianTools;
59
+ mergeLimitPoints: LatLng[];
60
+ }): {
61
+ cartesianTools: CartesianTools;
62
+ latsLngs: MergeLatLng[][];
63
+ limitPoints: LatLng[];
64
+ };
65
+ protected buildMergeTools(rainMeasures: RainMeasure[]): void;
66
+ protected getLinkType(): string;
67
+ protected mergeRainMeasures(rainMeasures: RainMeasure[], options: {
68
+ mergeStrategy: MergeStrategy;
69
+ mergeLimitPoints: [LatLng, LatLng];
70
+ removeNullValues?: boolean;
71
+ }): RainMeasure[];
72
+ protected buildMergeCartesianValues(mergeStrategy: MergeStrategy, removeNullValues?: boolean): CartesianValue[];
73
+ }
@@ -1,50 +1,18 @@
1
- import {Link, RaainNode} from '../organization';
2
- import {RadarMeasure, RadarNode} from '../radar';
3
- import {RainNode} from './RainNode';
4
- import {CartesianMeasureValue, CartesianTools, CartesianValue, LatLng, RainCartesianMeasureValue} from '../cartesian';
5
- import {RainMeasure} from './RainMeasure';
6
- import {MergeLatLng, MergeStrategy} from './MergeStrategy';
7
-
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RainComputationAbstract = void 0;
4
+ const organization_1 = require("../organization");
5
+ const radar_1 = require("../radar");
6
+ const RainNode_1 = require("./RainNode");
7
+ const cartesian_1 = require("../cartesian");
8
+ const RainMeasure_1 = require("./RainMeasure");
9
+ const MergeStrategy_1 = require("./MergeStrategy");
8
10
  /**
9
11
  * not used directly
10
12
  */
11
- export class RainComputationAbstract extends RaainNode {
12
-
13
- public quality: number;
14
- public progressIngest: number;
15
- public progressComputing: number;
16
- public timeSpentInMs: number;
17
- public date: Date;
18
- public isReady: boolean;
19
- public isDoneDate: Date;
20
- public launchedBy: string;
21
- public name: string;
22
-
23
- protected mergeTools: {
24
- cartesianTools: CartesianTools;
25
- latsLngs: MergeLatLng[][];
26
- limitPoints: LatLng[];
27
- };
28
-
29
- constructor(json: {
30
- id: string,
31
- date: Date,
32
- isReady: boolean,
33
-
34
- links?: Link[] | RaainNode[],
35
- version?: string,
36
- quality?: number,
37
- progressIngest?: number,
38
- progressComputing?: number,
39
- timeSpentInMs?: number,
40
- isDoneDate?: Date,
41
- launchedBy?: string,
42
- rain?: Link | RaainNode,
43
- radars?: Link[] | RaainNode[],
44
-
45
- }) {
13
+ class RainComputationAbstract extends organization_1.RaainNode {
14
+ constructor(json) {
46
15
  super(json);
47
-
48
16
  this.date = json.date ? new Date(json.date) : null;
49
17
  this.quality = json.quality >= 0 ? json.quality : -1;
50
18
  this.progressIngest = json.progressIngest >= 0 ? json.progressIngest : -1;
@@ -53,61 +21,58 @@ export class RainComputationAbstract extends RaainNode {
53
21
  this.isReady = !!json.isReady;
54
22
  this.isDoneDate = json.isDoneDate ? new Date(json.isDoneDate) : undefined;
55
23
  this.launchedBy = json.launchedBy;
56
-
57
24
  this.replaceRainLink(json.links);
58
25
  this.replaceRainLink(json.rain);
59
26
  this.addRadarLinks(json.links);
60
27
  this.addRadarLinks(json.radars);
61
28
  }
62
-
63
- private static _getRadarLinks(linksToPurify: any[]): any[] {
29
+ static _getRadarLinks(linksToPurify) {
64
30
  if (!linksToPurify || linksToPurify.length === 0) {
65
31
  return [];
66
32
  }
67
-
68
33
  return linksToPurify.map(l => {
69
- if (l instanceof Link) {
34
+ if (l instanceof organization_1.Link) {
70
35
  return l;
71
- } else if (l && l['_id']) {
72
- return new RadarNode({id: l['_id'].toString(), latitude: 0, longitude: 0, name: l.name, team: l.team});
73
- } else if (l && l.id) {
74
- return new RadarNode({
75
- id: l.id.toString(),// 'hex'
36
+ }
37
+ else if (l && l['_id']) {
38
+ return new radar_1.RadarNode({ id: l['_id'].toString(), latitude: 0, longitude: 0, name: l.name, team: l.team });
39
+ }
40
+ else if (l && l.id) {
41
+ return new radar_1.RadarNode({
42
+ id: l.id.toString(), // 'hex'
76
43
  latitude: 0, longitude: 0, name: l.name, team: l.team
77
44
  });
78
45
  }
79
46
  });
80
47
  }
81
-
82
- private static _getRadarMeasureLinks(linksToPurify: any[]): any[] {
48
+ static _getRadarMeasureLinks(linksToPurify) {
83
49
  if (!linksToPurify || linksToPurify.length === 0) {
84
50
  return [];
85
51
  }
86
-
87
52
  return linksToPurify.map(l => {
88
- if (l instanceof Link) {
53
+ if (l instanceof organization_1.Link) {
89
54
  return l;
90
- } else if (l && l['_id']) {
91
- return new RadarMeasure({id: l['_id'].toString(), values: []});
92
- } else if (l && l.id) {
93
- return new RadarMeasure({id: l.id.toString(), values: []}); // 'hex'
55
+ }
56
+ else if (l && l['_id']) {
57
+ return new radar_1.RadarMeasure({ id: l['_id'].toString(), values: [] });
58
+ }
59
+ else if (l && l.id) {
60
+ return new radar_1.RadarMeasure({ id: l.id.toString(), values: [] }); // 'hex'
94
61
  }
95
62
  });
96
63
  }
97
-
98
- private static _getRainLink(linkToPurify: RaainNode): RainNode {
64
+ static _getRainLink(linkToPurify) {
99
65
  if (!linkToPurify || !linkToPurify.id) {
100
66
  return null;
101
67
  }
102
-
103
- return new RainNode({
68
+ return new RainNode_1.RainNode({
104
69
  id: linkToPurify.id.toString(),
105
70
  name: linkToPurify.id.toString(),
106
71
  team: null
107
72
  });
108
73
  }
109
-
110
- public toJSON(): any {
74
+ toJSON() {
75
+ var _a;
111
76
  const json = super.toJSON();
112
77
  json['date'] = this.date.toISOString();
113
78
  json['quality'] = this.quality;
@@ -115,91 +80,72 @@ export class RainComputationAbstract extends RaainNode {
115
80
  json['progressComputing'] = this.progressComputing;
116
81
  json['timeSpentInMs'] = this.timeSpentInMs;
117
82
  json['isReady'] = this.isReady;
118
- json['isDoneDate'] = this.isDoneDate?.toISOString();
83
+ json['isDoneDate'] = (_a = this.isDoneDate) === null || _a === void 0 ? void 0 : _a.toISOString();
119
84
  json['launchedBy'] = this.launchedBy;
120
85
  json['name'] = this.name;
121
86
  return json;
122
87
  }
123
-
124
- public addRadarLinks(linksToAdd: Link[] | RaainNode[]): void {
88
+ addRadarLinks(linksToAdd) {
125
89
  this.addLinks(RainComputationAbstract._getRadarLinks(linksToAdd));
126
90
  }
127
-
128
- public replaceRainLink(linksToAdd: Link | RaainNode | any): void {
91
+ replaceRainLink(linksToAdd) {
129
92
  this.addLinks([RainComputationAbstract._getRainLink(linksToAdd)]);
130
93
  }
131
-
132
- public addRadarMeasureLinks(linksToAdd: Link[] | any[]): void {
94
+ addRadarMeasureLinks(linksToAdd) {
133
95
  this.addLinks(RainComputationAbstract._getRadarMeasureLinks(linksToAdd));
134
96
  }
135
-
136
- public getBuiltMergeTools(rainMeasures: RainMeasure[], options: {
137
- cartesianTools: CartesianTools,
138
- mergeLimitPoints: LatLng[]
139
- }) {
97
+ getBuiltMergeTools(rainMeasures, options) {
140
98
  this.buildLatLngMatrix(options);
141
99
  this.buildMergeTools(rainMeasures);
142
100
  return this.mergeTools;
143
101
  }
144
-
145
- public getMergeLatLngIndex(cartesianValue: CartesianValue) {
146
-
102
+ getMergeLatLngIndex(cartesianValue) {
147
103
  const latLng = this.mergeTools.cartesianTools.getLatLngFromEarthMap(cartesianValue);
148
104
  const latLngScale = this.mergeTools.cartesianTools.getScaleLatLngFromEarth(latLng);
149
-
150
105
  const latIndex = Math.round((latLng.lat - this.mergeTools.limitPoints[0].lat) / latLngScale.lat);
151
106
  const lngIndex = Math.round((latLng.lng - this.mergeTools.limitPoints[0].lng) / latLngScale.lng);
152
-
153
- return {index: [latIndex, lngIndex], latLng};
107
+ return { index: [latIndex, lngIndex], latLng };
154
108
  }
155
-
156
- protected buildLatLngMatrix(options: {
157
- cartesianTools: CartesianTools,
158
- mergeLimitPoints: LatLng[]
159
- }) {
160
- const latsLngs: MergeLatLng[][] = [];
161
- this.mergeTools = {latsLngs, cartesianTools: options.cartesianTools, limitPoints: []};
109
+ buildLatLngMatrix(options) {
110
+ const latsLngs = [];
111
+ this.mergeTools = { latsLngs, cartesianTools: options.cartesianTools, limitPoints: [] };
162
112
  if (!options.mergeLimitPoints) {
163
113
  return this.mergeTools;
164
114
  }
165
-
166
115
  const downPoint = options.cartesianTools.getLatLngFromEarthMap(options.mergeLimitPoints[0]);
167
116
  const topPoint = options.cartesianTools.getLatLngFromEarthMap(options.mergeLimitPoints[1]);
168
117
  const scaleLat = options.cartesianTools.getScaleLatLng(downPoint);
169
-
170
118
  for (let lat = downPoint.lat; lat <= topPoint.lat; lat += scaleLat.lat) {
171
- lat = CartesianTools.LimitWithPrecision(lat);
172
- const latLng = new LatLng({lat, lng: downPoint.lng});
119
+ lat = cartesian_1.CartesianTools.LimitWithPrecision(lat);
120
+ const latLng = new cartesian_1.LatLng({ lat, lng: downPoint.lng });
173
121
  const scaleLng = options.cartesianTools.getScaleLatLng(latLng);
174
122
  const lngCount = Math.round((topPoint.lng - downPoint.lng) / scaleLng.lng) + 1;
175
123
  const lngs = [];
176
124
  for (let i = 0; i < lngCount; i++) {
177
- const initValue: MergeLatLng = {sum: 0, max: 0, count: 0, latLng: undefined};
125
+ const initValue = { sum: 0, max: 0, count: 0, latLng: undefined };
178
126
  lngs.push(initValue);
179
127
  }
180
128
  latsLngs.push(lngs);
181
129
  }
182
-
183
- this.mergeTools = {latsLngs, cartesianTools: options.cartesianTools, limitPoints: [downPoint, topPoint]};
130
+ this.mergeTools = { latsLngs, cartesianTools: options.cartesianTools, limitPoints: [downPoint, topPoint] };
184
131
  return this.mergeTools;
185
132
  }
186
-
187
- protected buildMergeTools(rainMeasures: RainMeasure[]) {
133
+ buildMergeTools(rainMeasures) {
188
134
  for (const rainMeasure of rainMeasures) {
189
135
  for (const value of rainMeasure.values) {
190
136
  if (typeof value['cartesianValues'] !== 'undefined') {
191
- const cartesianMeasureValue = new CartesianMeasureValue(value as any);
137
+ const cartesianMeasureValue = new cartesian_1.CartesianMeasureValue(value);
192
138
  const cartesianValues = cartesianMeasureValue.getCartesianValues();
193
139
  for (const cartesianValue of cartesianValues) {
194
- const {index, latLng} = this.getMergeLatLngIndex(cartesianValue);
140
+ const { index, latLng } = this.getMergeLatLngIndex(cartesianValue);
195
141
  if (index[0] >= 0 && index[1] >= 0 && index[0] < this.mergeTools.latsLngs.length &&
196
142
  index[1] < this.mergeTools.latsLngs[index[0]].length) {
197
- this.mergeTools.latsLngs[index[0]][index[1]].latLng = CartesianTools.CreateLatLng(latLng);
143
+ this.mergeTools.latsLngs[index[0]][index[1]].latLng = cartesian_1.CartesianTools.CreateLatLng(latLng);
198
144
  this.mergeTools.latsLngs[index[0]][index[1]].sum += cartesianValue.value;
199
- this.mergeTools.latsLngs[index[0]][index[1]].max = Math.max(
200
- cartesianValue.value, this.mergeTools.latsLngs[index[0]][index[1]].max);
145
+ this.mergeTools.latsLngs[index[0]][index[1]].max = Math.max(cartesianValue.value, this.mergeTools.latsLngs[index[0]][index[1]].max);
201
146
  this.mergeTools.latsLngs[index[0]][index[1]].count++;
202
- } else {
147
+ }
148
+ else {
203
149
  // throw new Error(`Wrong mergeRainMeasure ${latLngIndex[0]} ${latLngIndex[1]}`);
204
150
  }
205
151
  }
@@ -207,56 +153,44 @@ export class RainComputationAbstract extends RaainNode {
207
153
  }
208
154
  }
209
155
  }
210
-
211
- protected getLinkType(): string {
156
+ getLinkType() {
212
157
  throw Error('abstract');
213
158
  }
214
-
215
- protected mergeRainMeasures(rainMeasures: RainMeasure[],
216
- options: {
217
- mergeStrategy: MergeStrategy,
218
- mergeLimitPoints: [LatLng, LatLng],
219
- removeNullValues?: boolean,
220
- }): RainMeasure[] {
221
-
159
+ mergeRainMeasures(rainMeasures, options) {
222
160
  if (rainMeasures.length === 0) {
223
161
  return [];
224
162
  }
225
-
226
163
  this.buildMergeTools(rainMeasures);
227
-
228
164
  const firstCartesianRainMeasure = rainMeasures[0];
229
165
  const cartesianValuesMerged = this.buildMergeCartesianValues(options.mergeStrategy, options.removeNullValues);
230
-
231
- const rm = new RainMeasure(firstCartesianRainMeasure.toJSON());
232
- rm.values = [new RainCartesianMeasureValue({
233
- cartesianValues: cartesianValuesMerged,
234
- version: firstCartesianRainMeasure.getVersion(),
235
- limitPoints: options.mergeLimitPoints,
236
- })];
237
-
166
+ const rm = new RainMeasure_1.RainMeasure(firstCartesianRainMeasure.toJSON());
167
+ rm.values = [new cartesian_1.RainCartesianMeasureValue({
168
+ cartesianValues: cartesianValuesMerged,
169
+ version: firstCartesianRainMeasure.getVersion(),
170
+ limitPoints: options.mergeLimitPoints,
171
+ })];
238
172
  return [rm];
239
173
  }
240
-
241
- protected buildMergeCartesianValues(mergeStrategy: MergeStrategy, removeNullValues = false) {
242
- const cartesianValuesMerged: CartesianValue[] = [];
174
+ buildMergeCartesianValues(mergeStrategy, removeNullValues = false) {
175
+ const cartesianValuesMerged = [];
243
176
  for (const [latIndex, latValues] of this.mergeTools.latsLngs.entries()) {
244
177
  for (const [lngIndex, mergeValue] of latValues.entries()) {
245
178
  let value = mergeValue.sum;
246
- if (mergeStrategy === MergeStrategy.AVERAGE) {
179
+ if (mergeStrategy === MergeStrategy_1.MergeStrategy.AVERAGE) {
247
180
  value = mergeValue.count ? value / mergeValue.count : -1;
248
- } else if (mergeStrategy === MergeStrategy.MAX) {
181
+ }
182
+ else if (mergeStrategy === MergeStrategy_1.MergeStrategy.MAX) {
249
183
  value = mergeValue.max;
250
184
  }
251
-
252
185
  if (mergeValue.count && !(removeNullValues && !value)) {
253
186
  const lat = mergeValue.latLng.lat;
254
187
  const lng = mergeValue.latLng.lng;
255
- cartesianValuesMerged.push(new CartesianValue({value, lat, lng}));
188
+ cartesianValuesMerged.push(new cartesian_1.CartesianValue({ value, lat, lng }));
256
189
  }
257
190
  }
258
191
  }
259
192
  return cartesianValuesMerged;
260
193
  }
261
-
262
194
  }
195
+ exports.RainComputationAbstract = RainComputationAbstract;
196
+ //# sourceMappingURL=RainComputationAbstract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RainComputationAbstract.js","sourceRoot":"","sources":["../../src/rain/RainComputationAbstract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ import { RainComputationAbstract } from './RainComputationAbstract';
2
+ import { Link, RaainNode } from '../organization';
3
+ import { RainMeasure } from './RainMeasure';
4
+ import { CartesianTools, LatLng } from '../cartesian';
5
+ import { MergeStrategy } from './MergeStrategy';
6
+ /**
7
+ * Represents a map-based rain computation result.
8
+ * This class extends RainComputationAbstract to provide map-specific functionality for rain data processing.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const computation = new RainComputationMap({
13
+ * id: 'comp1',
14
+ * date: new Date(),
15
+ * isReady: true,
16
+ * map: [] // Your rain measurement data here
17
+ * });
18
+ * ```
19
+ *
20
+ * @remarks
21
+ * This class is used in the following API endpoints:
22
+ * - api/rains/:id/computations/:computationId?format=map
23
+ * - api/rains/:id/computations?format=map&begin=...
24
+ */
25
+ export declare class RainComputationMap extends RainComputationAbstract {
26
+ /**
27
+ * The map data stored as a stringified JSON array of RainMeasure objects.
28
+ * This format allows for efficient storage and transmission of large datasets.
29
+ */
30
+ protected map: string;
31
+ /**
32
+ * Creates a new RainComputationMap instance.
33
+ *
34
+ * @param json - The configuration object containing all necessary parameters
35
+ * @param json.id - Unique identifier for the computation
36
+ * @param json.date - Timestamp of the computation
37
+ * @param json.isReady - Whether the computation is ready
38
+ * @param json.map - Array of rain measurements or stringified JSON
39
+ * @param json.links - Optional array of related nodes or links
40
+ * @param json.version - Optional version string
41
+ * @param json.quality - Optional quality metric (0-1)
42
+ * @param json.progressIngest - Optional ingestion progress (0-100)
43
+ * @param json.progressComputing - Optional computing progress (0-100)
44
+ * @param json.timeSpentInMs - Optional computation time in milliseconds
45
+ * @param json.isDoneDate - Optional completion timestamp
46
+ * @param json.launchedBy - Optional user identifier
47
+ * @param json.rain - Optional related rain node
48
+ * @param json.radars - Optional array of related radar nodes
49
+ */
50
+ constructor(json: {
51
+ id: string;
52
+ date: Date;
53
+ isReady: boolean;
54
+ map: RainMeasure[] | string;
55
+ links?: Link[] | RaainNode[];
56
+ version?: string;
57
+ quality?: number;
58
+ progressIngest?: number;
59
+ progressComputing?: number;
60
+ timeSpentInMs?: number;
61
+ isDoneDate?: Date;
62
+ launchedBy?: string;
63
+ rain?: Link | RaainNode;
64
+ radars?: Link[] | RaainNode[];
65
+ });
66
+ /**
67
+ * Converts the computation to a JSON object.
68
+ *
69
+ * @returns A JSON object containing all relevant data
70
+ * @remarks
71
+ * This method overrides the parent class's toJSON method to handle the map property
72
+ * and remove the results property which is not used in this implementation.
73
+ */
74
+ toJSON(): any;
75
+ /**
76
+ * Sets the map data with optional merging capabilities.
77
+ *
78
+ * @param mapData - The rain measurement data to set
79
+ * @param options - Configuration options for data processing
80
+ * @param options.mergeStrategy - Strategy to use when merging data
81
+ * @param options.cartesianTools - Optional tools for coordinate transformations
82
+ * @param options.mergeLimitPoints - Optional boundary points for merging
83
+ * @param options.removeNullValues - Whether to remove null values during merge
84
+ *
85
+ * @remarks
86
+ * This method handles both string and array inputs, and can perform merging
87
+ * operations based on the provided options. The data is always stored internally
88
+ * as a stringified JSON array.
89
+ */
90
+ setMapData(mapData: RainMeasure[] | string, options: {
91
+ mergeStrategy: MergeStrategy;
92
+ cartesianTools?: CartesianTools;
93
+ mergeLimitPoints?: [LatLng, LatLng];
94
+ removeNullValues?: boolean;
95
+ }): void;
96
+ getMapData(): RainMeasure[];
97
+ }