cloudnetpy 1.66.10__py3-none-any.whl → 1.66.12__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.
@@ -215,6 +215,9 @@ def _save_cat(
215
215
  }
216
216
 
217
217
  file_type = "categorize"
218
+ if "liquid_prob" in cloudnet_arrays:
219
+ file_type += "-voodoo"
220
+
218
221
  with output.init_file(full_path, dims, cloudnet_arrays, uuid) as nc:
219
222
  uuid_out = nc.file_uuid
220
223
  nc.cloudnet_file_type = file_type
@@ -4,7 +4,7 @@ import numpy as np
4
4
  from numpy import ma
5
5
 
6
6
  from cloudnetpy import utils
7
- from cloudnetpy.constants import MM_H_TO_M_S
7
+ from cloudnetpy.constants import MM_H_TO_M_S, T0
8
8
  from cloudnetpy.products.product_tools import CategoryBits
9
9
 
10
10
  from .disdrometer import Disdrometer
@@ -89,7 +89,8 @@ class ClassData:
89
89
  rain_from_disdrometer = self._find_rain_from_disdrometer()
90
90
  ind = ~rain_from_disdrometer.mask
91
91
  is_rain[ind] = rain_from_disdrometer[ind]
92
- return is_rain
92
+ is_positive_temp = self.tw[:, 0] > T0 + 5 # Filter snowfall
93
+ return is_rain & is_positive_temp
93
94
 
94
95
  def _find_rain_from_radar_echo(self) -> np.ndarray:
95
96
  first_gate_with_data = np.argmin(self.z.mask.all(axis=0))
cloudnetpy/output.py CHANGED
@@ -425,7 +425,15 @@ def _get_dimensions(nc: netCDF4.Dataset, data: np.ndarray) -> tuple:
425
425
 
426
426
 
427
427
  def _get_identifier(short_id: str) -> str:
428
- valid_ids = ("lwc", "iwc", "drizzle", "classification", "der", "ier")
428
+ valid_ids = (
429
+ "lwc",
430
+ "iwc",
431
+ "drizzle",
432
+ "classification",
433
+ "der",
434
+ "ier",
435
+ "classification-voodoo",
436
+ )
429
437
  if short_id not in valid_ids:
430
438
  msg = f"Invalid file identifier: {short_id}"
431
439
  raise ValueError(msg)
@@ -55,8 +55,11 @@ def generate_classification(
55
55
  date = product_container.get_date()
56
56
  attributes = output.add_time_attribute(CLASSIFICATION_ATTRIBUTES, date)
57
57
  output.update_attributes(product_container.data, attributes)
58
+ file_type = "classification"
59
+ if "liquid_prob" in product_container.dataset.variables:
60
+ file_type += "-voodoo"
58
61
  return output.save_product_file(
59
- "classification",
62
+ file_type,
60
63
  product_container,
61
64
  output_file,
62
65
  uuid,
cloudnetpy/version.py CHANGED
@@ -1,4 +1,4 @@
1
1
  MAJOR = 1
2
2
  MINOR = 66
3
- PATCH = 10
3
+ PATCH = 12
4
4
  __version__ = f"{MAJOR}.{MINOR}.{PATCH}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudnetpy
3
- Version: 1.66.10
3
+ Version: 1.66.12
4
4
  Summary: Python package for Cloudnet processing
5
5
  Author: Simo Tukiainen
6
6
  License: MIT License
@@ -6,16 +6,16 @@ cloudnetpy/constants.py,sha256=RDB9aqpBRztk3QVCFgsmi9fwhtLuit_0WJrt0D6sDcc,736
6
6
  cloudnetpy/datasource.py,sha256=FcWS77jz56gIzwnbafDLdj-HjAyu0P_VtY7gkeVZThU,7952
7
7
  cloudnetpy/exceptions.py,sha256=ns48useL9RN3mPh7CqIiLA19VI9OmVbyRsKTkwbThF8,1760
8
8
  cloudnetpy/metadata.py,sha256=v_VDo2vbdTxB0zIsfP69IcrwSKiRlLpsGdq6JPI4CoA,5306
9
- cloudnetpy/output.py,sha256=YrWRBEZg0QNZRVnd9ziAziH-eJSh7O5JuWiH4ZxM0_s,15584
9
+ cloudnetpy/output.py,sha256=lq4YSeMT_d-j4rlQkKm9KIZ8boupTBBBKV1eUawpmCI,15672
10
10
  cloudnetpy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  cloudnetpy/utils.py,sha256=JksYOwf9ORiR_QpoKrTe1JJwXpPYJj-wlwaZKCHoh3o,29744
12
- cloudnetpy/version.py,sha256=y6mBVI00nak74QkrnJRk-arOU8OyMHhHQYJxEn3nh00,73
12
+ cloudnetpy/version.py,sha256=hDP4BM9G04Ifg9QoprxFNbcmG2SmWWByNxAAuXOyoDg,73
13
13
  cloudnetpy/categorize/__init__.py,sha256=s-SJaysvVpVVo5kidiruWQO6p3gv2TXwY1wEHYO5D6I,44
14
14
  cloudnetpy/categorize/atmos_utils.py,sha256=9-ymI6i1xASf-XAFyO87FaTfvq6bF89N1i_27OkUp-M,10104
15
15
  cloudnetpy/categorize/attenuation.py,sha256=Y_-fzmQTltWTqIZTulJhovC7a6ifpMcaAazDJcnMIOc,990
16
- cloudnetpy/categorize/categorize.py,sha256=UQdgLHTNc-J4-CRK3P1mrGNUMal2cKE6nwE5JYlFMcc,20644
16
+ cloudnetpy/categorize/categorize.py,sha256=I5Bmj5xnolO9CQkkh9CEC5oMyQMGUW6IaRMsljoKsFc,20717
17
17
  cloudnetpy/categorize/classify.py,sha256=qovHgHsMku5kpl3cJxKteNBsG8GAkfI3Zo8QhJwZSFQ,8512
18
- cloudnetpy/categorize/containers.py,sha256=4AUx95Br-aczyUB1dCmTfLn0MRKsk2GLkdCTdnqIfAs,5186
18
+ cloudnetpy/categorize/containers.py,sha256=evqVQOoUycBtaFeKpms7_NuM9z8jKWq37nLIhoDxa8k,5278
19
19
  cloudnetpy/categorize/disdrometer.py,sha256=keU3pFvKtk840A0oLwAyNDuqOCswBPJEKf2bV0YWyA8,2004
20
20
  cloudnetpy/categorize/droplet.py,sha256=t49KEsH5ZM68JQ4NvAf9kGgQ-evic1T4de2-jgJ2f4M,8683
21
21
  cloudnetpy/categorize/falling.py,sha256=lok0HMi1ewf9pS70mq62nRKL6wJzMyWbYmv1cdwrwnA,4404
@@ -103,7 +103,7 @@ cloudnetpy/plotting/__init__.py,sha256=lg9Smn4BI0dVBgnDLC3JVJ4GmwoSnO-qoSd4ApvwV
103
103
  cloudnetpy/plotting/plot_meta.py,sha256=ZvaKU3eXy1KFxQomnsEu3mCYpwwBYKAYk7oAwOzAGSg,16143
104
104
  cloudnetpy/plotting/plotting.py,sha256=RGtRMfrZ6wFsFCXZ540I18a7p_O0x3S7FGIAoyuyOxw,35425
105
105
  cloudnetpy/products/__init__.py,sha256=2hRb5HG9hNrxH1if5laJkLeFeaZCd5W1q3hh4ewsX0E,273
106
- cloudnetpy/products/classification.py,sha256=AKb9GCatvhS5KR0c9LfN96nUvzi02175ZCQlvMH1Dws,8077
106
+ cloudnetpy/products/classification.py,sha256=KwAiBSgFwDqhM114NIgYiUjj8HoYc7gAlc8E1QgcSig,8207
107
107
  cloudnetpy/products/der.py,sha256=soypE7uSEP4uHUCCQVEhyXsKY6e9mzV9B_2S5GUizqk,12729
108
108
  cloudnetpy/products/drizzle.py,sha256=58C9Mo6oRXR8KpbVPghbJvHvFX9GfS3xUp058pbf0qw,10804
109
109
  cloudnetpy/products/drizzle_error.py,sha256=4GwlHRtNbk9ks7bGtXCco-wXbcDOKeAQwKmbhzut6Qk,6132
@@ -115,9 +115,9 @@ cloudnetpy/products/mie_lu_tables.nc,sha256=It4fYpqJXlqOgL8jeZ-PxGzP08PMrELIDVe5
115
115
  cloudnetpy/products/mwr_tools.py,sha256=rd7UC67O4fsIE5SaHVZ4qWvUJTj41ZGwgQWPwZzOM14,5377
116
116
  cloudnetpy/products/product_tools.py,sha256=01Zc6xV8CSuYcIcLpchFf5POL3_c629-YMNDZJ51udA,10853
117
117
  docs/source/conf.py,sha256=IKiFWw6xhUd8NrCg0q7l596Ck1d61XWeVjIFHVSG9Og,1490
118
- cloudnetpy-1.66.10.dist-info/LICENSE,sha256=wcZF72bdaoG9XugpyE95Juo7lBQOwLuTKBOhhtANZMM,1094
119
- cloudnetpy-1.66.10.dist-info/METADATA,sha256=Vx3pgajb43-nUPGuinTNL5-7O1XPhC1rHttQTGm7Bv0,5785
120
- cloudnetpy-1.66.10.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
121
- cloudnetpy-1.66.10.dist-info/entry_points.txt,sha256=HhY7LwCFk4qFgDlXx_Fy983ZTd831WlhtdPIzV-Y3dY,51
122
- cloudnetpy-1.66.10.dist-info/top_level.txt,sha256=ibSPWRr6ojS1i11rtBFz2_gkIe68mggj7aeswYfaOo0,16
123
- cloudnetpy-1.66.10.dist-info/RECORD,,
118
+ cloudnetpy-1.66.12.dist-info/LICENSE,sha256=wcZF72bdaoG9XugpyE95Juo7lBQOwLuTKBOhhtANZMM,1094
119
+ cloudnetpy-1.66.12.dist-info/METADATA,sha256=D2tfe8TI2gBUjDEXvdYb3pICu6pJtoxcGQ0zuvhVXGg,5785
120
+ cloudnetpy-1.66.12.dist-info/WHEEL,sha256=R06PA3UVYHThwHvxuRWMqaGcr-PuniXahwjmQRFMEkY,91
121
+ cloudnetpy-1.66.12.dist-info/entry_points.txt,sha256=HhY7LwCFk4qFgDlXx_Fy983ZTd831WlhtdPIzV-Y3dY,51
122
+ cloudnetpy-1.66.12.dist-info/top_level.txt,sha256=ibSPWRr6ojS1i11rtBFz2_gkIe68mggj7aeswYfaOo0,16
123
+ cloudnetpy-1.66.12.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.3.0)
2
+ Generator: setuptools (75.5.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5