disdrodb 0.2.0__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 (71) hide show
  1. disdrodb/_version.py +2 -2
  2. disdrodb/accessor/methods.py +10 -3
  3. disdrodb/api/checks.py +1 -1
  4. disdrodb/api/io.py +6 -1
  5. disdrodb/constants.py +1 -1
  6. disdrodb/etc/products/L1/LPM_V0/1MIN.yaml +13 -0
  7. disdrodb/etc/products/L1/global.yaml +1 -1
  8. disdrodb/etc/products/L2E/global.yaml +1 -1
  9. disdrodb/etc/products/L2M/global.yaml +1 -1
  10. disdrodb/issue/checks.py +2 -2
  11. disdrodb/l0/check_configs.py +1 -1
  12. disdrodb/l0/configs/LPM/l0a_encodings.yml +0 -1
  13. disdrodb/l0/configs/LPM/l0b_cf_attrs.yml +0 -4
  14. disdrodb/l0/configs/LPM/l0b_encodings.yml +9 -9
  15. disdrodb/l0/configs/LPM/raw_data_format.yml +11 -11
  16. disdrodb/l0/configs/LPM_V0/bins_diameter.yml +103 -0
  17. disdrodb/l0/configs/LPM_V0/bins_velocity.yml +103 -0
  18. disdrodb/l0/configs/LPM_V0/l0a_encodings.yml +45 -0
  19. disdrodb/l0/configs/LPM_V0/l0b_cf_attrs.yml +180 -0
  20. disdrodb/l0/configs/LPM_V0/l0b_encodings.yml +410 -0
  21. disdrodb/l0/configs/LPM_V0/raw_data_format.yml +474 -0
  22. disdrodb/l0/configs/PARSIVEL/raw_data_format.yml +8 -8
  23. disdrodb/l0/configs/PARSIVEL2/raw_data_format.yml +9 -9
  24. disdrodb/l0/l0a_processing.py +6 -2
  25. disdrodb/l0/l0b_processing.py +26 -19
  26. disdrodb/l0/l0c_processing.py +10 -0
  27. disdrodb/l0/manuals/LPM_V0.pdf +0 -0
  28. disdrodb/l0/readers/LPM/ITALY/GID_LPM.py +15 -7
  29. disdrodb/l0/readers/LPM/ITALY/GID_LPM_PI.py +279 -0
  30. disdrodb/l0/readers/LPM/ITALY/GID_LPM_T.py +276 -0
  31. disdrodb/l0/readers/LPM/ITALY/GID_LPM_W.py +2 -2
  32. disdrodb/l0/readers/LPM/NETHERLANDS/DELFT_RWANDA_LPM_NC.py +103 -0
  33. disdrodb/l0/readers/LPM/NORWAY/HAUKELISETER_LPM.py +216 -0
  34. disdrodb/l0/readers/LPM/NORWAY/NMBU_LPM.py +208 -0
  35. disdrodb/l0/readers/LPM/UK/WITHWORTH_LPM.py +219 -0
  36. disdrodb/l0/readers/LPM/USA/CHARLESTON.py +229 -0
  37. disdrodb/l0/readers/{LPM → LPM_V0}/BELGIUM/ULIEGE.py +33 -49
  38. disdrodb/l0/readers/LPM_V0/ITALY/GID_LPM_V0.py +240 -0
  39. disdrodb/l0/readers/PARSIVEL/NASA/LPVEX.py +25 -13
  40. disdrodb/l0/readers/PARSIVEL/NASA/MC3E.py +1 -1
  41. disdrodb/l0/readers/PARSIVEL2/BASQUECOUNTRY/EUSKALMET_OTT2.py +1 -1
  42. disdrodb/l0/readers/PARSIVEL2/JAPAN/PRECIP.py +155 -0
  43. disdrodb/l0/readers/PARSIVEL2/MPI/BCO_PARSIVEL2.py +14 -7
  44. disdrodb/l0/readers/PARSIVEL2/MPI/BOWTIE.py +8 -3
  45. disdrodb/l0/readers/PARSIVEL2/NASA/APU.py +28 -5
  46. disdrodb/l0/readers/PARSIVEL2/NCAR/RELAMPAGO_PARSIVEL2.py +1 -1
  47. disdrodb/l0/readers/PARSIVEL2/{NASA/GCPEX.py → NORWAY/UIB.py} +54 -29
  48. disdrodb/l0/readers/PARSIVEL2/PHILIPPINES/PAGASA.py +6 -3
  49. disdrodb/l0/readers/{PARSIVEL/NASA/PIERS.py → PARSIVEL2/USA/CSU.py} +62 -29
  50. disdrodb/l0/readers/PARSIVEL2/USA/CW3E.py +48 -21
  51. disdrodb/l0/readers/{PARSIVEL/NASA/IFLOODS.py → RD80/BRAZIL/ATTO_RD80.py} +50 -34
  52. disdrodb/l0/readers/{SW250 → SWS250}/BELGIUM/KMI.py +1 -1
  53. disdrodb/l1/beard_model.py +45 -1
  54. disdrodb/l1/fall_velocity.py +1 -6
  55. disdrodb/l1/filters.py +2 -0
  56. disdrodb/l2/empirical_dsd.py +12 -8
  57. disdrodb/routines/l0.py +2 -2
  58. disdrodb/routines/options.py +2 -0
  59. disdrodb/scattering/axis_ratio.py +3 -0
  60. disdrodb/scattering/routines.py +1 -1
  61. disdrodb/summary/routines.py +63 -61
  62. disdrodb/utils/compression.py +4 -2
  63. disdrodb/utils/dask.py +31 -11
  64. disdrodb/utils/manipulations.py +7 -1
  65. disdrodb/viz/plots.py +5 -3
  66. {disdrodb-0.2.0.dist-info → disdrodb-0.2.1.dist-info}/METADATA +1 -1
  67. {disdrodb-0.2.0.dist-info → disdrodb-0.2.1.dist-info}/RECORD +71 -54
  68. {disdrodb-0.2.0.dist-info → disdrodb-0.2.1.dist-info}/WHEEL +0 -0
  69. {disdrodb-0.2.0.dist-info → disdrodb-0.2.1.dist-info}/entry_points.txt +0 -0
  70. {disdrodb-0.2.0.dist-info → disdrodb-0.2.1.dist-info}/licenses/LICENSE +0 -0
  71. {disdrodb-0.2.0.dist-info → disdrodb-0.2.1.dist-info}/top_level.txt +0 -0
disdrodb/_version.py CHANGED
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.2.0'
32
- __version_tuple__ = version_tuple = (0, 2, 0)
31
+ __version__ = version = '0.2.1'
32
+ __version_tuple__ = version_tuple = (0, 2, 1)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -64,6 +64,13 @@ class DISDRODB_Base_Accessor:
64
64
 
65
65
  return get_diameter_bin_edges(self._obj)
66
66
 
67
+ @property
68
+ def velocity_bin_edges(self):
69
+ """Return velocity bin edges."""
70
+ from disdrodb.utils.manipulations import get_velocity_bin_edges
71
+
72
+ return get_velocity_bin_edges(self._obj)
73
+
67
74
  def regularize(self):
68
75
  """Regularize timesteps."""
69
76
  from disdrodb.utils.time import regularize_dataset
@@ -93,7 +100,7 @@ class DISDRODB_Base_Accessor:
93
100
  """Plot spectrum."""
94
101
  from disdrodb.viz.plots import plot_spectrum
95
102
 
96
- plot_spectrum(self._obj, **kwargs)
103
+ return plot_spectrum(self._obj, **kwargs)
97
104
 
98
105
 
99
106
  @xr.register_dataset_accessor("disdrodb")
@@ -119,13 +126,13 @@ class DISDRODB_Dataset_Accessor(DISDRODB_Base_Accessor):
119
126
  """Plot drop number concentration N(D) timeseries."""
120
127
  from disdrodb.viz.plots import plot_nd
121
128
 
122
- plot_nd(self._obj, **kwargs)
129
+ return plot_nd(self._obj, **kwargs)
123
130
 
124
131
  def plot_raw_and_filtered_spectra(self, **kwargs):
125
132
  """Plot the raw and filtered spectra."""
126
133
  from disdrodb.viz.plots import plot_raw_and_filtered_spectra
127
134
 
128
- plot_raw_and_filtered_spectra(self._obj, **kwargs)
135
+ return plot_raw_and_filtered_spectra(self._obj, **kwargs)
129
136
 
130
137
 
131
138
  @xr.register_dataarray_accessor("disdrodb")
disdrodb/api/checks.py CHANGED
@@ -161,7 +161,7 @@ def check_temporal_resolution(temporal_resolution):
161
161
  if not isinstance(temporal_resolution, str):
162
162
  raise TypeError("'temporal_resolution' must be a string.")
163
163
  # If correct, the follow should not raise error
164
- sample_interval, rolling = get_sampling_information(temporal_resolution)
164
+ _ = get_sampling_information(temporal_resolution)
165
165
 
166
166
 
167
167
  def check_folder_partitioning(folder_partitioning):
disdrodb/api/io.py CHANGED
@@ -347,6 +347,7 @@ def open_netcdf_files(
347
347
  ds = xr.open_mfdataset(
348
348
  filepaths,
349
349
  chunks=chunks,
350
+ data_vars="all",
350
351
  combine="nested",
351
352
  join="outer",
352
353
  concat_dim="time",
@@ -355,7 +356,7 @@ def open_netcdf_files(
355
356
  preprocess=preprocess,
356
357
  compat="no_conflicts",
357
358
  combine_attrs="override",
358
- coords="different", # maybe minimal?
359
+ coords="different", # maybe minimal? would remove lon/lat/alt?
359
360
  decode_timedelta=False,
360
361
  cache=False,
361
362
  autoclose=True,
@@ -475,6 +476,10 @@ def open_dataset(
475
476
  compute=compute,
476
477
  **open_kwargs,
477
478
  )
479
+
480
+ # Ensure coordinates in memory
481
+ # for coord in list(ds.coords):
482
+ # ds[coord] = ds[coord].compute()
478
483
  return ds
479
484
 
480
485
 
disdrodb/constants.py CHANGED
@@ -41,7 +41,7 @@ COORDINATES = [
41
41
  "time",
42
42
  "sample_interval",
43
43
  ]
44
- OPTICAL_SENSORS = ["PARSIVEL", "PARSIVEL2", "LPM", "PWS100", "SWS250"]
44
+ OPTICAL_SENSORS = ["PARSIVEL", "PARSIVEL2", "LPM", "LPM_V0", "PWS100", "SWS250"]
45
45
  IMPACT_SENSORS = ["RD80"]
46
46
 
47
47
  PRODUCTS = ["RAW", "L0A", "L0B", "L0C", "L1", "L2E", "L2M"]
@@ -0,0 +1,13 @@
1
+ product_options:
2
+ fall_velocity_model: "Beard1976"
3
+ minimum_diameter: 0
4
+ maximum_diameter: 10
5
+ minimum_velocity: 0
6
+ maximum_velocity: 12
7
+ above_velocity_fraction: 0.5
8
+ above_velocity_tolerance: null
9
+ below_velocity_fraction: 0.5
10
+ below_velocity_tolerance: null
11
+ small_diameter_threshold: 1
12
+ small_velocity_threshold: 2.5
13
+ maintain_smallest_drops: True
@@ -1,4 +1,4 @@
1
- temporal_resolutions: ["1MIN", "5MIN", "10MIN", "ROLL1MIN", "5MIN"]
1
+ temporal_resolutions: ["1MIN", "5MIN", "10MIN", "ROLL1MIN"]
2
2
  archive_options:
3
3
  strategy: time_block
4
4
  strategy_options:
@@ -1,4 +1,4 @@
1
- temporal_resolutions: ["1MIN"] # "5MIN", "10MIN", "ROLL1MIN"]
1
+ temporal_resolutions: ["1MIN", "5MIN", "10MIN", "ROLL1MIN"]
2
2
  archive_options:
3
3
  strategy: time_block
4
4
  strategy_options:
@@ -1,4 +1,4 @@
1
- temporal_resolutions: ["1MIN"] #, "5MIN", "10MIN"]
1
+ temporal_resolutions: ["1MIN", "5MIN", "10MIN"]
2
2
  models:
3
3
  [
4
4
  "GAMMA_ML",
disdrodb/issue/checks.py CHANGED
@@ -173,7 +173,7 @@ def check_time_periods(time_periods):
173
173
 
174
174
  def _get_issue_timesteps(issue_dict):
175
175
  """Get timesteps from issue dictionary."""
176
- timesteps = issue_dict.get("timesteps", None)
176
+ timesteps = issue_dict.get("timesteps")
177
177
  # Check validity
178
178
  timesteps = check_timesteps(timesteps)
179
179
  # Sort
@@ -183,7 +183,7 @@ def _get_issue_timesteps(issue_dict):
183
183
 
184
184
  def _get_issue_time_periods(issue_dict):
185
185
  """Get time_periods from issue dictionary."""
186
- time_periods = issue_dict.get("time_periods", None)
186
+ time_periods = issue_dict.get("time_periods")
187
187
  time_periods = check_time_periods(time_periods)
188
188
  return time_periods
189
189
 
@@ -251,7 +251,7 @@ class RawDataFormatSchema(BaseModel):
251
251
  n_decimals: Optional[int]
252
252
  n_naturals: Optional[int]
253
253
  data_range: Optional[list[float]]
254
- nan_flags: Optional[Union[int, str]] = None
254
+ nan_flags: Optional[Union[int, float, str]] = None
255
255
  valid_values: Optional[list[float]] = None
256
256
  dimension_order: Optional[list[str]] = None
257
257
  n_values: Optional[int] = None
@@ -1,4 +1,3 @@
1
- device_address: "float32" # 'uint8'
2
1
  weather_code_synop_4677_5min: "float32" # 'uint8'
3
2
  weather_code_synop_4680_5min: "float32" # 'uint8'
4
3
  weather_code_metar_4678_5min: "str"
@@ -1,7 +1,3 @@
1
- device_address:
2
- description: "Device address (factory setting \u201E00\") (NN)"
3
- long_name: Device address
4
- units: ""
5
1
  weather_code_synop_4677_5min:
6
2
  description: 5M SYNOP Tab.4677 (5 minutes mean value) (NN)
7
3
  long_name: 5 min SYNOP Tab.4677
@@ -7,15 +7,15 @@
7
7
  # contiguous: false
8
8
  # chunksizes: 5000
9
9
  # _FillValue: 255
10
- device_address:
11
- dtype: uint8
12
- zlib: true
13
- complevel: 3
14
- shuffle: true
15
- fletcher32: false
16
- contiguous: false
17
- chunksizes: 5000
18
- _FillValue: 255
10
+ # device_address:
11
+ # dtype: uint8
12
+ # zlib: true
13
+ # complevel: 3
14
+ # shuffle: true
15
+ # fletcher32: false
16
+ # contiguous: false
17
+ # chunksizes: 5000
18
+ # _FillValue: 255
19
19
  # sensor_serial_number:
20
20
  # dtype: uint16
21
21
  # zlib: false
@@ -73,7 +73,7 @@ weather_code_synop_4680_5min:
73
73
  - -1
74
74
  - 89
75
75
  nan_flags: -1
76
- field_number: 08
76
+ field_number: "08"
77
77
  weather_code_metar_4678_5min:
78
78
  n_digits: 0
79
79
  n_characters: 5
@@ -81,7 +81,7 @@ weather_code_metar_4678_5min:
81
81
  n_naturals: 0
82
82
  data_range: null
83
83
  nan_flags: null
84
- field_number: 09
84
+ field_number: "09"
85
85
  precipitation_rate_5min:
86
86
  n_digits: 6
87
87
  n_characters: 7
@@ -90,7 +90,7 @@ precipitation_rate_5min:
90
90
  data_range:
91
91
  - 0.0
92
92
  - 999.999
93
- nan_flags: null
93
+ nan_flags: 999.999
94
94
  field_number: "10"
95
95
  weather_code_synop_4677:
96
96
  n_digits: 0
@@ -128,7 +128,7 @@ precipitation_rate:
128
128
  data_range:
129
129
  - 0.0
130
130
  - 999.999
131
- nan_flags: null
131
+ nan_flags: 999.999
132
132
  field_number: "14"
133
133
  rainfall_rate:
134
134
  n_digits: 6
@@ -138,7 +138,7 @@ rainfall_rate:
138
138
  data_range:
139
139
  - 0.0
140
140
  - 999.999
141
- nan_flags: null
141
+ nan_flags: 999.999
142
142
  field_number: "15"
143
143
  snowfall_rate:
144
144
  n_digits: 6
@@ -148,7 +148,7 @@ snowfall_rate:
148
148
  data_range:
149
149
  - 0.0
150
150
  - 999.999
151
- nan_flags: null
151
+ nan_flags: 999.999
152
152
  field_number: "16"
153
153
  precipitation_accumulated:
154
154
  n_digits: 6
@@ -158,7 +158,7 @@ precipitation_accumulated:
158
158
  data_range:
159
159
  - 0.0
160
160
  - 9999.99
161
- nan_flags: null
161
+ nan_flags: 9999.99
162
162
  field_number: "17"
163
163
  mor_visibility:
164
164
  n_digits: 5
@@ -178,7 +178,7 @@ reflectivity:
178
178
  data_range:
179
179
  - -9.9
180
180
  - 99.9
181
- nan_flags: null
181
+ nan_flags: 99.9
182
182
  field_number: "19"
183
183
  quality_index:
184
184
  n_digits: 3
@@ -410,7 +410,7 @@ temperature_interior:
410
410
  data_range:
411
411
  - -30
412
412
  - 999
413
- nan_flags: null
413
+ nan_flags: 999
414
414
  field_number: "38"
415
415
  laser_temperature:
416
416
  n_digits: 2
@@ -430,7 +430,7 @@ laser_current_average:
430
430
  data_range:
431
431
  - 0
432
432
  - 9999
433
- nan_flags: null
433
+ nan_flags: 9999
434
434
  field_number: "40"
435
435
  control_voltage:
436
436
  n_digits: 4
@@ -448,7 +448,7 @@ optical_control_voltage_output:
448
448
  data_range:
449
449
  - 0
450
450
  - 9999
451
- nan_flags: null
451
+ nan_flags: 9999
452
452
  field_number: "42"
453
453
  sensor_voltage_supply:
454
454
  n_digits: 3
@@ -0,0 +1,103 @@
1
+ center:
2
+ 0: 0.1875
3
+ 1: 0.3125
4
+ 2: 0.4375
5
+ 3: 0.625
6
+ 4: 0.875
7
+ 5: 1.125
8
+ 6: 1.375
9
+ 7: 1.625
10
+ 8: 1.875
11
+ 9: 2.25
12
+ 10: 2.75
13
+ 11: 3.25
14
+ 12: 3.75
15
+ 13: 4.25
16
+ 14: 4.75
17
+ 15: 5.25
18
+ 16: 5.75
19
+ 17: 6.25
20
+ 18: 6.75
21
+ 19: 7.25
22
+ bounds:
23
+ 0:
24
+ - 0.125
25
+ - 0.25
26
+ 1:
27
+ - 0.25
28
+ - 0.375
29
+ 2:
30
+ - 0.375
31
+ - 0.5
32
+ 3:
33
+ - 0.5
34
+ - 0.75
35
+ 4:
36
+ - 0.75
37
+ - 1.0
38
+ 5:
39
+ - 1.0
40
+ - 1.25
41
+ 6:
42
+ - 1.25
43
+ - 1.5
44
+ 7:
45
+ - 1.5
46
+ - 1.75
47
+ 8:
48
+ - 1.75
49
+ - 2.0
50
+ 9:
51
+ - 2.0
52
+ - 2.5
53
+ 10:
54
+ - 2.5
55
+ - 3.0
56
+ 11:
57
+ - 3.0
58
+ - 3.5
59
+ 12:
60
+ - 3.5
61
+ - 4.0
62
+ 13:
63
+ - 4.0
64
+ - 4.5
65
+ 14:
66
+ - 4.5
67
+ - 5.0
68
+ 15:
69
+ - 5.0
70
+ - 5.5
71
+ 16:
72
+ - 5.5
73
+ - 6.0
74
+ 17:
75
+ - 6.0
76
+ - 6.5
77
+ 18:
78
+ - 6.5
79
+ - 7.0
80
+ 19:
81
+ - 7.0
82
+ - 7.5
83
+ width:
84
+ 0: 0.125
85
+ 1: 0.125
86
+ 2: 0.125
87
+ 3: 0.25
88
+ 4: 0.25
89
+ 5: 0.25
90
+ 6: 0.25
91
+ 7: 0.25
92
+ 8: 0.25
93
+ 9: 0.5
94
+ 10: 0.5
95
+ 11: 0.5
96
+ 12: 0.5
97
+ 13: 0.5
98
+ 14: 0.5
99
+ 15: 0.5
100
+ 16: 0.5
101
+ 17: 0.5
102
+ 18: 0.5
103
+ 19: 0.5
@@ -0,0 +1,103 @@
1
+ center:
2
+ 0: 0.1
3
+ 1: 0.3
4
+ 2: 0.5
5
+ 3: 0.7
6
+ 4: 0.9
7
+ 5: 1.2
8
+ 6: 1.6
9
+ 7: 2.0
10
+ 8: 2.4
11
+ 9: 2.8
12
+ 10: 3.2
13
+ 11: 3.8
14
+ 12: 4.6
15
+ 13: 5.4
16
+ 14: 6.2
17
+ 15: 7.0
18
+ 16: 7.8
19
+ 17: 8.6
20
+ 18: 9.5
21
+ 19: 15.0
22
+ bounds:
23
+ 0:
24
+ - 0.0
25
+ - 0.2
26
+ 1:
27
+ - 0.2
28
+ - 0.4
29
+ 2:
30
+ - 0.4
31
+ - 0.6
32
+ 3:
33
+ - 0.6
34
+ - 0.8
35
+ 4:
36
+ - 0.8
37
+ - 1.0
38
+ 5:
39
+ - 1.0
40
+ - 1.4
41
+ 6:
42
+ - 1.4
43
+ - 1.8
44
+ 7:
45
+ - 1.8
46
+ - 2.2
47
+ 8:
48
+ - 2.2
49
+ - 2.6
50
+ 9:
51
+ - 2.6
52
+ - 3.0
53
+ 10:
54
+ - 3.0
55
+ - 3.4
56
+ 11:
57
+ - 3.4
58
+ - 4.2
59
+ 12:
60
+ - 4.2
61
+ - 5.0
62
+ 13:
63
+ - 5.0
64
+ - 5.8
65
+ 14:
66
+ - 5.8
67
+ - 6.6
68
+ 15:
69
+ - 6.6
70
+ - 7.4
71
+ 16:
72
+ - 7.4
73
+ - 8.2
74
+ 17:
75
+ - 8.2
76
+ - 9.0
77
+ 18:
78
+ - 9.0
79
+ - 10.0
80
+ 19:
81
+ - 10.0
82
+ - 20.0
83
+ width:
84
+ 0: 0.2
85
+ 1: 0.2
86
+ 2: 0.2
87
+ 3: 0.2
88
+ 4: 0.2
89
+ 5: 0.4
90
+ 6: 0.4
91
+ 7: 0.4
92
+ 8: 0.4
93
+ 9: 0.4
94
+ 10: 0.4
95
+ 11: 0.8
96
+ 12: 0.8
97
+ 13: 0.8
98
+ 14: 0.8
99
+ 15: 0.8
100
+ 16: 0.8
101
+ 17: 0.8
102
+ 18: 1.0
103
+ 19: 10.0
@@ -0,0 +1,45 @@
1
+ weather_code_synop_4680_5min: "float32" # 'uint8'
2
+ weather_code_metar_4678_5min: "str"
3
+ precipitation_rate_5min: "float32"
4
+ weather_code_synop_4680: "float32" # 'uint8'
5
+ weather_code_metar_4678: "str"
6
+ precipitation_rate: "float32"
7
+ precipitation_accumulated: "float32"
8
+ temperature_interior: "float32" # 'uint16'
9
+ laser_temperature: "float32" # 'uint16'
10
+ laser_current_average: "float32" # 'uint16'
11
+ control_voltage: "float32"
12
+ optical_control_voltage_output: "float32"
13
+ number_particles: "float32" # 'uint16'
14
+ number_particles_internal_data: "float32"
15
+ number_particles_min_speed: "float32" # 'uint16'
16
+ number_particles_min_speed_internal_data: "float32"
17
+ number_particles_max_speed: "float32" # 'uint16'
18
+ number_particles_max_speed_internal_data: "float32"
19
+ number_particles_min_diameter: "float32" # 'uint16'
20
+ number_particles_min_diameter_internal_data: "float32"
21
+ number_particles_no_hydrometeor: "float32" # 'uint16'
22
+ number_particles_no_hydrometeor_internal_data: "float32"
23
+ number_particles_unknown_classification: "float32" # 'uint16'
24
+ total_gross_volume_unknown_classification: "float32"
25
+ number_particles_hail: "float32" # 'uint16'
26
+ total_gross_volume_hail: "float32"
27
+ number_particles_solid_precipitation: "float32" # 'uint16'
28
+ total_gross_volume_solid_precipitation: "float32"
29
+ number_particles_great_pellet: "float32" # 'uint16'
30
+ total_gross_volume_great_pellet: "float32"
31
+ number_particles_small_pellet: "float32" # 'uint16'
32
+ total_gross_volume_small_pellet: "float32"
33
+ number_particles_snowgrain: "float32" # 'uint16'
34
+ total_gross_volume_snowgrain: "float32"
35
+ number_particles_rain: "float32" # 'uint16'
36
+ total_gross_volume_rain: "float32"
37
+ number_particles_small_rain: "float32" # 'uint16'
38
+ total_gross_volume_small_rain: "float32"
39
+ number_particles_drizzle: "float32" # 'uint16'
40
+ total_gross_volume_drizzle: "float32"
41
+ raw_drop_number: "str"
42
+ air_temperature: "float32"
43
+ relative_humidity: "float32"
44
+ wind_speed: "float32"
45
+ wind_direction: "float32"