@saber-usa/node-common 1.7.41 → 1.7.43
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/package.json +1 -1
- package/src/udl.js +81 -0
package/package.json
CHANGED
package/src/udl.js
CHANGED
|
@@ -168,6 +168,86 @@ const udlToRadarObs = (udlRow, tles = {}, sensors = {}, log = console) => {
|
|
|
168
168
|
return result;
|
|
169
169
|
};
|
|
170
170
|
|
|
171
|
+
/**
|
|
172
|
+
* Converts a UDL Difference of Arrival row to NPS DiffOfArrival (PascalCase keys).
|
|
173
|
+
* Callers that insert via ingest should wrap with lowerCaseObjectKeys.
|
|
174
|
+
* @param {Object} udlRow
|
|
175
|
+
* @return {Object}
|
|
176
|
+
*/
|
|
177
|
+
const udlToNpsDOA = (udlRow) => {
|
|
178
|
+
const satno = udlRow.satNo
|
|
179
|
+
? _.get(udlRow, "satNo", null)
|
|
180
|
+
: _.get(udlRow, "origObjectId", null);
|
|
181
|
+
|
|
182
|
+
const npsObj = {
|
|
183
|
+
SatNo: satno,
|
|
184
|
+
ObTime: _.get(udlRow, "obTime", null),
|
|
185
|
+
IdUdl: _.get(udlRow, "id", null),
|
|
186
|
+
ClassificationMarking: _.get(udlRow, "classificationMarking", null),
|
|
187
|
+
IdOnOrbit: _.get(udlRow, "idOnOrbit", null),
|
|
188
|
+
IdSensor1: _.get(udlRow, "idSensor1", null),
|
|
189
|
+
IdSensor2: _.get(udlRow, "idSensor2", null),
|
|
190
|
+
TaskId: _.get(udlRow, "taskId", null),
|
|
191
|
+
OrigObjectId: _.get(udlRow, "origObjectId", null),
|
|
192
|
+
OrigNetwork: _.get(udlRow, "origNetwork", null),
|
|
193
|
+
OrigSensorId1: _.get(udlRow, "origSensorId1", null),
|
|
194
|
+
OrigSensorId2: _.get(udlRow, "origSensorId2", null),
|
|
195
|
+
Uct: _.get(udlRow, "uct", null),
|
|
196
|
+
Sensor1Delay: _.get(udlRow, "sensor1Delay", null),
|
|
197
|
+
Sensor2Delay: _.get(udlRow, "sensor2Delay", null),
|
|
198
|
+
SenLat: _.get(udlRow, "senlat", null),
|
|
199
|
+
SenLon: _.get(udlRow, "senlon", null),
|
|
200
|
+
SenAlt: _.get(udlRow, "senalt", null),
|
|
201
|
+
Sen2Lat: _.get(udlRow, "sen2lat", null),
|
|
202
|
+
Sen2Lon: _.get(udlRow, "sen2lon", null),
|
|
203
|
+
Sen2Alt: _.get(udlRow, "sen2alt", null),
|
|
204
|
+
Azimuth1: _.get(udlRow, "azimuth1", null),
|
|
205
|
+
Elevation1: _.get(udlRow, "elevation1", null),
|
|
206
|
+
Azimuth2: _.get(udlRow, "azimuth2", null),
|
|
207
|
+
Elevation2: _.get(udlRow, "elevation2", null),
|
|
208
|
+
DeltaRange: _.get(udlRow, "deltaRange", null),
|
|
209
|
+
DeltaRangeUnc: _.get(udlRow, "deltaRangeUnc", null),
|
|
210
|
+
DeltaRangeRate: _.get(udlRow, "deltaRangeRate", null),
|
|
211
|
+
DeltaRangeRateUnc: _.get(udlRow, "deltaRangeRateUnc", null),
|
|
212
|
+
Snr: _.get(udlRow, "snr", null),
|
|
213
|
+
Tdoa: _.get(udlRow, "tdoa", null),
|
|
214
|
+
TdoaUnc: _.get(udlRow, "tdoaUnc", null),
|
|
215
|
+
Fdoa: _.get(udlRow, "fdoa", null),
|
|
216
|
+
FdoaUnc: _.get(udlRow, "fdoaUnc", null),
|
|
217
|
+
Frequency: _.get(udlRow, "frequency", null),
|
|
218
|
+
Bandwidth: _.get(udlRow, "bandwidth", null),
|
|
219
|
+
Source: _.get(udlRow, "source", null),
|
|
220
|
+
CollectionMode: _.get(udlRow, "collectionMode", null),
|
|
221
|
+
Origin: _.get(udlRow, "origin", null),
|
|
222
|
+
Descriptor: _.get(udlRow, "descriptor", null),
|
|
223
|
+
DataMode: _.get(udlRow, "dataMode", null),
|
|
224
|
+
CreatedAt: _.get(udlRow, "createdAt", null),
|
|
225
|
+
};
|
|
226
|
+
|
|
227
|
+
return enrichDoaFields(npsObj);
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Enrich DiffOfArrival sensor ids from orig fallbacks.
|
|
232
|
+
* @param {Object} npsObj
|
|
233
|
+
* @return {Object}
|
|
234
|
+
*/
|
|
235
|
+
const enrichDoaFields = (npsObj) => {
|
|
236
|
+
const enrichedFields = [];
|
|
237
|
+
if ((npsObj.IdSensor1 === null || npsObj.IdSensor1 === undefined)
|
|
238
|
+
&& npsObj.OrigSensorId1 !== null && npsObj.OrigSensorId1 !== undefined) {
|
|
239
|
+
npsObj.IdSensor1 = npsObj.OrigSensorId1;
|
|
240
|
+
enrichedFields.push("IdSensor1");
|
|
241
|
+
}
|
|
242
|
+
if ((npsObj.IdSensor2 === null || npsObj.IdSensor2 === undefined)
|
|
243
|
+
&& npsObj.OrigSensorId2 !== null && npsObj.OrigSensorId2 !== undefined) {
|
|
244
|
+
npsObj.IdSensor2 = npsObj.OrigSensorId2;
|
|
245
|
+
enrichedFields.push("IdSensor2");
|
|
246
|
+
}
|
|
247
|
+
npsObj.EnrichedFields = enrichedFields.join(",");
|
|
248
|
+
return npsObj;
|
|
249
|
+
};
|
|
250
|
+
|
|
171
251
|
const udlToNpsElset = (udlRow) => {
|
|
172
252
|
let derivedElset;
|
|
173
253
|
try {
|
|
@@ -592,4 +672,5 @@ export {
|
|
|
592
672
|
getObsSatno,
|
|
593
673
|
udlToNpsObs,
|
|
594
674
|
udlToRadarObs,
|
|
675
|
+
udlToNpsDOA,
|
|
595
676
|
};
|