@aguacerowx/react-native 0.0.53 → 0.0.54

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 (261) hide show
  1. package/LICENSE +21 -0
  2. package/android/src/main/java/com/aguacerowx/reactnative/NexradRadarLayerView.java +14 -2
  3. package/android/src/main/java/com/aguacerowx/reactnative/WeatherFrameProcessorModule.java +77 -0
  4. package/index.js +1 -1
  5. package/ios/WeatherFrameProcessorModule.m +19 -15
  6. package/ios/WeatherFrameProcessorModule.swift +65 -0
  7. package/lib/commonjs/AguaceroContext.js +0 -4
  8. package/lib/commonjs/AguaceroContext.js.map +1 -1
  9. package/lib/commonjs/GridRenderLayer.js +62 -76
  10. package/lib/commonjs/GridRenderLayer.js.map +1 -1
  11. package/lib/commonjs/MapManager.js +110 -224
  12. package/lib/commonjs/MapManager.js.map +1 -1
  13. package/lib/commonjs/MapRegistry.js +21 -33
  14. package/lib/commonjs/MapRegistry.js.map +1 -1
  15. package/lib/commonjs/NexradRadarLayer.android.js +28 -100
  16. package/lib/commonjs/NexradRadarLayer.android.js.map +1 -1
  17. package/lib/commonjs/NexradRadarLayer.ios.js +26 -97
  18. package/lib/commonjs/NexradRadarLayer.ios.js.map +1 -1
  19. package/lib/commonjs/NexradSitesMapLayer.js +41 -61
  20. package/lib/commonjs/NexradSitesMapLayer.js.map +1 -1
  21. package/lib/commonjs/SatelliteLayer.android.js +26 -38
  22. package/lib/commonjs/SatelliteLayer.android.js.map +1 -1
  23. package/lib/commonjs/SatelliteLayer.ios.js +30 -42
  24. package/lib/commonjs/SatelliteLayer.ios.js.map +1 -1
  25. package/lib/commonjs/StyleApplicator.js +129 -175
  26. package/lib/commonjs/StyleApplicator.js.map +1 -1
  27. package/lib/commonjs/WeatherLayerManager.js +995 -1646
  28. package/lib/commonjs/WeatherLayerManager.js.map +1 -1
  29. package/lib/commonjs/aguaceroCoreDebugHooks.js +58 -130
  30. package/lib/commonjs/aguaceroCoreDebugHooks.js.map +1 -1
  31. package/lib/commonjs/aguaceroRnDebug.js +147 -288
  32. package/lib/commonjs/aguaceroRnDebug.js.map +1 -1
  33. package/lib/commonjs/cdnAuthenticatedFetch.js +104 -0
  34. package/lib/commonjs/cdnAuthenticatedFetch.js.map +1 -0
  35. package/lib/commonjs/dispatchViewManagerCommandCompat.js +51 -88
  36. package/lib/commonjs/dispatchViewManagerCommandCompat.js.map +1 -1
  37. package/lib/commonjs/gridCdnAuth.js +41 -50
  38. package/lib/commonjs/gridCdnAuth.js.map +1 -1
  39. package/lib/commonjs/index.js +14 -0
  40. package/lib/commonjs/index.js.map +1 -1
  41. package/lib/commonjs/nexrad/nexradAndroidController.js +851 -863
  42. package/lib/commonjs/nexrad/nexradAndroidController.js.map +1 -1
  43. package/lib/commonjs/nexrad/nexradCrossSectionSampleAtLatLon.bundled.js +62 -85
  44. package/lib/commonjs/nexrad/nexradCrossSectionSampleAtLatLon.bundled.js.map +1 -1
  45. package/lib/commonjs/nexrad/nexradDiag.js +32 -148
  46. package/lib/commonjs/nexrad/nexradDiag.js.map +1 -1
  47. package/lib/commonjs/nexrad/nexradLevel2Keys.js +261 -0
  48. package/lib/commonjs/nexrad/nexradLevel2Keys.js.map +1 -0
  49. package/lib/commonjs/nexrad/nexradLutBuild.js +64 -111
  50. package/lib/commonjs/nexrad/nexradLutBuild.js.map +1 -1
  51. package/lib/commonjs/nexrad/nexradMapboxFrameOpts.bundled.js +136 -164
  52. package/lib/commonjs/nexrad/nexradMapboxFrameOpts.bundled.js.map +1 -1
  53. package/lib/commonjs/nexrad/nexradSdkImports.js +51 -0
  54. package/lib/commonjs/nexrad/nexradSdkImports.js.map +1 -0
  55. package/lib/commonjs/nexrad/radarArchiveCore.bundled.js +2848 -4455
  56. package/lib/commonjs/nexrad/radarArchiveCore.bundled.js.map +1 -1
  57. package/lib/commonjs/nexrad/radarDecode.worker.bundled.js +445 -648
  58. package/lib/commonjs/nexrad/radarDecode.worker.bundled.js.map +1 -1
  59. package/lib/commonjs/nexrad/radarFrameGpuMatch.bundled.js +52 -68
  60. package/lib/commonjs/nexrad/radarFrameGpuMatch.bundled.js.map +1 -1
  61. package/lib/commonjs/nexradNativeCommandIds.js +24 -0
  62. package/lib/commonjs/nexradNativeCommandIds.js.map +1 -0
  63. package/lib/commonjs/nws/NwsAlertsOverlay.android.js.map +1 -1
  64. package/lib/commonjs/nws/NwsAlertsOverlay.ios.js.map +1 -1
  65. package/lib/commonjs/nws/NwsAlertsOverlay.js +3 -3
  66. package/lib/commonjs/nws/NwsAlertsOverlay.js.map +1 -1
  67. package/lib/commonjs/nws/NwsAlertsOverlay.native.js +235 -361
  68. package/lib/commonjs/nws/NwsAlertsOverlay.native.js.map +1 -1
  69. package/lib/commonjs/nws/eventSourceRnPolyfill.js +92 -146
  70. package/lib/commonjs/nws/eventSourceRnPolyfill.js.map +1 -1
  71. package/lib/commonjs/nws/nwsAndroidConstants.js +2 -8
  72. package/lib/commonjs/nws/nwsAndroidConstants.js.map +1 -1
  73. package/lib/commonjs/satellite/satelliteAndroidController.js +117 -202
  74. package/lib/commonjs/satellite/satelliteAndroidController.js.map +1 -1
  75. package/lib/commonjs/satelliteBridgeDiag.js +3 -13
  76. package/lib/commonjs/satelliteBridgeDiag.js.map +1 -1
  77. package/lib/commonjs/satelliteRnDebug.js +117 -218
  78. package/lib/commonjs/satelliteRnDebug.js.map +1 -1
  79. package/lib/module/AguaceroContext.js +2 -7
  80. package/lib/module/AguaceroContext.js.map +1 -1
  81. package/lib/module/GridRenderLayer.js +66 -80
  82. package/lib/module/GridRenderLayer.js.map +1 -1
  83. package/lib/module/MapManager.js +125 -239
  84. package/lib/module/MapManager.js.map +1 -1
  85. package/lib/module/MapRegistry.js +21 -33
  86. package/lib/module/MapRegistry.js.map +1 -1
  87. package/lib/module/NexradRadarLayer.android.js +32 -104
  88. package/lib/module/NexradRadarLayer.android.js.map +1 -1
  89. package/lib/module/NexradRadarLayer.ios.js +30 -101
  90. package/lib/module/NexradRadarLayer.ios.js.map +1 -1
  91. package/lib/module/NexradSitesMapLayer.js +44 -63
  92. package/lib/module/NexradSitesMapLayer.js.map +1 -1
  93. package/lib/module/SatelliteLayer.android.js +32 -44
  94. package/lib/module/SatelliteLayer.android.js.map +1 -1
  95. package/lib/module/SatelliteLayer.ios.js +36 -48
  96. package/lib/module/SatelliteLayer.ios.js.map +1 -1
  97. package/lib/module/StyleApplicator.js +144 -191
  98. package/lib/module/StyleApplicator.js.map +1 -1
  99. package/lib/module/WeatherLayerManager.js +1024 -1675
  100. package/lib/module/WeatherLayerManager.js.map +1 -1
  101. package/lib/module/aguaceroCoreDebugHooks.js +59 -130
  102. package/lib/module/aguaceroCoreDebugHooks.js.map +1 -1
  103. package/lib/module/aguaceroRnDebug.js +151 -292
  104. package/lib/module/aguaceroRnDebug.js.map +1 -1
  105. package/lib/module/cdnAuthenticatedFetch.js +97 -0
  106. package/lib/module/cdnAuthenticatedFetch.js.map +1 -0
  107. package/lib/module/dispatchViewManagerCommandCompat.js +52 -90
  108. package/lib/module/dispatchViewManagerCommandCompat.js.map +1 -1
  109. package/lib/module/gridCdnAuth.js +38 -50
  110. package/lib/module/gridCdnAuth.js.map +1 -1
  111. package/lib/module/index.js +9 -7
  112. package/lib/module/index.js.map +1 -1
  113. package/lib/module/nexrad/nexradAndroidController.js +865 -876
  114. package/lib/module/nexrad/nexradAndroidController.js.map +1 -1
  115. package/lib/module/nexrad/nexradCrossSectionSampleAtLatLon.bundled.js +62 -85
  116. package/lib/module/nexrad/nexradCrossSectionSampleAtLatLon.bundled.js.map +1 -1
  117. package/lib/module/nexrad/nexradDiag.js +31 -145
  118. package/lib/module/nexrad/nexradDiag.js.map +1 -1
  119. package/lib/module/nexrad/nexradLevel2Keys.js +245 -0
  120. package/lib/module/nexrad/nexradLevel2Keys.js.map +1 -0
  121. package/lib/module/nexrad/nexradLutBuild.js +64 -110
  122. package/lib/module/nexrad/nexradLutBuild.js.map +1 -1
  123. package/lib/module/nexrad/nexradMapboxFrameOpts.bundled.js +136 -163
  124. package/lib/module/nexrad/nexradMapboxFrameOpts.bundled.js.map +1 -1
  125. package/lib/module/nexrad/nexradSdkImports.js +4 -0
  126. package/lib/module/nexrad/nexradSdkImports.js.map +1 -0
  127. package/lib/module/nexrad/radarArchiveCore.bundled.js +2839 -4448
  128. package/lib/module/nexrad/radarArchiveCore.bundled.js.map +1 -1
  129. package/lib/module/nexrad/radarDecode.worker.bundled.js +445 -648
  130. package/lib/module/nexrad/radarDecode.worker.bundled.js.map +1 -1
  131. package/lib/module/nexrad/radarFrameGpuMatch.bundled.js +50 -66
  132. package/lib/module/nexrad/radarFrameGpuMatch.bundled.js.map +1 -1
  133. package/lib/module/nexradNativeCommandIds.js +18 -0
  134. package/lib/module/nexradNativeCommandIds.js.map +1 -0
  135. package/lib/module/nws/NwsAlertsOverlay.android.js +1 -1
  136. package/lib/module/nws/NwsAlertsOverlay.android.js.map +1 -1
  137. package/lib/module/nws/NwsAlertsOverlay.ios.js +1 -1
  138. package/lib/module/nws/NwsAlertsOverlay.ios.js.map +1 -1
  139. package/lib/module/nws/NwsAlertsOverlay.js +5 -5
  140. package/lib/module/nws/NwsAlertsOverlay.js.map +1 -1
  141. package/lib/module/nws/NwsAlertsOverlay.native.js +248 -373
  142. package/lib/module/nws/NwsAlertsOverlay.native.js.map +1 -1
  143. package/lib/module/nws/eventSourceRnPolyfill.js +92 -146
  144. package/lib/module/nws/eventSourceRnPolyfill.js.map +1 -1
  145. package/lib/module/nws/nwsAndroidConstants.js +2 -8
  146. package/lib/module/nws/nwsAndroidConstants.js.map +1 -1
  147. package/lib/module/satellite/satelliteAndroidController.js +123 -208
  148. package/lib/module/satellite/satelliteAndroidController.js.map +1 -1
  149. package/lib/module/satelliteBridgeDiag.js +3 -13
  150. package/lib/module/satelliteBridgeDiag.js.map +1 -1
  151. package/lib/module/satelliteRnDebug.js +123 -223
  152. package/lib/module/satelliteRnDebug.js.map +1 -1
  153. package/lib/typescript/AguaceroContext.d.ts +0 -4
  154. package/lib/typescript/AguaceroContext.d.ts.map +1 -1
  155. package/lib/typescript/GridRenderLayer.d.ts.map +1 -1
  156. package/lib/typescript/MapManager.d.ts +0 -12
  157. package/lib/typescript/MapManager.d.ts.map +1 -1
  158. package/lib/typescript/MapRegistry.d.ts +10 -12
  159. package/lib/typescript/MapRegistry.d.ts.map +1 -1
  160. package/lib/typescript/NexradRadarLayer.android.d.ts.map +1 -1
  161. package/lib/typescript/NexradRadarLayer.ios.d.ts.map +1 -1
  162. package/lib/typescript/NexradSitesMapLayer.d.ts +4 -10
  163. package/lib/typescript/NexradSitesMapLayer.d.ts.map +1 -1
  164. package/lib/typescript/SatelliteLayer.android.d.ts.map +1 -1
  165. package/lib/typescript/SatelliteLayer.ios.d.ts.map +1 -1
  166. package/lib/typescript/StyleApplicator.d.ts +1 -1
  167. package/lib/typescript/StyleApplicator.d.ts.map +1 -1
  168. package/lib/typescript/WeatherLayerManager.d.ts.map +1 -1
  169. package/lib/typescript/aguaceroCoreDebugHooks.d.ts +2 -9
  170. package/lib/typescript/aguaceroCoreDebugHooks.d.ts.map +1 -1
  171. package/lib/typescript/aguaceroRnDebug.d.ts +47 -66
  172. package/lib/typescript/aguaceroRnDebug.d.ts.map +1 -1
  173. package/lib/typescript/cdnAuthenticatedFetch.d.ts +10 -0
  174. package/lib/typescript/cdnAuthenticatedFetch.d.ts.map +1 -0
  175. package/lib/typescript/dispatchViewManagerCommandCompat.d.ts +1 -17
  176. package/lib/typescript/dispatchViewManagerCommandCompat.d.ts.map +1 -1
  177. package/lib/typescript/gridCdnAuth.d.ts +16 -21
  178. package/lib/typescript/gridCdnAuth.d.ts.map +1 -1
  179. package/lib/typescript/index.d.ts +1 -0
  180. package/lib/typescript/nexrad/nexradAndroidController.d.ts +39 -89
  181. package/lib/typescript/nexrad/nexradAndroidController.d.ts.map +1 -1
  182. package/lib/typescript/nexrad/nexradCrossSectionSampleAtLatLon.bundled.d.ts +2 -1
  183. package/lib/typescript/nexrad/nexradCrossSectionSampleAtLatLon.bundled.d.ts.map +1 -1
  184. package/lib/typescript/nexrad/nexradDiag.d.ts +13 -101
  185. package/lib/typescript/nexrad/nexradDiag.d.ts.map +1 -1
  186. package/lib/typescript/nexrad/nexradLevel2Keys.d.ts +36 -0
  187. package/lib/typescript/nexrad/nexradLevel2Keys.d.ts.map +1 -0
  188. package/lib/typescript/nexrad/nexradLutBuild.d.ts +3 -10
  189. package/lib/typescript/nexrad/nexradLutBuild.d.ts.map +1 -1
  190. package/lib/typescript/nexrad/nexradMapboxFrameOpts.bundled.d.ts +4 -3
  191. package/lib/typescript/nexrad/nexradMapboxFrameOpts.bundled.d.ts.map +1 -1
  192. package/lib/typescript/nexrad/nexradSdkImports.d.ts +2 -0
  193. package/lib/typescript/nexrad/nexradSdkImports.d.ts.map +1 -0
  194. package/lib/typescript/nexrad/radarArchiveCore.bundled.d.ts +12 -7
  195. package/lib/typescript/nexrad/radarArchiveCore.bundled.d.ts.map +1 -1
  196. package/lib/typescript/nexrad/radarDecode.worker.bundled.d.ts +20 -20
  197. package/lib/typescript/nexrad/radarDecode.worker.bundled.d.ts.map +1 -1
  198. package/lib/typescript/nexrad/radarFrameGpuMatch.bundled.d.ts +4 -3
  199. package/lib/typescript/nexrad/radarFrameGpuMatch.bundled.d.ts.map +1 -1
  200. package/lib/typescript/nexradNativeCommandIds.d.ts +2 -0
  201. package/lib/typescript/nexradNativeCommandIds.d.ts.map +1 -0
  202. package/lib/typescript/nws/NwsAlertsOverlay.native.d.ts +6 -17
  203. package/lib/typescript/nws/NwsAlertsOverlay.native.d.ts.map +1 -1
  204. package/lib/typescript/nws/eventSourceRnPolyfill.d.ts +0 -3
  205. package/lib/typescript/nws/eventSourceRnPolyfill.d.ts.map +1 -1
  206. package/lib/typescript/nws/nwsAndroidConstants.d.ts +0 -5
  207. package/lib/typescript/nws/nwsAndroidConstants.d.ts.map +1 -1
  208. package/lib/typescript/satellite/satelliteAndroidController.d.ts +9 -47
  209. package/lib/typescript/satellite/satelliteAndroidController.d.ts.map +1 -1
  210. package/lib/typescript/satelliteBridgeDiag.d.ts +1 -5
  211. package/lib/typescript/satelliteBridgeDiag.d.ts.map +1 -1
  212. package/lib/typescript/satelliteRnDebug.d.ts +24 -30
  213. package/lib/typescript/satelliteRnDebug.d.ts.map +1 -1
  214. package/package.json +75 -74
  215. package/src/AguaceroContext.js +1 -7
  216. package/src/GridRenderLayer.js +1 -128
  217. package/src/MapManager.js +1 -277
  218. package/src/MapRegistry.js +1 -56
  219. package/src/NexradRadarLayer.android.js +1 -121
  220. package/src/NexradRadarLayer.ios.js +1 -115
  221. package/src/NexradSitesMapLayer.js +1 -75
  222. package/src/SatelliteLayer.android.js +1 -63
  223. package/src/SatelliteLayer.ios.js +1 -70
  224. package/src/StyleApplicator.js +1 -241
  225. package/src/WeatherLayerManager.js +1 -2045
  226. package/src/aguaceroCoreDebugHooks.js +1 -142
  227. package/src/aguaceroRnDebug.js +1 -336
  228. package/src/cdnAuthenticatedFetch.js +1 -0
  229. package/src/dispatchViewManagerCommandCompat.js +1 -100
  230. package/src/gridCdnAuth.js +1 -56
  231. package/src/index.js +1 -27
  232. package/src/nexrad/nexradAndroidController.js +1 -1078
  233. package/src/nexrad/nexradCrossSectionSampleAtLatLon.bundled.js +1 -91
  234. package/src/nexrad/nexradDiag.js +1 -150
  235. package/src/nexrad/nexradLevel2Keys.js +1 -0
  236. package/src/nexrad/nexradLutBuild.js +1 -126
  237. package/src/nexrad/nexradMapboxFrameOpts.bundled.js +1 -245
  238. package/src/nexrad/nexradSdkImports.js +1 -0
  239. package/src/nexrad/radarArchiveCore.bundled.js +1 -7085
  240. package/src/nexrad/radarDecode.worker.bundled.js +1 -813
  241. package/src/nexrad/radarFrameGpuMatch.bundled.js +1 -79
  242. package/src/nexradNativeCommandIds.js +1 -0
  243. package/src/nws/NwsAlertsOverlay.android.js +1 -1
  244. package/src/nws/NwsAlertsOverlay.ios.js +1 -1
  245. package/src/nws/NwsAlertsOverlay.js +1 -7
  246. package/src/nws/NwsAlertsOverlay.native.js +1 -463
  247. package/src/nws/eventSourceRnPolyfill.js +7 -193
  248. package/src/nws/nwsAndroidConstants.js +1 -8
  249. package/src/satellite/satelliteAndroidController.js +1 -257
  250. package/src/satelliteBridgeDiag.js +1 -15
  251. package/src/satelliteRnDebug.js +1 -269
  252. package/lib/commonjs/nexrad/nexradNativeCommandIds.js +0 -51
  253. package/lib/commonjs/nexrad/nexradNativeCommandIds.js.map +0 -1
  254. package/lib/module/nexrad/nexradNativeCommandIds.js +0 -44
  255. package/lib/module/nexrad/nexradNativeCommandIds.js.map +0 -1
  256. package/lib/typescript/nexrad/nexradNativeCommandIds.d.ts +0 -9
  257. package/lib/typescript/nexrad/nexradNativeCommandIds.d.ts.map +0 -1
  258. package/src/nexrad/nexradNativeCommandIds.js +0 -44
  259. /package/lib/commonjs/{nexrad/nexradSitesUs.json → nexradSitesUs.json} +0 -0
  260. /package/lib/module/{nexrad/nexradSitesUs.json → nexradSitesUs.json} +0 -0
  261. /package/src/{nexrad/nexradSitesUs.json → nexradSitesUs.json} +0 -0
@@ -1,125 +1,79 @@
1
- /**
2
- * NEXRAD 256×1 RGBA LUT — same rules as mapsgl {@code MapboxRadarLayer.buildLutTextureData}.
3
- */
4
- import { DEFAULT_COLORMAPS } from '@aguacerowx/javascript-sdk';
5
- const LUT_SIZE = 256;
6
- function getRefc0DefaultColormap() {
7
- const cm = DEFAULT_COLORMAPS?.refc_0?.units?.dBZ?.colormap;
8
- return Array.isArray(cm) && cm.length >= 2 ? cm : null;
1
+ const M = 256;
2
+ function h(t) {
3
+ const o = String(t || "").trim(),
4
+ u = /^#?([0-9a-f]{6,8})$/i.exec(o);
5
+ if (!u) return [0, 0, 0, 255];
6
+ const n = u[1];
7
+ return n.length === 8 ? [parseInt(n.slice(0, 2), 16), parseInt(n.slice(2, 4), 16), parseInt(n.slice(4, 6), 16), parseInt(n.slice(6, 8), 16)] : [parseInt(n.slice(0, 2), 16), parseInt(n.slice(2, 4), 16), parseInt(n.slice(4, 6), 16), 255];
9
8
  }
10
- function parseHex(hex) {
11
- const m = String(hex ?? '').match(/^#?([a-fA-F0-9]{8}|[a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/);
12
- if (!m) return [0, 0, 0, 255];
13
- const s = m[1];
14
- let r = 0;
15
- let g = 0;
16
- let b = 0;
17
- let a = 255;
18
- if (s.length === 8) {
19
- r = parseInt(s.slice(0, 2), 16);
20
- g = parseInt(s.slice(2, 4), 16);
21
- b = parseInt(s.slice(4, 6), 16);
22
- a = parseInt(s.slice(6, 8), 16);
23
- } else if (s.length === 6) {
24
- r = parseInt(s.slice(0, 2), 16);
25
- g = parseInt(s.slice(2, 4), 16);
26
- b = parseInt(s.slice(4, 6), 16);
27
- } else {
28
- r = parseInt(s[0] + s[0], 16);
29
- g = parseInt(s[1] + s[1], 16);
30
- b = parseInt(s[2] + s[2], 16);
9
+ function g(t) {
10
+ const o = [];
11
+ if (!t || t.length < 2) return o;
12
+ for (let u = 0; u < t.length - 1; u += 2) {
13
+ const n = Number(t[u]),
14
+ r = t[u + 1];
15
+ if (!Number.isFinite(n) || r == null) continue;
16
+ const [e, l, c, i] = h(r);
17
+ o.push({
18
+ value: n,
19
+ color: [e, l, c, i]
20
+ });
31
21
  }
32
- return [r, g, b, a];
22
+ return o;
33
23
  }
34
- function shouldUseDiscreteIntegerLut(stops, lutValueMin, lutValueMax, interpolateColormap) {
35
- if (interpolateColormap || stops.length < 2) return false;
36
- const lo = lutValueMin;
37
- const hi = lutValueMax;
38
- if (!Number.isFinite(lo) || !Number.isFinite(hi)) return false;
39
- const nExp = Math.round(hi - lo + 1);
40
- if (stops.length !== nExp) return false;
41
- if (Math.abs(Math.round(lo) - lo) > 1e-3 || Math.abs(Math.round(hi) - hi) > 1e-3) return false;
42
- for (let i = 0; i < stops.length; i++) {
43
- if (Math.abs(stops[i].value - (lo + i)) > 1e-3) return false;
44
- }
45
- return true;
24
+ function b(t, o, u, n) {
25
+ if (n || t.length < 2) return !1;
26
+ const r = o,
27
+ e = u;
28
+ if (!Number.isFinite(r) || !Number.isFinite(e)) return !1;
29
+ const l = Math.round(e - r + 1);
30
+ if (t.length !== l || Math.abs(Math.round(r) - r) > .001 || Math.abs(Math.round(e) - e) > .001) return !1;
31
+ for (let c = 0; c < t.length; c++) if (Math.abs(t[c].value - (r + c)) > .001) return !1;
32
+ return !0;
46
33
  }
47
- function sampleStops(stops, value, interpolate) {
48
- if (value <= stops[0].value) return stops[0].color;
49
- if (value >= stops[stops.length - 1].value) return stops[stops.length - 1].color;
50
- for (let i = 1; i < stops.length; i++) {
51
- if (interpolate) {
52
- if (value <= stops[i].value) {
53
- const low = stops[i - 1];
54
- const high = stops[i];
55
- const t = (value - low.value) / Math.max(high.value - low.value, 1e-5);
56
- return [Math.round(low.color[0] + (high.color[0] - low.color[0]) * t), Math.round(low.color[1] + (high.color[1] - low.color[1]) * t), Math.round(low.color[2] + (high.color[2] - low.color[2]) * t), Math.round(low.color[3] + (high.color[3] - low.color[3]) * t)];
57
- }
58
- } else if (value < stops[i].value) {
59
- return stops[i - 1].color;
34
+ function d(t, o, u) {
35
+ if (o <= t[0].value) return t[0].color;
36
+ if (o >= t[t.length - 1].value) return t[t.length - 1].color;
37
+ for (let n = 1; n < t.length; n++) if (u) {
38
+ if (o <= t[n].value) {
39
+ const r = t[n - 1],
40
+ e = t[n],
41
+ l = (o - r.value) / Math.max(e.value - r.value, 1e-5);
42
+ return [Math.round(r.color[0] + (e.color[0] - r.color[0]) * l), Math.round(r.color[1] + (e.color[1] - r.color[1]) * l), Math.round(r.color[2] + (e.color[2] - r.color[2]) * l), Math.round(r.color[3] + (e.color[3] - r.color[3]) * l)];
60
43
  }
61
- }
62
- return stops[stops.length - 1].color;
44
+ } else if (o < t[n].value) return t[n - 1].color;
45
+ return t[t.length - 1].color;
63
46
  }
64
-
65
- /**
66
- * @param {number[]|null|undefined} colormapFlat - [v0,c0,v1,c1,...]
67
- * @param {number} lutValueMin
68
- * @param {number} lutValueMax
69
- * @param {boolean} interpolateColormap
70
- * @returns {{ bytes: Uint8Array, discreteIntegerLut: number }}
71
- */
72
- export function buildNexradLutRgba(colormapFlat, lutValueMin, lutValueMax, interpolateColormap) {
73
- const cm = Array.isArray(colormapFlat) && colormapFlat.length >= 2 ? colormapFlat : getRefc0DefaultColormap();
74
- const stops = [];
75
- if (cm && cm.length >= 2) {
76
- for (let i = 0; i < cm.length; i += 2) {
77
- const value = Number(cm[i]);
78
- const hex = String(cm[i + 1] ?? '');
79
- const [r, g, b, a] = parseHex(hex);
80
- stops.push({
81
- value,
82
- color: [r, g, b, a]
83
- });
84
- }
85
- }
86
- const out = new Uint8Array(LUT_SIZE * 4);
87
- if (stops.length === 0) {
88
- return {
89
- bytes: out,
90
- discreteIntegerLut: 0
91
- };
92
- }
93
- const discrete = shouldUseDiscreteIntegerLut(stops, lutValueMin, lutValueMax, interpolateColormap) ? 1 : 0;
94
- if (discrete) {
95
- const n = stops.length;
96
- for (let i = 0; i < LUT_SIZE; i++) {
97
- const u = (i + 0.5) / LUT_SIZE;
98
- const bin = Math.min(Math.floor(u * n), n - 1);
99
- const c = stops[bin].color;
100
- const idx = i * 4;
101
- out[idx] = c[0];
102
- out[idx + 1] = c[1];
103
- out[idx + 2] = c[2];
104
- out[idx + 3] = c[3];
47
+ export function buildNexradLutRgba(t, o, u, n) {
48
+ const r = g(t),
49
+ e = new Uint8Array(256 * 4);
50
+ if (r.length === 0) return {
51
+ bytes: e,
52
+ discreteIntegerLut: !1
53
+ };
54
+ if (b(r, o, u, n)) {
55
+ const l = r.length;
56
+ for (let c = 0; c < 256; c++) {
57
+ const i = (c + .5) / 256,
58
+ s = Math.min(Math.floor(i * l), l - 1),
59
+ a = r[s].color,
60
+ f = c * 4;
61
+ e[f] = a[0], e[f + 1] = a[1], e[f + 2] = a[2], e[f + 3] = a[3];
105
62
  }
106
63
  return {
107
- bytes: out,
108
- discreteIntegerLut: 1
64
+ bytes: e,
65
+ discreteIntegerLut: !0
109
66
  };
110
67
  }
111
- for (let i = 0; i < LUT_SIZE; i++) {
112
- const value = lutValueMin + i / (LUT_SIZE - 1) * (lutValueMax - lutValueMin);
113
- const color = sampleStops(stops, value, interpolateColormap);
114
- const idx = i * 4;
115
- out[idx] = color[0];
116
- out[idx + 1] = color[1];
117
- out[idx + 2] = color[2];
118
- out[idx + 3] = color[3];
68
+ for (let l = 0; l < 256; l++) {
69
+ const c = o + l / 255 * (u - o),
70
+ i = d(r, c, n),
71
+ s = l * 4;
72
+ e[s] = i[0], e[s + 1] = i[1], e[s + 2] = i[2], e[s + 3] = i[3];
119
73
  }
120
74
  return {
121
- bytes: out,
122
- discreteIntegerLut: 0
75
+ bytes: e,
76
+ discreteIntegerLut: !1
123
77
  };
124
78
  }
125
79
  //# sourceMappingURL=nexradLutBuild.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_COLORMAPS","LUT_SIZE","getRefc0DefaultColormap","cm","refc_0","units","dBZ","colormap","Array","isArray","length","parseHex","hex","m","String","match","s","r","g","b","a","parseInt","slice","shouldUseDiscreteIntegerLut","stops","lutValueMin","lutValueMax","interpolateColormap","lo","hi","Number","isFinite","nExp","Math","round","abs","i","value","sampleStops","interpolate","color","low","high","t","max","buildNexradLutRgba","colormapFlat","push","out","Uint8Array","bytes","discreteIntegerLut","discrete","n","u","bin","min","floor","c","idx"],"sourceRoot":"..\\..\\..\\src","sources":["nexrad/nexradLutBuild.js"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["M","h","t","o","String","trim","u","exec","n","length","parseInt","slice","g","Number","r","isFinite","e","l","c","i","push","value","color","b","Math","round","abs","d","max","buildNexradLutRgba","Uint8Array","bytes","discreteIntegerLut","s","min","floor","a","f"],"sourceRoot":"..\\..\\..\\src","sources":["nexrad/nexradLutBuild.js"],"mappings":"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","ignoreList":[]}
@@ -1,186 +1,159 @@
1
- // src/nexrad/nexradMapboxFrameOpts.ts
2
- import { clampNexradTiltForVariable as clampNexradTiltForVariable2, getDefaultRadarTilt as getDefaultRadarTilt2, getRadarTilts as getRadarTilts2 } from "@aguacerowx/javascript-sdk";
3
-
4
- // src/nexrad/nexradLevel3Products.ts
5
- import { clampNexradTiltForVariable, formatTiltForApi, getDefaultRadarTilt, getRadarTilts, isTerminalRadar } from "@aguacerowx/javascript-sdk";
6
- var NEXRAD_LEVEL3_MENU = [{
7
- radarKey: "VEL",
8
- product: "N0G",
9
- menuLabel: "Storm Relative Velocity",
10
- fldKey: "nexrad_vel",
11
- cmapPropertyKey: "nexrad_vel",
12
- decodeMode: "velocity",
13
- stormRelativeVelocity: true
14
- }, {
15
- radarKey: "KDP",
16
- product: "N0K",
17
- menuLabel: "Specific Differential Phase",
18
- fldKey: "nexrad_l3_n0k",
19
- cmapPropertyKey: "nexrad_kdp",
20
- defaultUnit: "deg/km",
21
- decodeMode: "generic_physical"
22
- }, {
23
- radarKey: "N0H",
24
- product: "N0H",
25
- menuLabel: "Hydrometeor Classification",
26
- fldKey: "nexrad_l3_n0h",
27
- cmapPropertyKey: "nexrad_l3_n0h",
28
- defaultUnit: "None",
29
- decodeMode: "categorical"
30
- }, {
31
- radarKey: "HHC",
32
- product: "HHC",
33
- menuLabel: "Hybrid Hydrometeor Classification",
34
- fldKey: "nexrad_l3_hhc",
35
- cmapPropertyKey: "nexrad_l3_hhc",
36
- defaultUnit: "None",
37
- decodeMode: "categorical"
38
- }, {
39
- radarKey: "EET",
40
- product: "EET",
41
- menuLabel: "Enhanced Echo Tops",
42
- fldKey: "nexrad_l3_eet",
43
- cmapPropertyKey: "nexrad_l3_eet",
44
- defaultUnit: "kft",
45
- decodeMode: "tops_kft"
46
- }, {
47
- radarKey: "DVL",
48
- product: "DVL",
49
- menuLabel: "Vertically Integrated Liquid",
50
- fldKey: "nexrad_l3_dvl",
51
- cmapPropertyKey: "nexrad_l3_dvl",
52
- defaultUnit: "kg/m\xB2",
53
- decodeMode: "vil"
54
- }, {
55
- radarKey: "DAA",
56
- product: "DAA",
57
- menuLabel: "1-Hour Precipitation",
58
- fldKey: "nexrad_l3_daa",
59
- cmapPropertyKey: "tp_0_1",
60
- defaultUnit: "in",
61
- decodeMode: "precip"
62
- }, {
63
- radarKey: "DU3",
64
- product: "DU3",
65
- menuLabel: "3-Hour Precipitation",
66
- fldKey: "nexrad_l3_du3",
67
- cmapPropertyKey: "tp_0_total",
68
- defaultUnit: "in",
69
- decodeMode: "precip"
70
- }, {
71
- radarKey: "DTA",
72
- product: "DTA",
73
- menuLabel: "Storm Total Precipitation",
74
- fldKey: "nexrad_l3_dta",
75
- cmapPropertyKey: "tp_0_total",
76
- defaultUnit: "in",
77
- decodeMode: "precip"
78
- }];
79
- var byRadarKey = /* @__PURE__ */new Map();
80
- for (const e of NEXRAD_LEVEL3_MENU) {
81
- byRadarKey.set(e.radarKey, e);
82
- if (e.radarKey === "DVL") byRadarKey.set("NVL", e);
1
+ import { clampNexradTiltForVariable as u, getDefaultRadarTilt as y, getRadarTilts as m } from "@aguacerowx/javascript-sdk";
2
+ import { clampNexradTiltForVariable as _, getRadarTilts as x } from "@aguacerowx/javascript-sdk";
3
+ var H = [{
4
+ radarKey: "VEL",
5
+ product: "N0G",
6
+ menuLabel: "Storm Relative Velocity",
7
+ fldKey: "nexrad_vel",
8
+ cmapPropertyKey: "nexrad_vel",
9
+ decodeMode: "velocity",
10
+ stormRelativeVelocity: !0
11
+ }, {
12
+ radarKey: "KDP",
13
+ product: "N0K",
14
+ menuLabel: "Specific Differential Phase",
15
+ fldKey: "nexrad_l3_n0k",
16
+ cmapPropertyKey: "nexrad_kdp",
17
+ defaultUnit: "deg/km",
18
+ decodeMode: "generic_physical"
19
+ }, {
20
+ radarKey: "N0H",
21
+ product: "N0H",
22
+ menuLabel: "Hydrometeor Classification",
23
+ fldKey: "nexrad_l3_n0h",
24
+ cmapPropertyKey: "nexrad_l3_n0h",
25
+ defaultUnit: "None",
26
+ decodeMode: "categorical"
27
+ }, {
28
+ radarKey: "HHC",
29
+ product: "HHC",
30
+ menuLabel: "Hybrid Hydrometeor Classification",
31
+ fldKey: "nexrad_l3_hhc",
32
+ cmapPropertyKey: "nexrad_l3_hhc",
33
+ defaultUnit: "None",
34
+ decodeMode: "categorical"
35
+ }, {
36
+ radarKey: "EET",
37
+ product: "EET",
38
+ menuLabel: "Enhanced Echo Tops",
39
+ fldKey: "nexrad_l3_eet",
40
+ cmapPropertyKey: "nexrad_l3_eet",
41
+ defaultUnit: "kft",
42
+ decodeMode: "tops_kft"
43
+ }, {
44
+ radarKey: "DVL",
45
+ product: "DVL",
46
+ menuLabel: "Vertically Integrated Liquid",
47
+ fldKey: "nexrad_l3_dvl",
48
+ cmapPropertyKey: "nexrad_l3_dvl",
49
+ defaultUnit: "kg/m\xB2",
50
+ decodeMode: "vil"
51
+ }, {
52
+ radarKey: "DAA",
53
+ product: "DAA",
54
+ menuLabel: "1-Hour Precipitation",
55
+ fldKey: "nexrad_l3_daa",
56
+ cmapPropertyKey: "tp_0_1",
57
+ defaultUnit: "in",
58
+ decodeMode: "precip"
59
+ }, {
60
+ radarKey: "DU3",
61
+ product: "DU3",
62
+ menuLabel: "3-Hour Precipitation",
63
+ fldKey: "nexrad_l3_du3",
64
+ cmapPropertyKey: "tp_0_total",
65
+ defaultUnit: "in",
66
+ decodeMode: "precip"
67
+ }, {
68
+ radarKey: "DTA",
69
+ product: "DTA",
70
+ menuLabel: "Storm Total Precipitation",
71
+ fldKey: "nexrad_l3_dta",
72
+ cmapPropertyKey: "tp_0_total",
73
+ defaultUnit: "in",
74
+ decodeMode: "precip"
75
+ }],
76
+ p = new Map();
77
+ for (const e of H) p.set(e.radarKey, e), e.radarKey === "DVL" && p.set("NVL", e);
78
+ var h = ["NXK", "NYK", "NZK", "N0K", "NAK", "N1K", "NBK", "N2K", "N3K"],
79
+ L = ["NXH", "NYH", "NZH", "N0H", "NAH", "N1H", "NBH", "N2H", "N3H"],
80
+ g = h.slice(3),
81
+ F = L.slice(3),
82
+ b = ["NXG", "NYG", "NZG", "N0G", "NAG", "N1G", "NBG", "N2G", "N3G"],
83
+ P = b.slice(3),
84
+ M = g.length;
85
+ function D(e) {
86
+ return x(e, "VEL").slice(0, M);
83
87
  }
84
- var NEXRAD_LEVEL3_KDP_PRODUCTS = ["NXK", "NYK", "NZK", "N0K", "NAK", "N1K", "NBK", "N2K", "N3K"];
85
- var NEXRAD_LEVEL3_DHC_PRODUCTS = ["NXH", "NYH", "NZH", "N0H", "NAH", "N1H", "NBH", "N2H", "N3H"];
86
- var NEXRAD_LEVEL3_KDP_PRODUCTS_FOR_MANIFEST = NEXRAD_LEVEL3_KDP_PRODUCTS.slice(3);
87
- var NEXRAD_LEVEL3_DHC_PRODUCTS_FOR_MANIFEST = NEXRAD_LEVEL3_DHC_PRODUCTS.slice(3);
88
- var NEXRAD_LEVEL3_VELOCITY_PRODUCTS = ["NXG", "NYG", "NZG", "N0G", "NAG", "N1G", "NBG", "N2G", "N3G"];
89
- var NEXRAD_LEVEL3_VELOCITY_PRODUCTS_FOR_MANIFEST = NEXRAD_LEVEL3_VELOCITY_PRODUCTS.slice(3);
90
- var NEXRAD_LEVEL3_MANIFEST_TILT_COUNT = NEXRAD_LEVEL3_KDP_PRODUCTS_FOR_MANIFEST.length;
91
- function getNexradLevel3RadarTiltsForVelocity(siteId) {
92
- return getRadarTilts(siteId, "VEL").slice(0, NEXRAD_LEVEL3_MANIFEST_TILT_COUNT);
88
+ function T(e, r) {
89
+ const t = P,
90
+ a = D(e);
91
+ if (!a.length) return t[0];
92
+ const n = _(e, "VEL", r);
93
+ let o = a.indexOf(n);
94
+ return o === -1 && (o = a.reduce((d, l, i) => Math.abs(l - n) < Math.abs(a[d] - n) ? i : d, 0)), o = Math.min(o, t.length - 1), t[o];
93
95
  }
94
- function nexradLevel3S3VelocityProductForSiteTilt(siteId, tilt) {
95
- const products = NEXRAD_LEVEL3_VELOCITY_PRODUCTS_FOR_MANIFEST;
96
- const tilts = getNexradLevel3RadarTiltsForVelocity(siteId);
97
- if (!tilts.length) {
98
- return products[0];
96
+ var K = ["N0K", "NAK", "N1K", "NBK", "N2K", "N3K"],
97
+ v = ["N0H", "NAH", "N1H", "NBH", "N2H", "N3H"],
98
+ U = K.length;
99
+ function V(e, r) {
100
+ if (!e.length) return r;
101
+ let t = e[0],
102
+ a = Math.abs(t - r);
103
+ for (let n = 1; n < e.length; n++) {
104
+ const o = e[n],
105
+ d = Math.abs(o - r);
106
+ (d < a || d === a && o < t) && (t = o, a = d);
99
107
  }
100
- const clamped = clampNexradTiltForVariable(siteId, "VEL", tilt);
101
- let idx = tilts.indexOf(clamped);
102
- if (idx === -1) {
103
- idx = tilts.reduce((bestI, t, i) => Math.abs(t - clamped) < Math.abs(tilts[bestI] - clamped) ? i : bestI, 0);
104
- }
105
- idx = Math.min(idx, products.length - 1);
106
- return products[idx];
107
- }
108
-
109
- // src/nexrad/nexradMapboxFrameOpts.ts
110
- var NEXRAD_LEVEL3_KDP_PRODUCTS_FOR_MANIFEST2 = ["N0K", "NAK", "N1K", "NBK", "N2K", "N3K"];
111
- var NEXRAD_LEVEL3_DHC_PRODUCTS_FOR_MANIFEST2 = ["N0H", "NAH", "N1H", "NBH", "N2H", "N3H"];
112
- var NEXRAD_LEVEL3_MANIFEST_TILT_COUNT2 = NEXRAD_LEVEL3_KDP_PRODUCTS_FOR_MANIFEST2.length;
113
- function nearestTiltInSortedList(tilts, target) {
114
- if (!tilts.length) return target;
115
- let best = tilts[0];
116
- let bestD = Math.abs(best - target);
117
- for (let i = 1; i < tilts.length; i++) {
118
- const t = tilts[i];
119
- const d = Math.abs(t - target);
120
- if (d < bestD || d === bestD && t < best) {
121
- best = t;
122
- bestD = d;
123
- }
124
- }
125
- return best;
108
+ return t;
126
109
  }
127
- function getNexradLevel3RadarTilts(siteId, radarVariable) {
128
- return getRadarTilts2(siteId, radarVariable).slice(0, NEXRAD_LEVEL3_MANIFEST_TILT_COUNT2);
110
+ function N(e, r) {
111
+ return m(e, r).slice(0, U);
129
112
  }
130
- function nexradLevel3UsesTiltIndexedS3Products(radarVariable) {
131
- const v = radarVariable || "";
132
- return v === "KDP" || v === "N0H";
113
+ function c(e) {
114
+ const r = e || "";
115
+ return r === "KDP" || r === "N0H";
133
116
  }
134
- function clampTiltForLevel3CompositeKey(siteId, radarVariable, tilt) {
135
- if (!nexradLevel3UsesTiltIndexedS3Products(radarVariable)) {
136
- return clampNexradTiltForVariable2(siteId, radarVariable, tilt);
137
- }
138
- const tilts = getNexradLevel3RadarTilts(siteId, radarVariable);
139
- const c = clampNexradTiltForVariable2(siteId, radarVariable, tilt);
140
- if (!tilts.length) return c;
141
- return nearestTiltInSortedList(tilts, c);
117
+ function A(e, r, t) {
118
+ if (!c(r)) return u(e, r, t);
119
+ const a = N(e, r),
120
+ n = u(e, r, t);
121
+ return a.length ? V(a, n) : n;
142
122
  }
143
- function nexradLevel3S3ProductForSiteTilt(siteId, radarVariable, tilt) {
144
- const products = radarVariable === "KDP" ? NEXRAD_LEVEL3_KDP_PRODUCTS_FOR_MANIFEST2 : NEXRAD_LEVEL3_DHC_PRODUCTS_FOR_MANIFEST2;
145
- const tilts = getNexradLevel3RadarTilts(siteId, radarVariable);
146
- if (!tilts.length) {
147
- return products[0];
148
- }
149
- const clamped = clampTiltForLevel3CompositeKey(siteId, radarVariable, tilt);
150
- let idx = tilts.indexOf(clamped);
151
- if (idx === -1) {
152
- idx = tilts.reduce((bestI, t, i) => Math.abs(t - clamped) < Math.abs(tilts[bestI] - clamped) ? i : bestI, 0);
153
- }
154
- idx = Math.min(idx, products.length - 1);
155
- return products[idx];
123
+ function s(e, r, t) {
124
+ const a = r === "KDP" ? K : v,
125
+ n = N(e, r);
126
+ if (!n.length) return a[0];
127
+ const o = A(e, r, t);
128
+ let d = n.indexOf(o);
129
+ return d === -1 && (d = n.reduce((l, i, f) => Math.abs(i - o) < Math.abs(n[l] - o) ? f : l, 0)), d = Math.min(d, a.length - 1), a[d];
156
130
  }
157
- function mapboxFrameUploadOptionsForNexradState(state) {
158
- if (!state) return {
131
+ function E(e) {
132
+ if (!e) return {
159
133
  geometryLayoutKey: "canonical"
160
134
  };
161
- if (state.nexradDataSource !== "level3") return {
135
+ if (e.nexradDataSource !== "level3") return {
162
136
  geometryLayoutKey: "canonical"
163
137
  };
164
- const site = state.nexradSite;
165
- const radarVar = (state.nexradProduct || "REF").toUpperCase();
166
- if (nexradLevel3UsesTiltIndexedS3Products(radarVar) && site) {
167
- const tilt = Number.isFinite(state.nexradTilt) ? Number(state.nexradTilt) : getDefaultRadarTilt2(site);
168
- const kind = radarVar === "KDP" ? "KDP" : "N0H";
169
- const mnemonic = nexradLevel3S3ProductForSiteTilt(site, kind, tilt);
138
+ const r = e.nexradSite,
139
+ t = (e.nexradProduct || "REF").toUpperCase();
140
+ if (c(t) && r) {
141
+ const a = Number.isFinite(e.nexradTilt) ? Number(e.nexradTilt) : y(r),
142
+ n = s(r, t === "KDP" ? "KDP" : "N0H", a);
170
143
  return {
171
- geometryLayoutKey: `${site}|${radarVar}|${mnemonic}`
144
+ geometryLayoutKey: `${r}|${t}|${n}`
172
145
  };
173
146
  }
174
- if (radarVar === "VEL" && site) {
175
- const tilt = Number.isFinite(state.nexradTilt) ? Number(state.nexradTilt) : getDefaultRadarTilt2(site);
176
- const mnemonic = nexradLevel3S3VelocityProductForSiteTilt(site, tilt);
147
+ if (t === "VEL" && r) {
148
+ const a = Number.isFinite(e.nexradTilt) ? Number(e.nexradTilt) : y(r),
149
+ n = T(r, a);
177
150
  return {
178
- geometryLayoutKey: `${site}|${radarVar}|${mnemonic}`
151
+ geometryLayoutKey: `${r}|${t}|${n}`
179
152
  };
180
153
  }
181
154
  return {
182
155
  geometryLayoutKey: "canonical"
183
156
  };
184
157
  }
185
- export { mapboxFrameUploadOptionsForNexradState, nexradLevel3S3ProductForSiteTilt, nexradLevel3UsesTiltIndexedS3Products };
158
+ export { E as mapboxFrameUploadOptionsForNexradState, s as nexradLevel3S3ProductForSiteTilt, c as nexradLevel3UsesTiltIndexedS3Products };
186
159
  //# sourceMappingURL=nexradMapboxFrameOpts.bundled.js.map