@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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/udl.js +81 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saber-usa/node-common",
3
- "version": "1.7.41",
3
+ "version": "1.7.43",
4
4
  "description": "Common node functions for Saber",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
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
  };