disdrodb 0.1.5__py3-none-any.whl → 0.2.1__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 (125) hide show
  1. disdrodb/__init__.py +1 -5
  2. disdrodb/_version.py +2 -2
  3. disdrodb/accessor/methods.py +22 -4
  4. disdrodb/api/checks.py +10 -0
  5. disdrodb/api/io.py +20 -18
  6. disdrodb/api/path.py +42 -77
  7. disdrodb/api/search.py +89 -23
  8. disdrodb/cli/disdrodb_create_summary.py +1 -1
  9. disdrodb/cli/disdrodb_run_l0.py +1 -1
  10. disdrodb/cli/disdrodb_run_l0a.py +1 -1
  11. disdrodb/cli/disdrodb_run_l0b.py +1 -1
  12. disdrodb/cli/disdrodb_run_l0c.py +1 -1
  13. disdrodb/cli/disdrodb_run_l1.py +1 -1
  14. disdrodb/cli/disdrodb_run_l2e.py +1 -1
  15. disdrodb/cli/disdrodb_run_l2m.py +1 -1
  16. disdrodb/configs.py +30 -83
  17. disdrodb/constants.py +4 -3
  18. disdrodb/data_transfer/download_data.py +4 -2
  19. disdrodb/docs.py +2 -2
  20. disdrodb/etc/products/L1/1MIN.yaml +13 -0
  21. disdrodb/etc/products/L1/LPM/1MIN.yaml +13 -0
  22. disdrodb/etc/products/L1/LPM_V0/1MIN.yaml +13 -0
  23. disdrodb/etc/products/L1/PARSIVEL/1MIN.yaml +13 -0
  24. disdrodb/etc/products/L1/PARSIVEL2/1MIN.yaml +13 -0
  25. disdrodb/etc/products/L1/PWS100/1MIN.yaml +13 -0
  26. disdrodb/etc/products/L1/RD80/1MIN.yaml +13 -0
  27. disdrodb/etc/products/L1/SWS250/1MIN.yaml +13 -0
  28. disdrodb/etc/products/L1/global.yaml +6 -0
  29. disdrodb/etc/products/L2E/10MIN.yaml +1 -12
  30. disdrodb/etc/products/L2E/global.yaml +1 -1
  31. disdrodb/etc/products/L2M/MODELS/NGAMMA_GS_R_MAE.yaml +6 -0
  32. disdrodb/etc/products/L2M/global.yaml +1 -1
  33. disdrodb/issue/checks.py +2 -2
  34. disdrodb/l0/check_configs.py +1 -1
  35. disdrodb/l0/configs/LPM/l0a_encodings.yml +0 -1
  36. disdrodb/l0/configs/LPM/l0b_cf_attrs.yml +0 -4
  37. disdrodb/l0/configs/LPM/l0b_encodings.yml +9 -9
  38. disdrodb/l0/configs/LPM/raw_data_format.yml +11 -11
  39. disdrodb/l0/configs/LPM_V0/bins_diameter.yml +103 -0
  40. disdrodb/l0/configs/LPM_V0/bins_velocity.yml +103 -0
  41. disdrodb/l0/configs/LPM_V0/l0a_encodings.yml +45 -0
  42. disdrodb/l0/configs/LPM_V0/l0b_cf_attrs.yml +180 -0
  43. disdrodb/l0/configs/LPM_V0/l0b_encodings.yml +410 -0
  44. disdrodb/l0/configs/LPM_V0/raw_data_format.yml +474 -0
  45. disdrodb/l0/configs/PARSIVEL/l0b_encodings.yml +1 -1
  46. disdrodb/l0/configs/PARSIVEL/raw_data_format.yml +8 -8
  47. disdrodb/l0/configs/PARSIVEL2/raw_data_format.yml +9 -9
  48. disdrodb/l0/l0_reader.py +2 -2
  49. disdrodb/l0/l0a_processing.py +6 -2
  50. disdrodb/l0/l0b_processing.py +26 -19
  51. disdrodb/l0/l0c_processing.py +17 -3
  52. disdrodb/l0/manuals/LPM_V0.pdf +0 -0
  53. disdrodb/l0/readers/LPM/ITALY/GID_LPM.py +15 -7
  54. disdrodb/l0/readers/LPM/ITALY/GID_LPM_PI.py +279 -0
  55. disdrodb/l0/readers/LPM/ITALY/GID_LPM_T.py +276 -0
  56. disdrodb/l0/readers/LPM/ITALY/GID_LPM_W.py +2 -2
  57. disdrodb/l0/readers/LPM/NETHERLANDS/DELFT_RWANDA_LPM_NC.py +103 -0
  58. disdrodb/l0/readers/LPM/NORWAY/HAUKELISETER_LPM.py +216 -0
  59. disdrodb/l0/readers/LPM/NORWAY/NMBU_LPM.py +208 -0
  60. disdrodb/l0/readers/LPM/UK/WITHWORTH_LPM.py +219 -0
  61. disdrodb/l0/readers/LPM/USA/CHARLESTON.py +229 -0
  62. disdrodb/l0/readers/{LPM → LPM_V0}/BELGIUM/ULIEGE.py +33 -49
  63. disdrodb/l0/readers/LPM_V0/ITALY/GID_LPM_V0.py +240 -0
  64. disdrodb/l0/readers/PARSIVEL/BASQUECOUNTRY/EUSKALMET_OTT.py +227 -0
  65. disdrodb/l0/readers/{PARSIVEL2 → PARSIVEL}/NASA/LPVEX.py +16 -28
  66. disdrodb/l0/readers/PARSIVEL/{GPM → NASA}/MC3E.py +1 -1
  67. disdrodb/l0/readers/PARSIVEL/NCAR/VORTEX2_2010_UF.py +3 -3
  68. disdrodb/l0/readers/PARSIVEL2/BASQUECOUNTRY/EUSKALMET_OTT2.py +232 -0
  69. disdrodb/l0/readers/PARSIVEL2/DENMARK/EROSION_raw.py +1 -1
  70. disdrodb/l0/readers/PARSIVEL2/JAPAN/PRECIP.py +155 -0
  71. disdrodb/l0/readers/PARSIVEL2/MPI/BCO_PARSIVEL2.py +14 -7
  72. disdrodb/l0/readers/PARSIVEL2/MPI/BOWTIE.py +8 -3
  73. disdrodb/l0/readers/PARSIVEL2/NASA/APU.py +28 -5
  74. disdrodb/l0/readers/PARSIVEL2/NCAR/RELAMPAGO_PARSIVEL2.py +1 -1
  75. disdrodb/l0/readers/PARSIVEL2/{GPM/GCPEX.py → NORWAY/UIB.py} +54 -29
  76. disdrodb/l0/readers/PARSIVEL2/PHILIPPINES/{PANGASA.py → PAGASA.py} +6 -3
  77. disdrodb/l0/readers/PARSIVEL2/SPAIN/GRANADA.py +1 -1
  78. disdrodb/l0/readers/PARSIVEL2/SWEDEN/SMHI.py +189 -0
  79. disdrodb/l0/readers/{PARSIVEL/GPM/PIERS.py → PARSIVEL2/USA/CSU.py} +62 -29
  80. disdrodb/l0/readers/PARSIVEL2/USA/{C3WE.py → CW3E.py} +51 -24
  81. disdrodb/l0/readers/{PARSIVEL/GPM/IFLOODS.py → RD80/BRAZIL/ATTO_RD80.py} +50 -34
  82. disdrodb/l0/readers/{SW250 → SWS250}/BELGIUM/KMI.py +1 -1
  83. disdrodb/l1/beard_model.py +45 -1
  84. disdrodb/l1/fall_velocity.py +1 -6
  85. disdrodb/l1/filters.py +2 -0
  86. disdrodb/l1/processing.py +6 -5
  87. disdrodb/l1/resampling.py +101 -38
  88. disdrodb/l2/empirical_dsd.py +12 -8
  89. disdrodb/l2/processing.py +4 -3
  90. disdrodb/metadata/search.py +3 -4
  91. disdrodb/routines/l0.py +4 -4
  92. disdrodb/routines/l1.py +173 -60
  93. disdrodb/routines/l2.py +121 -269
  94. disdrodb/routines/options.py +347 -0
  95. disdrodb/routines/wrappers.py +9 -1
  96. disdrodb/scattering/axis_ratio.py +3 -0
  97. disdrodb/scattering/routines.py +1 -1
  98. disdrodb/summary/routines.py +765 -724
  99. disdrodb/utils/archiving.py +51 -44
  100. disdrodb/utils/attrs.py +1 -1
  101. disdrodb/utils/compression.py +4 -2
  102. disdrodb/utils/dask.py +35 -15
  103. disdrodb/utils/dict.py +33 -0
  104. disdrodb/utils/encoding.py +1 -1
  105. disdrodb/utils/manipulations.py +7 -1
  106. disdrodb/utils/routines.py +9 -8
  107. disdrodb/utils/time.py +9 -1
  108. disdrodb/viz/__init__.py +0 -13
  109. disdrodb/viz/plots.py +209 -0
  110. {disdrodb-0.1.5.dist-info → disdrodb-0.2.1.dist-info}/METADATA +1 -1
  111. {disdrodb-0.1.5.dist-info → disdrodb-0.2.1.dist-info}/RECORD +124 -95
  112. disdrodb/l0/readers/PARSIVEL/GPM/LPVEX.py +0 -85
  113. /disdrodb/etc/products/L2M/{GAMMA_GS_ND_MAE.yaml → MODELS/GAMMA_GS_ND_MAE.yaml} +0 -0
  114. /disdrodb/etc/products/L2M/{GAMMA_ML.yaml → MODELS/GAMMA_ML.yaml} +0 -0
  115. /disdrodb/etc/products/L2M/{LOGNORMAL_GS_LOG_ND_MAE.yaml → MODELS/LOGNORMAL_GS_LOG_ND_MAE.yaml} +0 -0
  116. /disdrodb/etc/products/L2M/{LOGNORMAL_GS_ND_MAE.yaml → MODELS/LOGNORMAL_GS_ND_MAE.yaml} +0 -0
  117. /disdrodb/etc/products/L2M/{LOGNORMAL_ML.yaml → MODELS/LOGNORMAL_ML.yaml} +0 -0
  118. /disdrodb/etc/products/L2M/{NGAMMA_GS_LOG_ND_MAE.yaml → MODELS/NGAMMA_GS_LOG_ND_MAE.yaml} +0 -0
  119. /disdrodb/etc/products/L2M/{NGAMMA_GS_ND_MAE.yaml → MODELS/NGAMMA_GS_ND_MAE.yaml} +0 -0
  120. /disdrodb/etc/products/L2M/{NGAMMA_GS_Z_MAE.yaml → MODELS/NGAMMA_GS_Z_MAE.yaml} +0 -0
  121. /disdrodb/l0/readers/PARSIVEL2/{GPM → NASA}/NSSTC.py +0 -0
  122. {disdrodb-0.1.5.dist-info → disdrodb-0.2.1.dist-info}/WHEEL +0 -0
  123. {disdrodb-0.1.5.dist-info → disdrodb-0.2.1.dist-info}/entry_points.txt +0 -0
  124. {disdrodb-0.1.5.dist-info → disdrodb-0.2.1.dist-info}/licenses/LICENSE +0 -0
  125. {disdrodb-0.1.5.dist-info → disdrodb-0.2.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,474 @@
1
+ start_identifier:
2
+ n_digits: 1
3
+ n_characters: 1
4
+ n_decimals: 0
5
+ n_naturals: 1
6
+ data_range:
7
+ - 0
8
+ - 9
9
+ nan_flags: null
10
+ field_number: "01"
11
+ sensor_serial_number:
12
+ n_digits: 6
13
+ n_characters: 6
14
+ n_decimals: 0
15
+ n_naturals: 6
16
+ data_range:
17
+ - 0
18
+ - 999999
19
+ nan_flags: null
20
+ field_number: "02"
21
+ weather_code_synop_4680_5min:
22
+ n_digits: 2
23
+ n_characters: 2
24
+ n_decimals: 0
25
+ n_naturals: 2
26
+ data_range:
27
+ - -1
28
+ - 89
29
+ nan_flags: -1
30
+ field_number: "03"
31
+ weather_code_metar_4678_5min:
32
+ n_digits: 0
33
+ n_characters: 5
34
+ n_decimals: 0
35
+ n_naturals: 0
36
+ data_range: null
37
+ nan_flags: "?????"
38
+ field_number: "04"
39
+ precipitation_rate_5min:
40
+ n_digits: 6
41
+ n_characters: 7
42
+ n_decimals: 3
43
+ n_naturals: 3
44
+ data_range:
45
+ - 0.0
46
+ - 999.999
47
+ nan_flags: 999.999
48
+ field_number: "05"
49
+ weather_code_synop_4680:
50
+ n_digits: 0
51
+ n_characters: 5
52
+ n_decimals: 0
53
+ n_naturals: 0
54
+ data_range:
55
+ - -1
56
+ - 89
57
+ nan_flags: -1
58
+ field_number: "06"
59
+ weather_code_metar_4678:
60
+ n_digits: 0
61
+ n_characters: 5
62
+ n_decimals: 0
63
+ n_naturals: 0
64
+ data_range: null
65
+ nan_flags: "?????"
66
+ field_number: "07"
67
+ precipitation_rate:
68
+ n_digits: 6
69
+ n_characters: 7
70
+ n_decimals: 3
71
+ n_naturals: 3
72
+ data_range:
73
+ - 0.0
74
+ - 999.999
75
+ nan_flags: 999.999
76
+ field_number: "08"
77
+ precipitation_accumulated:
78
+ n_digits: 6
79
+ n_characters: 7
80
+ n_decimals: 4
81
+ n_naturals: 2
82
+ data_range:
83
+ - 0.0
84
+ - 9999.99
85
+ nan_flags: 9999.99
86
+ field_number: "09"
87
+ sensor_time:
88
+ n_digits: 6
89
+ n_characters: 8
90
+ n_decimals: 6
91
+ n_naturals: 0
92
+ data_range: null
93
+ nan_flags: null
94
+ field_number: "10"
95
+ temperature_interior:
96
+ n_digits: 3
97
+ n_characters: 3
98
+ n_decimals: 3
99
+ n_naturals: 0
100
+ data_range:
101
+ - -30
102
+ - 999
103
+ nan_flags: null
104
+ field_number: "11"
105
+ laser_temperature:
106
+ n_digits: 2
107
+ n_characters: 2
108
+ n_decimals: 2
109
+ n_naturals: 0
110
+ data_range:
111
+ - 0
112
+ - 80
113
+ nan_flags: null
114
+ field_number: "12"
115
+ laser_current_average:
116
+ n_digits: 4
117
+ n_characters: 4
118
+ n_decimals: 4
119
+ n_naturals: 0
120
+ data_range:
121
+ - 0
122
+ - 9999
123
+ nan_flags: null
124
+ field_number: "13"
125
+ control_voltage:
126
+ n_digits: 4
127
+ n_characters: 4
128
+ n_decimals: 4
129
+ n_naturals: 0
130
+ data_range: null
131
+ nan_flags: null
132
+ field_number: "14"
133
+ optical_control_voltage_output:
134
+ n_digits: 4
135
+ n_characters: 4
136
+ n_decimals: 4
137
+ n_naturals: 0
138
+ data_range:
139
+ - 0
140
+ - 9999
141
+ nan_flags: null
142
+ field_number: "15"
143
+ number_particles:
144
+ n_digits: 5
145
+ n_characters: 5
146
+ n_decimals: 5
147
+ n_naturals: 0
148
+ data_range:
149
+ - 0
150
+ - 99999
151
+ nan_flags: null
152
+ field_number: "16"
153
+ number_particles_internal_data:
154
+ n_digits: 8
155
+ n_characters: 9
156
+ n_decimals: 5
157
+ n_naturals: 3
158
+ data_range:
159
+ - 0.0
160
+ - 99999.999
161
+ nan_flags: null
162
+ field_number: "17"
163
+ number_particles_min_speed:
164
+ n_digits: 5
165
+ n_characters: 5
166
+ n_decimals: 5
167
+ n_naturals: 0
168
+ data_range:
169
+ - 0
170
+ - 99999
171
+ nan_flags: null
172
+ field_number: "18"
173
+ number_particles_min_speed_internal_data:
174
+ n_digits: 8
175
+ n_characters: 9
176
+ n_decimals: 5
177
+ n_naturals: 3
178
+ data_range:
179
+ - 0.0
180
+ - 99999.999
181
+ nan_flags: null
182
+ field_number: "19"
183
+ number_particles_max_speed:
184
+ n_digits: 5
185
+ n_characters: 5
186
+ n_decimals: 5
187
+ n_naturals: 0
188
+ data_range:
189
+ - 0
190
+ - 99999
191
+ nan_flags: null
192
+ field_number: "20"
193
+ number_particles_max_speed_internal_data:
194
+ n_digits: 8
195
+ n_characters: 9
196
+ n_decimals: 5
197
+ n_naturals: 3
198
+ data_range:
199
+ - 0.0
200
+ - 99999.999
201
+ nan_flags: null
202
+ field_number: "21"
203
+ number_particles_min_diameter:
204
+ n_digits: 5
205
+ n_characters: 5
206
+ n_decimals: 5
207
+ n_naturals: 0
208
+ data_range:
209
+ - 0
210
+ - 99999
211
+ nan_flags: null
212
+ field_number: "22"
213
+ number_particles_min_diameter_internal_data:
214
+ n_digits: 8
215
+ n_characters: 9
216
+ n_decimals: 5
217
+ n_naturals: 3
218
+ data_range:
219
+ - 0.0
220
+ - 99999.999
221
+ nan_flags: null
222
+ field_number: "23"
223
+ number_particles_no_hydrometeor:
224
+ n_digits: 5
225
+ n_characters: 5
226
+ n_decimals: 5
227
+ n_naturals: 0
228
+ data_range:
229
+ - 0
230
+ - 99999
231
+ nan_flags: null
232
+ field_number: "24"
233
+ number_particles_no_hydrometeor_internal_data:
234
+ n_digits: 8
235
+ n_characters: 9
236
+ n_decimals: 5
237
+ n_naturals: 3
238
+ data_range:
239
+ - 0.0
240
+ - 99999.999
241
+ nan_flags: null
242
+ field_number: "25"
243
+ number_particles_unknown_classification:
244
+ n_digits: 5
245
+ n_characters: 5
246
+ n_decimals: 5
247
+ n_naturals: 0
248
+ data_range:
249
+ - 0
250
+ - 99999
251
+ nan_flags: null
252
+ field_number: "26"
253
+ total_gross_volume_unknown_classification:
254
+ n_digits: 8
255
+ n_characters: 9
256
+ n_decimals: 5
257
+ n_naturals: 3
258
+ data_range:
259
+ - 0.0
260
+ - 99999.999
261
+ nan_flags: null
262
+ field_number: "27"
263
+ number_particles_hail:
264
+ n_digits: 5
265
+ n_characters: 5
266
+ n_decimals: 5
267
+ n_naturals: 0
268
+ data_range:
269
+ - 0
270
+ - 99999
271
+ nan_flags: null
272
+ field_number: "28"
273
+ total_gross_volume_hail:
274
+ n_digits: 8
275
+ n_characters: 9
276
+ n_decimals: 5
277
+ n_naturals: 3
278
+ data_range:
279
+ - 0.0
280
+ - 99999.999
281
+ nan_flags: null
282
+ field_number: "29"
283
+ number_particles_solid_precipitation:
284
+ n_digits: 5
285
+ n_characters: 5
286
+ n_decimals: 5
287
+ n_naturals: 0
288
+ data_range:
289
+ - 0
290
+ - 99999
291
+ nan_flags: null
292
+ field_number: "30"
293
+ total_gross_volume_solid_precipitation:
294
+ n_digits: 8
295
+ n_characters: 9
296
+ n_decimals: 5
297
+ n_naturals: 3
298
+ data_range:
299
+ - 0.0
300
+ - 99999.999
301
+ nan_flags: null
302
+ field_number: "31"
303
+ number_particles_great_pellet:
304
+ n_digits: 5
305
+ n_characters: 5
306
+ n_decimals: 5
307
+ n_naturals: 0
308
+ data_range:
309
+ - 0
310
+ - 99999
311
+ nan_flags: null
312
+ field_number: "32"
313
+ total_gross_volume_great_pellet:
314
+ n_digits: 8
315
+ n_characters: 9
316
+ n_decimals: 5
317
+ n_naturals: 3
318
+ data_range:
319
+ - 0.0
320
+ - 99999.999
321
+ nan_flags: null
322
+ field_number: "33"
323
+ number_particles_small_pellet:
324
+ n_digits: 5
325
+ n_characters: 5
326
+ n_decimals: 5
327
+ n_naturals: 0
328
+ data_range:
329
+ - 0
330
+ - 99999
331
+ nan_flags: null
332
+ field_number: "34"
333
+ total_gross_volume_small_pellet:
334
+ n_digits: 8
335
+ n_characters: 9
336
+ n_decimals: 5
337
+ n_naturals: 3
338
+ data_range:
339
+ - 0.0
340
+ - 99999.999
341
+ nan_flags: null
342
+ field_number: "35"
343
+ number_particles_snowgrain:
344
+ n_digits: 5
345
+ n_characters: 5
346
+ n_decimals: 5
347
+ n_naturals: 0
348
+ data_range:
349
+ - 0
350
+ - 99999
351
+ nan_flags: null
352
+ field_number: "36"
353
+ total_gross_volume_snowgrain:
354
+ n_digits: 8
355
+ n_characters: 9
356
+ n_decimals: 5
357
+ n_naturals: 3
358
+ data_range:
359
+ - 0.0
360
+ - 99999.999
361
+ nan_flags: null
362
+ field_number: "37"
363
+ number_particles_rain:
364
+ n_digits: 5
365
+ n_characters: 5
366
+ n_decimals: 5
367
+ n_naturals: 0
368
+ data_range:
369
+ - 0
370
+ - 99999
371
+ nan_flags: null
372
+ field_number: "38"
373
+ total_gross_volume_rain:
374
+ n_digits: 8
375
+ n_characters: 9
376
+ n_decimals: 5
377
+ n_naturals: 3
378
+ data_range:
379
+ - 0.0
380
+ - 99999.999
381
+ nan_flags: null
382
+ field_number: "39"
383
+ number_particles_small_rain:
384
+ n_digits: 5
385
+ n_characters: 5
386
+ n_decimals: 5
387
+ n_naturals: 0
388
+ data_range:
389
+ - 0
390
+ - 99999
391
+ nan_flags: null
392
+ field_number: "40"
393
+ total_gross_volume_small_rain:
394
+ n_digits: 8
395
+ n_characters: 9
396
+ n_decimals: 5
397
+ n_naturals: 3
398
+ data_range:
399
+ - 0.0
400
+ - 99999.999
401
+ nan_flags: null
402
+ field_number: "41"
403
+ number_particles_drizzle:
404
+ n_digits: 5
405
+ n_characters: 5
406
+ n_decimals: 5
407
+ n_naturals: 0
408
+ data_range:
409
+ - 0
410
+ - 99999
411
+ nan_flags: null
412
+ field_number: "42"
413
+ total_gross_volume_drizzle:
414
+ n_digits: 8
415
+ n_characters: 9
416
+ n_decimals: 5
417
+ n_naturals: 3
418
+ data_range:
419
+ - 0.0
420
+ - 99999.999
421
+ nan_flags: null
422
+ field_number: "43"
423
+ raw_drop_number:
424
+ n_digits: 1317
425
+ n_characters: 1756
426
+ n_decimals: 1317
427
+ n_naturals: 0
428
+ data_range: null
429
+ nan_flags: null
430
+ dimension_order:
431
+ - diameter_bin_center
432
+ - velocity_bin_center
433
+ n_values: 400
434
+ field_number: "81"
435
+ air_temperature:
436
+ n_digits: 4
437
+ n_characters: 5
438
+ n_decimals: 1
439
+ n_naturals: 2
440
+ data_range:
441
+ - -40
442
+ - 70
443
+ nan_flags: 99999
444
+ field_number: "444"
445
+ relative_humidity:
446
+ n_digits: 5
447
+ n_characters: 5
448
+ n_decimals: 0
449
+ n_naturals: 5
450
+ data_range:
451
+ - 0
452
+ - 99999
453
+ nan_flags: 99999
454
+ field_number: "445"
455
+ wind_speed:
456
+ n_digits: 3
457
+ n_characters: 4
458
+ n_decimals: 1
459
+ n_naturals: 2
460
+ data_range:
461
+ - 0
462
+ - 60
463
+ nan_flags: null
464
+ field_number: "446"
465
+ wind_direction:
466
+ n_digits: 3
467
+ n_characters: 3
468
+ n_decimals: 0
469
+ n_naturals: 3
470
+ data_range:
471
+ - 0
472
+ - 360
473
+ nan_flags: 999
474
+ field_number: "447"
@@ -216,7 +216,7 @@ rainfall_rate_16bit:
216
216
  contiguous: false
217
217
  chunksizes: 5000
218
218
  rainfall_rate_12bit:
219
- dtype: object
219
+ dtype: float32
220
220
  zlib: true
221
221
  complevel: 3
222
222
  shuffle: true
@@ -6,7 +6,7 @@ rainfall_rate_32bit:
6
6
  data_range:
7
7
  - 0
8
8
  - 9999.999
9
- nan_flags: null
9
+ nan_flags: 9999.999
10
10
  field_number: "01"
11
11
  rainfall_accumulated_32bit:
12
12
  n_digits: 6
@@ -16,7 +16,7 @@ rainfall_accumulated_32bit:
16
16
  data_range:
17
17
  - 0
18
18
  - 9999.0
19
- nan_flags: null
19
+ nan_flags: 9999.0
20
20
  field_number: "02"
21
21
  weather_code_synop_4680:
22
22
  n_digits: 2
@@ -62,7 +62,7 @@ reflectivity_32bit:
62
62
  data_range:
63
63
  - -9.999
64
64
  - 99.999
65
- nan_flags: null
65
+ nan_flags: 99.999
66
66
  field_number: "07"
67
67
  mor_visibility:
68
68
  n_digits: 4
@@ -92,7 +92,7 @@ laser_amplitude:
92
92
  data_range:
93
93
  - 0
94
94
  - 99999
95
- nan_flags: null
95
+ nan_flags: 99999
96
96
  field_number: "10"
97
97
  number_particles:
98
98
  n_digits: 5
@@ -102,7 +102,7 @@ number_particles:
102
102
  data_range:
103
103
  - 0
104
104
  - 99999
105
- nan_flags: null
105
+ nan_flags: 99999
106
106
  field_number: "11"
107
107
  sensor_temperature:
108
108
  n_digits: 3
@@ -221,7 +221,7 @@ rainfall_amount_absolute_32bit:
221
221
  data_range:
222
222
  - 0
223
223
  - 999.999
224
- nan_flags: null
224
+ nan_flags: 999.999
225
225
  field_number: "24"
226
226
  error_code:
227
227
  n_digits: 3
@@ -245,7 +245,7 @@ rainfall_rate_16bit:
245
245
  data_range:
246
246
  - 0
247
247
  - 9999.999
248
- nan_flags: null
248
+ nan_flags: 9999.999
249
249
  field_number: "30"
250
250
  rainfall_rate_12bit:
251
251
  n_digits: 5
@@ -273,7 +273,7 @@ reflectivity_16bit:
273
273
  data_range:
274
274
  - -9.99
275
275
  - 99.99
276
- nan_flags: null
276
+ nan_flags: 99.99
277
277
  field_number: "33"
278
278
  raw_drop_concentration:
279
279
  n_digits: 0
@@ -6,7 +6,7 @@ rainfall_rate_32bit:
6
6
  data_range:
7
7
  - 0
8
8
  - 9999.999
9
- nan_flags: null
9
+ nan_flags: 9999.999
10
10
  field_number: "01"
11
11
  rainfall_accumulated_32bit:
12
12
  n_digits: 6
@@ -16,7 +16,7 @@ rainfall_accumulated_32bit:
16
16
  data_range:
17
17
  - 0
18
18
  - 9999.0
19
- nan_flags: null
19
+ nan_flags: 9999.0
20
20
  field_number: "02"
21
21
  weather_code_synop_4680:
22
22
  n_digits: 2
@@ -62,7 +62,7 @@ reflectivity_32bit:
62
62
  data_range:
63
63
  - -9.999
64
64
  - 99.999
65
- nan_flags: null
65
+ nan_flags: 99.999
66
66
  field_number: "07"
67
67
  mor_visibility:
68
68
  n_digits: 5
@@ -92,7 +92,7 @@ laser_amplitude:
92
92
  data_range:
93
93
  - 0
94
94
  - 99999
95
- nan_flags: null
95
+ nan_flags: 99999
96
96
  field_number: "10"
97
97
  number_particles:
98
98
  n_digits: 5
@@ -102,7 +102,7 @@ number_particles:
102
102
  data_range:
103
103
  - 0
104
104
  - 99999
105
- nan_flags: null
105
+ nan_flags: 99999
106
106
  field_number: "11"
107
107
  sensor_temperature:
108
108
  n_digits: 3
@@ -221,7 +221,7 @@ rainfall_amount_absolute_32bit:
221
221
  data_range:
222
222
  - 0
223
223
  - 999.999
224
- nan_flags: null
224
+ nan_flags: 999.999
225
225
  field_number: "24"
226
226
  error_code:
227
227
  n_digits: 3
@@ -305,7 +305,7 @@ reflectivity_16bit:
305
305
  data_range:
306
306
  - -9.99
307
307
  - 99.99
308
- nan_flags: null
308
+ nan_flags: 99.99
309
309
  field_number: "33"
310
310
  rain_kinetic_energy:
311
311
  n_digits: 6
@@ -315,7 +315,7 @@ rain_kinetic_energy:
315
315
  data_range:
316
316
  - 0
317
317
  - 9999.99
318
- nan_flags: null
318
+ nan_flags: 9999.99
319
319
  field_number: "34"
320
320
  snowfall_rate:
321
321
  n_digits: 6
@@ -325,7 +325,7 @@ snowfall_rate:
325
325
  data_range:
326
326
  - 0
327
327
  - 999.999
328
- nan_flags: null
328
+ nan_flags: 999.999
329
329
  field_number: "35"
330
330
  number_particles_all:
331
331
  n_digits: 8
disdrodb/l0/l0_reader.py CHANGED
@@ -35,9 +35,9 @@ logger = logging.getLogger(__name__)
35
35
 
36
36
  def define_readers_directory(sensor_name="") -> str:
37
37
  """Returns the path to the ``disdrodb.l0.readers`` directory within the disdrodb package."""
38
- from disdrodb import __root_path__
38
+ from disdrodb import package_dir
39
39
 
40
- reader_dir = os.path.join(__root_path__, "disdrodb", "l0", "readers", sensor_name)
40
+ reader_dir = os.path.join(package_dir, "l0", "readers", sensor_name)
41
41
  return reader_dir
42
42
 
43
43
 
@@ -267,8 +267,8 @@ def remove_issue_timesteps(df, issue_dict, logger=None, verbose=False):
267
267
  n_initial_rows = len(df)
268
268
 
269
269
  # Retrieve timesteps and time_periods
270
- timesteps = issue_dict.get("timesteps", None)
271
- time_periods = issue_dict.get("time_periods", None)
270
+ timesteps = issue_dict.get("timesteps")
271
+ time_periods = issue_dict.get("time_periods")
272
272
  timesteps = [] if timesteps is None else timesteps
273
273
  time_periods = [] if time_periods is None else time_periods
274
274
 
@@ -615,6 +615,10 @@ def sanitize_df(
615
615
  # - Strip first and last delimiter from the raw arrays
616
616
  df = strip_delimiter_from_raw_arrays(df)
617
617
 
618
+ # - Ensure raw drop number variable max value is < 999
619
+ # - Raise error otherwise
620
+ # TODO:
621
+
618
622
  # - Remove corrupted rows
619
623
  df = remove_corrupted_rows(df)
620
624