-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMetadata.js
69 lines (66 loc) · 1.86 KB
/
Metadata.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
class ClutterFilterMap {
#mapGenerationDate;
#mapGenerationTime;
#numberOfElevationSegments;
#elevtionSegments = [];
constructor(buffer, offset) {
buffer.seek(offset);
this.#mapGenerationDate = buffer.readInteger(2);
this.#mapGenerationTime = buffer.readInteger(2);
this.#numberOfElevationSegments = buffer.readInteger(2);
for (let e = 0; e < this.#numberOfElevationSegments; e++) {
const azimuth = [];
for (let r = 0; r < 360; r++) {
const rangeZones = [];
const numberOfRangeZones = buffer.readInteger(2);
for (let i = 0; i < numberOfRangeZones; i++) {
const opCode = buffer.readCode(2);
const endRange = buffer.readInteger(2);
while (endRange !== 511) {
console.log('endRange', endRange);
rangeZones.push({
opCode,
endRange
});
}
}
azimuth.push({
rangeZones
});
}
this.#elevtionSegments.push({
azimuth
});
}
}
toJSON = (name = null) => {
const json = {
mapGenerationDate: {
name: 'Map Generation Date',
description: 'Julian Date - 2440586.5',
value: this.#mapGenerationDate,
units: 'd'
},
mapGenerationTime: {
name: 'Map Generation Time',
description: 'Number of Minutes since Midnight Greenwich Mean Time',
value: this.#mapGenerationTime,
units: 'min'
},
numberOfElevationSegments: {
name: 'Number of Elevation Segments',
description: 'Number of elevation segments in map',
value: this.#numberOfElevationSegments,
units: null
},
elevationSegments: {
value: this.#elevtionSegments
}
};
if (name) {
return json[name];
}
return json;
}
};
exports.ClutterFilterMap = ClutterFilterMap;