cloudnetpy 1.80.6__py3-none-any.whl → 1.80.8__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 (33) hide show
  1. cloudnetpy/categorize/categorize.py +60 -6
  2. cloudnetpy/cloudnetarray.py +1 -1
  3. cloudnetpy/instruments/basta.py +3 -0
  4. cloudnetpy/instruments/bowtie.py +4 -1
  5. cloudnetpy/instruments/ceilo.py +6 -79
  6. cloudnetpy/instruments/copernicus.py +11 -3
  7. cloudnetpy/instruments/disdrometer/common.py +70 -31
  8. cloudnetpy/instruments/fd12p.py +7 -1
  9. cloudnetpy/instruments/galileo.py +9 -3
  10. cloudnetpy/instruments/mira.py +8 -7
  11. cloudnetpy/instruments/mrr.py +14 -2
  12. cloudnetpy/instruments/nc_radar.py +2 -1
  13. cloudnetpy/instruments/pollyxt.py +5 -1
  14. cloudnetpy/instruments/radiometrics.py +10 -0
  15. cloudnetpy/instruments/rpg.py +73 -54
  16. cloudnetpy/metadata.py +48 -22
  17. cloudnetpy/model_evaluation/metadata.py +46 -19
  18. cloudnetpy/output.py +9 -28
  19. cloudnetpy/plotting/plotting.py +1 -1
  20. cloudnetpy/products/classification.py +6 -0
  21. cloudnetpy/products/der.py +6 -0
  22. cloudnetpy/products/drizzle.py +27 -1
  23. cloudnetpy/products/ier.py +3 -0
  24. cloudnetpy/products/iwc.py +5 -0
  25. cloudnetpy/products/lwc.py +3 -0
  26. cloudnetpy/utils.py +6 -1
  27. cloudnetpy/version.py +1 -1
  28. {cloudnetpy-1.80.6.dist-info → cloudnetpy-1.80.8.dist-info}/METADATA +1 -1
  29. {cloudnetpy-1.80.6.dist-info → cloudnetpy-1.80.8.dist-info}/RECORD +33 -33
  30. {cloudnetpy-1.80.6.dist-info → cloudnetpy-1.80.8.dist-info}/WHEEL +0 -0
  31. {cloudnetpy-1.80.6.dist-info → cloudnetpy-1.80.8.dist-info}/entry_points.txt +0 -0
  32. {cloudnetpy-1.80.6.dist-info → cloudnetpy-1.80.8.dist-info}/licenses/LICENSE +0 -0
  33. {cloudnetpy-1.80.6.dist-info → cloudnetpy-1.80.8.dist-info}/top_level.txt +0 -0
@@ -175,23 +175,29 @@ ATTRIBUTES = {
175
175
  long_name="Meteorological optical range (MOR) visibility",
176
176
  units="m",
177
177
  standard_name="visibility_in_air",
178
+ dimensions=("time",),
178
179
  ),
179
180
  "precipitation_rate": MetaData(
180
181
  long_name="Precipitation rate",
181
182
  standard_name="lwe_precipitation_rate",
182
183
  units="m s-1",
184
+ dimensions=("time",),
183
185
  ),
184
186
  "precipitation_amount": MetaData(
185
187
  long_name="Precipitation amount",
186
188
  standard_name="lwe_thickness_of_precipitation_amount",
187
189
  units="m",
188
190
  comment="Cumulated precipitation since 00:00 UTC",
191
+ dimensions=("time",),
189
192
  ),
190
193
  "snowfall_amount": MetaData(
191
194
  long_name="Snowfall amount",
192
195
  units="m",
193
196
  standard_name="thickness_of_snowfall_amount",
194
197
  comment="Cumulated snow since 00:00 UTC",
198
+ dimensions=("time",),
199
+ ),
200
+ "synop_WaWa": MetaData(
201
+ long_name="Synop code WaWa", units="1", dimensions=("time",)
195
202
  ),
196
- "synop_WaWa": MetaData(long_name="Synop code WaWa", units="1"),
197
203
  }
@@ -129,7 +129,13 @@ class Galileo(ChilboltonRadar):
129
129
 
130
130
 
131
131
  ATTRIBUTES = {
132
- "antenna_diameter": MetaData(long_name="Antenna diameter", units="m"),
133
- "beamwidthV": MetaData(long_name="Vertical angular beamwidth", units="degree"),
134
- "beamwidthH": MetaData(long_name="Horizontal angular beamwidth", units="degree"),
132
+ "antenna_diameter": MetaData(
133
+ long_name="Antenna diameter", units="m", dimensions=("time",)
134
+ ),
135
+ "beamwidthV": MetaData(
136
+ long_name="Vertical angular beamwidth", units="degree", dimensions=("time",)
137
+ ),
138
+ "beamwidthH": MetaData(
139
+ long_name="Horizontal angular beamwidth", units="degree", dimensions=("time",)
140
+ ),
135
141
  }
@@ -285,27 +285,28 @@ def _check_file_type(filetype: str) -> None:
285
285
 
286
286
 
287
287
  ATTRIBUTES = {
288
- "nfft": MetaData(
289
- long_name="Number of FFT points",
290
- units="1",
291
- ),
288
+ "nfft": MetaData(long_name="Number of FFT points", units="1", dimensions=("time",)),
292
289
  "nave": MetaData(
293
290
  long_name="Number of spectral averages (not accounting for overlapping FFTs)",
294
291
  units="1",
292
+ dimensions=("time",),
293
+ ),
294
+ "rg0": MetaData(
295
+ long_name="Number of lowest range gates", units="1", dimensions=("time",)
295
296
  ),
296
- "rg0": MetaData(long_name="Number of lowest range gates", units="1"),
297
297
  "prf": MetaData(
298
- long_name="Pulse Repetition Frequency",
299
- units="Hz",
298
+ long_name="Pulse Repetition Frequency", units="Hz", dimensions=("time",)
300
299
  ),
301
300
  "zenith_offset": MetaData(
302
301
  long_name="Zenith offset of the instrument",
303
302
  units="degrees",
304
303
  comment="Zenith offset applied.",
304
+ dimensions=None,
305
305
  ),
306
306
  "azimuth_offset": MetaData(
307
307
  long_name="Azimuth offset of the instrument (positive clockwise from north)",
308
308
  units="degrees",
309
309
  comment="Azimuth offset applied.",
310
+ dimensions=None,
310
311
  ),
311
312
  }
@@ -163,6 +163,18 @@ class MrrPro(NcRadar):
163
163
 
164
164
 
165
165
  ATTRIBUTES = {
166
- "lwc": MetaData(long_name="Liquid water content", units="kg m-3"),
167
- "pia": MetaData(long_name="Path integrated rain attenuation", units="dB"),
166
+ "lwc": MetaData(
167
+ long_name="Liquid water content", units="kg m-3", dimensions=("time", "range")
168
+ ),
169
+ "pia": MetaData(
170
+ long_name="Path integrated rain attenuation",
171
+ units="dB",
172
+ dimensions=("time", "range"),
173
+ ),
174
+ "rainfall_rate": MetaData(
175
+ long_name="Rainfall rate",
176
+ standard_name="rainfall_rate",
177
+ units="m s-1",
178
+ dimensions=("time", "range"),
179
+ ),
168
180
  }
@@ -162,7 +162,8 @@ class NcRadar(DataSource, CloudnetInstrument):
162
162
 
163
163
  def test_if_all_masked(self) -> None:
164
164
  """Tests if all data are masked."""
165
- if np.all(self.data["v"][:].mask):
165
+ v = self.data["v"][:]
166
+ if ma.isMaskedArray(v) and np.all(v.mask):
166
167
  msg = "All radar data are masked"
167
168
  raise RadarDataError(msg)
168
169
 
@@ -13,7 +13,7 @@ from cloudnetpy import output, utils
13
13
  from cloudnetpy.exceptions import InconsistentDataError, ValidTimeStampError
14
14
  from cloudnetpy.instruments import instruments
15
15
  from cloudnetpy.instruments.ceilometer import Ceilometer
16
- from cloudnetpy.metadata import MetaData
16
+ from cloudnetpy.metadata import COMMON_ATTRIBUTES, MetaData
17
17
  from cloudnetpy.utils import Epoch
18
18
 
19
19
 
@@ -247,15 +247,19 @@ ATTRIBUTES = {
247
247
  long_name="Lidar volume linear depolarisation ratio",
248
248
  units="1",
249
249
  comment="SNR-screened lidar volume linear depolarisation ratio at 532 nm.",
250
+ dimensions=("time", "range"),
250
251
  ),
251
252
  "depolarisation_raw": MetaData(
252
253
  long_name="Lidar volume linear depolarisation ratio",
253
254
  units="1",
254
255
  comment="Non-screened lidar volume linear depolarisation ratio at 532 nm.",
256
+ dimensions=("time", "range"),
255
257
  ),
256
258
  "calibration_factor": MetaData(
257
259
  long_name="Attenuated backscatter calibration factor",
258
260
  units="1",
259
261
  comment="Calibration factor applied.",
262
+ dimensions=("time",),
260
263
  ),
264
+ "zenith_angle": COMMON_ATTRIBUTES["zenith_angle"]._replace(dimensions=None),
261
265
  }
@@ -421,5 +421,15 @@ ATTRIBUTES = {
421
421
  "irt": MetaData(
422
422
  long_name="Infrared brightness temperatures",
423
423
  units="K",
424
+ dimensions=("time", "ir_channel"),
425
+ ),
426
+ "temperature": MetaData(
427
+ long_name="Temperature", units="K", dimensions=("time", "range")
428
+ ),
429
+ "relative_humidity": MetaData(
430
+ long_name="Relative humidity",
431
+ standard_name="relative_humidity",
432
+ units="1",
433
+ dimensions=("time", "range"),
424
434
  ),
425
435
  }
@@ -385,135 +385,154 @@ DEFINITIONS = {
385
385
 
386
386
  RPG_ATTRIBUTES = {
387
387
  # LDR-mode radars:
388
- "ldr": MetaData(long_name="Linear depolarisation ratio", units="dB"),
389
- "rho_cx": MetaData(long_name="Co-cross-channel correlation coefficient", units="1"),
390
- "phi_cx": MetaData(long_name="Co-cross-channel differential phase", units="rad"),
388
+ "ldr": MetaData(
389
+ long_name="Linear depolarisation ratio",
390
+ units="dB",
391
+ dimensions=("time", "range"),
392
+ ),
393
+ "rho_cx": MetaData(
394
+ long_name="Co-cross-channel correlation coefficient",
395
+ units="1",
396
+ dimensions=("time", "range"),
397
+ ),
398
+ "phi_cx": MetaData(
399
+ long_name="Co-cross-channel differential phase",
400
+ units="rad",
401
+ dimensions=("time", "range"),
402
+ ),
391
403
  # STSR-mode radars
392
- "zdr": MetaData(long_name="Differential reflectivity", units="dB"),
393
- "rho_hv": MetaData(long_name="Correlation coefficient", units="1"),
394
- "phi_dp": MetaData(long_name="Differential phase", units="rad"),
395
- "srho_hv": MetaData(long_name="Slanted correlation coefficient", units="1"),
396
- "kdp": MetaData(long_name="Specific differential phase shift", units="rad km-1"),
404
+ "zdr": MetaData(
405
+ long_name="Differential reflectivity", units="dB", dimensions=("time", "range")
406
+ ),
407
+ "rho_hv": MetaData(
408
+ long_name="Correlation coefficient", units="1", dimensions=("time", "range")
409
+ ),
410
+ "phi_dp": MetaData(
411
+ long_name="Differential phase", units="rad", dimensions=("time", "range")
412
+ ),
413
+ "srho_hv": MetaData(
414
+ long_name="Slanted correlation coefficient",
415
+ units="1",
416
+ dimensions=("time", "range"),
417
+ ),
418
+ "kdp": MetaData(
419
+ long_name="Specific differential phase shift",
420
+ units="rad km-1",
421
+ dimensions=("time", "range"),
422
+ ),
397
423
  "differential_attenuation": MetaData(
398
424
  long_name="Differential attenuation",
399
425
  units="dB km-1",
426
+ dimensions=("time", "range"),
400
427
  ),
401
428
  # All radars
402
429
  "file_code": MetaData(
403
430
  long_name="File code",
404
431
  units="1",
405
432
  comment="Indicates the RPG software version.",
433
+ dimensions=None,
406
434
  ),
407
- "program_number": MetaData(long_name="Program number", units="1"),
435
+ "program_number": MetaData(long_name="Program number", units="1", dimensions=None),
408
436
  "model_number": MetaData(
409
437
  long_name="Model number",
410
438
  units="1",
411
439
  definition=DEFINITIONS["model_number"],
440
+ dimensions=None,
412
441
  ),
413
442
  "antenna_separation": MetaData(
414
- long_name="Antenna separation",
415
- units="m",
443
+ long_name="Antenna separation", units="m", dimensions=None
416
444
  ),
417
445
  "antenna_diameter": MetaData(
418
- long_name="Antenna diameter",
419
- units="m",
420
- ),
421
- "antenna_gain": MetaData(
422
- long_name="Antenna gain",
423
- units="dB",
446
+ long_name="Antenna diameter", units="m", dimensions=None
424
447
  ),
448
+ "antenna_gain": MetaData(long_name="Antenna gain", units="dB", dimensions=None),
425
449
  "half_power_beam_width": MetaData(
426
- long_name="Half power beam width",
427
- units="degree",
450
+ long_name="Half power beam width", units="degree", dimensions=None
428
451
  ),
429
452
  "dual_polarization": MetaData(
430
453
  long_name="Dual polarisation type",
431
454
  units="1",
432
455
  definition=DEFINITIONS["dual_polarization"],
456
+ dimensions=None,
457
+ ),
458
+ "sample_duration": MetaData(
459
+ long_name="Sample duration", units="s", dimensions=None
433
460
  ),
434
- "sample_duration": MetaData(long_name="Sample duration", units="s"),
435
461
  "calibration_interval": MetaData(
436
- long_name="Calibration interval in samples",
437
- units="1",
462
+ long_name="Calibration interval in samples", units="1", dimensions=None
438
463
  ),
439
464
  "number_of_spectral_samples": MetaData(
440
465
  long_name="Number of spectral samples in each chirp sequence",
441
466
  units="1",
467
+ dimensions=("chirp_sequence",),
468
+ ),
469
+ "nyquist_velocity": MetaData(
470
+ long_name="Nyquist velocity", units="m s-1", dimensions=("chirp_sequence",)
442
471
  ),
443
472
  "number_of_averaged_chirps": MetaData(
444
473
  long_name="Number of averaged chirps in sequence",
445
474
  units="1",
475
+ dimensions=("chirp_sequence",),
476
+ ),
477
+ "chirp_start_indices": MetaData(
478
+ long_name="Chirp sequences start indices",
479
+ units="1",
480
+ dimensions=("chirp_sequence",),
446
481
  ),
447
482
  "integration_time": MetaData(
448
483
  long_name="Integration time",
449
484
  units="s",
450
485
  comment="Effective integration time of chirp sequence",
486
+ dimensions=("chirp_sequence",),
451
487
  ),
452
488
  "range_resolution": MetaData(
453
489
  long_name="Vertical resolution of range",
454
490
  units="m",
491
+ dimensions=("chirp_sequence",),
455
492
  ),
456
493
  "FFT_window": MetaData(
457
494
  long_name="FFT window type",
458
495
  units="1",
459
496
  definition=DEFINITIONS["FFT_window"],
497
+ dimensions=None,
460
498
  ),
461
499
  "input_voltage_range": MetaData(
462
- long_name="ADC input voltage range (+/-)",
463
- units="mV",
500
+ long_name="ADC input voltage range (+/-)", units="mV", dimensions=None
464
501
  ),
465
502
  "noise_threshold": MetaData(
466
503
  long_name="Noise filter threshold factor",
467
504
  units="1",
468
505
  comment="Multiple of the standard deviation of Doppler spectra.",
506
+ dimensions=None,
469
507
  ),
470
- "time_ms": MetaData(
471
- long_name="Time ms",
472
- units="ms",
473
- ),
508
+ "time_ms": MetaData(long_name="Time ms", units="ms", dimensions=("time",)),
474
509
  "quality_flag": MetaData(
475
510
  long_name="Quality flag",
476
511
  definition=DEFINITIONS["quality_flag"],
477
512
  units="1",
513
+ dimensions=("time",),
478
514
  ),
479
- "voltage": MetaData(
480
- long_name="Voltage",
481
- units="V",
482
- ),
515
+ "voltage": MetaData(long_name="Voltage", units="V", dimensions=("time",)),
483
516
  "brightness_temperature": MetaData(
484
- long_name="Brightness temperature",
485
- units="K",
486
- ),
487
- "if_power": MetaData(
488
- long_name="IF power at ACD",
489
- units="uW",
517
+ long_name="Brightness temperature", units="K", dimensions=("time",)
490
518
  ),
519
+ "if_power": MetaData(long_name="IF power at ACD", units="uW", dimensions=("time",)),
491
520
  "status_flag": MetaData(
492
- long_name="Status flag for heater and blower",
493
- units="1",
521
+ long_name="Status flag for heater and blower", units="1", dimensions=("time",)
494
522
  ),
495
523
  "transmitted_power": MetaData(
496
- long_name="Transmitted power",
497
- units="W",
524
+ long_name="Transmitted power", units="W", dimensions=("time",)
498
525
  ),
499
526
  "transmitter_temperature": MetaData(
500
- long_name="Transmitter temperature",
501
- units="K",
527
+ long_name="Transmitter temperature", units="K", dimensions=("time",)
502
528
  ),
503
529
  "receiver_temperature": MetaData(
504
- long_name="Receiver temperature",
505
- units="K",
530
+ long_name="Receiver temperature", units="K", dimensions=("time",)
506
531
  ),
507
532
  "pc_temperature": MetaData(
508
- long_name="PC temperature",
509
- units="K",
510
- ),
511
- "kurtosis": MetaData(
512
- long_name="Kurtosis of spectra",
513
- units="1",
533
+ long_name="PC temperature", units="K", dimensions=("time",)
514
534
  ),
515
535
  "correlation_coefficient": MetaData(
516
- long_name="Correlation coefficient",
517
- units="1",
536
+ long_name="Correlation coefficient", units="1", dimensions=None
518
537
  ),
519
538
  }
cloudnetpy/metadata.py CHANGED
@@ -4,7 +4,8 @@ from typing import NamedTuple
4
4
 
5
5
 
6
6
  class MetaData(NamedTuple):
7
- long_name: str | None = None
7
+ long_name: str
8
+ dimensions: tuple[str, ...] | None
8
9
  standard_name: str | None = None
9
10
  units: str | None = None
10
11
  comment: str | None = None
@@ -23,32 +24,38 @@ COMMON_ATTRIBUTES = {
23
24
  axis="T",
24
25
  standard_name="time",
25
26
  calendar="standard",
27
+ dimensions=("time",),
26
28
  ),
27
29
  "height": MetaData(
28
30
  long_name="Height above mean sea level",
29
31
  standard_name="height_above_mean_sea_level",
30
32
  units="m",
33
+ dimensions=("range",),
31
34
  ),
32
35
  "range": MetaData(
33
36
  long_name="Range from instrument",
34
37
  axis="Z",
35
38
  units="m",
36
39
  comment="Distance from instrument to centre of each range bin.",
40
+ dimensions=("range",),
37
41
  ),
38
42
  "latitude": MetaData(
39
43
  long_name="Latitude of site",
40
44
  units="degree_north",
41
45
  standard_name="latitude",
46
+ dimensions=("time",),
42
47
  ),
43
48
  "longitude": MetaData(
44
49
  long_name="Longitude of site",
45
50
  units="degree_east",
46
51
  standard_name="longitude",
52
+ dimensions=("time",),
47
53
  ),
48
54
  "altitude": MetaData(
49
55
  long_name="Altitude of site",
50
56
  standard_name="altitude",
51
57
  units="m",
58
+ dimensions=("time",),
52
59
  ),
53
60
  "Zh": MetaData(
54
61
  long_name="Radar reflectivity factor",
@@ -56,6 +63,7 @@ COMMON_ATTRIBUTES = {
56
63
  comment="Calibrated reflectivity. Calibration convention: in the absence\n"
57
64
  "of attenuation, a cloud at 273 K containing one million 100-micron droplets\n"
58
65
  "per cubic metre will have a reflectivity of 0 dBZ at all frequencies.",
66
+ dimensions=("time", "range"),
59
67
  ),
60
68
  "width": MetaData(
61
69
  long_name="Spectral width",
@@ -64,6 +72,7 @@ COMMON_ATTRIBUTES = {
64
72
  "This parameter is the standard deviation of the reflectivity-weighted\n"
65
73
  "velocities in the radar pulse volume."
66
74
  ),
75
+ dimensions=("time", "range"),
67
76
  ),
68
77
  "v": MetaData(
69
78
  long_name="Doppler velocity",
@@ -72,130 +81,147 @@ COMMON_ATTRIBUTES = {
72
81
  "This parameter is the radial component of the velocity, with positive\n"
73
82
  "velocities are away from the radar."
74
83
  ),
84
+ dimensions=("time", "range"),
75
85
  ),
76
86
  "ldr": MetaData(
77
87
  long_name="Linear depolarisation ratio",
78
88
  units="dB",
79
89
  comment="This parameter is the ratio of cross-polar to co-polar reflectivity.",
90
+ dimensions=("time", "range"),
91
+ ),
92
+ "sldr": MetaData(
93
+ long_name="Slanted linear depolarisation ratio",
94
+ units="dB",
95
+ dimensions=("time", "range"),
80
96
  ),
81
- "sldr": MetaData(long_name="Slanted linear depolarisation ratio", units="dB"),
82
97
  "lwp": MetaData(
83
98
  long_name="Liquid water path",
84
99
  units="kg m-2",
85
100
  standard_name="atmosphere_cloud_liquid_water_content",
101
+ dimensions=("time",),
86
102
  ),
87
103
  "iwv": MetaData(
88
104
  long_name="Integrated water vapour",
89
105
  units="kg m-2",
90
106
  standard_name="atmosphere_mass_content_of_water_vapor",
107
+ dimensions=("time",),
91
108
  ),
92
109
  "kurtosis": MetaData(
93
110
  long_name="Kurtosis of spectra",
94
111
  units="1",
112
+ dimensions=("time", "range"),
95
113
  ),
96
114
  "skewness": MetaData(
97
115
  long_name="Skewness of spectra",
98
116
  units="1",
117
+ dimensions=("time", "range"),
118
+ ),
119
+ "nyquist_velocity": MetaData(
120
+ long_name="Nyquist velocity",
121
+ units="m s-1",
122
+ dimensions=("time", "range"),
123
+ ),
124
+ "radar_frequency": MetaData(
125
+ long_name="Radar transmit frequency", units="GHz", dimensions=None
99
126
  ),
100
- "nyquist_velocity": MetaData(long_name="Nyquist velocity", units="m s-1"),
101
- "radar_frequency": MetaData(long_name="Radar transmit frequency", units="GHz"),
102
127
  "beta": MetaData(
103
128
  long_name="Attenuated backscatter coefficient",
104
129
  units="sr-1 m-1",
105
130
  comment="SNR-screened attenuated backscatter coefficient.",
131
+ dimensions=("time", "range"),
106
132
  ),
107
133
  "beta_raw": MetaData(
108
134
  long_name="Attenuated backscatter coefficient",
109
135
  units="sr-1 m-1",
110
136
  comment="Non-screened attenuated backscatter coefficient.",
137
+ dimensions=("time", "range"),
111
138
  ),
112
139
  "beta_smooth": MetaData(
113
140
  long_name="Attenuated backscatter coefficient",
114
141
  units="sr-1 m-1",
115
142
  comment="SNR-screened attenuated backscatter coefficient.\n"
116
143
  "Weak background smoothed using Gaussian 2D-kernel.",
144
+ dimensions=("time", "range"),
117
145
  ),
118
- "wavelength": MetaData(
119
- long_name="Laser wavelength",
120
- units="nm",
121
- ),
146
+ "wavelength": MetaData(long_name="Laser wavelength", units="nm", dimensions=None),
122
147
  "zenith_angle": MetaData(
123
148
  long_name="Zenith angle",
124
149
  units="degree",
125
150
  standard_name="zenith_angle",
126
151
  comment="Angle to the local vertical. A value of zero is directly overhead.",
152
+ dimensions=("time",),
127
153
  ),
128
154
  "ir_zenith_angle": MetaData(
129
155
  long_name="Infrared sensor zenith angle",
130
156
  units="degree",
131
157
  comment="90=horizon, 0=zenith",
158
+ dimensions=("time",),
132
159
  ),
133
160
  "azimuth_angle": MetaData(
134
161
  long_name="Azimuth angle",
135
162
  standard_name="sensor_azimuth_angle",
136
163
  units="degree",
137
164
  comment="Angle between North and the line of sight, measured clockwise.",
165
+ dimensions=("time",),
138
166
  ),
139
- "temperature": MetaData(
140
- long_name="Temperature",
141
- units="K",
142
- ),
143
- "pressure": MetaData(
144
- long_name="Pressure",
145
- units="Pa",
146
- ),
167
+ "temperature": MetaData(long_name="Temperature", units="K", dimensions=("time",)),
168
+ "pressure": MetaData(long_name="Pressure", units="Pa", dimensions=("time",)),
147
169
  "SNR": MetaData(
148
- long_name="Signal-to-noise ratio",
149
- units="dB",
170
+ long_name="Signal-to-noise ratio", units="dB", dimensions=("time", "range")
150
171
  ),
151
172
  "relative_humidity": MetaData(
152
173
  long_name="Relative humidity",
153
174
  standard_name="relative_humidity",
154
175
  units="1",
176
+ dimensions=("time",),
155
177
  ),
156
178
  "absolute_humidity": MetaData(
157
179
  long_name="Absolute humidity",
158
180
  standard_name="mass_concentration_of_water_vapor_in_air",
159
181
  units="kg m-3",
182
+ dimensions=("time", "range"),
160
183
  ),
161
184
  "wind_speed": MetaData(
162
185
  long_name="Wind speed",
163
186
  standard_name="wind_speed",
164
187
  units="m s-1",
188
+ dimensions=("time",),
165
189
  ),
166
190
  "wind_direction": MetaData(
167
191
  long_name="Wind direction",
168
192
  standard_name="wind_from_direction",
169
193
  units="degree",
194
+ dimensions=("time",),
170
195
  ),
171
196
  "rainfall_rate": MetaData(
172
197
  long_name="Rainfall rate",
173
198
  standard_name="rainfall_rate",
174
199
  units="m s-1",
200
+ dimensions=("time",),
175
201
  ),
176
202
  "rainfall_amount": MetaData(
177
203
  long_name="Rainfall amount",
178
204
  standard_name="thickness_of_rainfall_amount",
179
205
  units="m",
180
206
  comment="Cumulated precipitation since 00:00 UTC",
207
+ dimensions=("time",),
181
208
  ),
182
209
  "air_temperature": MetaData(
183
210
  long_name="Air temperature",
184
211
  standard_name="air_temperature",
185
212
  units="K",
213
+ dimensions=("time",),
186
214
  ),
187
215
  "air_pressure": MetaData(
188
216
  long_name="Air pressure",
189
217
  standard_name="air_pressure",
190
218
  units="Pa",
219
+ dimensions=("time",),
191
220
  ),
192
221
  "snr_limit": MetaData(
193
222
  long_name="SNR limit",
194
223
  units="dB",
195
224
  comment="SNR threshold used in data screening.",
196
- ),
197
- "chirp_start_indices": MetaData(
198
- long_name="Chirp sequences start indices",
199
- units="1",
225
+ dimensions=None,
200
226
  ),
201
227
  }