disdrodb 0.2.0__py3-none-any.whl → 0.3.0__py3-none-any.whl

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 (315) hide show
  1. disdrodb/__init__.py +1 -1
  2. disdrodb/_config.py +1 -3
  3. disdrodb/_version.py +2 -2
  4. disdrodb/accessor/__init__.py +1 -1
  5. disdrodb/accessor/methods.py +18 -11
  6. disdrodb/api/checks.py +2 -4
  7. disdrodb/api/configs.py +1 -3
  8. disdrodb/api/create_directories.py +4 -6
  9. disdrodb/api/info.py +1 -3
  10. disdrodb/api/io.py +15 -9
  11. disdrodb/api/path.py +1 -3
  12. disdrodb/cli/disdrodb_check_metadata_archive.py +2 -2
  13. disdrodb/cli/disdrodb_check_products_options.py +44 -0
  14. disdrodb/cli/disdrodb_create_summary.py +48 -22
  15. disdrodb/cli/disdrodb_create_summary_station.py +39 -18
  16. disdrodb/cli/disdrodb_data_archive_directory.py +1 -3
  17. disdrodb/cli/disdrodb_download_archive.py +45 -24
  18. disdrodb/cli/disdrodb_download_metadata_archive.py +27 -16
  19. disdrodb/cli/disdrodb_download_station.py +56 -26
  20. disdrodb/cli/disdrodb_initialize_station.py +40 -20
  21. disdrodb/cli/disdrodb_metadata_archive_directory.py +1 -3
  22. disdrodb/cli/disdrodb_open_data_archive.py +16 -11
  23. disdrodb/cli/disdrodb_open_logs_directory.py +29 -18
  24. disdrodb/cli/disdrodb_open_metadata_archive.py +25 -11
  25. disdrodb/cli/disdrodb_open_metadata_directory.py +32 -20
  26. disdrodb/cli/disdrodb_open_product_directory.py +38 -21
  27. disdrodb/cli/disdrodb_open_readers_directory.py +1 -3
  28. disdrodb/cli/disdrodb_run.py +189 -0
  29. disdrodb/cli/disdrodb_run_l0.py +55 -64
  30. disdrodb/cli/disdrodb_run_l0_station.py +47 -52
  31. disdrodb/cli/disdrodb_run_l0a.py +47 -45
  32. disdrodb/cli/disdrodb_run_l0a_station.py +38 -37
  33. disdrodb/cli/disdrodb_run_l0b.py +45 -45
  34. disdrodb/cli/disdrodb_run_l0b_station.py +37 -36
  35. disdrodb/cli/disdrodb_run_l0c.py +50 -47
  36. disdrodb/cli/disdrodb_run_l0c_station.py +41 -38
  37. disdrodb/cli/disdrodb_run_l1.py +49 -45
  38. disdrodb/cli/disdrodb_run_l1_station.py +40 -37
  39. disdrodb/cli/disdrodb_run_l2e.py +50 -45
  40. disdrodb/cli/disdrodb_run_l2e_station.py +41 -37
  41. disdrodb/cli/disdrodb_run_l2m.py +49 -45
  42. disdrodb/cli/disdrodb_run_l2m_station.py +40 -37
  43. disdrodb/cli/disdrodb_run_station.py +184 -0
  44. disdrodb/cli/disdrodb_upload_archive.py +45 -35
  45. disdrodb/cli/disdrodb_upload_station.py +39 -32
  46. disdrodb/configs.py +13 -8
  47. disdrodb/constants.py +4 -2
  48. disdrodb/data_transfer/__init__.py +1 -3
  49. disdrodb/data_transfer/download_data.py +38 -54
  50. disdrodb/data_transfer/upload_data.py +1 -3
  51. disdrodb/data_transfer/zenodo.py +1 -3
  52. disdrodb/docs.py +1 -3
  53. disdrodb/etc/configs/attributes.yaml +52 -2
  54. disdrodb/etc/configs/encodings.yaml +45 -1
  55. disdrodb/etc/products/L0C/ODM470/global.yaml +5 -0
  56. disdrodb/etc/products/L0C/global.yaml +5 -0
  57. disdrodb/etc/products/L1/ODM470/global.yaml +6 -0
  58. disdrodb/etc/products/L1/global.yaml +1 -14
  59. disdrodb/etc/products/L2E/LPM/1MIN.yaml +1 -0
  60. disdrodb/etc/products/L2E/LPM/global.yaml +36 -0
  61. disdrodb/etc/products/L2E/LPM_V0/1MIN.yaml +1 -0
  62. disdrodb/etc/products/L2E/LPM_V0/global.yaml +36 -0
  63. disdrodb/etc/products/L2E/ODM470/1MIN.yaml +1 -0
  64. disdrodb/etc/products/L2E/ODM470/global.yaml +36 -0
  65. disdrodb/etc/products/L2E/PARSIVEL/1MIN.yaml +1 -0
  66. disdrodb/etc/products/L2E/PARSIVEL/global.yaml +36 -0
  67. disdrodb/etc/products/L2E/PARSIVEL2/1MIN.yaml +1 -0
  68. disdrodb/etc/products/L2E/PARSIVEL2/global.yaml +36 -0
  69. disdrodb/etc/products/L2E/PWS100/1MIN.yaml +1 -0
  70. disdrodb/etc/products/L2E/PWS100/global.yaml +36 -0
  71. disdrodb/etc/products/L2E/RD80/1MIN.yaml +19 -0
  72. disdrodb/etc/products/L2E/SWS250/1MIN.yaml +19 -0
  73. disdrodb/etc/products/L2E/global.yaml +17 -3
  74. disdrodb/etc/products/L2M/global.yaml +1 -1
  75. disdrodb/fall_velocity/__init__.py +46 -0
  76. disdrodb/fall_velocity/graupel.py +483 -0
  77. disdrodb/fall_velocity/hail.py +287 -0
  78. disdrodb/{l1/fall_velocity.py → fall_velocity/rain.py} +265 -50
  79. disdrodb/issue/__init__.py +1 -3
  80. disdrodb/issue/checks.py +3 -5
  81. disdrodb/issue/reader.py +1 -3
  82. disdrodb/issue/writer.py +1 -3
  83. disdrodb/l0/__init__.py +1 -1
  84. disdrodb/l0/check_configs.py +26 -17
  85. disdrodb/l0/check_standards.py +1 -3
  86. disdrodb/l0/configs/LPM/l0a_encodings.yml +0 -1
  87. disdrodb/l0/configs/LPM/l0b_cf_attrs.yml +0 -4
  88. disdrodb/l0/configs/LPM/l0b_encodings.yml +9 -9
  89. disdrodb/l0/configs/LPM/raw_data_format.yml +11 -11
  90. disdrodb/l0/configs/LPM_V0/bins_diameter.yml +103 -0
  91. disdrodb/l0/configs/LPM_V0/bins_velocity.yml +103 -0
  92. disdrodb/l0/configs/LPM_V0/l0a_encodings.yml +45 -0
  93. disdrodb/l0/configs/LPM_V0/l0b_cf_attrs.yml +180 -0
  94. disdrodb/l0/configs/LPM_V0/l0b_encodings.yml +410 -0
  95. disdrodb/l0/configs/LPM_V0/raw_data_format.yml +474 -0
  96. disdrodb/l0/configs/ODM470/bins_diameter.yml +643 -0
  97. disdrodb/l0/configs/ODM470/bins_velocity.yml +0 -0
  98. disdrodb/l0/configs/ODM470/l0a_encodings.yml +11 -0
  99. disdrodb/l0/configs/ODM470/l0b_cf_attrs.yml +46 -0
  100. disdrodb/l0/configs/ODM470/l0b_encodings.yml +106 -0
  101. disdrodb/l0/configs/ODM470/raw_data_format.yml +111 -0
  102. disdrodb/l0/configs/PARSIVEL/l0b_cf_attrs.yml +1 -1
  103. disdrodb/l0/configs/PARSIVEL/raw_data_format.yml +8 -8
  104. disdrodb/l0/configs/PARSIVEL2/raw_data_format.yml +9 -9
  105. disdrodb/l0/l0_reader.py +1 -3
  106. disdrodb/l0/l0a_processing.py +7 -5
  107. disdrodb/l0/l0b_nc_processing.py +2 -4
  108. disdrodb/l0/l0b_processing.py +27 -22
  109. disdrodb/l0/l0c_processing.py +37 -11
  110. disdrodb/l0/manuals/LPM_V0.pdf +0 -0
  111. disdrodb/l0/readers/LPM/ARM/ARM_LPM.py +1 -1
  112. disdrodb/l0/readers/LPM/AUSTRALIA/MELBOURNE_2007_LPM.py +1 -1
  113. disdrodb/l0/readers/LPM/BRAZIL/CHUVA_LPM.py +1 -1
  114. disdrodb/l0/readers/LPM/BRAZIL/GOAMAZON_LPM.py +1 -1
  115. disdrodb/l0/readers/LPM/GERMANY/DWD.py +190 -12
  116. disdrodb/l0/readers/LPM/ITALY/GID_LPM.py +63 -14
  117. disdrodb/l0/readers/LPM/ITALY/GID_LPM_PI.py +279 -0
  118. disdrodb/l0/readers/LPM/ITALY/GID_LPM_T.py +279 -0
  119. disdrodb/l0/readers/LPM/ITALY/GID_LPM_W.py +3 -5
  120. disdrodb/l0/readers/LPM/KIT/CHWALA.py +1 -3
  121. disdrodb/l0/readers/LPM/NETHERLANDS/DELFT_LPM_NC.py +1 -1
  122. disdrodb/l0/readers/LPM/NETHERLANDS/DELFT_RWANDA_LPM_NC.py +103 -0
  123. disdrodb/l0/readers/LPM/NORWAY/HAUKELISETER_LPM.py +214 -0
  124. disdrodb/l0/readers/LPM/NORWAY/NMBU_LPM.py +206 -0
  125. disdrodb/l0/readers/LPM/SLOVENIA/ARSO.py +1 -3
  126. disdrodb/l0/readers/LPM/SLOVENIA/UL.py +1 -3
  127. disdrodb/l0/readers/LPM/SWITZERLAND/INNERERIZ_LPM.py +1 -3
  128. disdrodb/l0/readers/LPM/UK/DIVEN.py +1 -1
  129. disdrodb/l0/readers/LPM/UK/WITHWORTH_LPM.py +217 -0
  130. disdrodb/l0/readers/LPM/USA/CHARLESTON.py +227 -0
  131. disdrodb/l0/readers/{LPM → LPM_V0}/BELGIUM/ULIEGE.py +34 -52
  132. disdrodb/l0/readers/LPM_V0/ITALY/GID_LPM_V0.py +240 -0
  133. disdrodb/l0/readers/ODM470/OCEAN/OCEANRAIN.py +123 -0
  134. disdrodb/l0/readers/PARSIVEL/AUSTRALIA/MELBOURNE_2007_PARSIVEL.py +1 -1
  135. disdrodb/l0/readers/PARSIVEL/BASQUECOUNTRY/EUSKALMET_OTT.py +1 -1
  136. disdrodb/l0/readers/PARSIVEL/CHINA/CHONGQING.py +1 -3
  137. disdrodb/l0/readers/PARSIVEL/EPFL/ARCTIC_2021.py +1 -1
  138. disdrodb/l0/readers/PARSIVEL/EPFL/COMMON_2011.py +1 -1
  139. disdrodb/l0/readers/PARSIVEL/EPFL/DAVOS_2009_2011.py +1 -1
  140. disdrodb/l0/readers/PARSIVEL/EPFL/EPFL_2009.py +1 -1
  141. disdrodb/l0/readers/PARSIVEL/EPFL/EPFL_ROOF_2008.py +1 -1
  142. disdrodb/l0/readers/PARSIVEL/EPFL/EPFL_ROOF_2010.py +1 -1
  143. disdrodb/l0/readers/PARSIVEL/EPFL/EPFL_ROOF_2011.py +1 -1
  144. disdrodb/l0/readers/PARSIVEL/EPFL/EPFL_ROOF_2012.py +1 -1
  145. disdrodb/l0/readers/PARSIVEL/EPFL/GENEPI_2007.py +1 -1
  146. disdrodb/l0/readers/PARSIVEL/EPFL/GRAND_ST_BERNARD_2007.py +1 -1
  147. disdrodb/l0/readers/PARSIVEL/EPFL/GRAND_ST_BERNARD_2007_2.py +1 -1
  148. disdrodb/l0/readers/PARSIVEL/EPFL/HPICONET_2010.py +1 -1
  149. disdrodb/l0/readers/PARSIVEL/EPFL/HYMEX_LTE_SOP2.py +1 -1
  150. disdrodb/l0/readers/PARSIVEL/EPFL/HYMEX_LTE_SOP3.py +1 -1
  151. disdrodb/l0/readers/PARSIVEL/EPFL/HYMEX_LTE_SOP4.py +1 -1
  152. disdrodb/l0/readers/PARSIVEL/EPFL/LOCARNO_2018.py +1 -1
  153. disdrodb/l0/readers/PARSIVEL/EPFL/LOCARNO_2019.py +1 -1
  154. disdrodb/l0/readers/PARSIVEL/EPFL/PARADISO_2014.py +1 -1
  155. disdrodb/l0/readers/PARSIVEL/EPFL/PARSIVEL_2007.py +1 -1
  156. disdrodb/l0/readers/PARSIVEL/EPFL/PLATO_2019.py +1 -1
  157. disdrodb/l0/readers/PARSIVEL/EPFL/RACLETS_2019.py +1 -1
  158. disdrodb/l0/readers/PARSIVEL/EPFL/RACLETS_2019_WJF.py +1 -1
  159. disdrodb/l0/readers/PARSIVEL/EPFL/RIETHOLZBACH_2011.py +1 -1
  160. disdrodb/l0/readers/PARSIVEL/EPFL/SAMOYLOV_2017.py +1 -1
  161. disdrodb/l0/readers/PARSIVEL/EPFL/SAMOYLOV_2019.py +1 -1
  162. disdrodb/l0/readers/PARSIVEL/EPFL/UNIL_2022.py +1 -1
  163. disdrodb/l0/readers/PARSIVEL/JAPAN/JMA.py +1 -1
  164. disdrodb/l0/readers/PARSIVEL/KOREA/ICEPOP_MSC.py +159 -0
  165. disdrodb/l0/readers/PARSIVEL/NASA/LPVEX.py +26 -14
  166. disdrodb/l0/readers/PARSIVEL/NASA/MC3E.py +2 -2
  167. disdrodb/l0/readers/PARSIVEL/NCAR/CCOPE_2015.py +1 -1
  168. disdrodb/l0/readers/PARSIVEL/NCAR/OWLES_MIPS.py +1 -1
  169. disdrodb/l0/readers/PARSIVEL/NCAR/PECAN_MOBILE.py +1 -1
  170. disdrodb/l0/readers/PARSIVEL/NCAR/PLOWS_MIPS.py +1 -1
  171. disdrodb/l0/readers/PARSIVEL/NCAR/VORTEX2_2009.py +1 -1
  172. disdrodb/l0/readers/PARSIVEL/NCAR/VORTEX2_2010.py +1 -3
  173. disdrodb/l0/readers/PARSIVEL/NCAR/VORTEX2_2010_UF.py +1 -3
  174. disdrodb/l0/readers/PARSIVEL/SLOVENIA/UL.py +1 -1
  175. disdrodb/l0/readers/PARSIVEL2/ARM/ARM_PARSIVEL2.py +1 -1
  176. disdrodb/l0/readers/PARSIVEL2/BASQUECOUNTRY/EUSKALMET_OTT2.py +2 -2
  177. disdrodb/l0/readers/PARSIVEL2/BELGIUM/ILVO.py +1 -3
  178. disdrodb/l0/readers/PARSIVEL2/BRAZIL/CHUVA_PARSIVEL2.py +1 -1
  179. disdrodb/l0/readers/PARSIVEL2/BRAZIL/GOAMAZON_PARSIVEL2.py +1 -1
  180. disdrodb/l0/readers/PARSIVEL2/CANADA/UQAM_NC.py +1 -1
  181. disdrodb/l0/readers/PARSIVEL2/DENMARK/DTU.py +1 -1
  182. disdrodb/l0/readers/PARSIVEL2/DENMARK/EROSION_nc.py +1 -1
  183. disdrodb/l0/readers/PARSIVEL2/DENMARK/EROSION_raw.py +1 -1
  184. disdrodb/l0/readers/PARSIVEL2/FINLAND/FMI_PARSIVEL2.py +1 -1
  185. disdrodb/l0/readers/PARSIVEL2/FRANCE/ENPC_PARSIVEL2.py +1 -3
  186. disdrodb/l0/readers/PARSIVEL2/FRANCE/OSUG.py +1 -1
  187. disdrodb/l0/readers/PARSIVEL2/FRANCE/SIRTA_PARSIVEL2.py +1 -3
  188. disdrodb/l0/readers/PARSIVEL2/GREECE/NOA.py +4 -3
  189. disdrodb/l0/readers/PARSIVEL2/ITALY/GID_PARSIVEL2.py +1 -3
  190. disdrodb/l0/readers/PARSIVEL2/ITALY/HYDROX.py +5 -3
  191. disdrodb/l0/readers/PARSIVEL2/JAPAN/PRECIP.py +155 -0
  192. disdrodb/l0/readers/PARSIVEL2/KIT/BURKINA_FASO.py +1 -1
  193. disdrodb/l0/readers/PARSIVEL2/KIT/TEAMX.py +1 -1
  194. disdrodb/l0/readers/PARSIVEL2/KOREA/ICEPOP_MSC.py +161 -0
  195. disdrodb/l0/readers/PARSIVEL2/{NASA/GCPEX.py → KOREA/ICEPOP_UCLM.py} +51 -31
  196. disdrodb/l0/readers/PARSIVEL2/MEXICO/OH_IIUNAM_nc.py +1 -1
  197. disdrodb/l0/readers/PARSIVEL2/MPI/BCO_PARSIVEL2.py +15 -8
  198. disdrodb/l0/readers/PARSIVEL2/MPI/BOWTIE.py +9 -4
  199. disdrodb/l0/readers/PARSIVEL2/NASA/APU.py +31 -6
  200. disdrodb/l0/readers/PARSIVEL2/NASA/NSSTC.py +1 -1
  201. disdrodb/l0/readers/PARSIVEL2/NCAR/FARM_PARSIVEL2.py +1 -1
  202. disdrodb/l0/readers/PARSIVEL2/NCAR/PECAN_FP3.py +1 -1
  203. disdrodb/l0/readers/PARSIVEL2/NCAR/PECAN_MIPS.py +1 -1
  204. disdrodb/l0/readers/PARSIVEL2/NCAR/PERILS_MIPS.py +1 -1
  205. disdrodb/l0/readers/PARSIVEL2/NCAR/PERILS_PIPS.py +1 -1
  206. disdrodb/l0/readers/PARSIVEL2/NCAR/RELAMPAGO_PARSIVEL2.py +2 -2
  207. disdrodb/l0/readers/PARSIVEL2/NCAR/SNOWIE_PJ.py +1 -1
  208. disdrodb/l0/readers/PARSIVEL2/NCAR/SNOWIE_SB.py +1 -1
  209. disdrodb/l0/readers/PARSIVEL2/NCAR/VORTEX_SE_2016_P1.py +1 -3
  210. disdrodb/l0/readers/PARSIVEL2/NCAR/VORTEX_SE_2016_P2.py +1 -1
  211. disdrodb/l0/readers/PARSIVEL2/NCAR/VORTEX_SE_2016_PIPS.py +1 -1
  212. disdrodb/l0/readers/PARSIVEL2/NETHERLANDS/DELFT_NC.py +1 -1
  213. disdrodb/l0/readers/{PARSIVEL/NASA/PIERS.py → PARSIVEL2/NORWAY/UIB.py} +65 -31
  214. disdrodb/l0/readers/PARSIVEL2/PHILIPPINES/PAGASA.py +7 -6
  215. disdrodb/l0/readers/PARSIVEL2/SPAIN/CENER.py +1 -1
  216. disdrodb/l0/readers/PARSIVEL2/SPAIN/CR1000DL.py +1 -1
  217. disdrodb/l0/readers/PARSIVEL2/SPAIN/GRANADA.py +1 -3
  218. disdrodb/l0/readers/PARSIVEL2/SPAIN/LIAISE.py +1 -1
  219. disdrodb/l0/readers/PARSIVEL2/SWEDEN/SMHI.py +1 -1
  220. disdrodb/l0/readers/PARSIVEL2/USA/CSU.py +138 -0
  221. disdrodb/l0/readers/PARSIVEL2/USA/CW3E.py +49 -22
  222. disdrodb/l0/readers/PWS100/AUSTRIA/HOAL.py +1 -3
  223. disdrodb/l0/readers/PWS100/FRANCE/ENPC_PWS100.py +1 -3
  224. disdrodb/l0/readers/PWS100/FRANCE/ENPC_PWS100_SIRTA.py +1 -1
  225. disdrodb/l0/readers/{PARSIVEL/NASA/IFLOODS.py → RD80/BRAZIL/ATTO_RD80.py} +50 -36
  226. disdrodb/l0/readers/RD80/BRAZIL/CHUVA_RD80.py +1 -3
  227. disdrodb/l0/readers/RD80/BRAZIL/GOAMAZON_RD80.py +1 -3
  228. disdrodb/l0/readers/RD80/NCAR/CINDY_2011_RD80.py +1 -3
  229. disdrodb/l0/readers/RD80/NCAR/RELAMPAGO_RD80.py +1 -3
  230. disdrodb/l0/readers/RD80/NOAA/PSL_RD80.py +1 -3
  231. disdrodb/l0/readers/{SW250 → SWS250}/BELGIUM/KMI.py +2 -4
  232. disdrodb/l0/readers/template_reader_raw_netcdf_data.py +1 -3
  233. disdrodb/l0/readers/template_reader_raw_text_data.py +1 -3
  234. disdrodb/l0/standards.py +4 -5
  235. disdrodb/l0/template_tools.py +1 -3
  236. disdrodb/l1/__init__.py +1 -1
  237. disdrodb/l1/classification.py +913 -0
  238. disdrodb/l1/processing.py +36 -106
  239. disdrodb/l1/resampling.py +8 -3
  240. disdrodb/l1_env/__init__.py +1 -1
  241. disdrodb/l1_env/routines.py +6 -6
  242. disdrodb/l2/__init__.py +1 -1
  243. disdrodb/l2/empirical_dsd.py +61 -31
  244. disdrodb/l2/processing.py +327 -62
  245. disdrodb/metadata/checks.py +1 -3
  246. disdrodb/metadata/download.py +4 -4
  247. disdrodb/metadata/geolocation.py +1 -3
  248. disdrodb/metadata/info.py +1 -3
  249. disdrodb/metadata/manipulation.py +1 -3
  250. disdrodb/metadata/reader.py +1 -3
  251. disdrodb/metadata/search.py +1 -3
  252. disdrodb/metadata/standards.py +1 -3
  253. disdrodb/metadata/writer.py +1 -3
  254. disdrodb/physics/__init__.py +17 -0
  255. disdrodb/physics/atmosphere.py +272 -0
  256. disdrodb/physics/water.py +130 -0
  257. disdrodb/physics/wrappers.py +62 -0
  258. disdrodb/psd/__init__.py +1 -1
  259. disdrodb/psd/fitting.py +22 -9
  260. disdrodb/psd/models.py +1 -1
  261. disdrodb/routines/__init__.py +5 -1
  262. disdrodb/routines/l0.py +28 -18
  263. disdrodb/routines/l1.py +8 -6
  264. disdrodb/routines/l2.py +8 -4
  265. disdrodb/routines/options.py +116 -71
  266. disdrodb/routines/options_validation.py +728 -0
  267. disdrodb/routines/wrappers.py +431 -11
  268. disdrodb/scattering/__init__.py +1 -1
  269. disdrodb/scattering/axis_ratio.py +9 -6
  270. disdrodb/scattering/permittivity.py +8 -8
  271. disdrodb/scattering/routines.py +32 -14
  272. disdrodb/summary/__init__.py +1 -1
  273. disdrodb/summary/routines.py +146 -86
  274. disdrodb/utils/__init__.py +1 -1
  275. disdrodb/utils/archiving.py +16 -9
  276. disdrodb/utils/attrs.py +4 -3
  277. disdrodb/utils/cli.py +8 -10
  278. disdrodb/utils/compression.py +13 -13
  279. disdrodb/utils/dask.py +33 -14
  280. disdrodb/utils/dataframe.py +1 -3
  281. disdrodb/utils/decorators.py +1 -3
  282. disdrodb/utils/dict.py +1 -1
  283. disdrodb/utils/directories.py +3 -5
  284. disdrodb/utils/encoding.py +2 -4
  285. disdrodb/utils/event.py +1 -1
  286. disdrodb/utils/list.py +1 -3
  287. disdrodb/utils/logger.py +1 -3
  288. disdrodb/utils/manipulations.py +182 -6
  289. disdrodb/utils/pydantic.py +80 -0
  290. disdrodb/utils/routines.py +1 -3
  291. disdrodb/utils/subsetting.py +1 -1
  292. disdrodb/utils/time.py +3 -2
  293. disdrodb/utils/warnings.py +1 -3
  294. disdrodb/utils/writer.py +1 -3
  295. disdrodb/utils/xarray.py +30 -3
  296. disdrodb/utils/yaml.py +1 -3
  297. disdrodb/viz/__init__.py +1 -1
  298. disdrodb/viz/plots.py +197 -21
  299. {disdrodb-0.2.0.dist-info → disdrodb-0.3.0.dist-info}/METADATA +2 -2
  300. disdrodb-0.3.0.dist-info/RECORD +358 -0
  301. {disdrodb-0.2.0.dist-info → disdrodb-0.3.0.dist-info}/entry_points.txt +3 -0
  302. disdrodb/etc/products/L1/1MIN.yaml +0 -13
  303. disdrodb/etc/products/L1/LPM/1MIN.yaml +0 -13
  304. disdrodb/etc/products/L1/PARSIVEL/1MIN.yaml +0 -13
  305. disdrodb/etc/products/L1/PARSIVEL2/1MIN.yaml +0 -13
  306. disdrodb/etc/products/L1/PWS100/1MIN.yaml +0 -13
  307. disdrodb/etc/products/L1/RD80/1MIN.yaml +0 -13
  308. disdrodb/etc/products/L1/SWS250/1MIN.yaml +0 -13
  309. disdrodb/etc/products/L2M/10MIN.yaml +0 -12
  310. disdrodb/l1/beard_model.py +0 -618
  311. disdrodb/l1/filters.py +0 -203
  312. disdrodb-0.2.0.dist-info/RECORD +0 -312
  313. {disdrodb-0.2.0.dist-info → disdrodb-0.3.0.dist-info}/WHEEL +0 -0
  314. {disdrodb-0.2.0.dist-info → disdrodb-0.3.0.dist-info}/licenses/LICENSE +0 -0
  315. {disdrodb-0.2.0.dist-info → disdrodb-0.3.0.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,5 @@
1
1
  # -----------------------------------------------------------------------------.
2
- # Copyright (c) 2021-2023 DISDRODB developers
2
+ # Copyright (c) 2021-2026 DISDRODB developers
3
3
  #
4
4
  # This program is free software: you can redistribute it and/or modify
5
5
  # it under the terms of the GNU General Public License as published by
@@ -59,69 +59,60 @@ def disdrodb_run_l0(
59
59
  data_archive_dir: Optional[str] = None,
60
60
  metadata_archive_dir: Optional[str] = None,
61
61
  ):
62
- """
63
- Run the L0 processing of DISDRODB stations.
64
-
65
- This function allows to launch the processing of many DISDRODB stations with a single command.
66
- From the list of all available DISDRODB stations, it runs the processing of the
67
- stations matching the provided data_sources, campaign_names and station_names.
68
-
69
- Parameters
70
- ----------
71
- data_archive_dir : str
72
- DISDRODB Data Archive directory
73
- Format: <...>/DISDRODB
74
- data_sources : str
75
- Name of data source(s) to process.
76
- The name(s) must be UPPER CASE.
77
- If campaign_names and station are not specified, process all stations.
78
- To specify multiple data sources, write i.e.: --data_sources 'NASA EPFL NCAR'
79
- campaign_names : str
80
- Name of the campaign(s) to process.
81
- The name(s) must be UPPER CASE.
82
- To specify multiple campaigns, write i.e.: --campaign_names 'IPEX IMPACTS'
83
- station_names : str
84
- Station names.
85
- To specify multiple stations, write i.e.: --station_names 'station1 station2'
86
- l0a_processing : bool
87
- Whether to launch processing to generate L0A Apache Parquet file(s) from raw data.
88
- The default is True.
89
- l0b_processing : bool
90
- Whether to launch processing to generate L0B netCDF4 file(s) from L0A data.
91
- The default is True.
92
- l0c_processing : bool
93
- Whether to launch processing to generate L0C netCDF4 file(s) from L0C data.
94
- The default is True.
95
- remove_l0a : bool
96
- Whether to keep the L0A files after having generated the L0B netCDF products.
97
- The default is False.
98
- remove_l0b : bool
99
- Whether to remove the L0B files after having produced L0C netCDF files.
100
- The default is False.
101
- force : bool
102
- If True, overwrite existing data into destination directories.
103
- If False, raise an error if there are already data into destination directories.
104
- The default is False.
105
- verbose : bool
106
- Whether to print detailed processing information into terminal.
107
- The default is True.
108
- parallel : bool
109
- If True, the files are processed simultaneously in multiple processes.
110
- Each process will use a single thread to avoid issues with the HDF/netCDF library.
111
- By default, the number of process is defined with os.cpu_count().
112
- However, you can customize it by typing i.e. DASK_NUM_WORKERS=4 disdrodb_run_l0
113
- If False, the files are processed sequentially in a single process.
114
- If False, multi-threading is automatically exploited to speed up I/0 tasks.
115
- debugging_mode : bool
116
- If True, it reduces the amount of data to process.
117
- For L0A, it processes just the first 3 raw data files.
118
- For L0B, it processes 100 rows sampled from 3 L0A files.
119
- The default is False.
120
- data_archive_dir : str
121
- DISDRODB Data Archive directory
122
- Format: <...>/DISDRODB
123
- If not specified, uses path specified in the DISDRODB active configuration.
124
- """
62
+ """Run the DISDRODB L0 processing chain for many/all DISDRODB stations.
63
+
64
+ It produces the DISDRODB L0A, L0B and L0C product files out of the raw data
65
+ of the specified station.
66
+
67
+ \b
68
+ Station Selection:
69
+ If no station filters are specified, processes ALL available stations.
70
+ Use data_sources, campaign_names, and station_names to filter stations.
71
+ Filters work together to narrow down the selection (AND logic).
72
+
73
+ \b
74
+ Performance Options:
75
+ --parallel: Uses multiple processes for faster processing (default: True)
76
+ If parallel processing is enabled, each process will use a single thread
77
+ to avoid issues with the HDF/netCDF library.
78
+ The DASK_NUM_WORKERS environment variable controls the number of processes
79
+ to use.A sensible default is automatically set by the software.
80
+ --debugging_mode: Processes only a subset of data for testing
81
+ --force: Overwrites existing output files (default: False)
82
+
83
+ \b
84
+ Data Management:
85
+ --remove_l0a: Delete L0A files after L0B processing (saves disk space)
86
+ --remove_l0b: Delete L0B files after L0C processing (saves disk space)
87
+ Use with caution - removed files cannot be recovered without reprocessing
88
+
89
+ \b
90
+ Examples:
91
+ # Process all stations
92
+ disdrodb_run_l0
93
+
94
+ # Process a specific data source and force overwrite existing files
95
+ disdrodb_run_l0 --data_sources EPFL --force True --verbose True
96
+
97
+ # Process specific data sources
98
+ disdrodb_run_l0 --data_sources 'USA EPFL'
99
+
100
+ # Process specific campaigns in debugging mode
101
+ disdrodb_run_l0 --campaign_names 'DELFT IMPACTS' --debugging_mode True
102
+
103
+ # Process specific stations with custom number of workers
104
+ DASK_NUM_WORKERS=8 disdrodb_run_l0 --data_sources NASA --station_names 'apu01 apu02'
105
+
106
+ # Skip L0A processing (start from existing L0B data)
107
+ disdrodb_run_l0 --data_sources EPFL --l0a_processing False
108
+
109
+ \b
110
+ Important Notes:
111
+ - Data source names must be UPPER CASE
112
+ - Campaign names must be UPPER CASE
113
+ - To specify multiple values, use space-separated strings in quotes
114
+ - Use --debugging_mode for initial testing with reduced data volumes
115
+ """ # noqa: D301
125
116
  from disdrodb.routines import run_l0
126
117
 
127
118
  # Parse data_sources, campaign_names and station arguments
@@ -1,5 +1,5 @@
1
1
  # -----------------------------------------------------------------------------.
2
- # Copyright (c) 2021-2023 DISDRODB developers
2
+ # Copyright (c) 2021-2026 DISDRODB developers
3
3
  #
4
4
  # This program is free software: you can redistribute it and/or modify
5
5
  # it under the terms of the GNU General Public License as published by
@@ -61,60 +61,55 @@ def disdrodb_run_l0_station(
61
61
  data_archive_dir: Optional[str] = None,
62
62
  metadata_archive_dir: Optional[str] = None,
63
63
  ):
64
- r"""Run the L0 processing of a specific DISDRODB station from the terminal.
65
-
66
- Parameters \n
67
- ---------- \n
68
- data_source : str \n
69
- Institution name (when campaign data spans more than 1 country), or country (when all campaigns (or sensor
70
- networks) are inside a given country).\n
71
- Must be UPPER CASE.\n
72
- campaign_name : str \n
73
- Campaign name. Must be UPPER CASE.\n
74
- station_name : str \n
75
- Station name \n
76
- l0a_processing : bool
77
- Whether to launch processing to generate L0A Apache Parquet file(s) from raw data.
78
- The default is True.\n
79
- l0b_processing : bool \n
80
- Whether to launch processing to generate L0B netCDF4 file(s) from L0A data.\n
81
- The default is True.\n
82
- l0c_processing : bool
83
- Whether to launch processing to generate L0C netCDF4 file(s) from L0C data.
84
- The default is True.
85
- remove_l0a : bool \n
86
- Whether to keep the L0A files after having generated the L0B netCDF products.\n
87
- The default is False.\n
88
- remove_l0b : bool
89
- Whether to remove the L0B files after having produced L0C netCDF files.
90
- The default is False.
91
- force : bool \n
92
- If True, overwrite existing data into destination directories.\n
93
- If False, raise an error if there are already data into destination directories.\n
94
- The default is False.\n
95
- verbose : bool \n
96
- Whether to print detailed processing information into terminal.\n
97
- The default is True.\n
98
- parallel : bool \n
99
- If True, the files are processed simultaneously in multiple processes.\n
100
- Each process will use a single thread to avoid issues with the HDF/netCDF library.\n
101
- By default, the number of process is defined with os.cpu_count().\n
102
- However, you can customize it by typing: DASK_NUM_WORKERS=4 disdrodb_run_l0_station\n
103
- If False, the files are processed sequentially in a single process.\n
104
- If False, multi-threading is automatically exploited to speed up I/0 tasks.\n
105
- debugging_mode : bool \n
106
- If True, it reduces the amount of data to process.\n
107
- For L0A, it processes just the first 3 raw data files for each station.\n
108
- For L0B, it processes 100 rows sampled from 3 L0A files for each station.\n
109
- The default is False.\n
110
- data_archive_dir : str \n
111
- DISDRODB Data Archive directory \n
112
- Format: <...>/DISDRODB \n
113
- If not specified, uses path specified in the DISDRODB active configuration. \n
114
- """
64
+ """Run the DISDRODB L0 processing chain for a specific DISDRODB station.
65
+
66
+ It produces the DISDRODB L0A, L0B and L0C product files out of
67
+ the raw data of the specified station.
68
+
69
+ \b
70
+ Station Specification:
71
+ Requires exact specification of data_source, campaign_name, and station_name.
72
+ All three parameters must be provided and are case-sensitive (UPPER CASE required).
73
+
74
+ \b
75
+ Performance Options:
76
+ --parallel: Uses multiple processes for faster processing (default: True)
77
+ If parallel processing is enabled, each process will use a single thread
78
+ to avoid issues with the HDF/netCDF library.
79
+ The DASK_NUM_WORKERS environment variable controls the number of processes
80
+ to use.A sensible default is automatically set by the software.
81
+ --debugging_mode: Processes only a subset of data for testing
82
+ --force: Overwrites existing output files (default: False)
83
+
84
+ \b
85
+ Data Management:
86
+ --remove_l0a: Delete L0A files after L0B processing (saves disk space)
87
+ --remove_l0b: Delete L0B files after L0C processing (saves disk space)
88
+ Use with caution - removed files cannot be recovered without reprocessing
89
+
90
+ \b
91
+ Examples:
92
+ # Process a single station with full processing chain
93
+ disdrodb_run_l0_station EPFL HYMEX_LTE_SOP2 10
94
+
95
+ # Force overwrite existing files with verbose output
96
+ disdrodb_run_l0_station EPFL HYMEX_LTE_SOP2 10 --force True --verbose True
97
+
98
+ # Process station with debugging mode and custom workers
99
+ DASK_NUM_WORKERS=4 disdrodb_run_l0_station NETHERLANDS DELFT PAR001_Cabauw --debugging_mode True
100
+
101
+ # Skip L0A processing (start from existing L0B data)
102
+ disdrodb_run_l0_station NASA IFLOODS apu01 --l0a_processing False
103
+
104
+ \b
105
+ Important Notes:
106
+ - Data source, campaign, and station names must be UPPER CASE
107
+ - All three station identifiers are required (no wildcards or filtering)
108
+ """ # noqa: D301
115
109
  from disdrodb.routines import run_l0_station
116
110
 
117
111
  data_archive_dir = parse_archive_dir(data_archive_dir)
112
+ metadata_archive_dir = parse_archive_dir(metadata_archive_dir)
118
113
 
119
114
  run_l0_station(
120
115
  # DISDRODB root directories
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python3
2
2
  # -----------------------------------------------------------------------------.
3
- # Copyright (c) 2021-2023 DISDRODB developers
3
+ # Copyright (c) 2021-2026 DISDRODB developers
4
4
  #
5
5
  # This program is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU General Public License as published by
@@ -52,50 +52,52 @@ def disdrodb_run_l0a(
52
52
  data_archive_dir: Optional[str] = None,
53
53
  metadata_archive_dir: Optional[str] = None,
54
54
  ):
55
- """
56
- Run the L0A processing of DISDRODB stations.
57
-
58
- This function allows to launch the processing of many DISDRODB stations with a single command.
59
- From the list of all available DISDRODB stations, it runs the processing
60
- of the stations matching the provided data_sources, campaign_names and station_names.
61
-
62
- Parameters
63
- ----------
64
- data_sources : str
65
- Name of data source(s) to process.
66
- The name(s) must be UPPER CASE.
67
- If campaign_names and station are not specified, process all stations.
68
- To specify multiple data sources, write i.e.: --data_sources 'NASA EPFL NCAR'
69
- campaign_names : str
70
- Name of the campaign(s) to process.
71
- The name(s) must be UPPER CASE.
72
- To specify multiple campaigns, write i.e.: --campaign_names 'IPEX IMPACTS'
73
- station_names : str
74
- Station names.
75
- To specify multiple stations, write i.e.: --station_names 'station1 station2'
76
- force : bool
77
- If True, overwrite existing data into destination directories.
78
- If False, raise an error if there are already data into destination directories.
79
- The default is False.
80
- verbose : bool
81
- Whether to print detailed processing information into terminal.
82
- The default is False.
83
- parallel : bool
84
- If True, the files are processed simultaneously in multiple processes.
85
- Each process will use a single thread.
86
- By default, the number of process is defined with os.cpu_count().
87
- However, you can customize it by typing: DASK_NUM_WORKERS=4 disdrodb_run_l0a
88
- If False, the files are processed sequentially in a single process.
89
- If False, multi-threading is automatically exploited to speed up I/0 tasks.
90
- debugging_mode : bool
91
- If True, it reduces the amount of data to process.
92
- It processes just the first 3 raw data files for each station.
93
- The default is False.
94
- data_archive_dir : str
95
- DISDRODB Data Archive directory
96
- Format: <...>/DISDRODB
97
- If not specified, uses path specified in the DISDRODB active configuration.
98
- """
55
+ """Run the DISDRODB L0A processing chain for many/all DISDRODB stations.
56
+
57
+ It produces a DISDRODB L0A Apache Parquet file for each raw data file of
58
+ the specified stations, unless the raw data are already in netCDF format.
59
+ In this latter case, the raw data are directly converted to DISDRODB L0B files.
60
+
61
+ \b
62
+ Station Selection:
63
+ If no station filters are specified, processes ALL available stations.
64
+ Use data_sources, campaign_names, and station_names to filter stations.
65
+ Filters work together to narrow down the selection (AND logic).
66
+
67
+ \b
68
+ Performance Options:
69
+ --parallel: Uses multiple processes for faster processing (default: True)
70
+ If parallel processing is enabled, each process will use a single thread
71
+ to avoid issues with the HDF/netCDF library.
72
+ The DASK_NUM_WORKERS environment variable controls the number of processes
73
+ to use.A sensible default is automatically set by the software.
74
+ --debugging_mode: Processes only a subset of data for testing
75
+ --force: Overwrites existing output files (default: False)
76
+
77
+ \b
78
+ Examples:
79
+ # Process all stations
80
+ disdrodb_run_l0a
81
+
82
+ # Process a specific data source and force overwrite existing files
83
+ disdrodb_run_l0a --data_sources EPFL --force True --verbose True
84
+
85
+ # Process specific data sources
86
+ disdrodb_run_l0a --data_sources 'USA EPFL'
87
+
88
+ # Process specific campaigns in debugging mode
89
+ disdrodb_run_l0a --campaign_names 'DELFT IMPACTS' --debugging_mode True
90
+
91
+ # Process specific stations with custom number of workers
92
+ DASK_NUM_WORKERS=8 disdrodb_run_l0a --data_sources NASA --station_names 'apu01 apu02'
93
+
94
+ \b
95
+ Important Notes:
96
+ - Data source names must be UPPER CASE
97
+ - Campaign names must be UPPER CASE
98
+ - To specify multiple values, use space-separated strings in quotes
99
+ - Use --debugging_mode for initial testing with reduced data volumes
100
+ """ # noqa: D301
99
101
  from disdrodb.routines import run_l0a
100
102
 
101
103
  # Parse data_sources, campaign_names and station arguments
@@ -1,5 +1,5 @@
1
1
  # -----------------------------------------------------------------------------.
2
- # Copyright (c) 2021-2023 DISDRODB developers
2
+ # Copyright (c) 2021-2026 DISDRODB developers
3
3
  #
4
4
  # This program is free software: you can redistribute it and/or modify
5
5
  # it under the terms of the GNU General Public License as published by
@@ -53,42 +53,43 @@ def disdrodb_run_l0a_station(
53
53
  data_archive_dir: Optional[str] = None,
54
54
  metadata_archive_dir: Optional[str] = None,
55
55
  ):
56
- """
57
- Run the L0A processing of a specific DISDRODB station from the terminal.
58
-
59
- Parameters
60
- ----------
61
- data_source : str
62
- Institution name (when campaign data spans more than 1 country),
63
- or country (when all campaigns (or sensor networks) are inside a given country).
64
- Must be UPPER CASE.
65
- campaign_name : str
66
- Campaign name. Must be UPPER CASE.
67
- station_name : str
68
- Station name
69
- force : bool
70
- If True, overwrite existing data into destination directories.
71
- If False, raise an error if there are already data into destination directories.
72
- The default is False.
73
- verbose : bool
74
- Whether to print detailed processing information into terminal.
75
- The default is True.
76
- parallel : bool
77
- If True, the files are processed simultaneously in multiple processes.
78
- Each process will use a single thread.
79
- By default, the number of process is defined with os.cpu_count().
80
- However, you can customize it by typing: DASK_NUM_WORKERS=4 disdrodb_run_l0a_station
81
- If False, the files are processed sequentially in a single process.
82
- If False, multi-threading is automatically exploited to speed up I/0 tasks.
83
- debugging_mode : bool
84
- If True, it reduces the amount of data to process.
85
- It processes just the first 3 raw data files.
86
- The default is False.
87
- data_archive_dir : str
88
- DISDRODB Data Archive directory.
89
- Format: <...>/DISDRODB
90
- If not specified, uses path specified in the DISDRODB active configuration.
91
- """
56
+ """Run the DISDRODB L0A processing chain for a specific DISDRODB station.
57
+
58
+ It produces a DISDRODB L0A Apache Parquet file for each raw data file of
59
+ the specified station, unless the raw data are already in netCDF format.
60
+ In this latter case, the raw data are directly converted to DISDRODB L0B files.
61
+
62
+ \b
63
+ Station Specification:
64
+ Requires exact specification of data_source, campaign_name, and station_name.
65
+ All three parameters must be provided and are case-sensitive (UPPER CASE required).
66
+
67
+ \b
68
+ Performance Options:
69
+ --parallel: Uses multiple processes for faster processing (default: True)
70
+ If parallel processing is enabled, each process will use a single thread
71
+ to avoid issues with the HDF/netCDF library.
72
+ The DASK_NUM_WORKERS environment variable controls the number of processes
73
+ to use.A sensible default is automatically set by the software.
74
+ --debugging_mode: Processes only a subset of data for testing
75
+ --force: Overwrites existing output files (default: False)
76
+
77
+ \b
78
+ Examples:
79
+ # Process a single station with full processing chain
80
+ disdrodb_run_l0a_station EPFL HYMEX_LTE_SOP2 10
81
+
82
+ # Force overwrite existing files with verbose output
83
+ disdrodb_run_l0a_station EPFL HYMEX_LTE_SOP2 10 --force True --verbose True
84
+
85
+ # Process station with debugging mode and custom workers
86
+ DASK_NUM_WORKERS=4 disdrodb_run_l0a_station NETHERLANDS DELFT PAR001_Cabauw --debugging_mode True
87
+
88
+ \b
89
+ Important Notes:
90
+ - Data source, campaign, and station names must be UPPER CASE
91
+ - All three station identifiers are required (no wildcards or filtering)
92
+ """ # noqa: D301
92
93
  from disdrodb.routines.l0 import run_l0a_station
93
94
  from disdrodb.utils.dask import close_dask_cluster, initialize_dask_cluster
94
95
 
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python3
2
2
  # -----------------------------------------------------------------------------.
3
- # Copyright (c) 2021-2023 DISDRODB developers
3
+ # Copyright (c) 2021-2026 DISDRODB developers
4
4
  #
5
5
  # This program is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU General Public License as published by
@@ -55,50 +55,50 @@ def disdrodb_run_l0b(
55
55
  data_archive_dir: Optional[str] = None,
56
56
  metadata_archive_dir: Optional[str] = None,
57
57
  ):
58
- """
59
- Run the L0B processing of DISDRODB stations.
60
-
61
- This function allows to launch the processing of many DISDRODB stations with a single command.
62
- From the list of all available DISDRODB stations, it runs the processing of the
63
- stations matching the provided data_sources, campaign_names and station_names.
64
-
65
- Parameters
66
- ----------
67
- data_sources : str
68
- Name of data source(s) to process.
69
- The name(s) must be UPPER CASE.
70
- If campaign_names and station are not specified, process all stations.
71
- To specify multiple data sources, write i.e.: --data_sources 'NASA EPFL NCAR'
72
- campaign_names : str
73
- Name of the campaign(s) to process.
74
- The name(s) must be UPPER CASE.
75
- To specify multiple campaigns, write i.e.: --campaign_names 'IPEX IMPACTS'
76
- station_names : str
77
- Station names.
78
- To specify multiple stations, write i.e.: --station_names 'station1 station2'
79
- force : bool
80
- If True, overwrite existing data into destination directories.
81
- If False, raise an error if there are already data into destination directories.
82
- The default is False.
83
- verbose : bool
84
- Whether to print detailed processing information into terminal.
85
- The default is True.
86
- parallel : bool
87
- If True, the files are processed simultaneously in multiple processes.
88
- Each process will use a single thread to avoid issues with the HDF/netCDF library.
89
- By default, the number of process is defined with os.cpu_count().
90
- However, you can customize it by typing: DASK_NUM_WORKERS=4 disdrodb_run_l0b
91
- If False, the files are processed sequentially in a single process.
92
- If False, multi-threading is automatically exploited to speed up I/0 tasks.
93
- debugging_mode : bool
94
- If True, it reduces the amount of data to process.
95
- It processes 100 rows sampled from 3 L0A files for each station.
96
- The default is False.
97
- data_archive_dir : str
98
- DISDRODB Data Archive directory
99
- Format: <...>/DISDRODB
100
- If not specified, uses path specified in the DISDRODB active configuration.
101
- """
58
+ """Run the DISDRODB L0B processing chain for many/all DISDRODB stations.
59
+
60
+ It produces a DISDRODB L0B file for each DISDRODB L0A Apache Parquet file of the specified stations.
61
+
62
+ \b
63
+ Station Selection:
64
+ If no station filters are specified, processes ALL available stations.
65
+ Use data_sources, campaign_names, and station_names to filter stations.
66
+ Filters work together to narrow down the selection (AND logic).
67
+
68
+ \b
69
+ Performance Options:
70
+ --parallel: Uses multiple processes for faster processing (default: True)
71
+ If parallel processing is enabled, each process will use a single thread
72
+ to avoid issues with the HDF/netCDF library.
73
+ The DASK_NUM_WORKERS environment variable controls the number of processes
74
+ to use.A sensible default is automatically set by the software.
75
+ --debugging_mode: Processes only a subset of data for testing
76
+ --force: Overwrites existing output files (default: False)
77
+
78
+ \b
79
+ Examples:
80
+ # Process all stations
81
+ disdrodb_run_l0b
82
+
83
+ # Process a specific data source and force overwrite existing files
84
+ disdrodb_run_l0b --data_sources EPFL --force True --verbose True
85
+
86
+ # Process specific data sources
87
+ disdrodb_run_l0b --data_sources 'USA EPFL'
88
+
89
+ # Process specific campaigns in debugging mode
90
+ disdrodb_run_l0b --campaign_names 'DELFT IMPACTS' --debugging_mode True
91
+
92
+ # Process specific stations with custom number of workers
93
+ DASK_NUM_WORKERS=8 disdrodb_run_l0b --data_sources NASA --station_names 'apu01 apu02'
94
+
95
+ \b
96
+ Important Notes:
97
+ - Data source names must be UPPER CASE
98
+ - Campaign names must be UPPER CASE
99
+ - To specify multiple values, use space-separated strings in quotes
100
+ - Use --debugging_mode for initial testing with reduced data volumes
101
+ """ # noqa: D301
102
102
  from disdrodb.routines import run_l0b
103
103
 
104
104
  # Parse data_sources, campaign_names and station arguments