@nasa-terra/components 0.0.107 → 0.0.109

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 (548) hide show
  1. package/cdn/assets/data-access/download_files.py.txt +204 -0
  2. package/cdn/chunks/{chunk.CLNFE32U.js → chunk.3RVUTYH4.js} +1 -1
  3. package/cdn/chunks/{chunk.Y3BKT4GE.js → chunk.3Y6CUS3R.js} +1 -1
  4. package/cdn/chunks/{chunk.UQPG6VRH.js → chunk.4IOEKI2P.js} +1 -1
  5. package/cdn/chunks/chunk.4Q56BB6I.js +77 -0
  6. package/cdn/chunks/{chunk.TTKHEE2N.js → chunk.4ZSHIBMI.js} +1 -1
  7. package/cdn/chunks/{chunk.7B2K4OIZ.js → chunk.5FUN6F7Y.js} +1 -1
  8. package/cdn/chunks/{chunk.RSA5EY6Z.js → chunk.5IF36BN5.js} +1 -1
  9. package/cdn/chunks/chunk.5P2CYWIJ.js +55882 -0
  10. package/cdn/chunks/{chunk.B22Q2XEQ.js → chunk.5TH676QW.js} +1 -1
  11. package/cdn/chunks/{chunk.ISLR3X2Y.js → chunk.5UREWLES.js} +9 -33
  12. package/cdn/chunks/{chunk.UGTDMW23.js → chunk.67ZWVFY3.js} +16 -15
  13. package/cdn/chunks/{chunk.LB7XLHJ2.js → chunk.6BCAIZ5H.js} +1 -1
  14. package/cdn/chunks/{chunk.VWNRAOKX.js → chunk.6GWPE22I.js} +4 -4
  15. package/cdn/chunks/chunk.6KJ56SFL.js +186 -0
  16. package/cdn/chunks/{chunk.ITQWEDLQ.js → chunk.6SEMGF6B.js} +52 -45
  17. package/cdn/chunks/{chunk.XBSXVUTS.js → chunk.7A6NO75T.js} +5 -5
  18. package/cdn/chunks/{chunk.GVVLBUHE.js → chunk.7OXFGIR4.js} +1 -1
  19. package/cdn/chunks/{chunk.NW7JJHSN.js → chunk.AHJ3DUHR.js} +1 -1
  20. package/cdn/chunks/chunk.AKB2SQKJ.js +1373 -0
  21. package/cdn/chunks/{chunk.LGM7OPNT.js → chunk.AMHR4MGP.js} +1 -1
  22. package/cdn/chunks/{chunk.JTEYVEMK.js → chunk.B6222LBB.js} +1 -1
  23. package/cdn/chunks/{chunk.UATCIRCQ.js → chunk.B6JDR25L.js} +15 -15
  24. package/cdn/chunks/{chunk.66SMZ5FO.js → chunk.BWBH27LQ.js} +1 -1
  25. package/cdn/chunks/{chunk.NARPRG6A.js → chunk.C2B4QOG2.js} +1 -1
  26. package/cdn/chunks/{chunk.B55LOK23.js → chunk.CEZ44GCY.js} +1 -1
  27. package/cdn/chunks/{chunk.4CPVPWFD.js → chunk.COKKJ7HM.js} +1 -1
  28. package/cdn/chunks/{chunk.F5HVRR67.js → chunk.D3RC7JQX.js} +1 -1
  29. package/cdn/chunks/{chunk.NLEVWBY3.js → chunk.D5RVLVGT.js} +1 -1
  30. package/cdn/chunks/chunk.DBYG4VUT.js +192 -0
  31. package/cdn/chunks/{chunk.ZCTH5HUD.js → chunk.DDSIC4RK.js} +9 -12
  32. package/cdn/chunks/chunk.DJJZVLQV.js +85 -0
  33. package/cdn/chunks/{chunk.KJF74B5J.js → chunk.E2AJOKRZ.js} +4 -4
  34. package/cdn/chunks/{chunk.I2WOAHGS.js → chunk.E74MX4OO.js} +1 -1
  35. package/cdn/chunks/{chunk.SZX7RPJI.js → chunk.ECVHZJPM.js} +17 -15
  36. package/cdn/chunks/{chunk.WNRKHJWG.js → chunk.EF5LM7CJ.js} +43 -1
  37. package/cdn/chunks/{chunk.XPKQBL5B.js → chunk.EMPUPFDZ.js} +1 -1
  38. package/cdn/chunks/chunk.EOF7UX34.js +254 -0
  39. package/cdn/chunks/{chunk.Z4WJD2NW.js → chunk.FCLNX2EO.js} +44 -4
  40. package/cdn/chunks/{chunk.AA44POXJ.js → chunk.FTUQFNWL.js} +1 -1
  41. package/cdn/chunks/chunk.G2K67EIQ.js +19 -0
  42. package/cdn/chunks/{chunk.MDBWLNHM.js → chunk.G5H7GE33.js} +1 -1
  43. package/cdn/chunks/chunk.GCP5LF6C.js +401 -0
  44. package/cdn/chunks/{chunk.UG4MMICI.js → chunk.GGCARDAM.js} +38 -218
  45. package/cdn/chunks/{chunk.YN3H4E7G.js → chunk.GRTI7Z2X.js} +1 -1
  46. package/cdn/chunks/{chunk.RFTMFRCG.js → chunk.H3B3XS47.js} +1 -1
  47. package/cdn/chunks/{chunk.6522DLH6.js → chunk.H5IKDVHP.js} +1 -1
  48. package/cdn/chunks/{chunk.FEW4BOU6.js → chunk.HAJI335E.js} +1 -1
  49. package/cdn/chunks/{chunk.DBIIVRVV.js → chunk.HIUXWKRL.js} +1 -1
  50. package/cdn/chunks/{chunk.3UDAMFQQ.js → chunk.HIZDDWHW.js} +5 -3
  51. package/cdn/chunks/{chunk.BIXJBTOE.js → chunk.HQNP2KSY.js} +1 -1
  52. package/cdn/chunks/{chunk.NYHXVC5G.js → chunk.HU2BPO25.js} +3 -1
  53. package/cdn/chunks/{chunk.QJAY4ACM.js → chunk.HYOAXHTG.js} +1 -1
  54. package/cdn/chunks/{chunk.PWHCCDP6.js → chunk.IJ7YZ5I4.js} +1 -1
  55. package/cdn/chunks/{chunk.WAYZ7GRD.js → chunk.INU2YWW5.js} +1 -1
  56. package/cdn/chunks/{chunk.AJHI2APW.js → chunk.IS3KODMM.js} +11 -11
  57. package/cdn/chunks/{chunk.2QUWBFNV.js → chunk.JBTWQZ6F.js} +1 -21
  58. package/cdn/chunks/{chunk.UIC3QSBA.js → chunk.JJDWIH67.js} +1 -1
  59. package/cdn/chunks/{chunk.AY2URS27.js → chunk.JW7QSDAF.js} +463 -463
  60. package/cdn/chunks/{chunk.RVECZHKV.js → chunk.JWDHB224.js} +1 -1
  61. package/cdn/chunks/{chunk.24PX6VVB.js → chunk.K2G44Z2F.js} +10 -10
  62. package/cdn/chunks/{chunk.2UXMVWJY.js → chunk.KH3K4IPG.js} +1 -1
  63. package/cdn/chunks/chunk.KHU4VS56.js +19 -0
  64. package/cdn/chunks/{chunk.AHTFPHXY.js → chunk.KL3J4W22.js} +1 -1
  65. package/cdn/chunks/{chunk.NCWDKVFS.js → chunk.KVZQT4TD.js} +1 -1
  66. package/cdn/chunks/{chunk.EBJ4Y3ZY.js → chunk.KXZQG4GG.js} +1 -1
  67. package/cdn/chunks/{chunk.VBPR2GDC.js → chunk.L3USGNVD.js} +3 -3
  68. package/cdn/chunks/{chunk.AOKPZMO2.js → chunk.LKRS4CAN.js} +1 -1
  69. package/cdn/chunks/{chunk.RFMO6XCI.js → chunk.LOW6SKZI.js} +1 -1
  70. package/cdn/chunks/{chunk.Z76Z3SSD.js → chunk.MTWOB4SN.js} +4 -4
  71. package/cdn/chunks/{chunk.L6L43FNI.js → chunk.N3MG5AIE.js} +23 -14
  72. package/cdn/chunks/{chunk.IWSQ544B.js → chunk.O5CSY37A.js} +1 -1
  73. package/cdn/chunks/{chunk.QSPDPBP6.js → chunk.OCWEL5EY.js} +1 -1
  74. package/cdn/chunks/{chunk.YWHRP6GS.js → chunk.OQ45AXW5.js} +1 -1
  75. package/cdn/chunks/{chunk.TR7WGBZ4.js → chunk.PBE7PBVG.js} +14417 -14453
  76. package/cdn/chunks/chunk.PF7QH2DU.js +29 -0
  77. package/cdn/chunks/chunk.PGYVQFUC.js +198 -0
  78. package/cdn/chunks/{chunk.4G7722WS.js → chunk.PHA5SLGB.js} +1 -1
  79. package/cdn/chunks/{chunk.KRJK4P6L.js → chunk.PJTE3M6L.js} +1 -1
  80. package/cdn/chunks/{chunk.Y6MYSGG5.js → chunk.PMUXTRK7.js} +105 -53
  81. package/cdn/chunks/chunk.POY6ESUV.js +341 -0
  82. package/cdn/chunks/{chunk.CARE3PQT.js → chunk.PZY3E3DL.js} +1 -1
  83. package/cdn/chunks/{chunk.XV4TKJTB.js → chunk.QIHK2ETX.js} +1 -1
  84. package/cdn/chunks/{chunk.RB66VHTT.js → chunk.QNP3XW45.js} +1 -1
  85. package/cdn/chunks/{chunk.R2COQNKX.js → chunk.QW3BSXJD.js} +4 -4
  86. package/cdn/chunks/chunk.R5RMXQQB.js +19 -0
  87. package/cdn/chunks/{chunk.SKYRG5K4.js → chunk.RH6MKZOT.js} +4 -4
  88. package/cdn/chunks/{chunk.WGW33LYK.js → chunk.RIFRVSDP.js} +1 -1
  89. package/cdn/chunks/{chunk.E2Y4JI5T.js → chunk.RZ6JWWRE.js} +25 -23
  90. package/cdn/chunks/{chunk.RL7ASETS.js → chunk.SM24YZG6.js} +1 -1
  91. package/cdn/chunks/{chunk.7W4N2TTY.js → chunk.SP5PM52D.js} +1 -1
  92. package/cdn/chunks/{chunk.MQOX3MET.js → chunk.SPQDE22Y.js} +257 -110
  93. package/cdn/chunks/{chunk.G7BMUF2H.js → chunk.SUHGUAJT.js} +1 -1
  94. package/cdn/chunks/{chunk.NNAYEU6F.js → chunk.TQACULNH.js} +13 -13
  95. package/cdn/chunks/{chunk.7BCN7XYL.js → chunk.UBR4LNOH.js} +1 -1
  96. package/cdn/chunks/chunk.UDC3RNT3.js +29 -0
  97. package/cdn/chunks/chunk.ULWZSOMI.js +66 -0
  98. package/cdn/chunks/{chunk.JIV6YZNC.js → chunk.UNT2HSBI.js} +1 -1
  99. package/cdn/chunks/{chunk.UJRVLZTU.js → chunk.UQEMKKQV.js} +1 -1
  100. package/cdn/chunks/{chunk.OVQQUA2A.js → chunk.UVIJI2KE.js} +1 -1
  101. package/cdn/chunks/chunk.V6GUDCWA.js +85 -0
  102. package/cdn/chunks/{chunk.ZN6E5G62.js → chunk.VE7U5TBK.js} +1 -1
  103. package/cdn/chunks/{chunk.WJGR4QS5.js → chunk.VOIHASPR.js} +6 -6
  104. package/cdn/chunks/chunk.VORUIAGH.js +32 -0
  105. package/cdn/chunks/{chunk.CQUNRYV3.js → chunk.WHK7RCEW.js} +1 -1
  106. package/cdn/chunks/{chunk.L7OPWG3I.js → chunk.XERP5BC7.js} +1 -1
  107. package/cdn/chunks/{chunk.WDGNRNZG.js → chunk.XFQXFC3N.js} +5 -5
  108. package/cdn/chunks/chunk.XTOXUDHM.js +214 -0
  109. package/cdn/chunks/{chunk.PCG3QMHU.js → chunk.Y5W5KIZU.js} +1 -1
  110. package/cdn/chunks/{chunk.H4CLIUFZ.js → chunk.YB7R6T27.js} +78 -0
  111. package/cdn/chunks/{chunk.MOFTPQZT.js → chunk.YIU7LYSK.js} +7 -7
  112. package/cdn/chunks/chunk.YMM5AKGU.js +35 -0
  113. package/cdn/chunks/{chunk.O2MFSAE3.js → chunk.YY2VAXXO.js} +72 -7
  114. package/cdn/chunks/chunk.YYUTMN3B.js +597 -0
  115. package/cdn/chunks/{chunk.BLPK2GAC.js → chunk.YZDS3HXV.js} +5 -5
  116. package/cdn/chunks/{chunk.V6SLTWH2.js → chunk.ZBUFEWGG.js} +1 -1
  117. package/cdn/chunks/{chunk.R3KFGXL2.js → chunk.ZFHL277N.js} +1 -1
  118. package/cdn/chunks/chunk.ZNX2OKQP.js +522 -0
  119. package/cdn/chunks/{chunk.7EOJVAHY.js → chunk.ZZ2HFAQL.js} +1 -1
  120. package/cdn/components/accordion/accordion.component.js +8 -8
  121. package/cdn/components/accordion/accordion.js +9 -9
  122. package/cdn/components/alert/alert.component.js +5 -5
  123. package/cdn/components/alert/alert.js +6 -6
  124. package/cdn/components/browse-variables/browse-variables.component.js +29 -29
  125. package/cdn/components/browse-variables/browse-variables.controller.js +5 -5
  126. package/cdn/components/browse-variables/browse-variables.js +30 -30
  127. package/cdn/components/button/button.component.js +6 -5
  128. package/cdn/components/button/button.js +7 -6
  129. package/cdn/components/chip/chip.component.js +4 -4
  130. package/cdn/components/chip/chip.js +5 -5
  131. package/cdn/components/combobox/combobox.component.js +10 -10
  132. package/cdn/components/combobox/combobox.js +11 -11
  133. package/cdn/components/data-access/data-access.component.css +6801 -0
  134. package/cdn/components/data-access/data-access.component.d.ts +58 -0
  135. package/cdn/components/data-access/data-access.component.js +59 -0
  136. package/cdn/components/data-access/data-access.controller.d.ts +41 -0
  137. package/cdn/components/data-access/data-access.controller.js +13 -0
  138. package/cdn/components/data-access/data-access.css +6801 -0
  139. package/cdn/components/data-access/data-access.d.ts +8 -0
  140. package/cdn/components/data-access/data-access.js +60 -0
  141. package/cdn/components/data-access/data-access.styles.css +6801 -0
  142. package/cdn/components/data-access/data-access.styles.d.ts +4 -0
  143. package/cdn/components/data-access/data-access.styles.js +9 -0
  144. package/cdn/components/data-access/notebooks/data-access-notebook.d.ts +20 -0
  145. package/cdn/components/data-access/notebooks/data-access-notebook.js +81 -0
  146. package/cdn/components/data-rods/data-rods.component.js +55 -49
  147. package/cdn/components/data-rods/data-rods.js +56 -50
  148. package/cdn/components/data-subsetter/data-subsetter.component.css +6801 -0
  149. package/cdn/components/data-subsetter/data-subsetter.component.d.ts +6 -1
  150. package/cdn/components/data-subsetter/data-subsetter.component.js +51 -39
  151. package/cdn/components/data-subsetter/data-subsetter.controller.js +6 -6
  152. package/cdn/components/data-subsetter/data-subsetter.css +6801 -0
  153. package/cdn/components/data-subsetter/data-subsetter.js +52 -40
  154. package/cdn/components/data-subsetter/data-subsetter.styles.js +1 -1
  155. package/cdn/components/data-subsetter/notebooks/subsetter-notebook.js +1 -1
  156. package/cdn/components/data-subsetter-history/data-subsetter-history.component.css +6801 -0
  157. package/cdn/components/data-subsetter-history/data-subsetter-history.component.js +54 -42
  158. package/cdn/components/data-subsetter-history/data-subsetter-history.controller.js +3 -3
  159. package/cdn/components/data-subsetter-history/data-subsetter-history.css +6801 -0
  160. package/cdn/components/data-subsetter-history/data-subsetter-history.js +55 -43
  161. package/cdn/components/date-picker/date-picker.component.d.ts +91 -21
  162. package/cdn/components/date-picker/date-picker.component.js +12 -7
  163. package/cdn/components/date-picker/date-picker.js +13 -8
  164. package/cdn/components/date-picker/date-picker.styles.js +1 -1
  165. package/cdn/components/date-range-slider/date-range-slider.component.js +7 -6
  166. package/cdn/components/date-range-slider/date-range-slider.js +8 -7
  167. package/cdn/components/dialog/dialog.component.js +4 -4
  168. package/cdn/components/dialog/dialog.js +5 -5
  169. package/cdn/components/icon/icon.component.js +6 -6
  170. package/cdn/components/icon/icon.js +7 -7
  171. package/cdn/components/input/input.component.d.ts +58 -0
  172. package/cdn/components/input/input.component.js +19 -0
  173. package/cdn/components/input/input.d.ts +8 -0
  174. package/cdn/components/input/input.js +20 -0
  175. package/cdn/components/input/input.styles.d.ts +2 -0
  176. package/cdn/components/input/input.styles.js +9 -0
  177. package/cdn/components/loader/loader.component.js +4 -4
  178. package/cdn/components/loader/loader.js +5 -5
  179. package/cdn/components/login/login.component.js +19 -18
  180. package/cdn/components/login/login.js +20 -19
  181. package/cdn/components/map/leaflet-utils.d.ts +2 -1
  182. package/cdn/components/map/leaflet-utils.js +3 -3
  183. package/cdn/components/map/map.component.js +10 -10
  184. package/cdn/components/map/map.controller.js +3 -3
  185. package/cdn/components/map/map.js +11 -11
  186. package/cdn/components/plot/plot.component.d.ts +4 -0
  187. package/cdn/components/plot/plot.component.js +4 -4
  188. package/cdn/components/plot/plot.js +5 -5
  189. package/cdn/components/plot-toolbar/notebooks/time-averaged-map-notebook.js +1 -1
  190. package/cdn/components/plot-toolbar/notebooks/time-series-notebook.js +1 -1
  191. package/cdn/components/plot-toolbar/plot-toolbar.component.js +27 -26
  192. package/cdn/components/plot-toolbar/plot-toolbar.controller.js +4 -4
  193. package/cdn/components/plot-toolbar/plot-toolbar.js +28 -27
  194. package/cdn/components/skeleton/skeleton.component.d.ts +0 -4
  195. package/cdn/components/skeleton/skeleton.component.js +5 -13
  196. package/cdn/components/skeleton/skeleton.js +6 -14
  197. package/cdn/components/skeleton/skeleton.styles.js +1 -1
  198. package/cdn/components/slider/slider.component.d.ts +107 -0
  199. package/cdn/components/slider/slider.component.js +16 -0
  200. package/cdn/components/slider/slider.d.ts +8 -0
  201. package/cdn/components/slider/slider.js +17 -0
  202. package/cdn/components/slider/slider.styles.d.ts +2 -0
  203. package/cdn/components/slider/slider.styles.js +9 -0
  204. package/cdn/components/spatial-picker/spatial-picker.component.d.ts +8 -1
  205. package/cdn/components/spatial-picker/spatial-picker.component.js +17 -12
  206. package/cdn/components/spatial-picker/spatial-picker.js +18 -13
  207. package/cdn/components/spatial-picker/spatial-picker.styles.js +1 -1
  208. package/cdn/components/time-average-map/time-average-map.component.js +34 -32
  209. package/cdn/components/time-average-map/time-average-map.controller.js +4 -4
  210. package/cdn/components/time-average-map/time-average-map.js +35 -33
  211. package/cdn/components/time-series/time-series.component.js +37 -35
  212. package/cdn/components/time-series/time-series.controller.js +4 -4
  213. package/cdn/components/time-series/time-series.js +38 -36
  214. package/cdn/components/variable-combobox/lib.js +3 -3
  215. package/cdn/components/variable-combobox/variable-combobox.component.js +22 -21
  216. package/cdn/components/variable-combobox/variable-combobox.controller.js +5 -5
  217. package/cdn/components/variable-combobox/variable-combobox.js +23 -22
  218. package/cdn/components/variable-keyword-search/variable-keyword-search.component.js +23 -22
  219. package/cdn/components/variable-keyword-search/variable-keyword-search.controller.js +5 -5
  220. package/cdn/components/variable-keyword-search/variable-keyword-search.js +24 -23
  221. package/cdn/custom-elements.json +5733 -3796
  222. package/cdn/data-services/types.d.ts +2 -0
  223. package/cdn/events/events.d.ts +4 -0
  224. package/cdn/events/terra-blur.d.ts +6 -0
  225. package/cdn/events/terra-focus.d.ts +6 -0
  226. package/cdn/events/terra-input.d.ts +6 -0
  227. package/cdn/events/terra-slider-change.d.ts +11 -0
  228. package/cdn/internal/terra-element.d.ts +9 -0
  229. package/cdn/metadata-catalog/cmr-catalog.d.ts +5 -1
  230. package/cdn/metadata-catalog/queries.d.ts +1 -0
  231. package/cdn/metadata-catalog/types.d.ts +74 -0
  232. package/cdn/metadata-catalog/utilities.d.ts +9 -1
  233. package/cdn/react/accordion/index.js +9 -9
  234. package/cdn/react/alert/index.js +6 -6
  235. package/cdn/react/browse-variables/index.js +30 -30
  236. package/cdn/react/button/index.js +7 -6
  237. package/cdn/react/chip/index.js +5 -5
  238. package/cdn/react/combobox/index.js +11 -11
  239. package/cdn/react/data-access/index.css +6801 -0
  240. package/cdn/react/data-access/index.d.ts +18 -0
  241. package/cdn/react/data-access/index.js +60 -0
  242. package/cdn/react/data-rods/index.js +56 -50
  243. package/cdn/react/data-subsetter/index.css +6801 -0
  244. package/cdn/react/data-subsetter/index.js +52 -40
  245. package/cdn/react/data-subsetter-history/index.css +6801 -0
  246. package/cdn/react/data-subsetter-history/index.js +55 -43
  247. package/cdn/react/date-picker/index.d.ts +3 -1
  248. package/cdn/react/date-picker/index.js +13 -8
  249. package/cdn/react/date-range-slider/index.js +8 -7
  250. package/cdn/react/dialog/index.js +5 -5
  251. package/cdn/react/icon/index.js +7 -7
  252. package/cdn/react/index.css +6801 -0
  253. package/cdn/react/index.d.ts +9 -6
  254. package/cdn/react/index.js +146 -124
  255. package/cdn/react/input/index.d.ts +36 -0
  256. package/cdn/react/input/index.js +20 -0
  257. package/cdn/react/loader/index.js +5 -5
  258. package/cdn/react/login/index.js +20 -19
  259. package/cdn/react/map/index.js +11 -11
  260. package/cdn/react/plot/index.js +5 -5
  261. package/cdn/react/plot-toolbar/index.js +28 -27
  262. package/cdn/react/skeleton/index.js +6 -14
  263. package/cdn/react/slider/index.d.ts +3 -0
  264. package/cdn/react/slider/index.js +17 -0
  265. package/cdn/react/spatial-picker/index.js +18 -13
  266. package/cdn/react/time-average-map/index.js +35 -33
  267. package/cdn/react/time-series/index.js +38 -36
  268. package/cdn/react/variable-combobox/index.js +23 -22
  269. package/cdn/react/variable-keyword-search/index.js +24 -23
  270. package/cdn/terra-ui-components.css +6801 -0
  271. package/cdn/terra-ui-components.d.ts +3 -0
  272. package/cdn/terra-ui-components.js +145 -123
  273. package/cdn/themes/horizon.css +2 -2
  274. package/cdn/themes/horizon.styles.js +2 -2
  275. package/cdn/types/vue/index.d.ts +395 -201
  276. package/cdn/utilities/animation.js +7 -6
  277. package/cdn/vscode.html-custom-data.json +416 -266
  278. package/cdn/web-types.json +929 -594
  279. package/dist/assets/data-access/download_files.py.txt +204 -0
  280. package/dist/chunks/{chunk.FO3SMAQX.js → chunk.2MAH3RS5.js} +1 -1
  281. package/dist/chunks/{chunk.RRBBZBVU.js → chunk.2OLOAIUQ.js} +1 -1
  282. package/dist/chunks/chunk.33GLUR4S.js +11 -0
  283. package/dist/chunks/{chunk.TJOSCD3S.js → chunk.3DT43DOY.js} +1 -1
  284. package/dist/chunks/{chunk.XJZO5H2M.js → chunk.3S2XLMFC.js} +1 -1
  285. package/dist/chunks/{chunk.AI3MEP5B.js → chunk.3ZJ4KD64.js} +1 -1
  286. package/dist/chunks/{chunk.KCBAI3FB.js → chunk.55CZJZYH.js} +1 -1
  287. package/dist/chunks/{chunk.6CZYD3ML.js → chunk.55RKNGL5.js} +1 -1
  288. package/dist/chunks/{chunk.YWA7YBWM.js → chunk.65D3XPR3.js} +1 -1
  289. package/dist/chunks/{chunk.CQKGFVBT.js → chunk.6AVCMCYO.js} +1 -1
  290. package/dist/chunks/{chunk.XXZW2WN3.js → chunk.6Z2QXXCV.js} +1 -1
  291. package/dist/chunks/{chunk.GD6YXG7E.js → chunk.7HLWU7TX.js} +1 -1
  292. package/dist/chunks/{chunk.BEXC674K.js → chunk.7YXQE6PE.js} +7 -1
  293. package/dist/chunks/{chunk.BKAE55DO.js → chunk.AOX2R6VV.js} +1 -1
  294. package/dist/chunks/chunk.AV63MZ7W.js +11 -0
  295. package/dist/chunks/{chunk.ZOS3WRQK.js → chunk.AWMMSTPY.js} +1 -1
  296. package/dist/chunks/chunk.AXHBEA3B.js +21 -0
  297. package/dist/chunks/{chunk.KHGP3ICJ.js → chunk.B3R7BNNG.js} +1 -1
  298. package/dist/chunks/{chunk.KCUL4NNR.js → chunk.BAOWTLBS.js} +1 -1
  299. package/dist/chunks/{chunk.6VWWN3HM.js → chunk.BD2Y7YXC.js} +1 -1
  300. package/dist/chunks/{chunk.BCB6AFAO.js → chunk.BN5PJLUH.js} +14 -13
  301. package/dist/chunks/{chunk.LBF4CVRG.js → chunk.C7KOKFDY.js} +1 -1
  302. package/dist/chunks/{chunk.X2UNXIJ4.js → chunk.CERMDF55.js} +42 -0
  303. package/dist/chunks/chunk.CGVPVXTX.js +76 -0
  304. package/dist/chunks/{chunk.MGH3IHLS.js → chunk.CV4AUWY4.js} +1 -1
  305. package/dist/chunks/chunk.CWQ4PIAE.js +74 -0
  306. package/dist/chunks/{chunk.RSBTDP6D.js → chunk.DLQCAQON.js} +1 -1
  307. package/dist/chunks/chunk.DWL434TH.js +11 -0
  308. package/dist/chunks/chunk.ENVNZF6N.js +241 -0
  309. package/dist/chunks/{chunk.NRO5RC6F.js → chunk.EUNIHYQH.js} +1 -1
  310. package/dist/chunks/{chunk.LQ6HETRL.js → chunk.EY2WGN47.js} +4 -4
  311. package/dist/chunks/chunk.EZU4DLFO.js +67 -0
  312. package/dist/chunks/{chunk.NY5X4XJJ.js → chunk.F3Y2I2NL.js} +105 -53
  313. package/dist/chunks/{chunk.AMDQOH57.js → chunk.FTJ6Z36M.js} +1 -1
  314. package/dist/chunks/{chunk.ZEQWGEAM.js → chunk.G6ZXOELC.js} +1 -1
  315. package/dist/chunks/chunk.GCGYFFT7.js +175 -0
  316. package/dist/chunks/{chunk.HFD5ETAQ.js → chunk.HDIQCE45.js} +1 -1
  317. package/dist/chunks/{chunk.47OFOUVX.js → chunk.HGERMDT7.js} +9 -9
  318. package/dist/chunks/{chunk.D7PK3T2J.js → chunk.HOFUIAJ7.js} +1 -1
  319. package/dist/chunks/{chunk.D7HTBGUZ.js → chunk.HTAFMSHW.js} +1 -1
  320. package/dist/chunks/{chunk.N6AUWZHE.js → chunk.HY2VYT2U.js} +9 -33
  321. package/dist/chunks/{chunk.OIFKVY4T.js → chunk.I6HM5A75.js} +1 -1
  322. package/dist/chunks/{chunk.EIU2TJ7M.js → chunk.IBFYLVPO.js} +1 -1
  323. package/dist/chunks/{chunk.KIQKEOQI.js → chunk.IFPYTPZ3.js} +1 -1
  324. package/dist/chunks/{chunk.EHXSFWGZ.js → chunk.IGL5GIAX.js} +4 -4
  325. package/dist/chunks/{chunk.R5WRTGZ2.js → chunk.ILLCU5HB.js} +1 -1
  326. package/dist/chunks/{chunk.53Z3FHXA.js → chunk.IYQUFGRK.js} +44 -4
  327. package/dist/chunks/{chunk.4S4EVHNW.js → chunk.J5O6PWLI.js} +1 -1
  328. package/dist/chunks/{chunk.75DNKTIA.js → chunk.JYERS5HC.js} +1 -1
  329. package/dist/chunks/{chunk.YXRJUQR5.js → chunk.KDKPCPNN.js} +1 -1
  330. package/dist/chunks/{chunk.M53OVZVD.js → chunk.KRIE4TTT.js} +1 -1
  331. package/dist/chunks/{chunk.E3LMMT5E.js → chunk.L4VXPE4G.js} +1 -1
  332. package/dist/chunks/chunk.MCETAH6L.js +327 -0
  333. package/dist/chunks/{chunk.5N7GJZ2Z.js → chunk.MOVODGXH.js} +21 -19
  334. package/dist/chunks/{chunk.TZMV577R.js → chunk.MOWUXX6Z.js} +1 -1
  335. package/dist/chunks/{chunk.6ZARKYRG.js → chunk.MQHQ6KJF.js} +1 -1
  336. package/dist/chunks/{chunk.NGWBTRHR.js → chunk.N2WMAVWK.js} +1 -1
  337. package/dist/chunks/{chunk.L53CZ7GI.js → chunk.NELEH3YX.js} +1 -1
  338. package/dist/chunks/{chunk.3BKXRITY.js → chunk.NN3HTBRE.js} +1 -1
  339. package/dist/chunks/{chunk.N5JXKAY2.js → chunk.NXG2EYQK.js} +1 -1
  340. package/dist/chunks/{chunk.EZBSY2JR.js → chunk.O2KQGWYU.js} +1 -1
  341. package/dist/chunks/{chunk.5RC65ESO.js → chunk.OFCDZ7RV.js} +4 -4
  342. package/dist/chunks/{chunk.US4YJUBI.js → chunk.OPPXD3GB.js} +2 -2
  343. package/dist/chunks/{chunk.6WX6EGQD.js → chunk.OZF5V7R2.js} +4 -4
  344. package/dist/chunks/{chunk.IS4O6KW6.js → chunk.P7TPAWFS.js} +1 -1
  345. package/dist/chunks/chunk.PNW3FTQO.js +27 -0
  346. package/dist/chunks/{chunk.KFLTBQNX.js → chunk.PPMCLS5F.js} +1 -1
  347. package/dist/chunks/{chunk.6CD5FGEO.js → chunk.PU7SJ6RP.js} +1 -1
  348. package/dist/chunks/{chunk.LVOCWJ6A.js → chunk.PVXZUMSY.js} +3 -3
  349. package/dist/chunks/{chunk.N5S4GLSL.js → chunk.Q2HER5FV.js} +1 -1
  350. package/dist/chunks/{chunk.T76IYQBL.js → chunk.Q57J3TVM.js} +4 -4
  351. package/dist/chunks/{chunk.RNGW4CZW.js → chunk.QJHJRQNM.js} +12 -12
  352. package/dist/chunks/{chunk.PVSRXNRN.js → chunk.QTYSCQM6.js} +1 -1
  353. package/dist/chunks/{chunk.MUPD5QI2.js → chunk.R7F2GGWW.js} +6 -6
  354. package/dist/chunks/{chunk.5H3AACPC.js → chunk.R7R62MHJ.js} +1 -1
  355. package/dist/chunks/{chunk.24ERVPJP.js → chunk.RFTIZGPS.js} +1 -1
  356. package/dist/chunks/{chunk.FV3HGRYB.js → chunk.RMGRE6GT.js} +1 -1
  357. package/dist/chunks/{chunk.HOYC3ABS.js → chunk.RMTAS75H.js} +1 -1
  358. package/dist/chunks/{chunk.L3QCNRY4.js → chunk.RN3O4GQI.js} +2 -0
  359. package/dist/chunks/{chunk.NXUJIJLZ.js → chunk.S63AJHJ6.js} +1 -1
  360. package/dist/chunks/chunk.S7WPCN7K.js +778 -0
  361. package/dist/chunks/chunk.STL2JMRR.js +513 -0
  362. package/dist/chunks/{chunk.A7ED67JJ.js → chunk.SWUZUDLG.js} +1 -1
  363. package/dist/chunks/{chunk.EMWNKNKO.js → chunk.SYL7XFMD.js} +1 -1
  364. package/dist/chunks/{chunk.7SVNZTHD.js → chunk.TJB2CVGE.js} +4 -4
  365. package/dist/chunks/{chunk.MXI3U54M.js → chunk.TPGMOJAJ.js} +1 -1
  366. package/dist/chunks/{chunk.GEKPVTM6.js → chunk.U2GPEJKP.js} +253 -107
  367. package/dist/chunks/{chunk.4OEJ7XBG.js → chunk.UD63RHQ7.js} +1 -1
  368. package/dist/chunks/chunk.UESUCXOE.js +390 -0
  369. package/dist/chunks/{chunk.ZUVD4WKA.js → chunk.UFDYZHCD.js} +1 -1
  370. package/dist/chunks/{chunk.DZNHUSPW.js → chunk.UHNG7JUG.js} +9 -10
  371. package/dist/chunks/{chunk.6YYUKLC5.js → chunk.UIF7XF4C.js} +6 -6
  372. package/dist/chunks/chunk.UTGMGSPP.js +21 -0
  373. package/dist/chunks/{chunk.Z2MSBD4S.js → chunk.VEGINGYS.js} +1 -1
  374. package/dist/chunks/{chunk.25RKAQGE.js → chunk.VJ24NNA2.js} +1 -1
  375. package/dist/chunks/{chunk.S5PDNBWI.js → chunk.VPMGCXK5.js} +22 -13
  376. package/dist/chunks/{chunk.FFH55HPO.js → chunk.VQC4IVYQ.js} +1 -1
  377. package/dist/chunks/{chunk.OOG4GOOC.js → chunk.VWEWD4EW.js} +1 -1
  378. package/dist/chunks/{chunk.XSENGX5S.js → chunk.W4CW7B4I.js} +1 -1
  379. package/dist/chunks/{chunk.5ASTHFQ2.js → chunk.WB4ABGTR.js} +78 -0
  380. package/dist/chunks/chunk.WY7XHXY4.js +190 -0
  381. package/dist/chunks/{chunk.FL6RG6SH.js → chunk.XCHS7262.js} +5 -5
  382. package/dist/chunks/chunk.XMAPLUJM.js +586 -0
  383. package/dist/chunks/{chunk.MCTK54CJ.js → chunk.Y7TVVJ7B.js} +68 -4
  384. package/dist/chunks/chunk.YREYTPAK.js +1361 -0
  385. package/dist/chunks/{chunk.MNPXTFKZ.js → chunk.ZLS4TFIC.js} +12 -10
  386. package/dist/chunks/{chunk.LEJ5P2EK.js → chunk.ZTLRQIGN.js} +1 -1
  387. package/dist/chunks/chunk.ZWLPGCBY.js +196 -0
  388. package/dist/components/accordion/accordion.component.js +6 -6
  389. package/dist/components/accordion/accordion.js +7 -7
  390. package/dist/components/alert/alert.component.js +3 -3
  391. package/dist/components/alert/alert.js +4 -4
  392. package/dist/components/browse-variables/browse-variables.component.js +20 -20
  393. package/dist/components/browse-variables/browse-variables.controller.js +3 -3
  394. package/dist/components/browse-variables/browse-variables.js +21 -21
  395. package/dist/components/button/button.component.js +2 -2
  396. package/dist/components/button/button.js +3 -3
  397. package/dist/components/chip/chip.component.js +2 -2
  398. package/dist/components/chip/chip.js +3 -3
  399. package/dist/components/combobox/combobox.component.js +3 -3
  400. package/dist/components/combobox/combobox.js +4 -4
  401. package/dist/components/data-access/data-access.component.d.ts +58 -0
  402. package/dist/components/data-access/data-access.component.js +44 -0
  403. package/dist/components/data-access/data-access.controller.d.ts +41 -0
  404. package/dist/components/data-access/data-access.controller.js +11 -0
  405. package/dist/components/data-access/data-access.d.ts +8 -0
  406. package/dist/components/data-access/data-access.js +45 -0
  407. package/dist/components/data-access/data-access.styles.d.ts +4 -0
  408. package/dist/components/data-access/data-access.styles.js +7 -0
  409. package/dist/components/data-access/notebooks/data-access-notebook.d.ts +20 -0
  410. package/dist/components/data-access/notebooks/data-access-notebook.js +74 -0
  411. package/dist/components/data-rods/data-rods.component.js +38 -35
  412. package/dist/components/data-rods/data-rods.js +39 -36
  413. package/dist/components/data-subsetter/data-subsetter.component.d.ts +6 -1
  414. package/dist/components/data-subsetter/data-subsetter.component.js +37 -29
  415. package/dist/components/data-subsetter/data-subsetter.controller.js +4 -4
  416. package/dist/components/data-subsetter/data-subsetter.js +38 -30
  417. package/dist/components/data-subsetter/data-subsetter.styles.js +1 -1
  418. package/dist/components/data-subsetter/notebooks/subsetter-notebook.js +1 -1
  419. package/dist/components/data-subsetter-history/data-subsetter-history.component.js +40 -32
  420. package/dist/components/data-subsetter-history/data-subsetter-history.controller.js +2 -2
  421. package/dist/components/data-subsetter-history/data-subsetter-history.js +41 -33
  422. package/dist/components/date-picker/date-picker.component.d.ts +91 -21
  423. package/dist/components/date-picker/date-picker.component.js +6 -4
  424. package/dist/components/date-picker/date-picker.js +7 -5
  425. package/dist/components/date-picker/date-picker.styles.js +1 -1
  426. package/dist/components/date-range-slider/date-range-slider.component.js +4 -4
  427. package/dist/components/date-range-slider/date-range-slider.js +5 -5
  428. package/dist/components/dialog/dialog.component.js +2 -2
  429. package/dist/components/dialog/dialog.js +3 -3
  430. package/dist/components/icon/icon.component.js +4 -4
  431. package/dist/components/icon/icon.js +5 -5
  432. package/dist/components/input/input.component.d.ts +58 -0
  433. package/dist/components/input/input.component.js +11 -0
  434. package/dist/components/input/input.d.ts +8 -0
  435. package/dist/components/input/input.js +12 -0
  436. package/dist/components/input/input.styles.d.ts +2 -0
  437. package/dist/components/input/input.styles.js +7 -0
  438. package/dist/components/loader/loader.component.js +2 -2
  439. package/dist/components/loader/loader.js +3 -3
  440. package/dist/components/login/login.component.js +12 -12
  441. package/dist/components/login/login.js +13 -13
  442. package/dist/components/map/leaflet-utils.d.ts +2 -1
  443. package/dist/components/map/leaflet-utils.js +1 -1
  444. package/dist/components/map/map.component.js +4 -4
  445. package/dist/components/map/map.js +5 -5
  446. package/dist/components/plot/plot.component.d.ts +4 -0
  447. package/dist/components/plot/plot.component.js +2 -2
  448. package/dist/components/plot/plot.js +3 -3
  449. package/dist/components/plot-toolbar/notebooks/time-averaged-map-notebook.js +1 -1
  450. package/dist/components/plot-toolbar/notebooks/time-series-notebook.js +1 -1
  451. package/dist/components/plot-toolbar/plot-toolbar.component.js +17 -17
  452. package/dist/components/plot-toolbar/plot-toolbar.controller.js +3 -3
  453. package/dist/components/plot-toolbar/plot-toolbar.js +18 -18
  454. package/dist/components/skeleton/skeleton.component.d.ts +0 -4
  455. package/dist/components/skeleton/skeleton.component.js +3 -3
  456. package/dist/components/skeleton/skeleton.js +4 -4
  457. package/dist/components/skeleton/skeleton.styles.js +1 -1
  458. package/dist/components/slider/slider.component.d.ts +107 -0
  459. package/dist/components/slider/slider.component.js +12 -0
  460. package/dist/components/slider/slider.d.ts +8 -0
  461. package/dist/components/slider/slider.js +13 -0
  462. package/dist/components/slider/slider.styles.d.ts +2 -0
  463. package/dist/components/slider/slider.styles.js +7 -0
  464. package/dist/components/spatial-picker/spatial-picker.component.d.ts +8 -1
  465. package/dist/components/spatial-picker/spatial-picker.component.js +8 -6
  466. package/dist/components/spatial-picker/spatial-picker.js +9 -7
  467. package/dist/components/spatial-picker/spatial-picker.styles.js +1 -1
  468. package/dist/components/time-average-map/time-average-map.component.js +24 -23
  469. package/dist/components/time-average-map/time-average-map.controller.js +2 -2
  470. package/dist/components/time-average-map/time-average-map.js +25 -24
  471. package/dist/components/time-series/time-series.component.js +27 -26
  472. package/dist/components/time-series/time-series.controller.js +2 -2
  473. package/dist/components/time-series/time-series.js +28 -27
  474. package/dist/components/variable-combobox/variable-combobox.component.js +9 -9
  475. package/dist/components/variable-combobox/variable-combobox.js +10 -10
  476. package/dist/components/variable-keyword-search/variable-keyword-search.component.js +14 -14
  477. package/dist/components/variable-keyword-search/variable-keyword-search.controller.js +3 -3
  478. package/dist/components/variable-keyword-search/variable-keyword-search.js +15 -15
  479. package/dist/custom-elements.json +5733 -3796
  480. package/dist/data-services/types.d.ts +2 -0
  481. package/dist/events/events.d.ts +4 -0
  482. package/dist/events/terra-blur.d.ts +6 -0
  483. package/dist/events/terra-focus.d.ts +6 -0
  484. package/dist/events/terra-input.d.ts +6 -0
  485. package/dist/events/terra-slider-change.d.ts +11 -0
  486. package/dist/internal/terra-element.d.ts +9 -0
  487. package/dist/metadata-catalog/cmr-catalog.d.ts +5 -1
  488. package/dist/metadata-catalog/queries.d.ts +1 -0
  489. package/dist/metadata-catalog/types.d.ts +74 -0
  490. package/dist/metadata-catalog/utilities.d.ts +9 -1
  491. package/dist/react/accordion/index.js +7 -7
  492. package/dist/react/alert/index.js +4 -4
  493. package/dist/react/browse-variables/index.js +21 -21
  494. package/dist/react/button/index.js +3 -3
  495. package/dist/react/chip/index.js +3 -3
  496. package/dist/react/combobox/index.js +4 -4
  497. package/dist/react/data-access/index.d.ts +18 -0
  498. package/dist/react/data-access/index.js +45 -0
  499. package/dist/react/data-rods/index.js +39 -36
  500. package/dist/react/data-subsetter/index.js +38 -30
  501. package/dist/react/data-subsetter-history/index.js +41 -33
  502. package/dist/react/date-picker/index.d.ts +3 -1
  503. package/dist/react/date-picker/index.js +7 -5
  504. package/dist/react/date-range-slider/index.js +5 -5
  505. package/dist/react/dialog/index.js +3 -3
  506. package/dist/react/icon/index.js +5 -5
  507. package/dist/react/index.d.ts +9 -6
  508. package/dist/react/index.js +129 -109
  509. package/dist/react/input/index.d.ts +36 -0
  510. package/dist/react/input/index.js +12 -0
  511. package/dist/react/loader/index.js +3 -3
  512. package/dist/react/login/index.js +13 -13
  513. package/dist/react/map/index.js +5 -5
  514. package/dist/react/plot/index.js +3 -3
  515. package/dist/react/plot-toolbar/index.js +18 -18
  516. package/dist/react/skeleton/index.js +4 -4
  517. package/dist/react/slider/index.d.ts +3 -0
  518. package/dist/react/slider/index.js +13 -0
  519. package/dist/react/spatial-picker/index.js +9 -7
  520. package/dist/react/time-average-map/index.js +25 -24
  521. package/dist/react/time-series/index.js +28 -27
  522. package/dist/react/variable-combobox/index.js +10 -10
  523. package/dist/react/variable-keyword-search/index.js +15 -15
  524. package/dist/terra-ui-components.d.ts +3 -0
  525. package/dist/terra-ui-components.js +128 -108
  526. package/dist/{terra_ui_components-0.0.107-py3-none-any.whl → terra_ui_components-0.0.109-py3-none-any.whl} +0 -0
  527. package/dist/{terra_ui_components-0.0.107.tar.gz → terra_ui_components-0.0.109.tar.gz} +0 -0
  528. package/dist/themes/horizon.css +2 -2
  529. package/dist/themes/horizon.styles.js +2 -2
  530. package/dist/types/vue/index.d.ts +395 -201
  531. package/dist/vscode.html-custom-data.json +416 -266
  532. package/dist/web-types.json +929 -594
  533. package/package.json +3 -7
  534. package/cdn/chunks/chunk.3ZP27DIE.js +0 -57
  535. package/cdn/chunks/chunk.5O2H4A7R.js +0 -30
  536. package/cdn/chunks/chunk.BIDFT3EF.js +0 -10
  537. package/cdn/chunks/chunk.JPGP4RDG.js +0 -107
  538. package/cdn/chunks/chunk.SEOPS7OZ.js +0 -97
  539. package/cdn/chunks/chunk.YOVCJ3TE.js +0 -4030
  540. package/dist/chunks/chunk.4ZVIU4Q2.js +0 -44
  541. package/dist/chunks/chunk.G6SMK5II.js +0 -19
  542. package/dist/chunks/chunk.HTPZCN5Y.js +0 -207
  543. package/dist/chunks/chunk.XZB6CNAL.js +0 -96
  544. package/dist/chunks/chunk.YBSANUUP.js +0 -82
  545. package/cdn/chunks/{GeoTIFF.4QEQWAOC.js → GeoTIFF.HAUB3R6L.js} +0 -0
  546. package/cdn/chunks/{chunk.CO2YMLBX.js → chunk.6LTX6DHB.js} +4 -4
  547. package/cdn/chunks/{chunk.G4NSLCSU.js → chunk.AQTYPOFV.js} +5 -5
  548. package/cdn/chunks/{chunk.6XU5F5VM.js → chunk.VYYORGMV.js} +3 -3
@@ -0,0 +1,204 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Python script for downloading data from the NASA CMR API
4
+
5
+ Requirements:
6
+ > pip install tqdm
7
+
8
+ To run the script: `python download_data_{{short_name}}_{{version}}_{{date}}.py`
9
+ """
10
+
11
+ import os
12
+ import requests
13
+ from tqdm import tqdm
14
+ from concurrent.futures import ThreadPoolExecutor, as_completed
15
+
16
+ CMR_BASE_URL = "https://cmr.earthdata.nasa.gov"
17
+
18
+ SHORT_NAME = "{{short_name}}"
19
+ VERSION = "{{version}}"
20
+ FILTER_TEMPORAL = "{{filter_temporal}}"
21
+ FILTER_BBOX = "{{filter_bbox}}"
22
+ FILTER_SEARCH = "{{filter_search}}"
23
+ FILTER_CLOUD_COVER_MIN = "{{filter_cloud_cover_min}}"
24
+ FILTER_CLOUD_COVER_MAX = "{{filter_cloud_cover_max}}"
25
+ DOWNLOAD_DIR = f"./{SHORT_NAME}_{VERSION}"
26
+ MAX_WORKERS = 5 # Number of parallel downloads
27
+
28
+ os.makedirs(DOWNLOAD_DIR, exist_ok=True)
29
+
30
+
31
+ def query_cmr_granules(
32
+ short_name: str,
33
+ version: str,
34
+ page_size: int = 2000,
35
+ search_after: str | None = None,
36
+ **extra_params,
37
+ ):
38
+ """
39
+ Queries the CMR granules endpoint.
40
+
41
+ Args:
42
+ short_name: The short name of the collection
43
+ version: The version of the collection
44
+ page_size: The number of results per page (max is 2000)
45
+ search_after: The pagination token for subsequent requests (optional, see https://cmr.earthdata.nasa.gov/search/site/docs/search/api.html#search-after for more details)
46
+ **extra_params: Additional query parameters (e.g., temporal, bounding_box, etc.)
47
+
48
+ Returns:
49
+ tuple: (response object, list of granule items)
50
+ """
51
+ url = f"{CMR_BASE_URL}/search/granules.umm_json"
52
+
53
+ params = {
54
+ "short_name": short_name,
55
+ "version": version,
56
+ "page_size": page_size,
57
+ **extra_params, # Merge any additional parameters
58
+ }
59
+
60
+ headers = {"Accept": "application/json"}
61
+ if search_after:
62
+ headers["CMR-Search-After"] = search_after
63
+
64
+ response = requests.get(url, params=params, headers=headers)
65
+
66
+ try:
67
+ response.raise_for_status()
68
+ except requests.exceptions.HTTPError:
69
+ print("Failed to fetch granules:", response.text)
70
+ raise
71
+
72
+ data = response.json()
73
+ items = data.get("items", [])
74
+
75
+ return response, items
76
+
77
+
78
+ def download_data_from_cmr(
79
+ short_name: str, version: str, total_granules: int, page_size: int = 2000, **params
80
+ ):
81
+ """Fetches granules for a given collection from the CMR API, then downloads the data from the "GET DATA" URLs"""
82
+ search_after_value: str | None = None
83
+ all_download_urls = []
84
+ granules_without_urls = 0
85
+
86
+ # First pass: collect all download URLs
87
+ print("Collecting download URLs...")
88
+ with tqdm(total=total_granules, desc="Collecting URLs", unit="granule") as pbar:
89
+ while True:
90
+ # Use shared query function
91
+ response, items = query_cmr_granules(
92
+ short_name, version, page_size, search_after_value, **params
93
+ )
94
+
95
+ # Collect "GET DATA" URLs
96
+ for item in items:
97
+ pbar.update(1) # Update progress for each granule processed
98
+ download_urls = []
99
+ for related_url in item.get("umm", {}).get("RelatedUrls", []):
100
+ if related_url.get("Type") == "GET DATA":
101
+ download_urls.append(related_url.get("URL"))
102
+
103
+ if download_urls:
104
+ all_download_urls.extend(download_urls)
105
+ else:
106
+ granules_without_urls += 1
107
+
108
+ # Read the next search-after value from response headers
109
+ search_after_value = response.headers.get("CMR-Search-After")
110
+
111
+ # There is no next search-after value, we've reached the end
112
+ if not search_after_value:
113
+ break
114
+
115
+ print(f"Found {len(all_download_urls)} files to download")
116
+ if granules_without_urls > 0:
117
+ print(f"⚠️ {granules_without_urls} granules have no download URLs")
118
+
119
+ # Second pass: download all files in parallel
120
+ downloaded_count = 0
121
+ skipped_count = 0
122
+ failed_count = 0
123
+
124
+ with tqdm(total=len(all_download_urls), desc="Downloading files", unit="file") as pbar:
125
+ with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:
126
+ # Submit all download tasks at once
127
+ future_to_url = {executor.submit(download_file, url): url for url in all_download_urls}
128
+
129
+ # Process completed downloads as they finish
130
+ for future in as_completed(future_to_url):
131
+ status, filename = future.result()
132
+ if status == "success":
133
+ downloaded_count += 1
134
+ pbar.set_description(f"Downloaded: {filename}")
135
+ elif status == "skipped":
136
+ skipped_count += 1
137
+ pbar.set_description(f"Skipped: {filename}")
138
+ else: # failed
139
+ failed_count += 1
140
+ print(f"Failed: {filename}")
141
+
142
+ pbar.update(1)
143
+
144
+ print(f"Downloaded: {downloaded_count} files")
145
+ if skipped_count > 0:
146
+ print(f"Skipped: {skipped_count} files (already exist)")
147
+ if failed_count > 0:
148
+ print(f"Failed: {failed_count} files")
149
+
150
+
151
+ def download_file(url: str):
152
+ """Download a single file and return (success, skipped, failed) status and filename"""
153
+ local_filename = os.path.join(DOWNLOAD_DIR, os.path.basename(url))
154
+ if os.path.exists(local_filename):
155
+ return "skipped", os.path.basename(url) # skip existing
156
+
157
+ try:
158
+ with requests.get(url, stream=True, timeout=120) as r:
159
+ r.raise_for_status()
160
+ with open(local_filename, "wb") as f:
161
+ for chunk in r.iter_content(8192):
162
+ f.write(chunk)
163
+ return "success", os.path.basename(url)
164
+ except Exception as e:
165
+ print(f"⚠️ Error downloading {os.path.basename(url)}: {e}")
166
+ return "failed", os.path.basename(url)
167
+
168
+
169
+ def fetch_total_granules_count_from_cmr(short_name: str, version: str, **params):
170
+ """Fetches the total number of granules for a given collection and filters from the CMR API"""
171
+ response, _ = query_cmr_granules(short_name, version, page_size=1, **params)
172
+ data = response.json()
173
+ return data.get("hits", 0)
174
+
175
+
176
+ def main():
177
+ """Main function to download data from the CMR API"""
178
+ filter_params = {}
179
+
180
+ if FILTER_TEMPORAL:
181
+ filter_params["temporal"] = FILTER_TEMPORAL
182
+
183
+ if FILTER_BBOX:
184
+ filter_params["bounding_box"] = FILTER_BBOX
185
+
186
+ if FILTER_SEARCH:
187
+ filter_params["producer_granule_id[]"] = FILTER_SEARCH
188
+ filter_params["options[producer_granule_id][pattern]"] = 'true'
189
+
190
+ if FILTER_CLOUD_COVER_MIN and FILTER_CLOUD_COVER_MAX:
191
+ filter_params["cloud_cover"] = f"{FILTER_CLOUD_COVER_MIN},{FILTER_CLOUD_COVER_MAX}"
192
+
193
+ total_granules = fetch_total_granules_count_from_cmr(
194
+ SHORT_NAME, VERSION, **filter_params
195
+ )
196
+ print(f"Total granules: {total_granules:,}")
197
+
198
+ download_data_from_cmr(SHORT_NAME, VERSION, total_granules, **filter_params)
199
+
200
+ print("✅ All downloads complete.")
201
+
202
+
203
+ if __name__ == "__main__":
204
+ main()
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  TerraMap
3
- } from "./chunk.Z76Z3SSD.js";
3
+ } from "./chunk.MTWOB4SN.js";
4
4
  import {
5
5
  init_buffer,
6
6
  init_dirname,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  TerraPlotToolbar
3
- } from "./chunk.UGTDMW23.js";
3
+ } from "./chunk.67ZWVFY3.js";
4
4
  import {
5
5
  init_buffer,
6
6
  init_dirname,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  TerraBrowseVariables
3
- } from "./chunk.UATCIRCQ.js";
3
+ } from "./chunk.B6JDR25L.js";
4
4
  import {
5
5
  init_buffer,
6
6
  init_dirname,
@@ -0,0 +1,77 @@
1
+ import {
2
+ getVariableEntryId
3
+ } from "./chunk.V6GUDCWA.js";
4
+ import {
5
+ GiovanniVariableCatalog
6
+ } from "./chunk.7A6NO75T.js";
7
+ import {
8
+ h
9
+ } from "./chunk.CTTYXXNL.js";
10
+ import {
11
+ init_buffer,
12
+ init_dirname,
13
+ init_process
14
+ } from "./chunk.HBV76IJU.js";
15
+
16
+ // src/metadata-catalog/tasks.ts
17
+ init_dirname();
18
+ init_buffer();
19
+ init_process();
20
+ var variableCache = /* @__PURE__ */ new Map();
21
+ var pendingRequests = /* @__PURE__ */ new Map();
22
+ function setHostPropertiesFromVariable(host, variable, variableEntryId) {
23
+ var _a, _b, _c, _d;
24
+ host.startDate = (_b = host.startDate) != null ? _b : (_a = variable.exampleInitialStartDate) == null ? void 0 : _a.toISOString();
25
+ host.endDate = (_d = host.endDate) != null ? _d : (_c = variable.exampleInitialEndDate) == null ? void 0 : _c.toISOString();
26
+ host.catalogVariable = variable;
27
+ host.variableEntryId = variableEntryId;
28
+ }
29
+ function getFetchVariableTask(host, autoRun = true) {
30
+ const catalog = new GiovanniVariableCatalog();
31
+ return new h(host, {
32
+ task: async (_args) => {
33
+ const variableEntryId = getVariableEntryId(host);
34
+ console.debug("Fetch variable ", variableEntryId);
35
+ if (!variableEntryId) {
36
+ return;
37
+ }
38
+ if (variableCache.has(variableEntryId)) {
39
+ console.debug("Using cached variable ", variableEntryId);
40
+ const cachedVariable = variableCache.get(variableEntryId);
41
+ setHostPropertiesFromVariable(host, cachedVariable, variableEntryId);
42
+ return;
43
+ }
44
+ if (pendingRequests.has(variableEntryId)) {
45
+ console.debug(
46
+ "Waiting for pending request for variable ",
47
+ variableEntryId
48
+ );
49
+ const variable = await pendingRequests.get(variableEntryId);
50
+ if (variable) {
51
+ console.debug("Using cached variable ", variableEntryId);
52
+ setHostPropertiesFromVariable(host, variable, variableEntryId);
53
+ }
54
+ return;
55
+ }
56
+ const requestPromise = catalog.getVariable(variableEntryId);
57
+ pendingRequests.set(variableEntryId, requestPromise);
58
+ try {
59
+ const variable = await requestPromise;
60
+ console.debug("Found variable ", variable);
61
+ if (!variable) {
62
+ return;
63
+ }
64
+ variableCache.set(variableEntryId, variable);
65
+ setHostPropertiesFromVariable(host, variable, variableEntryId);
66
+ } finally {
67
+ pendingRequests.delete(variableEntryId);
68
+ }
69
+ },
70
+ args: () => [host.variableEntryId, host.collection, host.variable],
71
+ autoRun
72
+ });
73
+ }
74
+
75
+ export {
76
+ getFetchVariableTask
77
+ };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CmrCatalog
3
- } from "./chunk.SEOPS7OZ.js";
3
+ } from "./chunk.EOF7UX34.js";
4
4
  import {
5
5
  h
6
6
  } from "./chunk.CTTYXXNL.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  TerraTimeSeries
3
- } from "./chunk.E2Y4JI5T.js";
3
+ } from "./chunk.RZ6JWWRE.js";
4
4
  import {
5
5
  init_buffer,
6
6
  init_dirname,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  c
3
- } from "./chunk.G4NSLCSU.js";
3
+ } from "./chunk.AQTYPOFV.js";
4
4
  import {
5
5
  x
6
6
  } from "./chunk.JQ2FCDGS.js";