cloudnetpy 1.58.2__py3-none-any.whl → 1.58.4__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.
@@ -42,10 +42,17 @@ def classify_measurements(data: dict) -> ClassificationResult:
42
42
  bits[2] = freezing.find_freezing_region(obs, bits[3])
43
43
  liquid_from_lidar = droplet.find_liquid(obs)
44
44
  if obs.lv0_files is not None and len(obs.lv0_files) > 0:
45
+ if "rpg-fmcw-94" not in obs.radar_type.lower():
46
+ msg = "VoodooNet is only implemented for RPG-FMCW-94 radar."
47
+ raise NotImplementedError(msg)
45
48
  import voodoonet
49
+ from voodoonet.utils import VoodooOptions
46
50
 
51
+ options = VoodooOptions(progress_bar=False)
47
52
  target_time = voodoonet.utils.decimal_hour2unix(obs.date, obs.time)
48
- liquid_prob = voodoonet.infer(obs.lv0_files, target_time=target_time)
53
+ liquid_prob = voodoonet.infer(
54
+ obs.lv0_files, target_time=target_time, options=options
55
+ )
49
56
  liquid_from_radar = liquid_prob > 0.55
50
57
  liquid_from_radar = _remove_false_radar_liquid(
51
58
  liquid_from_radar,
@@ -463,6 +463,9 @@ ATTRIBUTES = {
463
463
  "insect_prob": PlotMeta(
464
464
  plot_range=(0, 1),
465
465
  ),
466
+ "liquid_prob": PlotMeta(
467
+ plot_range=(0, 0.7),
468
+ ),
466
469
  "radar_liquid_atten": PlotMeta(
467
470
  plot_range=(0, 5),
468
471
  ),
@@ -145,9 +145,10 @@ class FigureData:
145
145
  valid_variables = []
146
146
  variable_indices = []
147
147
  for variable_name in requested_variables:
148
- if variable_name.startswith("tb_"):
149
- extracted_name = "tb"
150
- extracted_ind = int(variable_name.split("_")[1])
148
+ if variable_name.startswith(("tb_", "irt_")):
149
+ parts = variable_name.split("_")
150
+ extracted_name = parts[0]
151
+ extracted_ind = int(parts[1])
151
152
  else:
152
153
  extracted_name = variable_name
153
154
  extracted_ind = None
@@ -554,13 +555,14 @@ class Plot1D(Plot):
554
555
  is_bad_zenith = self._get_bad_zenith_profiles(figure_data)
555
556
  self._data[is_bad_zenith] = ma.masked
556
557
  self._data_orig[is_bad_zenith] = ma.masked
557
- flags = self._read_flagged_data(figure_data)[:, freq_ind]
558
- flags[is_bad_zenith] = False
559
- if np.any(flags):
560
- self._plot_flag_data(figure_data.time[flags], self._data_orig[flags])
561
- self._add_legend()
558
+ if self.sub_plot.variable == "tb":
559
+ flags = self._read_flagged_data(figure_data)[:, freq_ind]
560
+ flags[is_bad_zenith] = False
561
+ if np.any(flags):
562
+ self._plot_flag_data(figure_data.time[flags], self._data_orig[flags])
563
+ self._add_legend()
564
+ self._show_frequency(figure_data, freq_ind)
562
565
  self.plot(figure_data)
563
- self._show_frequency(figure_data, freq_ind)
564
566
 
565
567
  def _show_frequency(self, figure_data: FigureData, freq_ind: int) -> None:
566
568
  frequency = figure_data.file.variables["frequency"][freq_ind]
@@ -737,7 +739,7 @@ def generate_figure(
737
739
  file_type = getattr(file, "cloudnet_file_type", None)
738
740
  subplot = SubPlot(ax, variable, options, file_type)
739
741
 
740
- if variable.name == "tb" and ind is not None:
742
+ if variable.name in ("tb", "irt") and ind is not None:
741
743
  Plot1D(subplot).plot_tb(figure_data, ind)
742
744
  elif variable.ndim == 1:
743
745
  Plot1D(subplot).plot(figure_data)
cloudnetpy/version.py CHANGED
@@ -1,4 +1,4 @@
1
1
  MAJOR = 1
2
2
  MINOR = 58
3
- PATCH = 2
3
+ PATCH = 4
4
4
  __version__ = f"{MAJOR}.{MINOR}.{PATCH}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudnetpy
3
- Version: 1.58.2
3
+ Version: 1.58.4
4
4
  Summary: Python package for Cloudnet processing
5
5
  Author: Simo Tukiainen
6
6
  License: MIT License
@@ -51,7 +51,7 @@ Provides-Extra: dev
51
51
  Requires-Dist: pre-commit ; extra == 'dev'
52
52
  Requires-Dist: release-version ; extra == 'dev'
53
53
  Provides-Extra: extras
54
- Requires-Dist: voodoonet >=0.1.1 ; extra == 'extras'
54
+ Requires-Dist: voodoonet >=0.1.7 ; extra == 'extras'
55
55
  Provides-Extra: test
56
56
  Requires-Dist: mypy ; extra == 'test'
57
57
  Requires-Dist: pytest ; extra == 'test'
@@ -8,12 +8,12 @@ cloudnetpy/metadata.py,sha256=v_VDo2vbdTxB0zIsfP69IcrwSKiRlLpsGdq6JPI4CoA,5306
8
8
  cloudnetpy/output.py,sha256=WoVTNuxni0DUr163vZ-_mDr1brXhY15XSlGMrq9Aoqw,14700
9
9
  cloudnetpy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  cloudnetpy/utils.py,sha256=0TlHm71YtSrKXBsRKctitnhQrvZPE-ulEVeAQW-oK58,27398
11
- cloudnetpy/version.py,sha256=sxQTDJF5V0jFyfz6M0CLqQ33MN8hCucqsVHRWWG45fs,72
11
+ cloudnetpy/version.py,sha256=Ad5okgp6ACQmXN92GegEWxjqqVmfT8qSO9m364S8NCE,72
12
12
  cloudnetpy/categorize/__init__.py,sha256=gP5q3Vis1y9u9OWgA_idlbjfWXYN_S0IBSWdwBhL_uU,69
13
13
  cloudnetpy/categorize/atmos.py,sha256=fWW8ye_8HZASRAiYwURFKWzcGOYIA2RKeVxCq0lVOuM,12389
14
14
  cloudnetpy/categorize/atmos_utils.py,sha256=wndpwJxc2-QnNTkV8tc8I11Vs_WkNz9sVMX1fuGgUC4,3777
15
15
  cloudnetpy/categorize/categorize.py,sha256=_chLFT0l9ll78y3oaxFwOTBbv2raxxjghCz-_KGdImQ,17476
16
- cloudnetpy/categorize/classify.py,sha256=vIR7Ztu41kQbRaA2xIy_mm08KxVgQczYXpNSo0vz2Yg,8905
16
+ cloudnetpy/categorize/classify.py,sha256=x7aqPfhw4xuER22sqOb9ES9nijwk1E8b7HF7uaFJD7k,9218
17
17
  cloudnetpy/categorize/containers.py,sha256=j6oSKPeZcq9vFthYaocAw1m6yReRNNPYUQF5UTDq4YM,4232
18
18
  cloudnetpy/categorize/disdrometer.py,sha256=0Z0nvUtoZKDxiUfBZzoYZxUFOVjq-thmYfaCkskeECs,1799
19
19
  cloudnetpy/categorize/droplet.py,sha256=pUmB-gN0t9sVgsGLof6X9N0nuEb4EBtEUswwpoQapTY,8687
@@ -92,8 +92,8 @@ cloudnetpy/model_evaluation/tests/unit/test_plotting.py,sha256=h9V8JKmrO4v9bOvv-
92
92
  cloudnetpy/model_evaluation/tests/unit/test_statistical_methods.py,sha256=Ra3r4V0qbqkpDuaTYvEIbaasl0nZ5gmTLR4eGC0glBQ,9724
93
93
  cloudnetpy/model_evaluation/tests/unit/test_tools.py,sha256=Ia_VrLdV2NstX5gbx_3AZTOAlrgLAy_xFZ8fHYVX0xI,3817
94
94
  cloudnetpy/plotting/__init__.py,sha256=lg9Smn4BI0dVBgnDLC3JVJ4GmwoSnO-qoSd4ApvwV6Y,107
95
- cloudnetpy/plotting/plot_meta.py,sha256=MK_-fByZgihXkTXVJhs942qvq9SLfyzLa911y6x8cV0,14791
96
- cloudnetpy/plotting/plotting.py,sha256=kzVfHy6mEzOwVgoAF26bfDlh_shK3SbvYKOlO3XZ1vk,30894
95
+ cloudnetpy/plotting/plot_meta.py,sha256=e0X6ZCuBE0eRIbGKdT7S0RzhL_ncfo7Pi0uRhXpttnQ,14868
96
+ cloudnetpy/plotting/plotting.py,sha256=EA40DLIwHAUtBd07zRE6ITUfutv5A_mqsySOiyv-_Gg,31014
97
97
  cloudnetpy/products/__init__.py,sha256=2hRb5HG9hNrxH1if5laJkLeFeaZCd5W1q3hh4ewsX0E,273
98
98
  cloudnetpy/products/classification.py,sha256=0E9OUGR3uLCsS1nORwQu0SqW0_8uX7n6LlRcVhtzKw4,7845
99
99
  cloudnetpy/products/der.py,sha256=mam6jWV7A2h8V5WC3DIeFp6ou7UD1JOw9r7h2B0su-s,12403
@@ -107,8 +107,8 @@ cloudnetpy/products/mie_lu_tables.nc,sha256=It4fYpqJXlqOgL8jeZ-PxGzP08PMrELIDVe5
107
107
  cloudnetpy/products/mwr_tools.py,sha256=PRm5aCULccUehU-Byk55wYhhEHseMjoAjGBu5TSyHao,4621
108
108
  cloudnetpy/products/product_tools.py,sha256=rhx_Ru9FLlQqCNM-awoiHx18-Aq1eBwL9LiUaQoJs6k,10412
109
109
  docs/source/conf.py,sha256=IKiFWw6xhUd8NrCg0q7l596Ck1d61XWeVjIFHVSG9Og,1490
110
- cloudnetpy-1.58.2.dist-info/LICENSE,sha256=wcZF72bdaoG9XugpyE95Juo7lBQOwLuTKBOhhtANZMM,1094
111
- cloudnetpy-1.58.2.dist-info/METADATA,sha256=zU2eLMkK7FIQ2vgH4b8s5F3QqAqRGlbromhMXFKa_H4,5733
112
- cloudnetpy-1.58.2.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
113
- cloudnetpy-1.58.2.dist-info/top_level.txt,sha256=ibSPWRr6ojS1i11rtBFz2_gkIe68mggj7aeswYfaOo0,16
114
- cloudnetpy-1.58.2.dist-info/RECORD,,
110
+ cloudnetpy-1.58.4.dist-info/LICENSE,sha256=wcZF72bdaoG9XugpyE95Juo7lBQOwLuTKBOhhtANZMM,1094
111
+ cloudnetpy-1.58.4.dist-info/METADATA,sha256=39_FtwhSwvqQIYO-s7t30ieR7JV2xaDLAH7zDvoLdfw,5733
112
+ cloudnetpy-1.58.4.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
113
+ cloudnetpy-1.58.4.dist-info/top_level.txt,sha256=ibSPWRr6ojS1i11rtBFz2_gkIe68mggj7aeswYfaOo0,16
114
+ cloudnetpy-1.58.4.dist-info/RECORD,,