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.
- package/README.md +2 -12
- package/RELEASE_PROCESS.md +11 -6
- package/cartesian/CartesianMeasureValue.d.ts +40 -0
- package/{src/cartesian/CartesianMeasureValue.ts → cartesian/CartesianMeasureValue.js} +41 -73
- package/cartesian/CartesianMeasureValue.js.map +1 -0
- package/cartesian/CartesianTools.d.ts +32 -0
- package/{src/cartesian/CartesianTools.ts → cartesian/CartesianTools.js} +69 -130
- package/cartesian/CartesianTools.js.map +1 -0
- package/cartesian/CartesianValue.d.ts +14 -0
- package/cartesian/CartesianValue.js +17 -0
- package/cartesian/CartesianValue.js.map +1 -0
- package/cartesian/EarthMap.d.ts +5 -0
- package/cartesian/EarthMap.js +3 -0
- package/cartesian/EarthMap.js.map +1 -0
- package/cartesian/ICartesianMeasureValue.d.ts +23 -0
- package/cartesian/ICartesianMeasureValue.js +3 -0
- package/cartesian/ICartesianMeasureValue.js.map +1 -0
- package/cartesian/LatLng.d.ts +16 -0
- package/cartesian/LatLng.js +34 -0
- package/cartesian/LatLng.js.map +1 -0
- package/cartesian/RadarCartesianMeasureValue.d.ts +17 -0
- package/cartesian/RadarCartesianMeasureValue.js +22 -0
- package/cartesian/RadarCartesianMeasureValue.js.map +1 -0
- package/cartesian/RainCartesianMeasureValue.d.ts +17 -0
- package/cartesian/RainCartesianMeasureValue.js +23 -0
- package/cartesian/RainCartesianMeasureValue.js.map +1 -0
- package/cartesian/index.js +25 -0
- package/cartesian/index.js.map +1 -0
- package/gauge/GaugeMeasure.d.ts +20 -0
- package/gauge/GaugeMeasure.js +30 -0
- package/gauge/GaugeMeasure.js.map +1 -0
- package/gauge/GaugeNode.d.ts +85 -0
- package/{src/gauge/GaugeNode.ts → gauge/GaugeNode.js} +20 -48
- package/gauge/GaugeNode.js.map +1 -0
- package/gauge/GaugeNodeMap.d.ts +24 -0
- package/gauge/GaugeNodeMap.js +40 -0
- package/gauge/GaugeNodeMap.js.map +1 -0
- package/gauge/index.js +20 -0
- package/gauge/index.js.map +1 -0
- package/index.js +24 -0
- package/index.js.map +1 -0
- package/organization/EventNode.d.ts +22 -0
- package/organization/EventNode.js +30 -0
- package/organization/EventNode.js.map +1 -0
- package/organization/IVersion.js +3 -0
- package/organization/IVersion.js.map +1 -0
- package/organization/Link.d.ts +16 -0
- package/{src/organization/Link.ts → organization/Link.js} +15 -15
- package/organization/Link.js.map +1 -0
- package/organization/Measure.d.ts +22 -0
- package/organization/Measure.js +45 -0
- package/organization/Measure.js.map +1 -0
- package/organization/PeopleNode.d.ts +18 -0
- package/{src/organization/PeopleNode.ts → organization/PeopleNode.js} +10 -20
- package/organization/PeopleNode.js.map +1 -0
- package/organization/RaainNode.d.ts +91 -0
- package/{src/organization/RaainNode.ts → organization/RaainNode.js} +38 -63
- package/organization/RaainNode.js.map +1 -0
- package/organization/TeamNode.d.ts +63 -0
- package/{src/organization/TeamNode.ts → organization/TeamNode.js} +13 -36
- package/organization/TeamNode.js.map +1 -0
- package/organization/index.js +24 -0
- package/organization/index.js.map +1 -0
- package/package.json +1 -1
- package/polar/AbstractPolarMeasureValue.d.ts +29 -0
- package/{src/polar/AbstractPolarMeasureValue.ts → polar/AbstractPolarMeasureValue.js} +32 -58
- package/polar/AbstractPolarMeasureValue.js.map +1 -0
- package/polar/IPolarMeasureValue.d.ts +19 -0
- package/polar/IPolarMeasureValue.js +3 -0
- package/polar/IPolarMeasureValue.js.map +1 -0
- package/polar/MeasureValuePolarContainer.d.ts +19 -0
- package/{src/polar/MeasureValuePolarContainer.ts → polar/MeasureValuePolarContainer.js} +13 -29
- package/polar/MeasureValuePolarContainer.js.map +1 -0
- package/polar/PolarFilter.d.ts +16 -0
- package/polar/PolarFilter.js +45 -0
- package/polar/PolarFilter.js.map +1 -0
- package/polar/PolarMeasureValue.d.ts +51 -0
- package/{src/polar/PolarMeasureValue.ts → polar/PolarMeasureValue.js} +62 -125
- package/polar/PolarMeasureValue.js.map +1 -0
- package/polar/PolarMeasureValueMap.d.ts +45 -0
- package/{src/polar/PolarMeasureValueMap.ts → polar/PolarMeasureValueMap.js} +88 -165
- package/polar/PolarMeasureValueMap.js.map +1 -0
- package/polar/PolarValue.d.ts +10 -0
- package/polar/PolarValue.js +12 -0
- package/polar/PolarValue.js.map +1 -0
- package/polar/RadarPolarMeasureValue.d.ts +27 -0
- package/{src/polar/RadarPolarMeasureValue.ts → polar/RadarPolarMeasureValue.js} +21 -34
- package/polar/RadarPolarMeasureValue.js.map +1 -0
- package/polar/RainPolarMeasureValue.d.ts +20 -0
- package/polar/RainPolarMeasureValue.js +42 -0
- package/polar/RainPolarMeasureValue.js.map +1 -0
- package/polar/index.js +25 -0
- package/polar/index.js.map +1 -0
- package/quality/QualityPoint.d.ts +37 -0
- package/{src/quality/QualityPoint.ts → quality/QualityPoint.js} +33 -56
- package/quality/QualityPoint.js.map +1 -0
- package/quality/SpeedMatrix.d.ts +83 -0
- package/{src/quality/SpeedMatrix.ts → quality/SpeedMatrix.js} +76 -117
- package/quality/SpeedMatrix.js.map +1 -0
- package/quality/SpeedMatrixContainer.d.ts +102 -0
- package/{src/quality/SpeedMatrixContainer.ts → quality/SpeedMatrixContainer.js} +103 -210
- package/quality/SpeedMatrixContainer.js.map +1 -0
- package/quality/history/CartesianGaugeHistory.d.ts +15 -0
- package/quality/history/CartesianGaugeHistory.js +14 -0
- package/quality/history/CartesianGaugeHistory.js.map +1 -0
- package/quality/history/CartesianRainHistory.d.ts +9 -0
- package/quality/history/CartesianRainHistory.js +11 -0
- package/quality/history/CartesianRainHistory.js.map +1 -0
- package/quality/history/PositionHistory.d.ts +20 -0
- package/quality/history/PositionHistory.js +17 -0
- package/quality/history/PositionHistory.js.map +1 -0
- package/{src/quality/index.ts → quality/index.d.ts} +0 -3
- package/quality/index.js +26 -0
- package/quality/index.js.map +1 -0
- package/quality/position/Position.d.ts +22 -0
- package/quality/position/Position.js +50 -0
- package/quality/position/Position.js.map +1 -0
- package/quality/position/PositionValue.d.ts +9 -0
- package/quality/position/PositionValue.js +12 -0
- package/quality/position/PositionValue.js.map +1 -0
- package/quality/tools/QualityTools.d.ts +9 -0
- package/{src/quality/tools/QualityTools.ts → quality/tools/QualityTools.js} +17 -18
- package/quality/tools/QualityTools.js.map +1 -0
- package/radar/RadarMeasure.d.ts +19 -0
- package/radar/RadarMeasure.js +30 -0
- package/radar/RadarMeasure.js.map +1 -0
- package/radar/RadarNode.d.ts +30 -0
- package/{src/radar/RadarNode.ts → radar/RadarNode.js} +19 -41
- package/radar/RadarNode.js.map +1 -0
- package/radar/RadarNodeMap.d.ts +26 -0
- package/radar/RadarNodeMap.js +44 -0
- package/radar/RadarNodeMap.js.map +1 -0
- package/radar/index.js +20 -0
- package/radar/index.js.map +1 -0
- package/rain/MergeStrategy.d.ts +13 -0
- package/rain/MergeStrategy.js +11 -0
- package/rain/MergeStrategy.js.map +1 -0
- package/rain/RainComputation.d.ts +42 -0
- package/rain/RainComputation.js +65 -0
- package/rain/RainComputation.js.map +1 -0
- package/rain/RainComputationAbstract.d.ts +73 -0
- package/{src/rain/RainComputationAbstract.ts → rain/RainComputationAbstract.js} +69 -135
- package/rain/RainComputationAbstract.js.map +1 -0
- package/rain/RainComputationMap.d.ts +97 -0
- package/{src/rain/RainComputationMap.ts → rain/RainComputationMap.js} +22 -55
- package/rain/RainComputationMap.js.map +1 -0
- package/rain/RainComputationQuality.d.ts +40 -0
- package/{src/rain/RainComputationQuality.ts → rain/RainComputationQuality.js} +42 -80
- package/rain/RainComputationQuality.js.map +1 -0
- package/rain/RainMeasure.d.ts +17 -0
- package/rain/RainMeasure.js +18 -0
- package/rain/RainMeasure.js.map +1 -0
- package/rain/RainNode.d.ts +46 -0
- package/{src/rain/RainNode.ts → rain/RainNode.js} +72 -117
- package/rain/RainNode.js.map +1 -0
- package/rain/index.js +23 -0
- package/rain/index.js.map +1 -0
- package/.cursorignore +0 -10
- package/.github/workflows/ci.yml +0 -29
- package/LICENSE +0 -21
- package/RELEASE.md +0 -19
- package/specs/REQUIREMENTS.md +0 -42
- package/specs/TECHNICAL.md +0 -57
- package/specs/cartesian/Cartesian.spec.ts +0 -82
- package/specs/cartesian/CartesianTools.spec.ts +0 -121
- package/specs/gauge/Gauge.spec.ts +0 -39
- package/specs/organization/Organization.spec.ts +0 -38
- package/specs/polar/Polar.spec.ts +0 -267
- package/specs/quality/Position.spec.ts +0 -18
- package/specs/quality/QualityPointEdgeCases.spec.ts +0 -215
- package/specs/quality/QualityTools.spec.ts +0 -67
- package/specs/quality/SpeedMatrix.spec.ts +0 -214
- package/specs/radar/Radar.spec.ts +0 -129
- package/specs/rain/Rain.spec.ts +0 -334
- package/specs/tsconfig.json +0 -12
- package/src/cartesian/CartesianValue.ts +0 -26
- package/src/cartesian/EarthMap.ts +0 -5
- package/src/cartesian/ICartesianMeasureValue.ts +0 -22
- package/src/cartesian/LatLng.ts +0 -43
- package/src/cartesian/RadarCartesianMeasureValue.ts +0 -32
- package/src/cartesian/RainCartesianMeasureValue.ts +0 -32
- package/src/gauge/GaugeMeasure.ts +0 -42
- package/src/gauge/GaugeNodeMap.ts +0 -55
- package/src/organization/EventNode.ts +0 -43
- package/src/organization/Measure.ts +0 -61
- package/src/polar/IPolarMeasureValue.ts +0 -21
- package/src/polar/PolarFilter.ts +0 -46
- package/src/polar/PolarValue.ts +0 -16
- package/src/polar/RainPolarMeasureValue.ts +0 -57
- package/src/quality/history/CartesianGaugeHistory.ts +0 -23
- package/src/quality/history/CartesianRainHistory.ts +0 -15
- package/src/quality/history/PositionHistory.ts +0 -31
- package/src/quality/position/Position.ts +0 -59
- package/src/quality/position/PositionValue.ts +0 -15
- package/src/radar/RadarMeasure.ts +0 -41
- package/src/radar/RadarNodeMap.ts +0 -61
- package/src/rain/MergeStrategy.ts +0 -15
- package/src/rain/RainComputation.ts +0 -96
- package/src/rain/RainMeasure.ts +0 -25
- package/tsconfig.json +0 -17
- package/tslint.json +0 -79
- package/typedoc.json +0 -31
- /package/{src/cartesian/index.ts → cartesian/index.d.ts} +0 -0
- /package/{src/gauge/index.ts → gauge/index.d.ts} +0 -0
- /package/{src/index.ts → index.d.ts} +0 -0
- /package/{src/organization/IVersion.ts → organization/IVersion.d.ts} +0 -0
- /package/{src/organization/index.ts → organization/index.d.ts} +0 -0
- /package/{src/polar/index.ts → polar/index.d.ts} +0 -0
- /package/{src/radar/index.ts → radar/index.d.ts} +0 -0
- /package/{src/rain/index.ts → rain/index.d.ts} +0 -0
|
@@ -1,180 +1,141 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RainNode = void 0;
|
|
4
|
+
const organization_1 = require("../organization");
|
|
5
|
+
const radar_1 = require("../radar");
|
|
6
|
+
const RainComputation_1 = require("./RainComputation");
|
|
7
|
+
const gauge_1 = require("../gauge");
|
|
8
|
+
const cartesian_1 = require("../cartesian");
|
|
7
9
|
/**
|
|
8
10
|
* api/rains/:id
|
|
9
11
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
public static TYPE = 'rain';
|
|
13
|
-
|
|
14
|
-
public name: string;
|
|
15
|
-
public description: string;
|
|
16
|
-
public team: TeamNode;
|
|
17
|
-
public status: number;
|
|
18
|
-
public quality: number;
|
|
19
|
-
public latLngRectsAsJSON: string;
|
|
20
|
-
|
|
21
|
-
// internal
|
|
22
|
-
private configurationAsJSON: string;
|
|
23
|
-
|
|
24
|
-
constructor(json: {
|
|
25
|
-
id: string,
|
|
26
|
-
name: string,
|
|
27
|
-
team: TeamNode,
|
|
28
|
-
description?: string,
|
|
29
|
-
links?: Link[] | RaainNode[],
|
|
30
|
-
version?: string,
|
|
31
|
-
status?: number,
|
|
32
|
-
quality?: number,
|
|
33
|
-
radars?: RadarNode[],
|
|
34
|
-
gauges?: GaugeNode[],
|
|
35
|
-
latLngRectsAsJSON?: string,
|
|
36
|
-
configurationAsJSON?: any,
|
|
37
|
-
lastCompletedComputations?: RainComputation[],
|
|
38
|
-
}) {
|
|
12
|
+
class RainNode extends organization_1.RaainNode {
|
|
13
|
+
constructor(json) {
|
|
39
14
|
super(json);
|
|
40
|
-
|
|
41
|
-
const links = json?.links ? json.links as any[] : [];
|
|
42
|
-
|
|
15
|
+
const links = (json === null || json === void 0 ? void 0 : json.links) ? json.links : [];
|
|
43
16
|
this.name = json.name;
|
|
44
17
|
this.description = json.description;
|
|
45
18
|
this.team = json.team;
|
|
46
19
|
this.status = json.status >= 0 ? json.status : -1;
|
|
47
20
|
this.quality = json.quality >= 0 ? json.quality : -1;
|
|
48
21
|
this.latLngRectsAsJSON = json.latLngRectsAsJSON;
|
|
49
|
-
|
|
50
|
-
this.addRadars(links.filter(l => l instanceof RadarNode));
|
|
22
|
+
this.addRadars(links.filter(l => l instanceof radar_1.RadarNode));
|
|
51
23
|
this.addRadars(json.radars);
|
|
52
|
-
this.addGauges(links.filter(l => l instanceof GaugeNode));
|
|
24
|
+
this.addGauges(links.filter(l => l instanceof gauge_1.GaugeNode));
|
|
53
25
|
this.addGauges(json.gauges);
|
|
54
26
|
this.setConfiguration(json.configurationAsJSON);
|
|
55
|
-
this.addCompletedComputations(links.filter(l => l instanceof RainComputation));
|
|
27
|
+
this.addCompletedComputations(links.filter(l => l instanceof RainComputation_1.RainComputation));
|
|
56
28
|
this.addCompletedComputations(json.lastCompletedComputations);
|
|
57
29
|
}
|
|
58
|
-
|
|
59
|
-
private static _getRadarLinks(linksToPurify: any[]): any[] {
|
|
30
|
+
static _getRadarLinks(linksToPurify) {
|
|
60
31
|
if (!linksToPurify || linksToPurify.length === 0) {
|
|
61
32
|
return [];
|
|
62
33
|
}
|
|
63
|
-
|
|
64
34
|
const linksPurified = linksToPurify.map(l => {
|
|
65
|
-
if (l instanceof Link) {
|
|
35
|
+
if (l instanceof organization_1.Link) {
|
|
66
36
|
return l;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
37
|
+
}
|
|
38
|
+
else if (l && l['_id']) {
|
|
39
|
+
return new radar_1.RadarNode({ id: l['_id'].toString(), latitude: l.latitude, longitude: l.latitude, name: l.name, team: l.team });
|
|
40
|
+
}
|
|
41
|
+
else if (l && l.id) {
|
|
42
|
+
return new radar_1.RadarNode({ id: l.id.toString(), latitude: l.latitude, longitude: l.longitude, name: l.name, team: l.team });
|
|
71
43
|
}
|
|
72
44
|
});
|
|
73
|
-
|
|
74
45
|
return linksPurified.filter(l => !!l);
|
|
75
46
|
}
|
|
76
|
-
|
|
77
|
-
private static _getRainComputationLinks(linksToPurify: any[]): any[] {
|
|
47
|
+
static _getRainComputationLinks(linksToPurify) {
|
|
78
48
|
if (!linksToPurify || linksToPurify.length === 0) {
|
|
79
49
|
return [];
|
|
80
50
|
}
|
|
81
|
-
|
|
82
51
|
const linksPurified = linksToPurify.map(l => {
|
|
83
|
-
if (l instanceof Link) {
|
|
52
|
+
if (l instanceof organization_1.Link) {
|
|
84
53
|
return l;
|
|
85
|
-
}
|
|
86
|
-
|
|
54
|
+
}
|
|
55
|
+
else if (l && l['_id']) {
|
|
56
|
+
return new RainComputation_1.RainComputation({
|
|
87
57
|
id: l['_id'].toString(),
|
|
88
58
|
date: l.date, version: l.version,
|
|
89
59
|
isReady: null, results: null,
|
|
90
60
|
});
|
|
91
|
-
}
|
|
92
|
-
|
|
61
|
+
}
|
|
62
|
+
else if (l && l.id) {
|
|
63
|
+
return new RainComputation_1.RainComputation({
|
|
93
64
|
id: l.id.toString(),
|
|
94
65
|
date: l.date, version: l.version,
|
|
95
66
|
isReady: null, results: null
|
|
96
67
|
});
|
|
97
68
|
}
|
|
98
69
|
});
|
|
99
|
-
|
|
100
70
|
return linksPurified.filter(l => !!l);
|
|
101
71
|
}
|
|
102
|
-
|
|
103
|
-
private static _getGaugeLinks(linksToPurify: any[]): any[] {
|
|
72
|
+
static _getGaugeLinks(linksToPurify) {
|
|
104
73
|
if (!linksToPurify || linksToPurify.length === 0) {
|
|
105
74
|
return [];
|
|
106
75
|
}
|
|
107
|
-
|
|
108
76
|
const linksPurified = linksToPurify.map(l => {
|
|
109
|
-
if (l instanceof Link) {
|
|
77
|
+
if (l instanceof organization_1.Link) {
|
|
110
78
|
return l;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
79
|
+
}
|
|
80
|
+
else if (l && l['_id']) {
|
|
81
|
+
return new gauge_1.GaugeNode({ id: l['_id'].toString(), latitude: l.latitude, longitude: l.longitude, name: l.name, team: l.team });
|
|
82
|
+
}
|
|
83
|
+
else if (l && l.id) {
|
|
84
|
+
return new gauge_1.GaugeNode({ id: l.id.toString(), latitude: l.latitude, longitude: l.longitude, name: l.name, team: l.team });
|
|
115
85
|
}
|
|
116
86
|
});
|
|
117
|
-
|
|
118
87
|
return linksPurified.filter(l => !!l);
|
|
119
88
|
}
|
|
120
|
-
|
|
121
|
-
public setConfiguration(configuration: string | any) {
|
|
89
|
+
setConfiguration(configuration) {
|
|
122
90
|
let conf = configuration;
|
|
123
91
|
try {
|
|
124
92
|
conf = JSON.parse(configuration);
|
|
125
|
-
} catch (ignored) {
|
|
126
93
|
}
|
|
127
|
-
|
|
94
|
+
catch (ignored) {
|
|
95
|
+
}
|
|
128
96
|
if (conf) {
|
|
129
97
|
this.configurationAsJSON = JSON.stringify(conf);
|
|
130
98
|
}
|
|
131
99
|
}
|
|
132
|
-
|
|
133
|
-
public getConfiguration(): any {
|
|
100
|
+
getConfiguration() {
|
|
134
101
|
try {
|
|
135
102
|
return JSON.parse(this.configurationAsJSON);
|
|
136
|
-
}
|
|
103
|
+
}
|
|
104
|
+
catch (e) {
|
|
137
105
|
}
|
|
138
106
|
return null;
|
|
139
107
|
}
|
|
140
|
-
|
|
141
|
-
|
|
108
|
+
toJSON() {
|
|
109
|
+
var _a;
|
|
142
110
|
const json = super.toJSON();
|
|
143
111
|
json['name'] = this.name;
|
|
144
112
|
json['description'] = this.description;
|
|
145
113
|
json['status'] = this.status;
|
|
146
114
|
json['quality'] = this.quality;
|
|
147
|
-
json['team'] = this.team
|
|
115
|
+
json['team'] = ((_a = this.team) === null || _a === void 0 ? void 0 : _a.id) || this.team;
|
|
148
116
|
json['latLngRectsAsJSON'] = this.latLngRectsAsJSON;
|
|
149
117
|
json['configurationAsJSON'] = this.configurationAsJSON;
|
|
150
|
-
json['radars'] = this.links.filter(l => l.getLinkType() === RadarNode.TYPE).map(l => l.getId());
|
|
151
|
-
json['gauges'] = this.links.filter(l => l.getLinkType() === GaugeNode.TYPE).map(l => l.getId());
|
|
152
|
-
json['lastCompletedComputations'] = this.links.filter(l => l.getLinkType() === RainComputation.TYPE).map(l => l.getId());
|
|
118
|
+
json['radars'] = this.links.filter(l => l.getLinkType() === radar_1.RadarNode.TYPE).map(l => l.getId());
|
|
119
|
+
json['gauges'] = this.links.filter(l => l.getLinkType() === gauge_1.GaugeNode.TYPE).map(l => l.getId());
|
|
120
|
+
json['lastCompletedComputations'] = this.links.filter(l => l.getLinkType() === RainComputation_1.RainComputation.TYPE).map(l => l.getId());
|
|
153
121
|
return json;
|
|
154
122
|
}
|
|
155
|
-
|
|
156
|
-
public addRadars(linksToAdd: Link[] | RadarNode[]): void {
|
|
123
|
+
addRadars(linksToAdd) {
|
|
157
124
|
this.addLinks(RainNode._getRadarLinks(linksToAdd));
|
|
158
125
|
this.setDefaultLatLng(linksToAdd);
|
|
159
126
|
}
|
|
160
|
-
|
|
161
|
-
public addCompletedComputations(linksToAdd: Link[] | RainComputation[]): void {
|
|
127
|
+
addCompletedComputations(linksToAdd) {
|
|
162
128
|
this.addLinks(RainNode._getRainComputationLinks(linksToAdd));
|
|
163
129
|
}
|
|
164
|
-
|
|
165
|
-
public addGauges(linksToAdd: Link[] | GaugeNode[]): void {
|
|
130
|
+
addGauges(linksToAdd) {
|
|
166
131
|
this.addLinks(RainNode._getGaugeLinks(linksToAdd));
|
|
167
132
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
let center = new LatLng({lat: 0, lng: 0});
|
|
172
|
-
|
|
173
|
-
this.setDefaultLatLng(this['radars'])
|
|
174
|
-
|
|
133
|
+
getCenter() {
|
|
134
|
+
let center = new cartesian_1.LatLng({ lat: 0, lng: 0 });
|
|
135
|
+
this.setDefaultLatLng(this['radars']);
|
|
175
136
|
if (this.latLngRectsAsJSON && this.latLngRectsAsJSON !== '[]') {
|
|
176
137
|
const rects = JSON.parse(this.latLngRectsAsJSON);
|
|
177
|
-
let latMax
|
|
138
|
+
let latMax, lngMax, latMin, lngMin;
|
|
178
139
|
for (const rect of rects) {
|
|
179
140
|
const topLeft = rect[0];
|
|
180
141
|
const bottomRight = rect[1];
|
|
@@ -183,21 +144,16 @@ export class RainNode extends RaainNode {
|
|
|
183
144
|
latMin = typeof latMin === 'undefined' ? bottomRight.lat : Math.min(bottomRight.lat, latMin);
|
|
184
145
|
lngMax = typeof lngMax === 'undefined' ? bottomRight.lng : Math.max(bottomRight.lng, lngMax);
|
|
185
146
|
}
|
|
186
|
-
|
|
187
|
-
center = new LatLng({lat: ((latMax - latMin) / 2) + latMin, lng: ((lngMax - lngMin) / 2) + lngMin})
|
|
147
|
+
center = new cartesian_1.LatLng({ lat: ((latMax - latMin) / 2) + latMin, lng: ((lngMax - lngMin) / 2) + lngMin });
|
|
188
148
|
}
|
|
189
|
-
|
|
190
149
|
return center;
|
|
191
150
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
let limitPoints: [LatLng, LatLng];
|
|
195
|
-
|
|
151
|
+
getLimitPoints() {
|
|
152
|
+
let limitPoints;
|
|
196
153
|
this.setDefaultLatLng(this['radars']);
|
|
197
|
-
|
|
198
154
|
if (this.latLngRectsAsJSON && this.latLngRectsAsJSON !== '[]') {
|
|
199
155
|
const rects = JSON.parse(this.latLngRectsAsJSON);
|
|
200
|
-
let latMax
|
|
156
|
+
let latMax, lngMax, latMin, lngMin;
|
|
201
157
|
for (const rect of rects) {
|
|
202
158
|
const rectA = rect[0];
|
|
203
159
|
const rectB = rect[1];
|
|
@@ -206,30 +162,29 @@ export class RainNode extends RaainNode {
|
|
|
206
162
|
latMin = Math.min(rectA.lat, rectB.lat, typeof latMin !== 'undefined' ? latMin : rectB.lat);
|
|
207
163
|
lngMax = Math.max(rectA.lng, rectB.lng, typeof lngMax !== 'undefined' ? lngMax : rectB.lng);
|
|
208
164
|
}
|
|
209
|
-
|
|
210
|
-
limitPoints = [new LatLng({lat: latMin, lng: lngMin}), new LatLng({lat: latMax, lng: lngMax})];
|
|
165
|
+
limitPoints = [new cartesian_1.LatLng({ lat: latMin, lng: lngMin }), new cartesian_1.LatLng({ lat: latMax, lng: lngMax })];
|
|
211
166
|
}
|
|
212
|
-
|
|
213
167
|
return limitPoints;
|
|
214
168
|
}
|
|
215
|
-
|
|
216
|
-
protected getLinkType(): string {
|
|
169
|
+
getLinkType() {
|
|
217
170
|
return RainNode.TYPE;
|
|
218
171
|
}
|
|
219
|
-
|
|
220
|
-
private setDefaultLatLng(radars: any[]) {
|
|
172
|
+
setDefaultLatLng(radars) {
|
|
221
173
|
// TODO put a default latLngRectsAsJSON based on cartesianTools earth ?
|
|
222
|
-
if (radars
|
|
174
|
+
if ((radars === null || radars === void 0 ? void 0 : radars.length) && (!this.latLngRectsAsJSON || this.latLngRectsAsJSON === '[]')) {
|
|
223
175
|
const latLngRects = [];
|
|
224
176
|
for (const radarNode of radars) {
|
|
225
|
-
if (radarNode instanceof RadarNode) {
|
|
177
|
+
if (radarNode instanceof radar_1.RadarNode) {
|
|
226
178
|
latLngRects.push([
|
|
227
|
-
new LatLng({lat: radarNode.latitude + 1, lng: radarNode.longitude - 1}),
|
|
228
|
-
new LatLng({lat: radarNode.latitude - 1, lng: radarNode.longitude + 1})
|
|
179
|
+
new cartesian_1.LatLng({ lat: radarNode.latitude + 1, lng: radarNode.longitude - 1 }),
|
|
180
|
+
new cartesian_1.LatLng({ lat: radarNode.latitude - 1, lng: radarNode.longitude + 1 })
|
|
181
|
+
]);
|
|
229
182
|
}
|
|
230
183
|
}
|
|
231
|
-
|
|
232
184
|
this.latLngRectsAsJSON = JSON.stringify(latLngRects);
|
|
233
185
|
}
|
|
234
186
|
}
|
|
235
187
|
}
|
|
188
|
+
exports.RainNode = RainNode;
|
|
189
|
+
RainNode.TYPE = 'rain';
|
|
190
|
+
//# sourceMappingURL=RainNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RainNode.js","sourceRoot":"","sources":["../../src/rain/RainNode.ts"],"names":[],"mappings":"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"}
|
package/rain/index.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./RainMeasure"), exports);
|
|
18
|
+
__exportStar(require("./RainNode"), exports);
|
|
19
|
+
__exportStar(require("./RainComputationQuality"), exports);
|
|
20
|
+
__exportStar(require("./RainComputation"), exports);
|
|
21
|
+
__exportStar(require("./RainComputationMap"), exports);
|
|
22
|
+
__exportStar(require("./MergeStrategy"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rain/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,6CAA2B;AAC3B,2DAAyC;AACzC,oDAAkC;AAClC,uDAAqC;AACrC,kDAAgC"}
|
package/.cursorignore
DELETED
package/.github/workflows/ci.yml
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
name: CI
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [ master ]
|
|
6
|
-
|
|
7
|
-
jobs:
|
|
8
|
-
build:
|
|
9
|
-
runs-on: ubuntu-latest
|
|
10
|
-
|
|
11
|
-
steps:
|
|
12
|
-
- uses: actions/checkout@v4
|
|
13
|
-
- uses: actions/setup-node@v4
|
|
14
|
-
with:
|
|
15
|
-
node-version: '18'
|
|
16
|
-
registry-url: 'https://registry.npmjs.org'
|
|
17
|
-
- run: npm install
|
|
18
|
-
- run: npm test
|
|
19
|
-
- run: npm run build
|
|
20
|
-
- run: npm run docs
|
|
21
|
-
- name: Deploy documentation to GitHub Pages
|
|
22
|
-
uses: peaceiris/actions-gh-pages@v3
|
|
23
|
-
with:
|
|
24
|
-
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
25
|
-
publish_dir: ./docs
|
|
26
|
-
- run: npm publish
|
|
27
|
-
working-directory: ./dist
|
|
28
|
-
env:
|
|
29
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2024 radartorain.com
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
package/RELEASE.md
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# Release notes
|
|
2
|
-
|
|
3
|
-
- 0.0.1 : first extracts from RAAIN services.
|
|
4
|
-
- 0.2.x : Add customers team, radar.
|
|
5
|
-
- 0.3.x : Reformat Links, add IVersion. Conversion, CI/CD.
|
|
6
|
-
- 0.4.x : Cartesian values, Folder reorg (renaming of Polar objects : XX-MeasureValue => XX-PolarMeasureValue).
|
|
7
|
-
- 1.9.x : Cartesian improvements.
|
|
8
|
-
- 1.10.x : Object constructor based on json only. Specs added.
|
|
9
|
-
- 1.11.x : Change SpeedMatrixContainer's QualityPoints relation (1.N). Add a SpeedMatrix name.
|
|
10
|
-
- 2.0.x : More flexible configuration (rain, radar, gauge),
|
|
11
|
-
Rain zone is composed by LatLng rects,
|
|
12
|
-
No more period usage (date preferred).
|
|
13
|
-
- 2.1.x : RainComputationQuality extended with rainComputation's link,
|
|
14
|
-
getQualityPointsByHistoricalPosition method.
|
|
15
|
-
- 2.2.x : BuildCompares refactored.
|
|
16
|
-
- 2.3.x : Angle/Axis refactored.
|
|
17
|
-
- 2.4.x : PeopleNode move role to roles.
|
|
18
|
-
- 2.5.x : Polar and Cartesian limits (count + offsets). PolarMap added to manipulate index.
|
|
19
|
-
- 2.6.x : Unify Cartesian map tools.
|
package/specs/REQUIREMENTS.md
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# Project Requirements
|
|
2
|
-
|
|
3
|
-
This document serves as the foundation for development and should be updated as requirements evolve or new providers are added to the system.
|
|
4
|
-
|
|
5
|
-
## Core Requirements
|
|
6
|
-
|
|
7
|
-
### Rain Data Processing
|
|
8
|
-
1. Must support multiple radar data sources
|
|
9
|
-
2. Must integrate with physical rain gauge stations
|
|
10
|
-
3. Must provide accurate geographic coverage information
|
|
11
|
-
4. Must maintain computation history
|
|
12
|
-
5. Must implement quality control measures
|
|
13
|
-
|
|
14
|
-
### Gauge Integration
|
|
15
|
-
1. Must support physical rain gauge station management
|
|
16
|
-
2. Must store precise geographic coordinates
|
|
17
|
-
3. Must allow custom configuration per station
|
|
18
|
-
4. Must integrate with team management system
|
|
19
|
-
|
|
20
|
-
### Quality Control
|
|
21
|
-
1. Must implement speed matrix comparisons
|
|
22
|
-
2. Must calculate and track quality metrics
|
|
23
|
-
3. Must support historical data analysis
|
|
24
|
-
4. Must provide tools for quality assessment
|
|
25
|
-
|
|
26
|
-
### Organization
|
|
27
|
-
1. Must support team-based access control
|
|
28
|
-
2. Must maintain relationships between different nodes
|
|
29
|
-
3. Must track version information
|
|
30
|
-
4. Must support flexible configuration options
|
|
31
|
-
|
|
32
|
-
### API Requirements
|
|
33
|
-
1. Must provide RESTful endpoints for all operations
|
|
34
|
-
2. Must implement proper error handling
|
|
35
|
-
3. Must support JSON data format
|
|
36
|
-
4. Must maintain backward compatibility
|
|
37
|
-
|
|
38
|
-
### Technical Requirements
|
|
39
|
-
1. Must use TypeScript for type safety
|
|
40
|
-
2. Must maintain comprehensive documentation
|
|
41
|
-
3. Must include automated tests
|
|
42
|
-
4. Must follow MIT license requirements
|
package/specs/TECHNICAL.md
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# Technical Documentation
|
|
2
|
-
|
|
3
|
-
This document serves as the technical reminder for development and should be updated as implementation evolves.
|
|
4
|
-
|
|
5
|
-
## Core Components
|
|
6
|
-
|
|
7
|
-
### RainNode
|
|
8
|
-
- Extends `RaainNode`
|
|
9
|
-
- Manages rain data computation and configuration
|
|
10
|
-
- Properties:
|
|
11
|
-
- `name`: Station name
|
|
12
|
-
- `description`: Optional description
|
|
13
|
-
- `team`: Associated TeamNode
|
|
14
|
-
- `status`: Current status number
|
|
15
|
-
- `quality`: Quality metric
|
|
16
|
-
- `latLngRectsAsJSON`: Geographic coverage as JSON
|
|
17
|
-
- `configurationAsJSON`: Private configuration data
|
|
18
|
-
- Key Features:
|
|
19
|
-
- Radar link management
|
|
20
|
-
- Gauge integration
|
|
21
|
-
- Geographic calculations (center, limits)
|
|
22
|
-
- Computation history tracking
|
|
23
|
-
|
|
24
|
-
### GaugeNode
|
|
25
|
-
- Extends `RaainNode`
|
|
26
|
-
- Represents physical rain gauge stations
|
|
27
|
-
- Properties:
|
|
28
|
-
- `name`: Station name
|
|
29
|
-
- `description`: Station description
|
|
30
|
-
- `latitude`: Geographic latitude
|
|
31
|
-
- `longitude`: Geographic longitude
|
|
32
|
-
- `team`: Associated TeamNode
|
|
33
|
-
- `configurationAsJSON`: Private configuration data
|
|
34
|
-
- Features:
|
|
35
|
-
- Configuration management
|
|
36
|
-
- Location-based services
|
|
37
|
-
- Team association
|
|
38
|
-
|
|
39
|
-
### Organization Structure
|
|
40
|
-
- `RaainNode`: Base class for all nodes
|
|
41
|
-
- `TeamNode`: Team management and permissions
|
|
42
|
-
- `Link`: Relationship management between nodes
|
|
43
|
-
|
|
44
|
-
### Quality Management
|
|
45
|
-
- Enhanced speed matrix comparisons
|
|
46
|
-
- Improved quality point calculations
|
|
47
|
-
- Updated Cartesian rain history tracking
|
|
48
|
-
- Refined quality measurement tools
|
|
49
|
-
|
|
50
|
-
## API Endpoints
|
|
51
|
-
- `/api/rains/:id`: Rain node management
|
|
52
|
-
- `/api/gauges/:id`: Gauge station management
|
|
53
|
-
|
|
54
|
-
## Data Processing
|
|
55
|
-
- Polar measurement filtering
|
|
56
|
-
- Cartesian coordinate transformations
|
|
57
|
-
- Quality metric calculations
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import {expect} from 'chai';
|
|
2
|
-
import {
|
|
3
|
-
CartesianMeasureValue,
|
|
4
|
-
CartesianValue,
|
|
5
|
-
GaugeMeasure,
|
|
6
|
-
GaugeNode,
|
|
7
|
-
ICartesianMeasureValue,
|
|
8
|
-
LatLng,
|
|
9
|
-
RadarCartesianMeasureValue,
|
|
10
|
-
RainCartesianMeasureValue,
|
|
11
|
-
TeamNode
|
|
12
|
-
} from '../../src';
|
|
13
|
-
|
|
14
|
-
describe('Cartesian', () => {
|
|
15
|
-
|
|
16
|
-
it('should create ones', () => {
|
|
17
|
-
|
|
18
|
-
const team1 = new TeamNode({
|
|
19
|
-
id: 'tid1',
|
|
20
|
-
name: 'team1',
|
|
21
|
-
description: 'team...',
|
|
22
|
-
contracts: ['basic'],
|
|
23
|
-
contacts: []
|
|
24
|
-
});
|
|
25
|
-
const cartesianValue1 = new CartesianValue({
|
|
26
|
-
value: 123,
|
|
27
|
-
lat: 10,
|
|
28
|
-
lng: 20
|
|
29
|
-
});
|
|
30
|
-
const cartesianValue2 = new CartesianValue({
|
|
31
|
-
value: 321,
|
|
32
|
-
lat: 10.002,
|
|
33
|
-
lng: 19.9998
|
|
34
|
-
});
|
|
35
|
-
const cartesianMeasureValue = new CartesianMeasureValue({
|
|
36
|
-
cartesianValues: [cartesianValue1, cartesianValue2],
|
|
37
|
-
});
|
|
38
|
-
const radarCartesianMeasureValue = new RadarCartesianMeasureValue({
|
|
39
|
-
cartesianValues: [cartesianValue1, cartesianValue2],
|
|
40
|
-
angle: 4,
|
|
41
|
-
axis: 0,
|
|
42
|
-
limitPoints: undefined
|
|
43
|
-
});
|
|
44
|
-
expect(radarCartesianMeasureValue.angle).eq(4);
|
|
45
|
-
expect(radarCartesianMeasureValue.getCartesianValues().length).eq(2);
|
|
46
|
-
expect(radarCartesianMeasureValue.getLimitPoints({forceCompute: true})[0].lat).eq(10);
|
|
47
|
-
expect(radarCartesianMeasureValue.getLimitPoints()[0].lng).eq(19.9998);
|
|
48
|
-
expect(radarCartesianMeasureValue.getLimitPoints()[1].lat).eq(10.002);
|
|
49
|
-
expect(radarCartesianMeasureValue.getLimitPoints()[1].lng).eq(20);
|
|
50
|
-
|
|
51
|
-
const gaugeNode = new GaugeNode({
|
|
52
|
-
id: 'GaugeNode looks OK.',
|
|
53
|
-
name: 'name',
|
|
54
|
-
links: [],
|
|
55
|
-
latitude: 1,
|
|
56
|
-
longitude: 1,
|
|
57
|
-
team: team1,
|
|
58
|
-
});
|
|
59
|
-
expect(gaugeNode.id).eq('GaugeNode looks OK.');
|
|
60
|
-
|
|
61
|
-
const gaugeMeasure = new GaugeMeasure({
|
|
62
|
-
id: 'gaugeMeasure',
|
|
63
|
-
date: new Date(),
|
|
64
|
-
values: [cartesianMeasureValue],
|
|
65
|
-
validity: 1
|
|
66
|
-
});
|
|
67
|
-
expect((gaugeMeasure.values[0] as ICartesianMeasureValue).getCartesianValue({lat: 10, lng: 20}).value).eq(123);
|
|
68
|
-
expect((gaugeMeasure.values[0] as ICartesianMeasureValue).getCartesianValue({lat: 10.0001, lng: 20.00001})).eq(null);
|
|
69
|
-
|
|
70
|
-
const rainCartesianMeasureValue = new RainCartesianMeasureValue({
|
|
71
|
-
cartesianValues: [cartesianValue1, cartesianValue2],
|
|
72
|
-
version: '',
|
|
73
|
-
limitPoints: [new LatLng({lat: 0, lng: 1}), new LatLng({lat: 12, lng: 20})]
|
|
74
|
-
});
|
|
75
|
-
expect(rainCartesianMeasureValue.getCartesianValues().length).eq(2);
|
|
76
|
-
expect(rainCartesianMeasureValue.getLimitPoints()[0].lat).eq(0);
|
|
77
|
-
expect(rainCartesianMeasureValue.getLimitPoints()[0].lng).eq(1);
|
|
78
|
-
expect(rainCartesianMeasureValue.getLimitPoints()[1].lat).eq(12);
|
|
79
|
-
expect(rainCartesianMeasureValue.getLimitPoints()[1].lng).eq(20);
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
});
|